วิชาวิเคราะห์และออกแบบระบบเชิงวัตถุ 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 State-Transition Diagram Activity Diagram
UML has 9 kinds of diagrams Class Diagram Object Diagram Component Diagram Deployment Diagram Use Case Diagram Sequence Diagram Collaboration Diagram StateTransition Diagram Activity Diagram Structural Diagrams Behavioral Diagrams
Behavioral Diagrams Behavioral Diagrams เป็นโครงสร้างแบบ dynamic Sequence Diagram Collaboration Diagram State-transition Diagram Activity Diagram Interaction Diagrams
A State-Transition Diagram Initialization Open entry: Register student exit: Increment count Closed Canceled do: Initialize course do: Finalize course do: Notify registered students Add Student / Set count = 0 Add student[ count < 10 ] [ count = 10 ] Cancel
An Activity Diagram Show MessageBox “Printing” on Screen Create postscript file Send postscript file to printer Remove displayer sampler Swimlane Example Ordinary Example
State Diagram
State diagram แสดงพฤติกรรมของวัตถุใดๆ วัตถุหนึ่งที่สร้างขึ้นจากคลาส แสดงสถานะ (states) ทั้งหมดที่เป็นไปได้ของวัตถุ แสดงการเปลี่ยนแปลงสถานะของวัตถุ ที่เป็นผลจาก message ที่วัตถุนั้นได้รับ ชื่ออื่นๆ ของ State Diagram ได้แก่ State transition diagram Harel diagram (statecharts)
Object states สถานะ (State) = ชุดของค่าที่ บ่งบอกถึง วัตถุ (รวมทั้ง condition และ situation ของวัตถุ) ที่เวลาใดเวลาหนึ่ง สถานะถูกกำหนดโดยค่าของ attribute ในวัตถุ overdrafted Account balance : Float states ok
State changes (1) สถานะอาจเปลี่ยนแปลง เมื่อมีเหตุการณ์ (event) เกิดขึ้นกับวัตถุ State transition หมายถึงความสัมพันธ์ที่ระบุการเปลี่ยนแปลงของสถานะ overdrafted withdraw(sum) deposit(sum) ok
State changes (2) เหตุการณ์ (Events) หมายถึง Message หรือ signal ที่วัตถุได้รับ Events อาจจะทำให้สถานะของวัตถุเปลี่ยนแปลง หรือไม่ก็ได้ Self-transition overdrafted ok deposit withdraw
State diagram 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-A event1(a:T)[exp]: action1 state variable(s) eventn(a:T)[exp]: actionn …
State diagram notation (2) State-A State-B Event(arguments) [condition]/action Event หมายถึง เหตุการณ์ที่เกิดขึ้นใน time และ space ก่อให้เกิด (trigger) การเปลี่ยนสถานะ (transition) อาจเป็น signals, calls, ช่วงเวลา หรือ การเปลี่ยนสถานะ Condition Transition อาจเกิดขึ้นเมื่อ condition เป็นจริงเท่านั้น Action หมายถึง กระบวนการที่เกิดขึ้นโดยอย่างรวดเร็ว โดยไม่ถูกขัดจังหวะ
State diagram notation (3) Event(attribute) Initial state State-B Start State End State Start state ไม่มี event triggers อาจมี branch conditions อาจเปลี่ยนสถานะจาก start states End state สิ้นสุด state machine
Example : State transitions for an invoice Unpaid Paid Destroyed Created
Example : State transitions for an order Checking do : check item Dispatching do : initiate delivery Waiting Delivered / get first item Item received [someitems not in stock ] Item received [ all items available] [ All items checked && some items not in stock] [ All items checked && all items availables ] [ not all items checked ] / get next item
Transitions to “cancelled” Dispatching do: initiate delivery Waiting Delivered Item received [ some items not in stock ] Item received [ all items available ] Cancelled Checking do: check item [ not all items checked ] / get next item / get first item [ All items checked && some items not in stock ] [ All items checked && all cancelled
State diagram notation (4) Superstate Event A State-A State-B State-B Event C Event B Composite state: Sequential substates
Superstate / Substates Active [ not all items checked ] / get next item Item received [someitems not in stock ] [ All items checked && some items not in stock] / get first item Checking cancelled Waiting do : check item Cancelled [ All items checked && all items availables ] There are also concurrent substates Item received [ all items available] Delivered Dispatching Delivered do : initiate delivery
Exercises ให้สร้าง State diagram สำหรับ an elevator a soccer game an ATM a mobile phone …
Activity Diagram
Activity diagram ใช้สำหรับอธิบาย Activities Similar to Petri nets กระแสการไหลของการทำงาน (workflow) การประมวลผลแบบขนาน (parallel processing) Activities conceptual: task to be done specification/implementation: method of a class Similar to Petri nets
Structure of activity diagrams 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 Concurrent fork Activity Synchronization Bar Activity Activity [synchronization condition] Concurrent join Activity
Example of activity diagrams The Coffee Pot
Activity diagram Find coffee Put coffee Add water in filter to reservoir Put filter in machine Turn on machine
Conditions in activity diagrams Find coffee Sequential branch unguarded transition Put coffee Check water in filter in reservoir [not enough water] Put water in the reservoir Put filter in machine [else] [filter with coffee in machine and reservoir contains water] Turn on machine
Structure of activity diagrams [condition 1] Activity Guard expression Branch Activity [condition 2] Activity Activity Strictly UML: forks joins branch merge No synchronization condition [synchronization condition] Activity
Swimlanes Identify responsibilities Customer Sales Warehouse Request product Identify responsibilities Example: Modeling workflows for business units Process order Pull material Ship order
Customer Sales Warehouse Request product Process Order Pull Material Continue Work Ship Order Recieve Order Bill Customer Pay Bill Close Order
o:Order [in progress] o:Order [filled] b:Bill [unpaid] b:Bill [paid] Warehouse Customer Sales Request product Process Order Pull Material Continue Work o:Order [in progress] Ship Order o:Order [filled] Recieve Order Bill Customer b:Bill [unpaid] Pay Bill b:Bill [paid] Close Order
Summary Software Modeling Require and Domain Analysis Model Design Model Brief Overview of Unified Modeling Language (UML) Use Case Model