Title: Systems Analysis II Activity Diagrams
1Systems Analysis IIActivity Diagrams
2Activity Diagrams
- Activity Diagrams are a type of flowchart used to
describe a business process or workflow - They support parallel tasks, which a pure
flowchart cant handle - They are derived from state diagram notation, so
dont be surprised by the similarities
3Scope of Activity Diagrams
- An activity diagram might show the logic for a
complex use case (and all its extensions), or
show the interaction among several use cases
(such as when included use cases apply) - An activity diagram can show the logical
decisions of a process that the use case diagram
cant show
4Activity Diagram Notation
- Activity diagram notation includes
- The processes to be performed, which appear as
boxes with rounded corners - The processes are connected by lines with arrows,
to show the direction of process flow - Arrows are always directional in an activity
diagram - Use the Guard field for conditions
- Decisions are shown by diamonds
5Activity Diagram Simple Example
6Decisions
- Notice that the diamond symbol is used to show a
split in the process flow due to a decision - And the same symbol is used to show when the
process flows merge afterwards
7Concurrent Flow
- Notice the implied assumption of time going
forward down the page - Concurrent, or parallel flows can be shown by
using a fork symbol when the flows split, and a
join symbol when they reconnect
8Uses for Concurrent Flow
- Several parallel activities might take place
after a single decision - For example, approval of a release might initiate
parallel activities to - Prepare a release description
- Start packaging the release
- Notify customer of impending release
- Lock the contents of the release
9Concurrency Example
Shows four concurrent activity threads to prepare
for a new baseline release this might all be
part of a process called Prepare Release
10Partitions
- Notice that activities are often performed by
different organizations within your project - You could add the organization to the activity
name, e.g. Program Control Notifies Customer - Or use the approach on the next slide
- Here is another variation on the swimlane
approach (each organization has its own lane)
11Partition Example
12Adding Details - Decomposing
- Each step in an activity diagram could correspond
to (or be decomposed into) a process or procedure
which is documented elsewhere - For example, Prepare Release Description could
follow a procedure to explain it in more detail
13Adding Details - Decomposing
- For that matter, the whole development process
could be described in a single step, then broken
down to any desired level of detail
14Adding Details - Decomposing
Which in turn becomes
Notice similarity to the project schedule (WBS)
15Adding Details - Decomposing
- Many CASE tools, such as the Rational suite, can
directly support such a process decomposition
16Timing and Signals
- So far the sense of time has been pretty vague
- Time goes forward down the page
- Forks and joins indicate when concurrent
processes collectively begin and end - Decisions and merges reflect the start and end of
conditional process paths - To be more precise, use signals
17Signals
- A Time Signal can be used to indicate when a
process waits for a specific timed event before
it begins - E.g. end of month to start generating a report
- The Time Signal is like an hourglass, labeled to
show what event for which it waits - (I made this one manually)
18Signals
- Send Signals are triggered by some process to
start a timer - Receive Signals accept a signal as input, and
usually sound like an event more than a process - Taxi arrives, Itinerary confirmed, etc.
19Signals
- A signal can be split by a fork symbol
- Fig 11.6, p. 123
- (Send and receivelabels overwrittenmanually)
20Tokens
- To help follow a process, it sometimes helps to
imagine physical tokens being passed along the
paths - A fork creates two or more tokens to follow each
path separately - A join waits for all tokens to arrive before
proceeding
21Other Activity Diagram Tricks
- There are lots of other things which can be shown
on an activity diagram, most of which are very
implementation-focused - Hence, well ignore them here
- The last well consider is the join specification
22Join Specification
- A join specification is an explanation of the
conditions needed for continuing - Normally, simply having collected all tokens is
enough - A join specification is a Boolean expression in
curly brackets - joinSpec value of inserted coins gt price of
selected drink