The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by สุรีรัตน์ บุญชด, 2022-12-13 23:17:29

UML_4

UML_4

Chapter 4
Aggregation Abstraction

จดุ ประสงค์

1. เพ่ือให้นักศึกษาได้เข้าใจเหตุผล และวิธีการในการรวมและแยกองค์ประกอบ
ของ Class โดยใช้หลกั การ Aggregation Abstraction

2. เพอ่ื ให้นักศึกษาสามารถระบุความสัมพนั ธ์ในเชิง Aggregation ของ Class ได้

4.1 การรวม Class และแยกองค์ประกอบของ Class ด้วย Aggregation Abstraction

พจิ ารณาจากสภาพความเป็ นจริงในโลกนี้ จะพบว่ามีวัตถุหลายๆ ชนิดใน
โลกท่ีเกดิ จากการรวมตัวของวัตถุอื่นๆ เช่น คนเกิดจากการรวมกันของ ลาตัว แขน
ขา หัว เป็ นต้น หรือคอมพิวเตอร์เกดิ จากการรวมตัวกนั ของ Main Board, RAM,
ROM, Disk Drive, Case หรือแม้แต่โลกของเรากเ็ กดิ จากการรวมตัวกนั ของ ดนิ น้า
อากาศ และแร่ธาตุต่างๆ เป็ นต้น หรือในทางกลบั กนั เราสามารถบอกหรือสรุปได้ว่า
วัตถุช้ินหน่ึงสามารถแยกออกเป็ นวัตถุชิ้นย่อยๆ ได้ ซึ่งส่ิงที่แบ่งออกนั้นมี Concept
ทแ่ี ตกต่างจากเดมิ เช่น หนังสือสามารถแบ่งแยกออกเป็ น หน้าปก และหน้าหนังสือ
หรือคณะรัฐมนตรี แบ่งออกเป็ นฝ่ ายค้าน และฝ่ ายรัฐบาล หรือบทเพลงสามารถ
แบ่งแยกออกเป็ นเนื้อร้อง และทานอง เป็ นต้น

เราสามารถกล่าวให้เข้ากบั เนื้อหาของ Object Orientation ได้ว่า Class
บาง Class ในโลก (Real World) น้ัน สามารถแยกหรือแบ่ง (Decompose)
ออกเป็ น Class ย่อยๆ ได้ ซ่ึงแต่ละ class ย่อยๆ น้ันมี Concept ที่แตกต่างกัน
ออกไปได้ หลายๆ Class ในขณะเดียวกัน Class หลายๆ Class ที่มี Concept
แตกต่างกนั เม่ือนามารวมกนั (Compose) ก็สามารถที่จะสร้าง Class ใหม่ซ่ึงมี
Concept ใหม่ได้เช่นเดยี วกนั

ตวั อย่าง “ห้องเรียนประกอบไปด้วย กระดานดา 1 กระดาน มีเก้าอ้ีและโต๊ะจานวน
หน่ึง มีนักเรียนและผ้สู อน”

จากข้อความน้ี สามารถสรุปได้ว่า Class กระดานดา Class โต๊ะ Class เก้าอี้
Class นักเรียน และ Class ผ้สู อนทงั้ หมด เมื่อนามารวมกนั จะได้ Concept ใหม่ หรือ
กล่าวได้ว่าเราจะได้ Class ใหม่คอื Class ห้องเรียน (มองในเชิง Composition) ดงั รูป

หอ้ งเรียน

กระดานดา เกา้ อ้ี โตะ๊ นกั เรียน ครูผสู้ อน

แสดง การรวมกนั ของ Class ต่างๆ เพ่ือให้เกิด Class ห้องเรียน

แต่ถ้ามองในทางกลับกัน สามารถสรุปได้เช่นกันว่า Class ห้องเรียนน้ัน
สามารถถูกแยกแยะออกได้เป็ น Class กระดานดา Class โต๊ะ Class เก้าอ้ี Class
นักเรียน และ Class ผ้สู อน (มองในเชิง Decomposition) ดงั รูปต่อไปนี้

หอ้ งเรียน

กระดานดา เกา้ อ้ี โตะ๊ นกั เรียน ครูผสู้ อน

รูป การแยกองค์ประกอบของ Class ห้องเรียนเป็น Class ต่างๆ

จากหลักการท่ีว่า Class สามารถถูกแบ่งย่อยออกเป็ น Class ย่อยๆ ท่ีมี
Concept ต่างกัน หรือในทางตรงกันข้าม Class ย่อยๆ สามารถนามารวมกันเพ่ือ
สร้าง Class ใหม่ทใ่ี หญ่ขึ้นนี้เอง เป็ นทมี่ าของ Abstraction อีกชนิดหนึ่ง ที่เรียกว่า
Aggregation Abstraction (Aggregation หมายถึง รวม) คือ การพยายามตอบ
คาถามทวี่ ่า มี Class ใดเป็ นส่วนประกอบ (is part of) ของ Class อ่ืนหรือไม่ และที่
สาคัญ “การประกอบกนั ของ Class ต้องทาให้เกดิ Class ใหม่ ซ่ึงมี Concept ใหม่
เสมอ”

ในทาง Object Orientation นั้น การแสดงสัญลักษณ์เพื่อแสดง
Aggregation Abstraction ของ Class น้ันทาได้โดยการโยงลกู ศรซึ่งหัวลูกศรเป็ น
ส่ีเหลีย่ มขนมเปี ยกปนู จาก Class ย่อยหรือ Class ที่เป็ นส่วนประกอบ (Composit
Class) ไปยงั Class หลกั (Main Class) ดงั รูป

หอ้ งเรียน

กระดานดา เกา้ อ้ี โตะ๊ นกั เรียน ครูผสู้ อน
แสดง Aggregation ของ Classroom

การรวมกนั ของ Class ใน Aggregation นั้น อาจเกดิ กรณีท่ี Class หน่ึง
สามารถเป็ น Class ย่อยของ Class หน่ึง พร้อมทั้งเป็ น Class ย่อยของอกี Class
หนึ่งกไ็ ด้ หรือกล่าวอีกนัยหน่ึงคอื Class หน่ึง Class อาจเป็ น Class ย่อยของ Class
หลกั มากกว่าหน่ึง Class กไ็ ด้ (Advanced Aggregation Abstraction) ดงั รูป

เรือยนต์ รถเก๋ง

หางเสือ เคร่ืองยนต์ ประตู ลอ้ เครื่องเสียง

แสดง Advanced Aggregation abstraction

จากรูปที่ผ่านมา จะเห็นได้ว่า Class รถเก๋งนั้นประกอบขึ้นด้วย
เคร่ืองยนต์ ประตู ล้อ และเครื่องเสียง แต่ในขณะเดียวกัน เรือยนต์ ซ่ึงเป็ นอีก
Class หนึ่ง ซ่ึงมี Concept ต่างจากรถเก๋งโดยส้ินเชิง แต่ก็มีเครื่องยนต์เป็ น
ส่วนประกอบด้วย ซ่ึงเครื่องยนต์ที่เป็ นส่วนประกอบของรถเก๋งและเรือยนต์นั้น
ต่างกม็ ี Concept แบบเดียวกนั ทั้งสิ้น ถงึ แม้จะมคี วามแตกต่างกนั ในเร่ืองขนาดของ
เครื่อง หรือกาลังของเคร่ืองก็ตาม แต่อย่างไรก็ตามยังจัดว่าเกิดจาก Concept
เดยี วกนั หรือเป็ น Class เดยี วกนั

4.2 Cardinality, Required Components และ Optional Components

สาหรับ Aggregation Abstraction การประกอบกันของ Class หรือ
ความสัมพนั ธ์ในเชิง is part of นั้น อาจจะเกิดกรณีที่ Class หลัก (Main Class)
ประกอบไปด้วย Class ย่อย (Composit Class) ชนิดทห่ี น่ึง เพยี ง 1 ช้ิน แต่ประกอบ
ไปด้วย Class ย่อยชนิดท่ีสอง จานวน 4 ชิ้นขึ้นไป และอาจจะประกอบด้วย Class
ย่อยทสี่ าม จานวนไม่จากัด หรืออาจจะไม่ต้องมีกไ็ ด้ ซ่ึงสิ่งท่ีใช้ในการแสดงจานวน
ในความสัมพันธ์ (Relationship) ดังกล่าวน้ี เรียกว่า Cardinality (Cardinality
หมายถงึ จานวนของสมาชิกในเซ็ต)

ในทาง Object Orientation มักจะเรียก Class ย่อยว่า Component

ตัวอย่าง จาก Aggregation Abstraction ของรถเก๋ง ดงั รูป
รถเก๋ง

เคร่ืองยนต์ ประตู ลอ้ เครื่องปรับอากาศ

Mandatory Mandatory Mandatory Optional

รูป Aggregation ของรถเก๋ง

เม่ือพจิ ารณาจากรูป จะพบความสัมพนั ธ์ในเชิง Aggregation จากหลักของความเป็ นจริง
คือ ประตู ล้อ เคร่ืองยนต์ และเครื่องปรับอากาศเป็ นส่วนหน่ึงของรถเก๋ง ซึ่งรถเก๋งจะประกอบด้วย
ล้อ 4 ล้อ ประตูอย่างน้อย 2 ประตู อย่างมาก 4 ประตู เคร่ืองยนต์ 1 เครื่อง (เสมอ) และอาจจะมี
หรือไม่มีเคร่ืองปรับอากาศก็ได้ เรียกเครื่องยนต์ว่าเป็ น “Required Component หรือ Mandatory
Component (ส่วนประกอบท่ีจาเป็ นต้องมี)” ของรถยนต์ ในขณะท่ีเรียกเคร่ืองปรับอากาศเป็ น
“Optional Component (ส่วนประกอบทไี่ ม่จาเป็ นต้องมีกไ็ ด้)” ของรถยนต์

จากน้ันเรานาส่ิงทีเ่ ป็ น Mandatory กบั Optional Components มาพจิ ารณา
ว่าแต่ละอย่างมีจานวนเท่าไหร่ โดยดูจากจานวนน้อยท่ีสุดไปจนถึงจานวนที่มาก
ทส่ี ุด และเรียกว่า Minimum Cardinality (Min-Card) และ Maximum Cardinality
(Max-Card) ตามลาดบั ซ่ึงจะได้รูปแบบ (Min-Card..Max-Card)

พจิ ารณารูปเดมิ อีกคร้ัง

รถเก๋ง

1..1 2..4 4..4 0..1

เครื่องยนต์ ประตู ลอ้ เคร่ืองปรับอากาศ

ตัวอย่าง Aggregation ของ Class หนังสือ ตามทกี่ าหนดใน Problem Domain มีดงั นี้

1. หนังสือ -> เกิดจากการรวมกันของหน้าปก คานา สารบัญ บทของเนื้อหา และ
บรรณานุกรม

2. บทของเน้ือหา -> เกดิ จากการรวมกนั ของหน้าหนังสือ
3. หน้าหนังสือ -> เกดิ จากการรวมกนั ของตัวหนังสือและรูปภาพ

หนงั สือ

2..2 1..1 1..n 1..n 1..1
สารบญั บทของเน้ือหา บรรณานุกรม
ปก คานา

จากข้อ 1 จะได้ภาพของ Aggregation Abstraction ของหนังสือ

จากข้อ 2 จะได้ภาพ Aggregation Abstraction บทของเน้ือหา
บทของเน้ือหา

1..n

หนา้ หนงั สือ

จากข้อ 3 จะได้ภาพ Aggregation Abstraction หน้าหนังสือ

หนา้ หนงั สือ

0..n 0..n

ตวั หนงั สือ รูปภาพ

จาก Aggregation ทส่ี ร้างจากท้ัง 3 ข้อ เมอื่ นามารวมกนั จะได้ภาพของ
Aggregation ในภาพรวมของทกุ ๆ Class ดงั รูป

หนงั สือ

2..2 1..1 1..n 1..n 1..1
สารบญั บทของเน้ือหา บรรณานุกรม
ปก คานา

1..n

หนา้ หนงั สือ

0..n 0..n

ตวั หนงั สือ รูปภาพ

2..2 1..1 หนงั สือ 1..n 1..1

ปกหนงั สือ คานา -รหสั หนงั สือ บทของเน้ือหา บรรณานุกรม
+ชื่อหนงั สือ -เน้ือหาแตล่ ะบท -เน้ือความ
-ประเภทของปก -เน้ือความ +อ่าน +อา่ น +พลิก
-ชื่อผแู้ ต่ง +พิมพ์ +อ่าน
+พลิก 1..n
+อ่าน +พลิก 1..n 0..n
+อา่ น หนา้ หนงั สือ
สารบญั -เน้ือหาแตล่ ะหนา้ รูปภาพ
-เน้ือความ +พลิก +ภาพ
+อา่ น +ดู
-ประเภทของสารบญั

+พลิก
+อ่าน

เมื่อมีการกาหนด Attributes และ 0..n
Functions ซ่ึงเป็ นคณุ สมบัติประจาตัว
ของ Class จะได้ดงั รูป ตวั หนงั สือ

-อกั ขระ

-สะกด

คาถามท้ายบท

จาก Problem Domain ต่อไปนี้ จงเขียน
แผนภาพเพอ่ื แสดง Aggregation Abstraction โดยให้ใส่
Attributes และ Functions ของ Class ต่างๆ

Problem Domain 1

ห้องนอนของโรงแรมแห่งหน่ึง ประกอบด้วยเฟอร์นิเจอร์หลายช้ิน ได้แก่
เตียงนอนจานวน 1 เตียง หรือ 2 เตียง ซึ่งประกอบด้วย ตัวเตยี ง และท่ีนอนอย่างละ
ช้ิน บางห้องอาจจะมเี ครื่องปรับอากาศ (ซึ่งมีได้อย่างมากเพยี ง 1 เครื่องเท่าน้ัน) บาง
ห้องมีพัดลมติดเพดาน (ซ่ึงมีได้อย่างมากเพียง 2 เครื่องเท่าน้ัน) ขึ้นอย่กู ับราคาของ
ห้อง แต่ละห้องจะมีทีวีหนึ่งเคร่ือง วิทยุหนึ่งเครื่อง บางห้องจะมีระเบียงชมวิว
ในขณะทบ่ี างห้องไม่มี

Problem Domain 2

ในประเทศหนึ่งมีข้อกาหนดว่า บุคลากรในโรงพยาบาลหนึ่ง จะต้อง
ประกอบไปด้วย แพทย์อย่างน้อย 2 คน พยาบาลอย่างน้อย 5 คน มีผู้อานวยการ
หนึ่งคน ในขณะที่จะมีคณะผู้บริหารหรือไม่ก็ได้ นอกจากน้ีอาจมีบุคลากรด้าน
อ่ืนๆ ด้วยหรือไม่ก็ได้ ซ่ึงได้แก่ นักโภชนาการ พนักงานผดุงครรภ์ และเภสัชกร
นอกจากน้ีโรงพยาบาลอาจจะมีนักกฎหมายประจาโรงพยาบาลกไ็ ด้ แต่มไี ด้อย่าง

มากเพยี ง 1 คนเท่าน้ัน


Click to View FlipBook Version