Page 34 - วิศวกรรมซอฟต์แวร์
P. 34
7-24 วิศวกรรมซอฟต์แวร์
จากภาพท่ี 7.10 แสดงให้เห็นการสืบทอดคุณสมบัติของคลาส โดยคลาสท่ีเป็นผู้ให้การสืบทอดหรือคลาสแม่
คือ คลาสบุคลากร ส่วนคลาสที่เป็นผู้รับการสืบทอดหรือคลาสลูก คือ คลาสเจ้าหน้าที่และคลาสอาจารย์ ซึ่งทั้งสอง
คลาสน้ีต่างก็เป็นบุคลากรประเภทหน่ึงเหมือนกัน
2. การเป็นสว่ นหนึ่งของ
การเป็นส่วนหนึ่งของ (aggregation) คือ กระบวนการท่ีน�ำเอาคลาสพื้นฐานที่สร้างขึ้นจากการจ�ำแนกคลาส
นามธรรม มารวมกัน หรือประกอบกัน เพ่ือให้เกิดคลาสท่ีใหญ่ขึ้น หรือซับซ้อนข้ึน หรือมองว่า ความสัมพันธ์แบบการ
เป็นส่วนหน่ึงของ หมายถึง การตอบค�ำถามว่า ในคลาสกลุ่มหนึ่งน้ัน สามารถท่ีจะน�ำมารวมกันเพ่ือท�ำให้เกิดคลาสใหม่
ท่ีมีคอนเซ็บต์ใหม่ได้หรือไม่ อย่างไร โดยพยายามพิจารณาว่า มีคลาสใดเป็นส่วนประกอบของคลาสอ่ืนหรือไม่ เป็น
รปู แบบความสมั พนั ธแ์ บบการเปน็ สว่ นหนง่ึ ของ (is-part-of) เชน่ คลาสหอ้ งเรยี น อาจจะมสี ว่ นประกอบตา่ ง ๆ หลาย ๆ
คลาส เช่น คลาสกระดานด�ำ คลาสเก้าอ้ี คลาสโต๊ะ คลาสนักเรียน คลาสครูผู้สอน และสังเกตว่าถ้าน�ำคลาสท่ีเป็นส่วน
ประกอบเหล่านี้ออกไปจากคลาสห้องเรียน ก็ไม่ท�ำให้คุณสมบัติของความเป็นห้องเรียนนั้นหายไปแต่อย่างใด ดังน้ัน
ความสัมพันธ์ในลักษณะ “การเป็นส่วนหนึ่งของ” จึงหมายถึง การที่คลาสใด ๆ เป็นส่วนประกอบย่อยของคลาสหลัก
และถึงแม้ว่าจะไม่มีคลาสย่อยเหล่าน้ีก็ไม่ท�ำให้คุณสมบัติของความเป็นคลาสหลักสูญเสียไปแต่อย่างใด ในทาง
การออกแบบเชิงวัตถุ เรียกคลาสย่อยว่าเป็น “ส่วนประกอบ (component)”
โดยทั่วไปสามารถแบ่งลักษณะของส่วนประกอบ เป็น 2 ประเภท ได้แก่
1) สว่ นประกอบทจ่ี ำ� เปน็ ตอ้ งมี (required component หรอื mandatory component) เช่น คลาสปกหนังสือ
เป็นส่วนประกอบที่จ�ำเป็นต้องมีของคลาสหนังสือ ซ่ึงเป็นคลาสหลัก
2) ส่วนประกอบที่ไม่จ�ำเป็นต้องมีก็ได้ (optional component) เช่น คลาสถุงลมนิรภัย เป็นส่วนประกอบ
ที่ไม่จ�ำเป็นต้องมีก็ได้ของคลาสรถยนต์ ซึ่งเป็นคลาสหลัก
สามารถแทนความสมั พันธใ์ นลกั ษณะนี้ด้วยเส้นตรงที่ลากจากคลาสท่ีเป็นสว่ นประกอบไปหาคลาสหลกั ทเ่ี ป็น
เจ้าของส่วนประกอบ โดยปลายเส้นตรงใช้รูปส่ีเหล่ียมข้าวหลามตัดสีขาว เช่น ปกหนังสือเป็นส่วนประกอบหน่ึงของ
หนังสือ แสดงการเขียนสัญลักษณ์ได้ดังภาพที่ 7.11
หนังสือ ปกหนังสือ
ภาพท่ี 7.11 ตวั อยา่ งความสัมพันธร์ ะหวา่ งคลาสแบบการเป็นสว่ นหนงึ่ ของ
การสร้างความสัมพันธ์ในรูปแบบของ “การเป็นส่วนหน่ึงของ” ต้องมีการระบุจ�ำนวนในความสัมพันธ์ระหว่าง
คลาสหลักและคลาสท่ีเป็นส่วนประกอบ เรียกว่า “มัลติพลิซิตี้ (multiplicity)” เช่น จากตัวอย่างในภาพท่ี 7.11
จะพบว่า หนังสือ (คลาสหลัก) ประกอบด้วย ปกหนังสือ (คลาสส่วนประกอบ) จ�ำนวน 2 ปก คือ ปกหน้าและปกหลัง
ดังน้ัน สามารถระบุค่ามัลติพลิซิต้ี ได้ดังภาพที่ 7.12
หนังสือ 2..2 ปกหนังสือ
ภาพท่ี 7.12 การระบคุ ่าจำ�นวนในความสมั พันธ์ระหวา่ งคลาสแบบการเป็นส่วนหน่ึงของ