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 – Enables reuse Fork/Branc h 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: – State of each class – State of the system as viewed from the outside
State diagram syntax 13 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)
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: 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