ความสัมพันธ์ระหว่าง Class
ความสัมพันธ์ระหว่าง Class (Relationship) คือ ความสัมพันธ์ระหว่าง Class ที่ทำงานร่วมกัน สามารถจำแนกได้ดังนี้
- ความสัมพันธ์แบบพึ่งพา ( Dependency) เช่น “Class ลูกค้า” กับ “Class ขายสินค้า” กล่าวได้ว่า “Class ขายสินค้า” ขึ้นอยู่กับ “Class ลูกค้า” เพราะเมื่อลูกค้ามีการเปลี่ยนแปลงคำสั่งซื้อ
หรือคำสั่งผลิตรายการขายก็จะต้องถูกเปลี่ยนแปลง (Update) ตามลูกค้า
- ความสัมพันธ์แบบสืบทอดคุณสมบัติ (Inheritance) เช่น “Class แม่” (super class) สืบทอดคุณลักษณะเฉพาะที่ตนมีอยู่ไปยัง “Class ลูก” (sub class)
- ความสัมพันธ์แบบร่วมกัน (Association) คือความสัมพันธ์ที่เกี่ยวเนื่องมีความสัมพันธ์ซึ่งกันและกันเช่น “Class นักเรียน” สัมพันธ์กับ “Class รายวิชา” ในเรื่องของการลงทะเบียนเรียน
องค์ประกอบของ Class diagram
Class Name
|
Attribute
|
Methods
|
สัญลักษณ์ของ Class diagram
Man |
- Name
# Surname
- Age
|
+ Tell_Name
+ Tell_Age
|
ในการเขียนสัญลักษณ์แทน Class สิ่งที่ต้องคำนึงถึงอีกสิ่งหนึ่งคือระดับการเข้าถึงเรียกสัญลักษณ์ที่ใช้แทนการเข้าถึงนี้ว่า Visibility แบ่งออกได้เป็น 3 ประเภท ได้แก่
1 Private เขียนแทนด้วยสัญลักษณ์ - หมายถึง Attribute หรือ ฟังก์ชัน ที่ไม่สามารถมองเห็นได้จากภายนอก แต่สามารถมองเห็นได้จากภายในตัวของ Class เองเท่านั้น
2 Protect เขียนแทนด้วยสัญลักษณ์ # หมายถึง Attribute หรือ ฟังก์ชัน ที่สงวนไว้สำหรับการทำ Inheritance โดยเฉพาะ Attribute หรือ ฟังก์ชันเหล่านี้ จะเป็นของ Super class เมื่อ
ทำการ Inheritance แล้ว Attribute หรือ ฟังก์ชัน ที่มี Visibility แบบ Protect จะกลายไปเป็น Private Attribute/ฟังก์ชัน หรือ Protected ขึ้นอยู่กับภาษา Programming ที่นำไปใช้
3 Public เขียนแทนด้วยสัญลักษณ์ + หมายถึง Attribute หรือ ฟังก์ชัน ที่สามารถมองเห็นได้จากภายนอก และสามารถเข้าไปเปลี่ยนค่า อ่านค่าหรือเรียกใช้งาน Attribute หรือ ฟังก์ชัน
นั้นได้ทันทีโดยอิสระจากภายนอก (โดยทั่วไปแล้ว Visibility แบบ Public มักจะใช้กับฟังก์ชันมากกว่า Attribute)
- Association
- Aggregation
- Composition
- Generalization
Association
Aggregationเป็นความสัมพันธ์ระหว่าง Object หรือ Class แบบ “Whole-Part” หรือ “is part of” โดยจะมี Class ที่ใหญ่ที่สุดที่เป็น Object หลัก และมี Class อื่นเป็นส่วนประกอบ
Composition
เป็นความสัมพันธ์ระหว่าง Object หรือ Class แบบขึ้นต่อกันและมีความเกี่ยวข้องกันเสมอ โดยจะมี Class ซึ่งเป็นองค์ประกอบของ Class อื่นที่ใหญ่กว่า เมื่อ Class ที่ใหญ่กว่าถูกทำลาย Class ที่เป็นองค์ประกอบก็จะถูกทำลายไปด้วย
เป็นความสัมพันธ์ระหว่าง Object หรือ Class ในลักษณะของการสืบทอดคุณสมบัติจาก Class หนึ่ง (Super class) ไปยังอีก Class หนึ่ง (Subclass)
Generalization
Specialization
คือกระบวนการที่ตรงกันข้ามกับ กระบวนการ Generalization Abstraction กล่าวคือ ถ้าต้องการสร้าง Class ใหม่ โดยอาศัย Concept ของ Class เก่าบางส่วน และเพิ่มเติมใหม่บางส่วนจนเกิดเป็น Class ใหม่
-
|
You can learn how to draw class diagrams in-depth from this Class Diagram Tutorial .There are tools and templates available to draw class diagrams with 100s of examples to be used freely. You can create UML class diagrams with Creately online diagramming and collaboration software.
ตอบลบ