Week #8

advertisement
Systems Analysis II
Extending the requirements models
INFO 355
Glenn Booker
INFO 355
Week #8
1
Requirements?

This is to refine our initial
development of system
requirements


INFO 355
New uses for the activity diagram
State diagram
Week #8
2
Use Case descriptions


Recall that we defined ‘casual’ and
‘detailed’ use case documentation
The text has ‘brief’ and ‘fully
developed’ use case descriptions



INFO 355
Example of the latter on p. 123
Text’s ‘flow of activities’ is the main
success scenario
‘Exception conditions’ are alternate
scenarios or extensions
Week #8
3
Use Case descriptions

The text also adds





INFO 355
Related use cases
Stakeholders
Preconditions
Postconditions
Recall that Aleister Cockburn has
many more characteristics that can
be added to use case
documentation
Week #8
4
Activity diagrams for use cases


INFO 355
We saw the activity diagram in
week 1
It can also be used to document use
cases, where the swimlanes (or
partitions) are the primary actor
and the System (and possibly lanes
for external systems)
Week #8
5
System Sequence Diagram



INFO 355
As noted earlier in the course, we
aren’t using the SSD
It is a high level sequence diagram
which shows no details inside the
:System object
The Loop, Alt, and Opt boxes are
called ‘frames’ in the text
Week #8
6
State Machine Diagram

The “state diagram” is also
known as




INFO 355
Statechart diagram (Visio)
State Machine diagram
State Transition diagram
These all refer to the same thing
Week #7
7
State Diagrams


INFO 355
A state diagram is used to capture
the details of a use case which
involves some sort of processing
where the system can change state
A state refers to a mode of
operation or setting which will affect
how the system responds to inputs
Week #7
8
State Diagrams

State diagrams are good for
describing a single object’s behavior
throughout several use cases


INFO 355
If you have several objects interacting,
an interaction diagram is better
Real-time systems use state
diagrams extensively
Week #7
9
Examples of State-based Systems

A telephone operates in two main
states, “on hook” and “off hook”


INFO 355
Within the latter, there are many
possible states, such as making a
local call, making a long distance
call, making an international call,
making a 3-way call, etc.
The commands entered (via dialing)
control which state the phone is in
Week #7
10
Examples of State-based Systems

A cruise control has basic states
of on or off


INFO 355
While on, it could be in states of
maintaining speed, accelerating,
resuming previous speed, etc.
Various buttons control changes
between states
Week #7
11
Examples of State-based Systems

Even Microsoft Word is somewhat
state-based


If I type a letter, normally it would
appear where the cursor is on a
document
But if I press the Alt key first, for
example, the interpretation of the
next keystroke is quite different
Alt-f display the File menu
 The Esc key sends it back to normal state

INFO 355
Week #7
12
State Diagrams

So we want to use a state diagram
if the interpretation of user actions
depends on the history of previous
actions


INFO 355
Often a state corresponds to the status
or condition of an object
Events occur which can change the
state of an object through a
transition
Week #7
13
State Diagrams

The state diagram only has four main
elements





INFO 355
The starting point, shown by a big dot
The ending point, a big dot inside
a circle
States, shown by boxes
Transitions between states, shown by lines
with arrows between the boxes
A transition goes from an “origin state”
to a “destination state”
Week #7
14
Figure 10.1 The Safe Example
A state
Open
Starting point
safe closed
key turned [candle in] / open safe
candle removed [door closed] / reveal lock
Wait
Lock
key turned [candle out] / release killer rabbit
A transition
Elements for state diagrams appear on
the Activity Diagram shape menu in Visio
INFO 355
Week #7
Ending point
15
The Safe Example

The labels on each line indicate
an Event (trigger name), and if that
occurs, the Action (actionexpression) and state change occur



Event [Guard] / Action is the syntax
The Event is optional for each transition
(the state change might happen
automatically, which is rare)
The Guard and Action are also optional
EventName [Guard] / ActionName
INFO 355
Week #7
16
The Safe Example


INFO 355
The syntax
Event [Guard] / Action
is Visio’s terminology
The text uses
trigger-name[guard-condition] /
action-expression
for the same thing
Week #7
17
Visio sample transition
State1
CallEvent1 [my guard condition] / CreateAction1,DestroyAction1
State2
INFO 355
Week #8
18
The Safe Example

If no Action is specified, then just
the state change occurs when that
Event takes place (as is the case for
“safe closed” between Open and
Wait states)

INFO 355
“When the safe is closed (the Event),
change to the Wait state”
Week #7
19
The Safe Example


INFO 355
An Event can have conditional
statements, called a Guard, such
as the [door closed] condition
So the transition from Wait to Lock
means: “If the door is closed, and
someone removes the candle, then
reveal the lock and change to the
Lock state”
Week #7
20
The Safe Example

If using a Guard condition, it
generally makes sense to have
mutually exclusive possible
conditions



INFO 355
[candle in]
[candle out]
If there is no Guard condition,
any given Event must have only
one possible path out of a state
Week #7
21
The Safe Example


INFO 355
From the Lock state, “If the candle
is in, and the key is turned, open
the safe and change to the Open
state”
The alternative transition is “If the
candle is out, and the key is turned,
exit and release the killer rabbit”
Week #7
22
Internal Activities



INFO 355
Sometimes events can happen in a
state which results in some action,
but not a change of state
These are internal activities
(internal transitions in Visio)
The same Event / Action syntax is
used, but these don’t have a change
of state associated with them
Week #7
23
Internal Activities


The meaning is the same – when
Event occurs, do Action
Events of ‘entry’ or ‘exit’ occur
automatically when entering or
exiting that state, but do not occur
when other internal activities are
triggered; e.g. for a text field:


INFO 355
Entry / highlight all
Exit / update field
Week #7
24
Activity States


It’s possible to have ongoing
activity while in a state
This is shown by the activity state

There’s an Action State in Visio, but no
way to show the activity except by
using the Text Tool on the state name
Searching
Do / search for new HW
INFO 355
Week #7
25
Activity States

The activity which takes place
during this state is preceded
by “do/”


INFO 355
It’s assumed that the activity takes
a noticeable amount of time
When the activity is successful
or completed, then any transition
which doesn’t have an Event
is followed
Week #7
26
Concurrent States

Some devices can have more than
one state at a time, e.g. a printer
can be On and Waiting


INFO 355
This is concurrency
Can show it as an activity diagram
with separate paths for multiple
states, or use a composite state
Week #8
27
Concurrent States

Sometimes sets of states can be
changing independently of each
other, at the same time



INFO 355
These are concurrent states
Separate concurrent states with a
solid line (p. 137)
Concurrent states have no
interaction with each other
Week #7
28
Composite States


INFO 355
Show composite states by nesting
states
For example, a printer that is On
might change from Idle to Working
(p. 136)
Week #8
29
History Pseudostate


H
H*
INFO 355
We had pseudostates for the start
and finish of a state diagram
Now add a History pseudostate


A simple history pseudostate records
the last value of some state
A deep history pseudostate records
many entries of history for a state
Week #7
30
Developing state diagrams




INFO 355
Identify use cases that have
multiple status conditions
For each class affected, list the
status conditions
Identify what transitions occur
between states
Connect transitions into larger scale
structures as possible
Week #8
31
Developing state diagrams




INFO 355
Look for independent concurrent
paths and composite paths
Look for additional transitions
Define event, guard, action for each
transition
Review and test the diagram
Week #8
32
Integrate diagrams


The state diagram can help refine
requirements for complex use cases
We now have many tools to
understand our system from
different points of view



INFO 355
Use case diagram and documentation
Activity and state diagrams
Domain model (conceptual class
diagram)
Week #8
33
Download