330 likes | 613 Views
Behavioral Modeling with UML Behavioral Modeling State Transition Diagram Week #6 Jarungjit Parnjai. Object Oriented Technology. Lecture Outline. Behavioral Diagrams State-Transition Diagram. UML has 9 kinds of diagrams. Class Diagram Object Diagram Component Diagram Deployment Diagram
E N D
Object-Oriented Technology Behavioral Modeling with UMLBehavioral ModelingState Transition DiagramWeek #6Jarungjit Parnjai Object Oriented Technology
Object-Oriented Technology Lecture Outline • Behavioral Diagrams • State-Transition Diagram
Object-Oriented Technology 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
Object-Oriented Technology Behavioral Diagrams • Behavioral Diagrams เป็นโครงสร้างแบบ dynamic • 4 diagrams ได้แก่ • Sequence Diagram • Collaboration Diagram • State-transition Diagram • Activity Diagram c 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 Object-Oriented Technology A State-Transition Diagram
Ordinary Example Show MessageBox “Printing” on Screen Create postscript file Send postscript file to printer Remove MessageBox sampler Swimlane Example displayer Object-Oriented Technology An Activity Diagram
Object-Oriented Technology State Diagram
Object-Oriented Technology State diagram • แสดงพฤติกรรมของวัตถุใดๆ วัตถุหนึ่งที่สร้างขึ้นจากคลาส • แสดงสถานะ (states) ทั้งหมดที่เป็นไปได้ของวัตถุ • แสดงการเปลี่ยนแปลงสถานภาพของวัตถุ ตั้งแต่เริ่มต้นสถานภาพ จนสิ้นสุดสถานภาพ • ชื่ออื่นๆ ของ State Diagram ได้แก่ • State transition diagram • Harel diagram (statecharts)
Object-Oriented Technology State Transition • ตัวอย่างการเปลี่ยนแปลงสถานภาพ (State Transition) • เมื่อกดสวิทซ์ไฟ หลอดไฟฟ้าจะเปลี่ยนสถานะจาก “มืด” ไปเป็น” สว่าง” • เมื่อกดปุ่มวางสายโทรศัพท์ โทรศัพท์จะเปลี่ยนสถานะจาก “กำลังโทร”ไปเป็น “วางสาย” • เมื่อถอนเงินเกินยอดบัญชีคงเหลือ สถานะของบัญชี จะเปลี่ยนสถานะจาก “ปกติ” ไปเป็น “เบิกเกินบัญชี” • เมื่อเวลาผ่านไประยะหนึ่ง เครื่องซักผ้า จะเปลี่ยนสถานะจาก “ซักน้ำ”ไปเป็น “ปั่นแห้ง”
Account balance : Float Object-Oriented Technology Object states • สถานะ (State) = ชุดของค่าที่ บ่งบอกถึง วัตถุ (รวมทั้ง condition และ situation ของวัตถุ) ที่เวลาใดเวลาหนึ่ง • สถานะถูกกำหนดโดยค่าของ attribute ในวัตถุ overdrafted states ok
overdrafted withdraw(sum) deposit(sum) ok Object-Oriented Technology State changes (1) • สถานะอาจเปลี่ยนแปลง • เมื่อมีเหตุการณ์ (event) เกิดขึ้นกับวัตถุ หรือ เมื่อเวลาผ่านไปชั่วระยะหนึ่ง • การเปลี่ยนแปลงสถานภาพ (State Transition) • ความสัมพันธ์ที่ระบุการเปลี่ยนแปลงของสถานะ
deposit overdrafted withdraw deposit withdraw ok Object-Oriented Technology State changes (2) • เหตุการณ์ (Events) • หมายถึง Message หรือ signal ที่วัตถุได้รับ • Events อาจจะทำให้สถานะของวัตถุเปลี่ยนแปลง หรือไม่ก็ได้ • Self-transition
Event หรือ condition State-B State-A Object-Oriented Technology 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 Object-Oriented Technology 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 Object-Oriented Technology State diagram notation (2) • Event • หมายถึง เหตุการณ์ที่เกิดขึ้นใน time และ space • ก่อให้เกิด (trigger) การเปลี่ยนสถานะ (transition) • อาจเป็น signals, calls, ช่วงเวลา หรือ การเปลี่ยนสถานะ • Condition • Transition เกิดขึ้นเมื่อ condition เป็นจริงเท่านั้น • Action • หมายถึง กระบวนการที่เกิดขึ้นโดยอย่างรวดเร็ว โดยไม่ถูกขัดจังหวะ
Object-Oriented Technology 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 Object-Oriented Technology Example : State transitions for GUI
Turn PC On Initializing Working do : startup Select Shut Down ShuttingDown Object-Oriented Technology 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 Object-Oriented Technology 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 Object-Oriented Technology 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 Object-Oriented Technology 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 Object-Oriented Technology Transitions to “cancelled”
Object-Oriented Technology SubState • สถานะการทำงานย่อย (SubState) แบ่งเป็น 2 ประเภท คือ • Sequential เป็นการเปลี่ยนสถานะการทำงานอย่างเป็นลำดับ จากสถานะหนึ่ง ไปสู่อีกสถานะหนึ่ง • Concurrent มีหลาย ๆ สถานะที่มีการเปลี่ยนแปลงพร้อมๆ กัน
Working Input Awaiting User Input Registering User Input Visualizing User Input Object-Oriented Technology Sequential SubState • Sequential SubState • เป็นการเปลี่ยนสถานะการทำงานอย่างเป็นลำดับ จากสถานะหนึ่ง ไปสู่อีกสถานะหนึ่ง
Working Input Awaiting User Input Registering User Input Visualizing User Input [is interval out] Watch System Clock Update display Object-Oriented Technology Concurrent SubState • Concurrent SubState • มีหลาย ๆ สถานะที่มีการเปลี่ยนแปลงพร้อมๆ กัน
Object-Oriented Technology State diagram notation (4) Superstate Event A State-A State-B State-B Event C Event B • Composite state: • ประกอบด้วย Sequential substates
Object-Oriented Technology 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
Object-Oriented Technology 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 Object-Oriented Technology Concurrent state diagram for the class Order
Superstate Event A State-A State-A State-B State-B H Event C Event B Object-Oriented Technology 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 Object-Oriented Technology
Object-Oriented Technology Exercises • ให้สร้าง State diagram สำหรับ • an elevator • a soccer game • an ATM • a mobile phone • …
Object-Oriented Technology Summary • Behavioral Diagrams • State-Transition Diagram