Lecture Outline

Post on 10-Feb-2016

45 views 0 download

description

วิชาวิเคราะห์และออกแบบระบบเชิงวัตถุ Lec09 :: Behavioral Modeling with UML Behavioral Diagrams Interaction Diagrams State Diagrams Activity Diagram Last Updated :: 17/04/2551 Mr. Nattapong Songneam xnattapong@hotmail.com http://www.siam2dev.com. Lecture Outline. Behavioral Diagrams - PowerPoint PPT Presentation

transcript

วชิาวเิคราะห์และออกแบบระบบเชงิวตัถุLec09 :: Behavioral Modeling with UML

Behavioral DiagramsInteraction Diagrams

State DiagramsState DiagramsActivity DiagramActivity Diagram

Last Updated :: 17/04/2551

Mr. Nattapong Songneamxnattapong@hotmail.comhttp://www.siam2dev.com

Lecture OutlineLecture Outline•Behavioral Diagrams•State-Transition Diagram•Activity Diagram

UML has 9 kinds of UML has 9 kinds of diagramsdiagrams Class Diagram

Object Diagram Component Diagram Deployment Diagram Use Case Diagram Sequence Diagram Collaboration Diagram StateTransition Diagram Activity Diagram

Structural Structural DiagramsDiagrams

Behavioral DiagramsBehavioral Diagrams

Behavioral DiagramsBehavioral Diagrams•Behavioral Diagrams เป็น

โครงสรา้งแบบ dynamic • 4 diagrams ได้แก่

•Sequence Diagram•Collaboration Diagram•State-transition Diagram•Activity Diagram

Interaction Diagrams

A State-Transition A State-Transition DiagramDiagram

Initialization Openentry: Register studentexit: Increment count

Closed

Canceled

do: Initialize course

do: Finalize coursedo: Notify registered students

Add Student / Set count = 0

Add student[ count < 10 ]

[ count = 10 ]

Cancel

Cancel

Cancel

An Activity DiagramAn Activity DiagramShow

MessageBox“Printing” on Screen

Create postscriptfile

Send postscriptfile to printer

RemoveMessageBox

displayer samplerSwimlane Example

Ordinary Example

State DiagramState Diagram

State diagramState diagram• แสดงพฤติกรรมของวตัถใุดๆ วตัถหุน่ึงท่ี

สรา้งขึน้จากคลาส• แสดงสถานะ (states) ท้ังหมดท่ีเป็นไปได้

ของวตัถุ• แสดงการเปลี่ยนแปลงสถานะของวตัถุ ท่ี

เป็นผลจาก message ท่ีวตัถนัุน้ได้รบั• ชื่ออ่ืนๆ ของ State Diagram ได้แก่

•State transition diagram•Harel diagram (statecharts)

Object statesObject states• สถานะ (State)

= ชุดของค่าท่ี บง่บอกถึง วตัถุ (รวม ท้ัง condition และ situation

ของวตัถ)ุ ท่ีเวลาใดเวลาหนึ่ง• สถานะถกูกำาหนดโดยค่าของ

attribute ในวตัถุoverdrafted

ok

Accountbalance : Float states

State changes (1)State changes (1)• สถานะอาจเปลี่ยนแปลง เมื่อมเีหตกุารณ์

(event) เกิดขึน้กับวตัถุ•State transition

•หมายถึงความสมัพนัธท่ี์ระบุการเปล่ียนแปลงของสถานะoverdrafted

ok

deposit(sum) withdraw(sum)

State changes (2)State changes (2)• เหตกุารณ์

(Events)• หมายถึง Message

หรอื signal ท่ีวตัถุได้รบั

•Events อาจจะทำาให้สถานะของวตัถุ

เปล่ียนแปลง หรอืไม่ก็ได้•Self-transition

overdrafted

ok

deposit

withdrawdeposit

withdraw

State diagram State diagram notation (1)notation (1)• entry / entry-action

• เมื่อเขา้มายงั State นี้ให้ทำา entry-action

• do / activity-action• หลังจากเขา้มายงั State นี้แล้ว หาก

ไมม่เีง่ือนไขอ่ืนใดให้ทำา activity-action

• exit / exit-action• ขณะท่ีจะออกจาก State น้ี ให้ทำา

activity-action • conditon / condition-action

• ขณะท่ีอยูภ่ายใน State นี้ ให้ทำาcondition-action ตามเง่ือนไขท่ีกำาหนด

State name

entry / entry-action

condition /conditiont-action exit / exit-action

do / activity-Aevent1(a:T)[exp]: action1

state variable(s)

eventn(a:T)[exp]: actionn

State-A State-BEvent(arguments) [condition]/action

State diagram State diagram notation (2)notation (2)

•Event

• หมายถึง เหตกุารณ์ที่เกิดขึน้ใน time และ space• ก่อให้เกิด (trigger) การเปลี่ยนสถานะ (transition)• อาจเป็น signals, calls, ชว่งเวล า หรอื การเปลี่ยน

สถานะ •Condition

•Transition อาจเกิดขึน้เมื่อ condition เป็นจรงิเท่านัน้•Action

• หมายถึง กระบวนการท่ีเกิดขึน้โดยอยา่งรวดเรว็ โดยไมถ่กูขดัจงัหวะ

State diagram State diagram notation (3)notation (3)

•Start state• ไมม่ี event triggers • อาจมี branch conditions • อาจเปล่ียนสถานะจาก start states

•End state• สิน้สดุ state machine

Initial state State-BEvent(attribute)

Start State End State

Example : State Example : State transitions for an transitions for an

invoiceinvoiceUnpaid PaidPaid DestroyedCreated

Example : State Example : State transitions for an transitions for an

orderorder

Checkingdo : check item

Dispatchingdo : initiate delivery

Waiting

Delivered

/ get first item

Item received [someitems not in stock ]

Item received[ all items available]

Delivered

[ All items checked && some items notin stock]

[ All items checked && all items availables ]

[ not all items checked ] / get next item

Transitions to Transitions to “cancelled“cancelled”

Dispatchingdo: initiate delivery

Waiting

Delivered

Item received [ some items not in stock ]

Item received [ allitems available ]

Delivered

Cancelled

Checkingdo: check

item

[ not all items checked ] / get next item

/ get first item[ All items checked &&some items not in stock ]

[ All items checked && all items available ]

cancelled

cancelled cancelled

State diagram State diagram notation (4)notation (4)

Superstate

State-A State-BState-BEvent A

Event B Event C

• Composite state:• Sequential substates

Superstate / Superstate / SubstatesSubstates

Delivered

Cancelled

Active

cancelledChecking

do : check item

Dispatchingdo : initiate delivery

Waiting / get first item

Item received [someitems not in stock ]

Item received[ all items available]

Delivered

[ All items checked && some items not in stock]

[ All items checked && all items

availables ]

[ not all items checked ] / get next item

ExercisesExercises• ให้สรา้ง State diagram สำาหรบั

•an elevator•a soccer game•an ATM•a mobile phone•…

Activity DiagramActivity Diagram

• ใชส้ำาหรบัอธบิาย• กระแสการไหลของการทำางาน (workflow)• การประมวลผลแบบขนาน (parallel

processing)•Activities

•conceptual: task to be done•specification/implementation:

method of a class•Similar to Petri nets

Activity diagramActivity diagram

Activity

Activity

Activity

Activity

Structure of activity Structure of activity diagramsdiagrams

[synchronization condition]

Concurrent fork

Concurrent join

Synchronization bar:• outbound triggers: activities can be carried out in parallel (any order)• default: outbound triggers occur when all incoming triggers occurred (i.e. all predecessors finished)

Activity diagram shows partial order of activities

Synchronization

Bar

Example of activity Example of activity diagramsdiagrams

• The Coffee Pot

Put coffeein filter

Add waterto reservoir

Put filterin machine

Turn onmachine

Activity diagramActivity diagramFind coffee

Conditions in activity Conditions in activity diagramsdiagrams

Put coffeein filter

Check waterin reservoir

Put filterin machine

Turn onmachine

[not enough water]Put water inthe reservoir

[else]

Sequential branchunguarded transition

[filter with coffee in machine and reservoir contains water]

Find coffee

Structure of activity diagrams

Activity

Activity

Activity

Activity

Activity

[condition 1]

[condition 2]

[synchronization condition]

Branch

Guard expression

Strictly UML:•forks joins•branch merge•No synchronization condition

SwimlaSwimlanesnes

• Identify responsibilities

• Example:Modeling workflows for business units

Request product

Processorder

Pullmaterial

Shiporder

Customer Sales Warehouse

Request product

Process OrderPull Material

Ship Order

Customer Sales Warehouse

Continue Work

Recieve Order Bill Customer

Pay BillClose Order

Request product

Process OrderPull Material

Ship Order

Customer Sales Warehouse

Continue Work

Recieve Order Bill Customer

Pay Bill

Close Order

o:Order[in progress]

o:Order[filled]

b:Bill[unpaid]

b:Bill[paid]

SummarySummary•Software Modeling•Require and Domain

Analysis Model•Design Model•Brief Overview of Unified

Modeling Language (UML)•Use Case Model