Upload
timothy-turner
View
234
Download
3
Embed Size (px)
Citation preview
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
– Enables reuse
Fork/Branch
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 messageAsynchronous messageReturn 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 messageAsynchronous messageReturn message
State diagrams
• Once sequence diagrams have been constructed for each use case, a state diagram can be built for
the system• Can model the:
– State of each class– State of the system as viewed from the outside
reading
locked
selecting
password entered
comparing
password = incorrect & numberOfTries < maxTries
password = correct
activation successful
key hit
do: validatePassword
numberOfTries > maxTries
timer < lockedTime
timer > lockedTime
State diagram syntax
13
State Name (verb in current tense)
(Optional) actions happening during state
Name Examples:sortingvalidatingupdating 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)
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