Modelling with Activity Diagram
Transcription
Modelling with Activity Diagram
Module 4 : Modeling with Activity Diagram NOTES ON ACTIVITY DIAGRAM Overview Activity diagram is another important diagram in UML to describe dynamic aspects of the system. Activity diagram is basically a flow chart to represent the flow form one activity to another activity. The activity can be described as an operation of the system. The purposes of activity diagram can be described as: • Draw the activity flow of a system. • Describe the sequence from one activity to another. • Describe the parallel, branched and concurrent flow of the system. Following are the main usages of activity diagram: • Modeling work flow by using activities. • Modeling business requirements. • High level understanding of the system's functionalities. • Investigate business requirements at a later stage. How to Draw Activity Diagram? The main element of an activity diagram is the activity itself. An activity is a function performed by the system. After identifying the activities we need to understand how they are associated with constraints and conditions. So before drawing an activity diagram we should identify the following elements: Activities Association Conditions Constraints The activities are represented using the following notations: i) Initial node. The filled in circle is the starting point of the diagram. An initial node isn’t required although it does make it significantly easier to read the diagram. ii) Activity final node. The filled circle with a border is the ending point. An activity diagram can have zero or more activity final nodes. iii) Activity/Action. The rounded rectangles represent activities that occur. An activity may be physical, such as Receive Request. iv) Flow/edge. The arrows on the diagram. v) Fork. A black bar with one flow going into it and several leaving it. This denotes the beginning of parallel activity. vi) Join. A black bar with several flows entering it and one leaving it. All flows going into the join must reach it before processing may continue. This denotes the end of parallel processing. vii) Condition. Text such as [Correct] on a flow, defining a guard which must evaluate to true in order to traverse the node. viii) Decision. A diamond with one flow entering and several leaving. The flows leaving include conditions although some modelers will not indicate the conditions if it is obvious. ix) Merge. A diamond with several flows entering and one leaving. The implication is that one or more incoming flows must reach this point until processing continues, based on any guards on the outgoing flow. x) Partition. Activity is organized into a few partitions, also called swimlanes, indicating who/what is performing the activities. xii) Flow final. The circle with the X through it. This indicates that the process stops at this point. Ψ xi) Sub-activity indicator. The rake in the bottom corner of an activity, indicates that the activity is described by a more finely detailed activity diagram. Example of Complete Activity Diagram “Course Registration Activity Diagram” PARTITION INITIAL NODE FORK ACTIVITY CONDITIONS JOIN END NODE ACTIVITY DIAGRAM TASKS 1) The following are the activities in the Order Management System. Customer sends an order request and the system will produce receipt of the order. After receiving the order request, condition checks are performed to check if it is normal or special order. After the type of order is identified, the order is dispatched to the customer. Create an activity diagram for the system. 2) Online Bookstore is a service provided to registered customers of the Melati Bookstore where customers can obtain books online. Customer can access the system through the web login. The system will validate the username. The login request will be rejected is the validation fail. Once the username is validated, customers can view the book store, select book for purchase, and add them to the shopping cart. Customers can view their shopping cart and then continue to view the book store, or place the order. Only credit card payment is accepted. Customers have to provide credit card details to the system, and credit card check will be performed. If the credit card check is fail, the error message is shown and order will be closed. In contrast, if the credit card check is successful, customers will be asked to confirm the purchase. The items will be delivered to the customers. 3) Using UML tools, create an activity diagram for tour booking system. The travel agency obtains travel data from the customers. The credit card check is done first before booking process. If the credit validation is failed, the travel agency will obtain the credit card error and inform the customer. For validated card, the next processes are the flight reservation, hotel reservation and car reservation. If all reservations are successful, the travel agency will generate confirmation number. The process ends when the status of all reservation, whether successful or failed is informed to the customer. 4) Create an activity diagram for the process of enrolling in the university. First, candidates have to fill out enrollment forms. In case the forms are incorrect, candidates have to obtain help to fill out the forms. If the form is correctly filled, candidates can apply for enrollment in the university. Only accepted candidates have to attend university overview presentation and enroll a few seminars. Initial tuition payment has to be made after attending the seminars. The university enrolment process ends when these processes are completed by candidates. For none-accepted candidates, enrollment process ended as soon as application is rejected. 5) The followings are the process of buying ticket from ticket vending machine. The process started when the Commuter (customer) touch the screen. Ticket vending machine will request trip information from commuters. This information will include number and type of tickets, e.g. whether it is a monthly pass, one way or round ticket, route number, destination or zone number, etc. Based on the provided trip info ticket vending machine will calculate payment due and request payment options. Those options include payment by cash, or by credit or debit card. If payment by card was selected by commuter, Bank will participate in the activity by authorizing the payment. After payment is complete, ticket will be dispensed to the Commuter. Cash payment might result in some change due, so the change is dispensed to the Commuter in this case. Ticket vending machine will show some "Thank You" screen at the end of the activity. Draw an activity diagram with swimlanes for this process. UML Manual for Sequence Diagram The following elements are available in a activity diagram. ActionState SubactivityState InitialState FinalState Synchronization Decision Flow Final Object Flow Signal Accept State Signal Send State Transition SelfTransition Swimlane ActionState Semantics An action state represents the execution of an atomic action, typically the invocation of an operation. An action state is a simple state with an entry action whose only exit transition is triggered by the implicit event of completing the execution of the entry action. The state therefore corresponds to the execution of the entry action itself and the outgoing transition is activated as soon as the action has completed its execution. Procedure for creating action state In order to create ActionState, 1. Click [Toolbox] -> [Activity] -> [ActionState] button. 2. And click at the position where ActionState will be placed in the [main window]. 3. A action state is created on the diagram and the quick dialog is shown. 4. Enter the action state name at the quick dialog and press [Enter] key. The result is as follows. SubactivityState Semantics A subactivity state represents the execution of a non-atomic sequence of steps that has some duration; that is, internally it consists of a set of actions and possibly waiting for events. That is, a subactivity state is a “hierarchical action,” where an associated subactivity graph is executed. Procedure for creating subactivity state In order to create SubactivityState, 1. Click [Toolbox] -> [Activity] -> [SubactivityState] button. 2. And click at the position where SubactivityState will be placed in the [main window]. A subactivity state is created and the quick dialog is shown. At the quick dialog, enter the subactivity state name and press [Enter] key. The result is as follows. InitialState Procedure for creating initial state In order to create InitialState, 1. Click [Toolbox] -> [Activity] -> [InitialState] button. 2. And click at the position where InitialState will be placed in the [main window]. Then a initial state is created. FinalState Procedure for creating final state In order to create FinalState, 1. Click [Toolbox] -> [Activity] -> [FinalState] button. 2. And click at the position where FinalState will be placed in the [main window]. Decision Semantics A state diagram (and by derivation an activity diagram) expresses a decision when guard conditions are used to indicate different possible transitions that depend on Boolean conditions of the owning object. Procedure for creating decision In order to create Decision, 1. Click [Toolbox] -> [Activity] -> [Decision] button. 2. And click at the position where Decision will be placed in the [main window]. The decision is created on the diagram. Procedure for creating decision from state In order to create decision with incoming transition from selected object, use shortcut creation syntax. 1. Double-click state. At the quick dialog, enter "-><>"("<-<>" for incoming from decision) string. 2. Press [Enter] key and decision with outgoing transition from selected state is created. Flow Final Procedure for creating flow final In order to create Flow Final, 1. Click [Toolbox] -> [Activity] -> [Flow Final] button. 2. And click at the position where Flow Final will be placed in the [main window]. Object Flow Semantics An object flow is one of two types of activity edges, which are directed connection (flows) between activity nodes, the other being a control flow. As soon as the activity node at the source (tail) end of the flow is finished it presents tokens to the object flow at the target (arrowhead) end of the flow. An object flow can only carry object (data) tokens; it cannot carry control tokens. There are rules that specify whether tokens can flow along the object flow and these are determined by the type of activity node at the source and target of the flow. In the case of complete activities an object flow may define a weight, which specifies the minimum number of tokens that must flow along the object flow as a group. Procedure for creating object flow In order to create Object Flow, 1. Click [Toolbox] -> [Activity] -> [Object Flow] button. 2. And click at the position where Object Flow will be placed in the [main window]. Then the quick dialog of object flow state is shown as follows. 3. At the quick dialog, enter the object flow state name and press [Enter] key. Synchronization Procedure for creating synchronization bar In order to create Synchronization, 1. Click [Toolbox] -> [Activity] -> [Synchronization] button. 2. And click at the position where Synchronization will be placed in the [main window] and drag as size as you want. 3. The following figure shows the result of this procedure. Signal Accept State Semantics The signal accept may be shown as a concave pentagon that looks like a rectangle with a triangular notch in its side (either side). The signature of the signal is shown inside the symbol. An unlabeled transition arrow is drawn from the previous action state to the pentagon and another unlabeled transition arrow is drawn from the pentagon to the next action state. A dashed arrow may be drawn from an object symbol to the notch on the pentagon to show the sender of the signal; this is optional. Procedure for creating signal accept state In order to create Signal Accept State, 1. Click [Toolbox] -> [Activity] -> [Signal Accept State] button. 2. And click at the position where Signal Accept State will be placed in the [main window]. 3. At the quick dialog, enter signal accept state name and press [Enter] key. Signal Send State The sending of a signal may be shown as a convex pentagon that looks like a rectangle with a triangular point on one side (either side). The signature of the signal is shown inside the symbol. An unlabeled transition arrow is drawn from the previous action state to the pentagon and another unlabeled transition arrow is drawn from the pentagon to the next action state. A dashed arrow may be drawn from the point on the pentagon to an object symbol to show the receiver of the signal, this is optional. Procedure for creating signal send state In order to create Signal Send State, 1. Click [Toolbox] -> [Activity] -> [Signal Send State] button. 2. And click at the position where Signal Send State will be placed in the [main window]. A signal send state is created and the quick dialog is shown. Enter signal send state name and press [Enter] key. Transition Procedure for creating transition In order to create Transition, 1. Click [Toolbox] -> [Activity] -> [Transition] button. 2. Drag and drop between states in transition direction in the [main window]. 3. Then the transition is created. SelfTransition Procedure for creating self-transition In order to create self-transition, 1. Click [Toolbox] -> [Activity] -> [SelfTransition] button. 2. Click state to have self-transition in the [main window]. Then a self-transition is created. Swimlane Semantics Actions and subactivities may be organized into swimlanes. Swimlanes are used to organize responsibility for actions and subactivities. They often correspond to organizational units in a business model. Procedure for creating horizontal swimlane In order to create Horizontal Swimlane, 1. Click [Toolbox] -> [Activity] -> [Horizontal Swimlane] button. 2. And drag the boundary where Horizontal Swimlane will be placed in the [main window]. 3. Then a horizontal swimlane is created on the diagram. And enter the swimlane name at the quick dialog and press [Enter] key. Procedure for creating vertical swimlane In order to create Vertical Swimlane, 1. Click [Toolbox] -> [Activity] -> [Vertical Swimlane] button. 2. And drag the boundary where Vertical Swimlane will be placed in the [main window]. 3. A swimlane is created and quick dialog is shown. At the quick dialog, enter the swimlane name and press [Enter] to have done this procedure.