320 likes | 346 Views
Behavioral Modeling with UML Behavioral Modeling State Diagrams Seree Chinodom. Object Oriented Analysis and Design. Lecture Outline. Behavioral Diagrams State-Transition Diagram. UML has 9 kinds of diagrams. Class Diagram Object Diagram Component Diagram Deployment Diagram
E N D
Behavioral Modeling with UMLBehavioral ModelingState DiagramsSeree Chinodom Object Oriented Analysis and Design
Lecture Outline • Behavioral Diagrams • State-Transition 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 Functional Diagrams Behavioral Diagrams
Behavioral Diagrams • Behavioral Diagrams เป็นโครงสร้างแบบ dynamic • 4 diagrams ได้แก่ • Sequence Diagram • Collaboration Diagram • State-transition Diagram • Activity Diagram Interaction Diagrams
Add student[ count < 10 ] Add Student / Set count = 0 Initialization Open do: Initialize course entry: Register student exit: Increment count Cancel Cancel [ count = 10 ] Canceled do: Notify registered students Closed Cancel do: Finalize course A State-Transition Diagram
State diagram • แสดงพฤติกรรมของวัตถุใดๆ วัตถุหนึ่งที่สร้างขึ้นจากคลาส • แสดงสถานะ (states) ทั้งหมดที่เป็นไปได้ของวัตถุ • แสดงการเปลี่ยนแปลงสถานภาพของวัตถุ ตั้งแต่เริ่มต้นสถานภาพ จนสิ้นสุดสถานภาพ • ชื่ออื่นๆ ของ State Diagram ได้แก่ • State transition diagram • Harel diagram (statecharts)
State Transition • ตัวอย่างการเปลี่ยนแปลงสถานภาพ (State Transition) • เมื่อกดสวิทซ์ไฟ หลอดไฟฟ้าจะเปลี่ยนสถานะจาก “มืด” ไปเป็น” สว่าง” • เมื่อกดปุ่มวางสายโทรศัพท์ โทรศัพท์จะเปลี่ยนสถานะจาก “กำลังโทร” ไปเป็น “วางสาย” • เมื่อถอนเงินเกินยอดบัญชีคงเหลือ สถานะของบัญชี จะเปลี่ยนสถานะจาก “ปกติ” ไปเป็น “เบิกเกินบัญชี” • เมื่อเวลาผ่านไประยะหนึ่ง เครื่องซักผ้า จะเปลี่ยนสถานะจาก “ซักน้ำ” ไปเป็น “ปั่นแห้ง”
Account balance : Float Object states • สถานะ (State) = ชุดของค่าที่ บ่งบอกถึง วัตถุ (รวมทั้ง condition และ situation ของวัตถุ) ที่เวลาใดเวลาหนึ่ง • สถานะถูกกำหนดโดยค่าของ attribute ในวัตถุ overdrafted states ok
overdrafted withdraw(sum) deposit(sum) ok State changes (1) • สถานะอาจเปลี่ยนแปลง • เมื่อมีเหตุการณ์ (event) เกิดขึ้นกับวัตถุ หรือ เมื่อเวลาผ่านไปชั่วระยะหนึ่ง • การเปลี่ยนแปลงสถานภาพ (State Transition) • ความสัมพันธ์ที่ระบุการเปลี่ยนแปลงของสถานะ
deposit overdrafted withdraw deposit withdraw ok State changes (2) • เหตุการณ์ (Events) • หมายถึง Message หรือ signal ที่วัตถุได้รับ • Events อาจจะทำให้สถานะของวัตถุเปลี่ยนแปลง หรือไม่ก็ได้ • Self-transition
Event หรือ condition State-B State-A Component of State diagram • องค์ประกอบของ State Diagram • จุดเริ่มต้น /จุดสิ้นสุด • สถานะต่างๆ (States) • เส้นแสดงการเปลี่ยนสถานะ (Transition Line) • เหตุการณ์ (Event) และ/หรือ เงื่อนไข (condition)
State name state variable(s) entry / entry-action do/ activity-A event1(a:T)[exp]: action1 … eventn(a:T)[exp]: actionn condition /conditiont-action exit / exit-action 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 ตามเงื่อนไขที่กำหนด
Event(arguments)[condition]/action State-A State-B State diagram notation (2) • Event • หมายถึง เหตุการณ์ที่เกิดขึ้นใน time และ space • ก่อให้เกิด (trigger) การเปลี่ยนสถานะ (transition) • อาจเป็น signals, calls, ช่วงเวลา หรือ การเปลี่ยนสถานะ • Condition • Transition เกิดขึ้นเมื่อ condition เป็นจริงเท่านั้น • Action • หมายถึง กระบวนการที่เกิดขึ้นโดยอย่างรวดเร็ว โดยไม่ถูกขัดจังหวะ
State diagram notation (3) Event(attribute) Initial state State-B • Start state • ไม่มี event ใดที่ก่อให้เกิดการเปลี่ยนสถานะสู่ start state • อาจมี branch conditions • End state • สิ้นสุด state machine StartState End State
Turn PC on Initializing Select Shut Down Shutting Down Working Example : State transitions for GUI
Turn PC On Initializing Working do : startup Select Shut Down ShuttingDown Triggering an Event • การกระตุ้นให้เกิดการเปลี่ยนแปลงสถานภาพ (Triggering an Event) และ การเปลี่ยนแปลงสถานภาพ โดยไม่มีเหตุการณ์เข้าไปกระตุ้น (Triggerless Event)
[is time out] Turn PC On Initializing Working Screen Saving do : startup Keypressed or mouse movement Select Shut Down ShuttingDown Guard Condition • การเปลี่ยนแปลงสถานภาพด้วยเงื่อนไขทางตรรกะ ทำได้โดยอาศัย Guard Condition • Guard Condition หมายถึง ลักษณะการกำหนดเงื่อนไขทางตรรกะบางอย่าง เช่น อาจใช้ระยะเวลาเป็นตัวกำหนด เป็นต้น
Item received[someitems not in stock ] [ not all items checked ] / get next item [ All items checked && some items not in stock] / get first item Checking Waiting do : check item [ All items checked && all items availables ] Item received[ all items available] Dispatching Delivered Delivered do : initiate delivery Example : State transitions for an order
Item received[someitems not in stock ] [ not all items checked ] / get next item [ All items checked && some items not in stock] / get first item Checking Waiting do : check item [ All items checked && all items availables ] Item received[ all items available] Dispatching Delivered Delivered do : initiate delivery Example : State transitions for an order
[ not all items checked ]/ get next item Item received[ some items not in stock ] [ All items checked && some items not in stock ] / get first item Checking Waiting do: checkitem Item received [ all items available ] cancelled [ All items checked && all items available ] cancelled Dispatching cancelled do: initiate delivery Cancelled Delivered Delivered Transitions to “cancelled”
SubState • สถานะการทำงานย่อย (SubState) แบ่งเป็น 2 ประเภท คือ • Sequential เป็นการเปลี่ยนสถานะการทำงานอย่างเป็นลำดับ จากสถานะหนึ่ง ไปสู่อีกสถานะหนึ่ง • Concurrent มีหลาย ๆ สถานะที่มีการเปลี่ยนแปลงพร้อมๆ กัน
Working Input Awaiting User Input Registering User Input Visualizing User Input Sequential SubState • Sequential SubState • เป็นการเปลี่ยนสถานะการทำงานอย่างเป็นลำดับ จากสถานะหนึ่ง ไปสู่อีกสถานะหนึ่ง
Working Input Awaiting User Input Registering User Input Visualizing User Input [is interval out] Watch System Clock Update display Concurrent SubState • Concurrent SubState • มีหลาย ๆ สถานะที่มีการเปลี่ยนแปลงพร้อมๆ กัน
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] cancelled Cancelled / get first item Checking Waiting do : check item [ All items checked && all items availables ] Item received[ all items available] Delivered Dispatching Delivered do : initiate delivery
Example: Payment authorization in class Order 2 parallel processes: - authorization - order handling Authorizing [ payment not ok ] do: check payment [ payment ok ] Rejected Authorized Delivered
Cancelled Waiting Checking Dispatching Delivered Authorizing Authorized Rejected Concurrent state diagram for the class Order
Superstate Event A State-A State-A State-B State-B H Event C Event B State diagram notation (5) • History state • เป็นตัวบอกว่าเมื่อมีการเปลี่ยนกลับมาสถานะเดิม จะให้กลับมาที่จุดใด • เริ่มต้นด้วย substate หลังสุดที่ทำงานก่อนที่จะออกจากcomposite state
Turn PC On Initializing Shutting Down Select Shut Down Working Input Awaiting User Input Registering User Input Visualizing User Input H Keypressed or mouse movement [is time out] Screen Saving
Exercises • ให้สร้าง State diagram สำหรับ • an elevator • a soccer game • an ATM • a mobile phone • …
Summary • Behavioral Diagrams • State-Transition Diagram