Post on 10-Feb-2016
description
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