58
OOAD 1 Modeling Behavior Interaction Diagrams Activity Diagram State Machine Diagram

OOAD1 Modeling Behavior Interaction Diagrams Activity Diagram State Machine Diagram

  • View
    227

  • Download
    2

Embed Size (px)

Citation preview

OOAD 1

Modeling Behavior

Interaction Diagrams

Activity Diagram

State Machine Diagram

© 2008 by Prentice Hall 2Chapter 8 Appendix

Learning Objectives

Understand how to represent system logic with interaction diagrams.

Understand how to represent system logic with activity diagram.

Understand how to represent system logic with state machine diagram.

OOAD 3

UML Dynamic Modeling

• In all systems, events happen dynamically, e.g.:– Objects are created and destroyed– Objects send messages to one another– External events trigger operations on certain

objects

• Objects have states that would be difficult to capture in a static model

OOAD 4

UML Dynamic Modeling (cont.)

• Behavior diagrams (dynamic):– Interaction diagrams

• Sequence diagrams

• Collaboration diagrams

– Statechart diagrams– Activity diagrams

OOAD 5

Sequence Diagrams: An example

OOAD 6

Collaboration diagram: An Example

OOAD 7

When to use Interaction Diagrams?

• Interaction diagrams are used when you want to model the behavior of several objects in a use case.  They demonstrate how the objects collaborate for the behavior. 

• Interaction diagrams do not give a in depth representation of the behavior.  If you want to see what a specific object is doing for several use cases use a state diagram.  To see a particular behavior over many use cases or threads use an activity diagrams.

Messages are passed between objects, and may contain parameters (e.g., message name (parameter list))

OOAD 9

Sequence Diagrams

• Describing the behavior of a system by viewing the interaction between the system and its environment

• Shows the objects participating in the interaction by their life lines and the messages they exchange

• Shows an interaction arranged in a time sequence

OOAD 10

Elements of a sequence diagram

• Objects: represented by boxes at top of diagram.

• Lifeline: the time during which an object exists.

• Messages: means by which objects communicate with each other.

• Activation: the time period during which an object performs an operation.

Client ATMMachine SavingAccount

Insert ATM card

Request PIN

Enter PIN code

Verify PIN code

PIN valid

Request amount

Enter amount

Process transaction

Transaction successful

Dispense cash

Print receipt

Objects/Classes

lifeline

activation

OOAD 12

Collaboration Diagrams

• Also known as Communication diagrams• Represents a collaboration, which is a set of objects

related in a particular context, and interaction, which is a set of messages exchanged among the objects within the collaboration to achieve a desired outcome

• sequences of messages are shown by numbering

:Client

:ATMMachine

:SavingAccount

1: insert ATM card3: enter PIN code7: enter amount

2: request PIN6: request amount10: dispense cash11: print receipt

4: verify PIN code8: process transaction

5: valid PIN code9: transaction successful

OOAD 14

Sequence Vs Collaboration Sequence Diagram:

– Dynamic behavior of a set of objects arranged in time sequence, new objects added to the right

– Good for real-time specifications and complex scenarios– easier to read

Collaboration Diagram : – Shows the relationship among objects. – Does not show time– Objects are arranged in a graph or network format

• Both are used to examine the behavior of objects within a single use case

9-15

How to draw sequence diagram?

Drawing Sequence Diagrams

Determine the context of the sequence diagram

Identify the object that are participate in the sequence

Set of the lifeline for each object Lay out of messages from the top to the

bottom of the diagram based on the order in which they sent

Add the execution occurrence to each object’s lifeline

Validate the sequence diagram

OOAD 17

Identifying Classes/Objects

• Noun phrase approach – read through the requirements or use cases looking for noun phrases

• Some classes are implicit or taken from general knowledge

• Carefully choose and define class names

OOAD 18

Use Case: Withdraw saving

A customer wants to draw money from his bank account. He enters his card into an ATM (automated teller machine). The ATM machine prompts “ Enter PIN”. The customer enters his PIN. The ATM (internally) retrieves the bank account number from the card. The ATM encrypts the PIN and the account number and sends it over to the bank. The bank verifies the encrypted account and PIN number. If the PIN number is correct, the ATM displays, “Enter Amount”. Draws money from the bank account and pays out the amount.

OOAD 19

Use Case: Withdraw saving

Use Case: Withdraw SavingActors: Bank Client

Flow of Events:1. Bank client insert ATM card into ATM machine2. ATM machine request PIN code3. Bank client enter PIN code4. Verify PIN code entered with saving account5. ATM machine request amount if the PIN is valid6. Bank client enter the required amount7. Process the transaction in the client account8. ATM machine dispense cash9. ATM machine print receipt when the transaction completed

Alternative Flow of Events• Invalid PIN code entered. Indicate error message. Return step 3.

OOAD 20

Identifying Classes – noun phrase approach (example)

• ATM System– Bank Client – ATM Card– ATM Machine– Savings Account– Cash– Message

Client ATMMachine SavingAccount

Insert ATM card

Request PIN

Enter PIN code

Verify PIN code

PIN valid

Request amount

Enter amount

Process transaction

Transaction successful

Dispense cash

Print receipt

OOAD 22

Another example …

Use case: ATM approval1. Insert ATM card2. Request PIN3. Enter PIN4. Verify PIN5. Display message to client

Withdraw amount

Deposit amount

ATM approval

Client

ATM System

Client ATM Machine

Use case: ATM approval

1. Insert ATM card

2. Request PIN3. Enter PIN4. Verify PIN5. Display

message to client

ClientDatabase

Use case: Withdraw amount1. Request withdrawal amount2. Enter withdrawal amount3. Check account4. Verify sufficient funds5. Eject cash

Withdraw amount

Deposit amount

ATM approval

Client

ATM System

Object A: Class A Object B: Class B:User

messageA()

messageB(“string”)messageC()

• Object naming– Syntax: [objectName]:[className]

– Include object (instance) names when objects are referred to in messages or when several objects of the same type exist in the diagram

– Name classes consistently with your class diagram

Stereotypes of Analysis ClassesStereotypes of Analysis Classes

Classes or objects can be classified into one of the following three stereotypes:– Entity – to hold data– Boundary – used by actors to interact with the system

For example: Customer place order, interact using a order form.

– Control – coordinating behavior in the systemFor example: control the activities in the transaction (i.e., rules, calculations)

Stereotypes of Analysis ClassesStereotypes of Analysis Classes

Is an object relation that is extended to include responsibilities

Stereotypes of Analysis ClassesStereotypes of Analysis Classes

Is an object relation that is extended to include responsibilities

Stereotypes of Analysis ClassesStereotypes of Analysis Classes

A boundary class provides the interface between an actor and use case. The actor can be a human or an external system.

Encapsulates connections between actors and use cases

Stereotypes of Analysis ClassesStereotypes of Analysis Classes

A boundary class provides the interface between an actor and use case. The actor can be a human or an external system.

Encapsulates connections between actors and use cases

Stereotypes of Analysis ClassesStereotypes of Analysis Classes

A control class coordinates the tasks and captures the main logic in a use case.

Mostly performs behaviors associated with inner workings of use cases

Typically, actors interact with boundary classes, which in turn interact with control classes, which in turn interact with entity classes.

Operations (behaviors) are depicted in the lower third of a class box.

Operations fulfill the class’s responsibilities.

OOAD 40

Modeling Behavior

Activity Diagram

State Diagram

OOAD 41

Activity Diagram: An example

OOAD 42

When to use Activity Diagram?

• The main reason to use activity diagrams is to model the workflow behind the system being designed. 

• Activity Diagrams are also useful for: analyzing a use case by describing what actions need to take place and when they should occur;  describing a complicated sequential algorithm;  and modeling applications with parallel processes.

OOAD 43

Activity Diagram

Focus on flow of activity of internal process in object similar to flowchartdescribe changes in activity in a procedureinformation from use case scenario or event flow can be used to describe activity diagram.Used to provide detail for complex algorithms

OOAD 44

Activity Diagram (cont.)

• Purpose:– Modeling human task– Describe system’s function– Describe logic operation

• Elements in activity diagram:

Activity Transition Decision

Fill form Select course

Submit to PA approve?

Register course

[No]

[Yes]

Example of Activity Diagram for Register Course

start

end

Enter card Read card

Request PINEnter PIN

Verify PIN valid?

Select other service

[No]

[Yes]

Example of Activity Diagram for ATM Authorization

OOAD 47

Swimlane- partition an activity diagram so that parts in the swimlane relevant to that activities in the partition- helpful in investigating responsibilities for interactions and associations between objects and actors

OOAD 49

Activity diagram with synchronization bars – split into multiple paths and multiple paths combined into a single transition

Top synchronization bar is a fork.

Bottom synchronization bar is a join.

OOAD 50

OOAD 51

When to use State Diagram?

• Use state diagrams to demonstrate the behavior of an object through many use cases of the system. 

• Only use state diagrams for classes where it is necessary to understand the behavior of the object through the entire system

OOAD 52

What is a State Diagram?• A diagram that captures the behavior of an object by

specifying the sequence of states it goes through during its lifetime in response to events, together with the responses to those events

• describe changes in state in a procedure• Also called statechart diagram or state machine diagram• State – a condition or situation during the life of an

object at which time it satisfies some condition, performs some activity, or waits for some event.

OOAD 53

What is a State Diagram? (cont.)

• A state diagram to describe the behavior (i.e., state changes) of a single class according to events and messages which class sends and receives

• A state diagram can also clarify a use case – to specify the actions the use case can take in accordance with varying conditions of the system

• E.g., a use case ‘enroll course’, the state can be full, opened, and closed.

PaidPaying

Unpaid

Invoice createdInvoice destroyed

State Diagram Example

State 2 . . .

Event(parameters) [condition] /action

End state

State 1do/activity 1

Start state

Transition Notation

transition

Example: Event(parameters) [condition]

mouse_button_clicked(right_button)[inside the window]

Example: /action

/calculate amount

OOAD 56

State Notation

Name compartment

Action labels

Recap• After studying this chapter we learned to:

– Understand how to structure requirements with interaction diagram, activity diagram and state machine diagram.

– Explain the element of sequence diagrams, activity diagram and state machine diagram.

– Construct sequence diagrams, activity diagram and state machine diagram