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.