วิชาวิเคราะห์และออกแบบระบบเชิงวัตถุ Lec08 :: Behavioral Modeling with UML Behavioral Diagrams Interaction Diagrams Nattapong Songneam xnattapong@hotmail.com http://www.siam2dev.com
Lecture Outline UML Behavioral Diagrams Interaction Diagrams Sequence Diagram Collaboration 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
UML(Unified Modeling Language) Use-case view : หน้าที่การทำงานของระบบซอฟต์แวร์ โดยพิจารณาจากมุมมองของผู้ใช้ภายนอก หรือ ระบบภายนอก use-case diagram Logical view : หน้าที่การทำงานของระบบมีโครงสร้างอย่างไร มองในรูปของ static structure และ dynamic behavior class diagram, object diagram, state, sequence, collaboration, activity diagrams
UML(Unified Modeling Language) Component view : องค์ประกอบย่อยในการ implement ที่ประกอบเป็นระบบ และ dependency ระหว่างองค์ประกอบเหล่านั้น component diagram Concurrency view: การแบ่งแยก process และ processors โดยพิจารณาทั้ง communication และ synchronization dynamic diagrams (state, sequence, collaboration activity) implementation diagrams(component และ deployment) Deployment view : โครงสร้างทางกายภาพเกี่ยวกับ การติดตั้ง และใช้งานระบบ deployment diagram
Static & Dynamic views ระบบใดๆ มักประกอบด้วยโครงสร้าง 2 แบบ ได้แก่ โครงสร้างของ Use Case และ Class Diagram เป็นแบบ static แสดงองค์ประกอบของระบบ คลาส แอททริบิวต์ เมทธอด และ ความสัมพันธ์ระหว่างคลาส ไม่ระบุขั้นตอนการดำเนินงาน ลำดับการทำงานก่อนหลัง โครงสร้างของ Behavioral Diagrams เป็นแบบ dynamic
Behavioral Diagrams Behavioral Diagrams เป็นโครงสร้างแบบ dynamic Sequence Diagram Collaboration Diagram State-transition Diagram Activity Diagram Interaction Diagrams
Interaction Diagrams
Interaction diagrams แสดงการปฏิสัมพันธ์ระหว่างกลุ่มของวัตถุ มักใช้อธิบายสถานการณ์ของ use case 1 use case อธิบายการติดต่อสื่อสารระหว่างวัตถุ 2 รูปแบบ Time-based (Sequence Diagram) Organization-based (Collaboration Diagram)
Sequence & Collaboration Diagrams ทั้ง 2 diagrams แสดง message ที่ถูกส่งผ่านระหว่างวัตถุที่ทำงานร่วมกัน เพื่อประกอบเป็นหน้าที่การทำงานของระบบ Sequence diagrams เน้น message ที่เกิดขึ้นตามลำดับของเวลา Collaboration diagrams เน้นการเชื่อมต่อทางด้านโครงสร้างระหว่างวัตถุที่ทำงานร่วมกัน
Sequence & Collaboration Diagrams หรือ อาจใช้ในการจำลองปฏิสัมพันธ์ที่เกี่ยวข้องใน Use Case ใด Use Case หนึ่งโดยเฉพาะ
A Sequence Diagram : Student registration form manager math 101 1: fill in info 2: submit 3: add course(joe, math 01) 4: are you open? 5: are you open? 6: add (joe) 7: add (joe) section 1
A Collaboration Diagram : Registrar course form : CourseForm theManager : CurriculumManager aCourse : Course 1: set course info 2: process 3: add course 4: new course
Interactions : Core Elements name attr values Instance (object, data value, component instance etc.) An entity with a unique identity and to which a set of operations can be applied (signals be sent) and which has a state that stores the effects of the operations (the signals). Action A specification of an executable statement. A few different kinds of actions are predefined, e.g. CreateAction, CallAction, DestroyAction, and UninterpretedAction. Construct Description Syntax textual
Interaction : Core Elements (cont’d) Stimulus A communication between two instances. Operation A declaration of a service that can be requested from an instance to effect behavior. Construct Description Syntax textual A specification of an asynchronous stimulus communicated between instances. Signal «Signal» Name parameters
Interaction: Core Relationships Link A connection between instances. Attribute Link A named slot in an instance, which holds the value of an attribute. Construct Description Syntax textual Return A return from method call
Sequence diagrams แสดงการปฏิสัมพันธ์ระหว่างวัตถุตามลำดับเวลา (time sequence) ประกอบด้วย actor หรือ object ที่มีปฏิสัมพันธ์กับวัตถุอื่นๆ เส้นชีวิต (lifeline) Message ที่ส่งผ่านระหว่าง Object หรือ actor
Content of sequence diagrams Actor หรือ วัตถุ (Objects) แลกเปลี่ยน messages ให้แก่กันและกัน เส้นชีวิต (Lifeline) แสดงว่าวัตถุถูกสร้างขึ้น และยังไม่ถูกทำลาย Messages message ที่ส่งผ่านระหว่าง objects สนับสนุนการปฏิสัมพันธ์ระหว่างวัตถุ เป็นวิธีการที่ object ใช้ในการขอรับบริการจากวัตถุอื่นๆ object ใดๆ ติดต่อสื่อสารกับ object อื่นๆ ผ่านทาง operation ของวัตถุนั้นๆ
Message Types Simple Synchronous Asynchronous Sender / Receiver ไม่ระบุรายละเอียดของวิธีการติดต่อสื่อสารระหว่างวัตถุ Synchronous เรียกใช้ Operation ของวัตถุ โดย Sender/Caller รอจน สิ้นสุดOperation Receiver จัดเป็น passive object Asynchronous ไม่มีการ return กลับไปยัง Sender/Caller Sender ทำงานต่อทันที่ที่ส่ง message Receiver จัดเป็น active object
Message Notation Simple Synchronous Asynchronous (Message return)
Notation : Sequence Diagram name : Class object symbol lifeline activation other stimulus [condition] name (…) return : Class create new (…) delete message
Example: Different Arrows teller : Order : Article Nested Flow getValue price getName caller exchange callee Flat Flow lift receiver dial tone dial digit ringing tone ringing signal lift receiver appl err handl alarm Asynchronous Flow unknown
Example: Sequence diagram Object creation course form : CourseForm theManager : CurriculumManager aCourse : Course : Registrar Set Course Info process Add Course <<create>>
Example: Sequence diagram Actor : Computer : Printer Server : Customer Print(file) : Printer : Queue [Printer free] [Printer busy] Message Lifeline
Interaction & Collaboration Diagrams x y z Sequence Diagram a b c Collaboration Diagram x y z 1.1: a 1.2: c 1.1.1: b
What is a collaboration? กำหนดบทบาท (role) ของกลุ่มของวัตถุที่กระทำต่องานใดงานหนึ่ง เช่นเดียวกับ operation หรือ use case Interaction ปฏิสัมพันธ์ที่ระบุรูปแบบการสื่อสาร (communication pattern) ที่กระทำโดยวัตถุที่ กำลังแสดงบทบาทของ collaboration
Content of Collabaration diagrams วัตถุ (Objects) แลกเปลี่ยน messages ให้แก่กันและกัน Messages Synchronous : “call events,” แทนด้วย full arrow Asynchronous: “signals,” แทนด้วย half arrow «create» และ «destroy» messages มีการระบุหมายเลข Message ตามลำดับที่เกิดก่อน-หลัง และการอาจมี Loop ของ Message
Collaboration diagrams หมายเลขกำกับ แสดงลำดับของ messages ระบุโดย 1, 2, 3, 4, ….. 1, 1.1, 1.2, 1.3, 2, 2.1, 2.1.1, 2.2, 3 (แสดง operation calls ที่เป็นส่วนย่อยของ operation อื่นๆ)
Collaboration diagram basics : ProfessorCourseManager 1 : Add professor (Professor) Math 101 - Section 1 : CourseOffering
Example : Collaboration diagram 1 : set course info 2 : process course form : CourseForm : Registrar 3 : add course aCourse : Course theManager : CurriculumManager 4 : <<create>>
Example : Collaboration diagram 1 : Print(ps-file) myComputer/PrintClient : Computer : Customer 2 : Print(ps-file) [printer free] 2.1 : Print(ps-file) aPrinter : Printer ThePrintServer : Print Server aQueue : Queue [printer busy] 2.1 : Print(ps-file)
Comparing sequence & collaboration diagrams collaboration diagrams อาจแสดง static connections ของวัตถุ เหมาะสำหรับการแสดงการไหลของการควบคุมการทำงาน Sequence diagrams เหมาะสำหรับการแสดง กระแสการไหลของเหตุการณ์ที่เกิดขึ้นตามลำดับเวลา อาจเข้าใจได้ยากกว่าใน collaboration diagrams ปฏิสัมพันธ์ที่ซับซ้อน ยากแก่การทำความเข้าใจ ไม่ว่าจะใช้ diagram แบบใด
Interaction Modeling Tips ใช้เฉพาะส่วนของวัตถุ Include only those features of the instances that are relevant. แสดง flow จากซ้ายไปขวา และจากบนลงล่าง ใช้ sequence diagrams เพื่อแสดงลำดับระหว่างสิ่งที่มากระตุ้นให้เกิดปฏิสัมพันธ์ ระหว่างวัตถุ มักใช้ใน real-time modeling ใช้ collaboration diagrams เมื่อโครงสร้างของระบบ มีความสำคัญ
Example: A Booking System
Use Case Description: Change Flt Itinerary Actors traveler, client account db, airline reservation system Basic course: Traveler เลือก ‘change flight itinerary’ option System ดึงค่า account และ flight itinerary ของ traveler จาก client account database System ถาม traveler ให้ traveler เลือกส่วนของ itinerary segment ที่ต้องการเปลี่ยนแปลง ...
Use Case Description: Change Flt Itinerary ... System ถาม traveler ข้อมูลเกี่ยวกับเวลา departure และ destination; traveler เป็นคนให้ข้อมูล ถ้า flights ที่ traveler ต้องการเปลี่ยน ยังมีที่ว่าง ให้… … System แสดงสรุปรายการ transaction Alternative course: ถ้า flights ที่ traveler ต้องการเปลี่ยน ไม่มีที่ว่าง ให้ …
Sequence Diagram: Change Flight Itinerary Traveler : Booking System Client Account DBMS Airline Reservation System change flight itinerary get customer account get itinerary present itinerary select segment present detailed info update information available flight : :
Collaboration Diagram: Change Flt Itinerary 1: change flight itinerary 2: get customer account 3: get itinerary 5: select segment Traveler Client Account DBMS 7: update information : Booking System 4: present itinerary 6: present detailed info 8: available flight Airline Reservation System
Summary UML Behavioral Diagrams Interaction Diagrams Sequence Diagram Collaboration Diagram