420 likes | 633 Vues
UML Modeling. SCC : Suthida Chaichomchuen std@kmitnb.ac.th. What is UML?. UML : Unified Modeling Language คือ โมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP : Object Oriented Programming UML เป็นภาษาแผนภาพ ซึ่งจะมี Notation ที่นำไปใช้ใน Model ต่าง ๆ. Notation. Class Aggregation Generalize
E N D
UML Modeling SCC : Suthida Chaichomchuen std@kmitnb.ac.th
What is UML? • UML : Unified Modeling Language คือ โมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP : Object Oriented Programming • UML เป็นภาษาแผนภาพ ซึ่งจะมี Notation ที่นำไปใช้ใน Model ต่าง ๆ
Notation • Class • Aggregation • Generalize • Association
เครื่องมือที่ใช้ในการแปลง UML เป็น Coding • Java • Power builder • VB
Brief history of UML เกิดจากการรวมเอาข้อดีของ 3 แนวคิดมารวมกัน คือ 1. Grady Booch Booch method2. Jame Rumbough Object Modeling Techniques (OMT)3. Ivar Jacobson Object Oriented Software Engineer (OOSE)
Why UML? 1. UML สามารถแสดงส่วนประกอบในการสร้างโครงการในรูปของ OOP 2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้ Object Oriented Code 3. ง่ายต่อการทำความเข้าใจและสามารถแปลงเป็น Code Program ได้
Diagram of UML • Diagram ของ UML ที่ใช้ใน Object-Oriented Analysis and Design แบ่งได้เป็น 2 ประเภทคือ • Static Diagram • Dynamic Diagram
Static Diagram • คือ Diagram ที่แสดงภาพในเชิงสถิตย์ (Static) ของระบบ โดยจะแสดงถึงการมีอยู่ของ Class และความสัมพันธ์ระหว่าง Class แต่จะไม่แสดงถึงกิจกรรมที่จะเกิดขึ้น • มี 2 Diagrams ที่ใช้คือ • Use Case Diagram • Class Diagram
Dynamic Diagram • คือ Diagram ที่แสดงภาพในเชิงกิจกรรม (Dynamic) ของระบบ โดยจะแสดงถึงสิ่งที่เกิดขึ้นจากกิจกรรมของ Class ต่าง ๆ ที่มีในระบบ • มี 2 Diagrams ที่ใช้คือ • Sequence Diagram • Statechart Diagram
Use Case Diagram • ใช้เพื่ออธิบายฟังก์ชันของระบบในมุมมองของกลุ่มผู้ใช้ระบบ • เป็นเทคนิคในการสร้างแบบจำลองเพื่อใช้อธิบายหน้าที่ของระบบใหม่ หรือระบบปัจจุบัน • ความต้องการของระบบจะได้จาก ลูกค้า/ผู้ใช้ และผู้พัฒนาระบบ
Use Case Diagram • ใน Diagram จะประกอบด้วยสัญลักษณ์ต่อไปนี้ • Use Case • Actor • Use case Relation • System
SimpleWatch Actor ReadTime SetTime WatchUser WatchRepairPerson Use case ChangeBattery Use Case Diagram
Class Diagram • ใช้เพื่อแสดงโครงสร้างของระบบซึ่งประกอบด้วย • Class และรายละเอียดภายใน Class • ความสัมพันธ์ในเชิง abstraction ระหว่าง Class เช่น • Aggregation • Generalization • Association
Class Multiplicity Association SimpleWatch 1 1 1 1 2 1 1 2 Battery load() Time now() PushButton state push()release() LCDDisplay blinkIdx blinkSeconds() blinkMinutes() blinkHours() stopBlinking() referesh() Attributes Operations Class Diagram
Sequence Diagram • ใช้เพื่อแสดงกิจกรรมรวมของระบบ ซึ่งเป็น กิจกรรมที่เกิดขึ้นระหว่าง ผู้ใช้กับระบบ และระหว่าง Object ต่าง ๆ ในระบบ • ใช้เพื่อบอกลำดับการทำงานของระบบ โดยมี Object และเวลาเป็นตัวกำหนดลำดับของงาน • ใช้เพื่อแสดงปฏิสัมพันธ์ (Interaction) ระหว่าง Object ตามลำดับของเหตุการณ์ที่เกิดขึ้น ณ เวลาที่กำหนด
Object :SimpleWatch :LCDDisplay :Time :WatchUser pressButton1() blinkHours() pressButton1() blinkMinutes() pressButton2() incrementMinutes() refresh() pressButtons1And2() commitNewTime() stopBlinking() Message Activation Sequence Diagram
State Diagram • ใช้เพื่อแสดงสถานะ (State) ของแต่ละ Object รวมทั้งเหตุการณ์ต่าง ๆ ที่ทำให้สถานะของ Object เปลี่ยนไป • โดยจะให้ความสนใจว่า ณ เวลาต่าง ๆ Object นั้นมีสถานะเป็นแบบใด
State Increment Initial state Event Hours button2Pressed button1&2Pressed Blink Hours Transition button1Pressed Increment Minutes button2Pressed button1&2Pressed Blink Minutes button1Pressed Increment Seconds button2Pressed Blink Stop Seconds Blinking Final state button1&2Pressed State Diagram
Object คืออะไร? • วัตถุในโลกทั้งที่จับต้องได้ และจับต้องไม่ได้ • กิจกรรมที่เกิดขึ้นระหว่าง Object 2 ตัวขึ้นไปมาจาก 2 อย่างคือ • การมีความสัมพันธ์ (Relationship) • การมีปฏิสัมพันธ์ (Interaction)
ตัวอย่างสิ่งที่เกิดจาก objects • คนรับประทานอาหาร • Interaction : รับประทาน • Relationship : เป็นเจ้าของ • สุนัขเล่นกับแมว • Interaction : เล่น • Relationship : เป็นเพื่อน
ตัวอย่าง • นาย ก เปิดตู้เย็นยี่ห้อ A แล้วหยิบน้ำมาดื่ม • Objects • นาย ก • ตู้เย็นยี่ห้อ A • น้ำ • Relationships • นาย ก เป็นเจ้าของตู้เย็นยี่ห้อ A • น้ำอยู่ในตู้เย็นยี่ห้อ A
ตัวอย่าง • Interactions • นาย ก เปิดตู้เย็นยี่ห้อ A • นาย ก หยิบน้ำ • นาย ก ดื่มน้ำ
Relationship • ความเกี่ยวข้องหรือความสัมพันธ์ระหว่าง Object 2 ตัวขึ้นไป เช่น • ความเป็นแม่-ลูก • ความเป็นเจ้าของการมีอยู่
Interaction • ปฏิสัมพันธ์หรือการกระทำใด ๆ ที่เกิดขึ้นระหว่าง Objects 2 ตัวขึ้นไป เช่น • การสร้าง • การเปลี่ยนแปลง • การเล่น • การกระตุ้น
Domain • คือ กรอบของความสนใจที่มีต่อ object นั้น ๆ • ใน Domain หนึ่งสามารถมี Objects ได้ตั้งแต่ 2 ตัวขึ้นไปจนถึงนับไม่ถ้วน • Object ตัวหนึ่ง ๆ สามารถอยู่ได้ในหลาย ๆ Domain
Object Orientation คืออะไร? • หมายถึง การใช้ Object เป็นตัวหลักเพื่อพิจารณาความเป็นจริงต่าง ๆ ที่เกิดขึ้นในโลก
Concept • หมายถึง ความคิดรวบยอดที่เรามีให้กับวัตถุนั้น ๆ ภายในกรอบที่กำหนด
Class • กลุ่มของ Objects ที่ได้จากการให้ concept กับ object ต่าง ๆ ในกรอบที่กำหนด หรือเรียกอีกอย่างว่า Abstract Objects • เปรียบเสมือนแม่พิมพ์ (Template) ที่ใช้เพื่อสร้าง object • Class ถือเป็นนามธรรม (abstract) เราไม่สามารถทำให้ class ดำเนินกิจกรรมใด ๆ ได้เลย
Attributes & Functions • Attributes : คุณสมบัติที่ใช้บรรยาย object โดยคุณสมบัติเหล่านี้จะอยู่ใน domain ที่เราสนใจ • Functions : ความสามารถในการทำกิจกรรมของ object ที่มีไว้เพื่อให้ object อื่น ๆ ใน domain สามารถเรียกใช้หรือกระตุ้นให้เกิดได้
ตัวอย่าง • นาย ก เปิดเครื่องคอมพิวเตอร์ยี่ห้อ A • Objects • นาย ก • เครื่องคอมพิวเตอร์ยี่ห้อ A • Class • คน • เครื่องคอมพิวเตอร์
Abstraction & Instantiation • Abstraction : กระบวนการในการให้ concept กับ object จนเกิดเป็น class • Instantiation : กระบวนการของการทำให้เกิด object จาก class
Abstractions • แบ่งได้เป็น 4 กระบวนการย่อย ๆ คือ • Classification Abstraction • Aggregation Abstraction • Generalization Abstraction • Association Abstraction
Classification Abstraction • เป็นกระบวนการที่ใช้เพื่อแยกประเภท (Classify) object ต่าง ๆ ที่อยู่ใน domain และให้ concept กับ object ต่าง ๆ เหล่านั้น เพื่อให้ได้ class พื้นฐานที่ต้องการ • เป็น Abstraction ที่สำคัญที่สุด เพราะ class เกิดขึ้นด้วย Classification abstraction
Aggregation Abstraction • คือ กระบวนการที่นำเอา class พื้นฐาน มารวมกันหรือประกอบกัน เพื่อให้เกิดเป็น class ที่ใหญ่ขึ้นหรือซับซ้อนขึ้น
Generalization Abstraction • คือ กระบวนการในการนำ class ที่มีลักษณะเหมือนหรือคล้ายคลึงกัน หรือมีคุณสมบัติอย่างใดอย่างหนึ่งร่วมกันมาจัดหมวดหมู่ไว้เป็น class เดียวกัน • กระบวนการย้อนกลับของ Generalization คือ Specialization ซึ่ง Specialization คือการตอบคำถามว่าใน class หนึ่ง ๆ นั้นสามารถจำแนกเป็น class อะไรได้บ้าง
Association Abstraction • คือ กระบวนการในการสร้างความสัมพันธ์ระหว่าง class ต่าง ๆ ใน Problem Domain ที่เราสนใจ • ความสัมพันธ์ดังกล่าวคือ ความสัมพันธ์ที่ไม่สามารถอธิบายได้ด้วย Aggregation หรือ Generalization
Attributes & Functions • Attribute หมายถึง คุณสมบัติต่าง ๆ ที่ใช้บรรยาย object โดยคุณสมบัติเหล่านี้จะอยู่ใน domain ที่เราสนใจ • Function หมายถึง ความสามารถในการทำกิจกรรมของ object ที่มีไว้เพื่อให้ object อื่น ๆ ใน domain สามารถเรียกใช้หรือกระตุ้นให้เกิดได้
Object-Oriented Software Engineering • OOSE คือ การพัฒนาระบบคอมพิวเตอร์ด้วยหลักการ Object Orientation ประกอบด้วย 3 ขั้นตอนใหญ่คือ • Object-Oriented Analysis : OOA • Object-Oriented Design : OOD • Object-Oriented Implementation หรือ Object-Oriented Programming : OOP
Object-Oriented Analysis : OOA • เป็นขั้นตอนการวิเคราะห์เพื่อให้ทราบว่า Problem Domain คืออะไร • เพื่อทำความเข้าใจในรายละเอียดของปัญหาเหล่านั้น • เป็นการหาคำตอบให้กับคำถาม What is the problem to be solved?
Object-Oriented Design : OOD • เป็นขั้นตอนการออกแบบหรือจำลอง (Model) วิธีการเพื่อแก้ปัญหาใน Problem Domain • เป็นการหาคำตอบให้กับคำถาม How to solve the problem?
Object-Oriented Programming : OOP • เป็นขั้นตอนการสร้างหนทางแก้ปัญหาในรายละเอียดให้เกิดขึ้นและใช้งานได้จริง • เป็นการหาคำตอบให้กับคำถาม How to implement the solution?
Problem Domain • รถยนต์นั่ง TOYOTA • รถจักรยานยนต์ SUZUKI • รถโดยสาร 6 ล้อ VOLVO • เรือซีทรานส์ควีนส์ • หัวรถจักรไอน้ำ • รถจักรยาน BMX