Dynamic analysis modeling

advertisement
Analysis Modeling
Dynamic Modeling
Requirements analysis
• Results in static and dynamic models
– Scenario models: use cases (static), swimlane
diagrams (dynamic)
– Class diagrams (static)
– Flow oriented diagrams (dynamic)
– Behavioral models: sequence diagrams (dynamic),
state diagrams (dynamic)
• These models bridge the gap between
requirements and implementation (code)
Activity/Swimlane diagrams
• Help us visualize the
flows associated with
use cases
• A swimlane diagram has
multiple actors; an
activity diagram is the
same thing, but no
concrete actors are
distinguished
Other syntax
• Concurrency can be modeled by
fork/join
• We can include one
diagram inside of
another
Fork/Branc
h
– Enables reuse
Join
Swimlane diagrams
• Start circle
• Ends in bulls-eye
• Decisions are
diamonds (must
always have a
guard on all
branches)
Sequence diagrams
• Used to model interactions between
classes/objects
• Emphasis on time ordering
• Message passing
between objects
Sequence Diagram Example
• messages are methods of the classes
Synchronous message
Asynchronous message
Return message
Messages in sequence diagrams
• Messages, along horizontal lines, correspond
to operations in your class diagram; i.e. they
are method calls
• Three main types
– Synchronous: expects return
– Asynchronous: does not expect return
– Return argument: dashed line
Synchronous message
Asynchronous message
Return message
Sequence Diagram: option
Sequence diagram: Alternate/else
Sequence diagram: loop
State diagrams
• Once sequence diagrams have been
constructed for each use case, a state diagram
can be built for
the system
• Can model the:
t imer < lockedTime
t imer > lockedTime
locked
password = incorrect
& numberOfTries < maxTries
– State of each class
– State of the system
as viewed from
the outside
comparing
reading
numberOfTries > maxTries
key hit
password
ent ered
do: validat ePassw ord
password = correct
select ing
act iv at ion successf ul
State diagram syntax
State Name (verb in
current tense)
(Optional) actions
happening during
state
Name Examples:
sorting
validating
updating status
…
[age <= 20]
[age > 20]
Guards: Use to
describe event that
causes a state
transition happens
(ALL transitions
should have guards)
[age <= 20]/setFlag(false)
Action: If something
happens while
transitioning to
another state.
(Optional)
13
Quiz Review
• What does a swimlane diagram visually
model?
• What does a sequence diagram model?
• What goes on the arrows in a sequence
diagram? What are the three different types
of arrows?
• What goes in a state for a state diagram?
• What can go on an arrow for a state diagram?
In-class exercises
• Let’s do a swimlane diagram for making a withdrawal at an
ATM
– the system should or should not be an actor?
– see the use case we did earlier
• Let’s do a sequence diagram for making a withdrawal at an
ATM
• What are some states for an ATM?
– For the class CheckingAccount?
– For the machine itself as viewed by a customer?
– What are the triggers and transitions between theses states?
• Complete the exercise here:
http://www.cs.gmu.edu/~kdobolyi/cs321/hwk04.html
• Due next class
Team Exercise
• Examine the Quiz Game description/use cases
• In your teams, come up with at least:
– One swimlane diagram
– One sequence diagram
– One state diagram for a class
– One state diagram for the system
• Turn in this assignment through svn
Download