Skip to content

narrow screen resolution wide screen resolution auto screen resolution Increase font size Default font size Decrease font size default color brick color green color
Home Tutorial Design
Design PDF Print E-mail

In this phase we identify the possible states of the application. Analyzing the specifications, we can easily see that the states almost coincide with the different interfaces the application should show to the operator.

Now we enumerate these (main) states:

Start:the application main page; a login form is shown to the operator
NewOrder:the operator has been identified and he/she inserts information about the order with the intent to start the activaton process.
OrderLine:data related to the order have been inserted and the order has been sent (for instance via email or calling a remote webservice) and the operator is waiting for the answer of the “counter-part” (which is the company which provides the data communication line, that is the Carrier). The order can be: refused by the Carrier, accepted within 24 hours, accepted after 24 hours (which is equivalent to be refused). [da controllare]
StopLineActivation:the order has been refused by the Carrier.
PerformLineActivation:

the Carrier has notified that the order processing has been started. Now the operator waits for a notification by the Carrier (for instance via email, fax or telephone) and when s/he receives it s/he will perform one of the following tasks:

  • order cancellation (for instance the Carrier has encountered commercial or technical difficulties)
  • order suspension (the Carrier has encountered a temporary problem)
  • order completed within 15 days (the order has been properly completed)
  • order completed after 15 days (the order is classified as cancelled because of time limit exceeded)
SuspendLineActivation:the order processing started but it has been suspended by the carrier. The order processing can be:
  • cancelled by the Carrier
  • restarted within 15 days
  • restarted after 15 days (equivalent to a cancelled order)
LineActivationPerformed:order processing has been properly completed by the Carrier. Now the operator can:
  • cancel the order due to new reasons arised
  • notify that the line is active
  • notify that the line isn't active as aspected

Below you can see the graphic representation of automaton. Some automaton states haven’t been described above because they don’t deal with the activation line procedure directly: they deal with user interface interaction (for instance OrderPerformed is a state created to notify the operator that the order has been successfully completed).

Automaton

Automaton XML description (you can see the completed code in DeliveryWeb.xml)

   1 <?xml version="1.0" encoding="UTF-8"?>    2     3 <Automa xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     4     xsi:noNamespaceSchemaLocation="automa.xsd"    5     Id="Delivery">    6 <GlobalState>    7     <!-- this variable stores user's choices during    8         session (through GET) -->    9     <Variable Name="operator" Type="string" />   10     <!-- this variable stores user's choices during   11         session (through GET) -->   12     <Variable Name="lineChosen" Type="string" />   13 </GlobalState>   14 <Clocks>   15     <Variable Name="cStart" />   16     <Variable Name="cSend" />   17     <Variable Name="cProcessing" />   18 </Clocks>   19 <ActionPool>   20 <!--  ACTION  -->   21     <Action Id="startPage" Type="object">   22         <Input>   23             <Parameter Name="operator" />   24             <Parameter Name="lineChosen" />   25         </Input>   26         <System Path="../test/DeliveryWeb.lib.php"    27             Class="DeliveryWeb"   28             Name="startPage"/>   29     </Action>   30     ...   31     <!--  METRICHE  -->   32     <Action Id="startMetric" Type="object">   33         <Input>   34             <Parameter Name="operator" />   35             <Parameter Name="lineChosen" />   36         </Input>   37         <System Path="../test/DeliveryWeb.lib.php"    38             Class="DeliveryWeb"   39             Name="startMetric" />   40         <Enumeration Type="string">   41             <Const Value="CREATE"/>   42         </Enumeration>   43     </Action>   44     ...       45 </ActionPool>   46 <States>   47     <State Id="Start"    48         IdAction="startPage"    49         IdMetric="startMetric"    50         Interactive="true">   51     </State>   52     <State Id="NewOrder"    53         IdAction="newOrderPage"    54         IdMetric="newOrderMetric"    55         Interactive="true">   56     </State>   57     <State Id="OrderLine"    58         IdAction="orderLinePage"    59         IdMetric="orderLineMetric"    60         Interactive="true">   61     </State>   62     ...   63 </States>   64 <FinalStates>   65 </FinalStates>   66 <InitialState IdState="Start"/>   67 <Transitions>   68     <Transition IdInputState="Start"    69         IdOutputState="NewOrder"    70         MetricValue="CREATE">   71         <ClockReset ClockVar="cStart"/>   72     <Transition/>   73     <Transition IdInputState="NewOrder"    74         IdOutputState="OrderLine"    75         MetricValue="SEND">   76         <ClockReset ClockVar="cSend"/>    77     </Transition>   78     ...   79 </Transitions>   80 </Automa>

 

 
Comments (1)
1 Thursday, 12 March 2009 11:41
Administrator
There are no translations available.


commento...