Object Oriented Analysis &
Design
Engr. Abdul-Rahman Mahmood
MS, PMP, MCP, QMR(ISO9001:2000)
armahmood786@yahoo.com
alphapeeler.sf.net/pubkeys/pkey.htm
pk.linkedin.com/in/armahmood
www.twitter.com/alphapeeler
www.facebook.com/alphapeeler
abdulmahmood-sss
alphasecure
armahmood786@hotmail.com
alphasecure@gmail.com
http://alphapeeler.sourceforge.net
http://alphapeeler.tumblr.com
armahmood786@jabber.org
alphapeeler@aim.com
mahmood_cubix
48660186
alphapeeler@icloud.com
http://alphapeeler.sf.net/me
http://alphapeeler.sf.net/acms/
Teaching skills, Project Management
VC++, VB, ASP
Objectives
Discuss and understand activity diagrams
Understand the elements of activity diagrams
Activity
Transition
Synch. Bar
Decision Diamond
Start & Stop Markers
What is an activity diagram?
Example: Student Enrollment in IIT (SEIIT)
Activity diagram for a use case in SEIIT
Basic components in an activity diagram and their notations
Managing the large activity diagram: Swim Lane
Activity diagram vs. Flow chart
What is an Activity Diagram?
Represent the dynamic (behavioral) view of a system
Used for business (transaction) process modeling and
modeling the logic captured by a single use-case or usage
scenario
Used to represent flow across use cases or within a use case
UML activity diagrams are the object oriented equivalent of
flow chart and DFDs in function-oriented design approach
Describes how activities are coordinated.
Records the dependencies between activities, such as
which things can happen in parallel and what must be
finished before something else can start.
Represents the workflow of the process.
Activity diagram contains activities, transitions between
activities, decision points, synchronization bars, swim
lanes and many more.
Notation
2. Transition
Activity1()c
1. Activities
Activity2()
Notation - 2
[x>0]
[x>0]
Activity1()c
[x=0]
[x=0]
[x<0]
[x<0]
3. Decision Diamond
Notation - 3
4.1 Synch. Bar (Join)
4.2 Splitting Bar (Fork)
Notation - 3
Start Marker
Stop Marker
5. Start & Stop Markers
Notation - 4
Developers
Swimlane
Testers
Swimlane
Markers
Swimlane
Application/Department/Group/Role Boundaries
Example: Business Level Activity Diagram
of the Library
member
Librarian
[borrower]
Find book on shelf
[returning]
[returner]
Wait in queue
[borrowing]
Record return
Put book back of shelf
Record borrowing
Prepare for next
member
Activity Diagrams (1)
To model the dynamic aspects of a system
It is essentially a flowchart
Showing flow of control from activity to activity
Purpose
Model business workflows
Model operations
Activity Diagrams (2)
Activity diagrams commonly contain
Activity states and action states
Transitions
Objects
Action States and Activity States
Action states are atomic and cannot be
decomposed
Work of the action state is not interrupted
Activity states can be further decomposed
Their activity being represented by other activity
diagrams
They may be interrupted
Transitions (1)
When the action or activity of a state
completes, flow of control passes immediately
to the next action or activity state
A flow of control has to start and end
someplace
initial state -- a solid ball
stop state -- a solid ball inside a circle
Transitions (2)
Activity Diagram: Example (1)
Branching (1)
A branch specifies alternate paths taken
based on some Boolean expression
A branch may have one incoming
transition and two or more outgoing
ones
Branching (2)
Activity Diagram: Example (2)
Forking and Joining
Use a synchronization bar to specify the
forking and joining of parallel flows of
control
A synchronization bar is rendered as a
thick horizontal or vertical line
Fork
A fork may have one incoming transitions and
two or more outgoing transitions
each transition represents an independent flow of
control
conceptually, the activities of each of outgoing
transitions are concurrent
either truly concurrent (multiple nodes)
or sequential yet interleaved (one node)
Join
A join may have two or more incoming
transitions and one outgoing transition
above the join, the activities associated with each of
these paths continues in parallel
at the join, the concurrent flows synchronize
each waits until all incoming flows have reached the
join, at which point one flow of control continues on
below the join
Fork
Case Study
System
IIT
Enrollment
Student
<<include>>
Course registration
Student Enrollment in IIT (SEIIT)
Registrar
SEIIT System
Here different activities are:
Received enrollment form filled by the student
Registrar checks the form
Input data to the system
System authenticate the environment
Pay fees by the student
Registrar checks the amount to be remitted and prepare a bill
System acknowledge fee receipts and print receipt
Hostel allotment
Allot hostel
Receive hostel charge
Allot room
Medical check up
Create hostel record
Conduct medical bill
Enter record
Issue library card
Issue identity card
Activity Diagram for the Use Case in
SEIIT
Received form
Payment fees
Issue identity
card
Hostel
allotment
Medical check
Issue library
card
Basic Components in an Activity Diagram
Initial node
The filled circle is the starting point
of the diagram
Received form
Final node
The filled circle with a boarder is the
ending point. An activity diagram can
have zero or more activity final state.
Payment fees
Activity
The rounded circle represents
activities that occur. An activity is not
necessarily a program, it may be a
Issue identity
card
manual thing also
Flow/ edge
The arrows in the diagram. No label is
necessary
Hostel
allotment
Medical check
Issue library
card
Basic Components in an Activity Diagram
Fork
Received form
A black bar ( horizontal/vertical ) with
one flow going into it and several
leaving it. This denotes the beginning
of parallel activities
Join
A block bar with several flows
entering it and one leaving it. this
denotes the end of parallel activities
Merge
A diamond with several flows
entering and one leaving. The
implication is that all incoming flow
to reach this point until processing
continues
Payment fees
Issue identity
card
Hostel
allotment
Medical check
Issue library
card
Basic Components in an Activity Diagram
Difference between Join and Merge
A join is different from a merge in that the join synchronizes two inflows
and produces a single outflow. The outflow from a join cannot execute
until all inflows have been received
A merge passes any control flows straight through it. If two or more
inflows are received by a merge symbol, the action pointed to by its
outflow is executed two or more times
Basic Components in an Activity Diagram
Decision
A diamond with one flow entering
and several leaving. The flow
leaving includes conditions as
yes/ no state
Flow final
The circle with X though it. This
indicates that Process stop at this
point
Swim lane
A partition in activity diagram by
means of dashed line, called swim
lane. This swim lane may be
horizontal or vertical
Received form
Payment fees
Issue identity
card
Hostel
allotment
Medical check
Issue library
card
Detailed Activity Diagram of SEIIT
1
Received form
Payment fees
Hostel
allotment
Medical check
2
Issue identity
card
Issue library
card
Detailed Activity Diagram of SEIIT
Fill-in
form
Check
form
[Incorrect]
Regret message
[Correct]
Display student
screen
Input student
information
[No]
Verify the
applications
[Yes]
Create record
Search for Student
selection list
[Match]
[No Match]
Regret
registration
Detailed Activity Diagram of SEIIT
1
Display
enrollment form
Calculate
registration fees
Dispaly fees
payable screen
Process
payment
Pay fee
Print receipt
Student
Activity Diagram of SEIIT with Swim Lane
Fill-in
form
Registrar
[Incorrect]
Check
form
Verify the
applications
[Yes]
[No]
Regret message
[Correct]
Display student
screen
System
Create record
Input student
information
[Match]
Search for Student
selection list
[No Match]
Regret
registration
Swimlanes
A swimlane specifies a locus of activities
To partition the activity states on an activity
diagram into groups
each group representing the business organization
responsible for those activities
each group is called a swimlane
Each swimlane is divided from its neighbor by
a vertical solid line
Swimlanes
Each swimlane has a name unique within its
diagram
Each swimlane may represent some real-world
entity
Each swimlane may be implemented by one or
more classes
Every activity belongs to exactly one swimlane,
but transitions may cross lanes
Activity Diagram: Example (3)
Some more features in
Activity Diagrams
Object and Object Flow
An object flow is a path along which objects can pass. An
object is shown as a rectangle
An object flow is shown as a connector with an arrowhead
denoting the direction the object is being passed.
Input and Output Pin
An object flow must have an object on at least one of its ends.
A shorthand notation for the above diagram would be to use
input and output pins
Data Store
A data store is shown as an object with the datastore
keyword
Expansion Region
An expansion region is a structured activity region that executes multiple
times. Input and output expansion nodes are drawn as a group of three
boxes representing a multiple selection of items. The keyword iterative,
parallel or stream is shown in the top left corner of the region
Exception Handling
Exception Handlers can be modeled on activity diagrams as in
the example below
Interruptible Activity Region
An interruptible activity region surrounds a group of actions that can be
interrupted. In the very simple example below, the Process Order action will
execute until completion, when it will pass control to the Close Order
action, unless a Cancel Request interrupt is received which will pass control
to the Cancel Order action
Class Activity Draw diagrams
Document Management Process: Document is created,
reviewed, updated, approved, and at some point archived.
This activity diagram example shows responsibilities of
different roles and a flow of document changes. Partitions
represent different roles participating in the activity Author, Reviewer, Approver, and Owner.
Ticket Vending Machine: Activity is started by
Commuter actor who needs to buy a ticket. Ticket vending
machine will request trip information from Commuter.
Based on the info machine will calculate payment due and
request payment options. After payment is complete, ticket
is dispensed to the Commuter.
Online Shopping: Online customer can browse or search
items, view specific item, add it to shopping cart, view and
update shopping cart, do checkout. User can view shopping
cart at any time.