16
Analysis Modeling Dynamic Modeling

Analysis Modeling Dynamic Modeling. Requirements analysis Results in static and dynamic models – Scenario models: use cases (static), swimlane diagrams

Embed Size (px)

Citation preview

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/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

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

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

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