Page 35 - วิศวกรรมซอฟต์แวร์
P. 35
การออกแบบซอฟต์แวร์เชิงวัตถุ 7-25
3. การเปน็ องคป์ ระกอบของ
การเป็นองค์ประกอบของ (composition) ความสัมพันธ์ในลักษณะน้ีจะคล้าย ๆ กับความสัมพันธ์แบบการ
เป็นส่วนหน่ึงของ (aggregation) คือ คลาสย่อยเป็นส่วนหน่ึงของคลาสหลัก แต่ต่างกันตรงท่ีส่วนประกอบย่อยนี้
จะไม่สามารถถูกน�ำออกจากส่วนประกอบหลักได้ เพราะถ้าน�ำส่วนประกอบย่อยออกไปแล้วส่วนประกอบหลักจะ
สูญเสียคุณสมบัติของความเป็นคลาสนั้น ๆ ไป จัดเป็นส่วนประกอบท่ีไม่อาจขาดได้
เช่น คลาสเม้าส์แบบลูกกล้ิง จะมีคลาสลูกกล้ิงเม้าส์เป็นส่วนประกอบย่อย โดยท่ีเป็นส่วนประกอบที่ไม่อาจ
ขาดได้ เพราะถ้าเม้าส์ไม่มีลูกกล้ิงก็ไม่สามารถจะท�ำงานได้ตามคุณสมบัติของเม้าส์ เรียกรูปแบบความสัมพันธ์ใน
ลักษณะแบบนี้ว่า “การเป็นส่วนหน่ึงของ (is-part-of)” เช่นเดียวกับความสัมพันธ์แบบการเป็นส่วนหนึ่งของ (aggre-
gation) แต่เป็นส่วนหนึ่งที่ไม่อาจจะแยกออกจากคลาสหลักได้ สามารถแทนความสัมพันธ์ในลักษณะน้ีด้วยเส้นตรง
ท่ีลากจากคลาสท่ีเป็นองค์ประกอบไปหาคลาสหลักท่ีเป็นเจ้าขององค์ประกอบ โดยปลายเส้นตรงใช้รูปสี่เหลี่ยม
ข้าวหลามตัดสีด�ำ แสดงตัวอย่างความสัมพันธ์แบบการเป็นองค์ประกอบของ ระหว่างคลาสเม้าส์แบบลูกกลิ้งกับคลาส
ลูกกล้ิงเม้าส์ ดังภาพท่ี 7.13
เม้าส์แบบลูกกลิ้ง 1..1 ลูกกลิ้งเม้าส์
ภาพท่ี 7.13 ตัวอยา่ งความสมั พันธ์แบบการเป็นองคป์ ระกอบของ
4. ความเก่ยี วขอ้ งกัน
ความเกี่ยวข้องกัน (association) เป็นความสัมพันธ์ระหว่างคลาสต่าง ๆ ในขอบเขตของปัญหาที่สนใจ
จัดเป็นความสัมพันธ์ท่ีอยู่บนระนาบเดียวกัน คือ วัตถุสองสิ่งที่มีความสัมพันธ์กันโดยมีความส�ำคัญเท่าเทียมกัน ไม่ใช่
องค์ประกอบของกัน เป็นความสัมพันธ์ที่ไม่สามารถอธิบายได้ด้วยความสัมพันธ์แบบการเป็นส่วนหน่ึงของ (aggre-
gation) ซง่ึ เป็นความสมั พนั ธใ์ นเชงิ การรวมกนั การประกอบกนั หรือการแบ่งแยกส่วนประกอบ และความสมั พันธ์แบบ
การระบุคุณลักษณะท่ัวไป (generalization) ซ่ึงเป็นความสัมพันธ์ในเชิงการจัดประเภทจัดหมวดหมู่ หรือการจ�ำแนก
ความสัมพันธ์แบบน้ีเป็นความสัมพันธ์ส่วนใหญ่ของคลาสต่าง ๆ ในระบบ
ตัวอย่างความสัมพันธ์ในลักษณะความเก่ียวข้องกันน้ี เช่น
ลูกค้าซื้อสินค้า เป็นความสัมพันธ์แบบเกี่ยวข้องกันระหว่างคลาสลูกค้ากับคลาสสินค้า ซ่ึงมีความเก่ียวข้อง
กัน คือ ซื้อ
นกั ศกึ ษาลงทะเบยี นรายวชิ าเรยี น เปน็ ความสมั พนั ธแ์ บบเกยี่ วขอ้ งกนั ระหวา่ งคลาสนกั ศกึ ษากบั คลาสรายวชิ า
เรียน ซ่ึงมีความเก่ียวข้องกัน คือ ลงทะเบียน
ในการสรา้ งความสมั พนั ธใ์ นรปู แบบความเกย่ี วขอ้ งกนั น้ี ตอ้ งมกี ารระบจุ �ำนวนทเี่ ปน็ ไปไดข้ องสมาชกิ ในคลาส
หน่ึง ๆ ท่ีมีส่วนร่วมในความเกี่ยวข้องน้ัน เรียกค่าของจ�ำนวนสมาชิกของคลาสที่เป็นไปได้ในความเก่ียวข้องน้ันว่า
“มัลติพลิซิตี้ (multiplicity)” โดยเรียกจ�ำนวนที่น้อยที่สุดของสมาชิกของคลาสที่มีส่วนร่วมในความเก่ียวข้องน้ันว่า
“มินิม่ัมมัลติพลิซิต้ี (minimum multiplicity)” หรือเรียกย่อว่า มิน (min) และเรียกจ�ำนวนที่มากท่ีสุดของสมาชิก
ของคลาสท่ีมีส่วนร่วมในความเกี่ยวข้องนั้นว่า “แม็กซิม่ัมมัลติพลิซิต้ี (maximum multiplicity)” หรือเรียกย่อว่า
แม็กซ์ (max)