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