180 likes | 392 Views
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)
E N D
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 Fork/Branch • Concurrency can be modeled by fork/join • We can include one diagram inside of another • Enables reuse Join
Swimlane diagrams • Start circle • Ends in bulls-eye • Decisions are diamonds (must always have a guard on all branches)
In-class exercise • Let’s do a swimlane diagram for the canonical use case U1 for the Quiz Game
Sequence diagrams • Used to model interactions between classes/objects • Emphasis on time ordering • Message passing between objects
Sequence Diagram Example • Take notes as I describe the parts in class! 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
Bad Example! • What are the problems here?
In-class exercise • Let’s do a sequence diagram for the canonical use case U1 for the Quiz Game
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 State Name (verb in current tense) (Optional) actions happening during state [age <= 20] [age > 20] [age <= 20]/setFlag(false) Guards: Use to describe event that causes a state transition happens (ALL transitions should have guards) Name Examples: sorting validating updating status … Action: If something happens while transitioning to another state. (Optional)
Example • 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?
TeamExercise • 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 XP-Dev