วิชาวิเคราะห์และออกแบบระบบเชิงวัตถุ Lec08 :: Behavioral Modeling with UML Behavioral Diagrams Interaction Diagrams Nattapong Songneam xnattapong@hotmail.com.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Chapter 8 : Logic Modeling & Data Modeling
Advertisements

The Management of Distributed Transaction
(Material Requirement Planning)
การวิเคราะห์ระบบและวิธีปฏิบัติงาน
ประเภทของระบบสารสนเทศในองค์กร
Object-Oriented Analysis and Design
UML Diagrams Functional Model Seree Chinodom
Stack.
Class Diagram.
Physiology of Crop Production
Business Modeling (บางส่วนอ้างอิงจาก ดร.อดิศร ณ อุบล)
Object-Oriented Analysis and Design
บทที่ 8 การออกแบบข้อมูล (Data Design) โครงสร้างข้อมูล (Data Structure)
บทที่ 5 การจำลองแบบเชิงวัตถุ Object Modeling
Object Oriented Programing
ระบบฐานข้อมูล ข้อมูลมีความสำคัญมากต่อองค์การ ดังนั้นจะต้องมีการจัดเก็บที่เป็นระบบ สามารถค้นหาได้ง่าย เพื่อที่นำมาใช้ให้ทันเวลา ในการตัดสินใจของผู้บริหาร.
Object-Oriented Analysis and Design
ระบบเครือข่ายคอมพิวเตอร์
Surachai Wachirahatthapong
ฐานข้อมูลและการออกแบบฐานข้อมูล
ASP:ACCESS Database.
ASP:ACCESS Database.
MySQL.
บรรยายโดย สุรางคนา ธรรมลิขิต
Object-Oriented System Analysis and Design
การออกแบบแบบจำลองข้อมูล
Chapter 2 Database systems Architecture
OOP (Object-Oriented Programming)
สถาปัตยกรรมของระบบฐานข้อมูล
การออกแบบฐานข้อมูลเชิงสัมพันธ์
การแสดงการทำงานของระบบด้วย Use Case Diagram
บทที่ 4 แบบจำลองข้อมูลและกระบวนการ (Data and Process Modeling)
UML มหาวิทยาลัยเนชั่น Unified Model Language บุรินทร์ รุจจนพันธุ์ .
Systems Analysis and Design
การออกแบบฐานข้อมูลเชิงสัมพันธ์
บทที่ 1 ความรู้พื้นฐานในการ พัฒนาระบบ
บทที่ 3 การวิเคราะห์ Analysis.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
โครงสร้างขององค์กร (Organization Structure)
ที่ใช้ใน Object-Oriented Design
Data Modeling Chapter 6.
List ADTs By Pantharee S..
System Analysis and Design
วิชาวิเคราะห์และออกแบบระบบเชิงวัตถุ Lec10 :: Behavioral Modeling with UML Behavioral Diagrams Interaction Diagrams State Diagrams Activity Diagram Last.
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)
Lecture 2 แก้ไขปัญหาด้วย OOP (Solving problems using OOP in Java)
เกียรติพงษ์ ยอดเยี่ยมแกร
Classification Data mining การทำเหมืองข้อมูลแบบจำแนก
Sequence Diagram Communication Diagram
Activity Diagram Wattanapong suttapak, Software Engineering,
school of Information communication Tecnology,
บทที่ 7 กระบวนการบริการ
Modeling and Activity Diagram
Unified Modeling Language
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
Introduction to Database
Customer Relationship Management (CRM)
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
State Diagram Wattanapong suttapak, Software Engineering,
Toward National Health Information System
บทที่ 14 กลวิธีการทดสอบซอฟต์แวร์ (TESTING STRATEGIES)
Object Oriented Development with UML
Information System Development
บทที่ 5 ความต้องการ วิศวกรรมความต้องการ แบบจําลองการวิเคราะห์
การวิเคราะห์ซอฟต์แวร์
for Display Antique and Art Object Information
Class Diagram.
UML (Unified Modeling Language)
Object-Oriented Analysis and Design
ใบสำเนางานนำเสนอ:

วิชาวิเคราะห์และออกแบบระบบเชิงวัตถุ 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