Association Abstraction SCC : Suthida Chaichomchuen std@kmitnb.ac.th
Objectives สามารถแสดงความสัมพันธ์ระหว่าง class ต่าง ๆ ใน problem domain โดยใช้ Association Abstraction ได้ สามารถใส่ cardinality ของความสัมพันธ์ในเชิง association ได้
Association เป็นการแสดงความสัมพันธ์ระหว่าง class mที่มีความสัมพันธ์แบบเกี่ยวพันกัน
Cardinality ใน Association Abstraction Cardinality คือ ตัวเลขที่ใช้แสดงจำนวนของสมาชิกที่สามารถมีได้ใน class หนึ่ง ๆ ที่มีส่วนร่วมใน association
ตัวอย่าง 1 “ผู้ชายมีภรรยาได้เพียง 1 คน หรือไม่มีเลยก็ได้ ในขณะเดียวกัน ผู้หญิงก็มีสามีได้เพียง 1 คน หรือไม่มีเลยก็ได้”
ตย 1 : สรุป cardinality ของความสัมพันธ์ Class ผู้ชาย Min-Card = 0 Max-Card = 1 Class ผู้หญิง
ตัวอย่าง 2 “แม่สามารถมีลูกได้ตั้งแต่ 0 คนถึงกี่คนก็ได้ ในทางกลับกันลูก 1 คน มีแม่ได้เพียงคนเดียว”
ตย 2 : สรุป cardinality ของแม่และลูก Class แม่ Min-Card = 1 (เพราะลูกมีแม่ได้คนเดียว) Max-Card = 1 (เพราะลูกมีแม่ได้คนเดียว) Class ลูก Min-Card = 0 (ไม่มีลูกเลย) Max-Card = N
ตัวอย่าง 3 “ในหนึ่งภาคการศึกษา นักเรียนคนหนึ่งสามารถเรียนวิชาเรียน กี่วิชาก็ได้ (อย่างน้อยที่สุด 1 วิชา) ในขณะที่วิชาหนึ่ง ๆ สามารถมีนักเรียนมาเรียนที่คนก็ได้ (ในบางวิชาอาจไม่มีนักเรียนลงทะเบียนเรียนเลยก็ได้)”
หลักการเขียน Diagram แสดง Association ใช้สัญลักษณ์แสดงด้วย เส้นตรง ลากเชื่อมระหว่าง class ที่มีความสัมพันธ์กัน ต้องมีชื่อ association กำกับด้วยเสมอ ต้องใส่ cardinality กำกับที่ปลายทางเสมอ
Association Abstraction ของ class แม่-ลูก ขั้นตอนที่ 1 : เขียน class 2 class ที่มีความสัมพันธ์และลากเส้นตรงใส่ชื่อแสดงความสัมพันธ์ แม่ ลูก มี
ขั้นตอนที่ 2 ขั้นตอนที่ 2 : เขียนลูกศรเพื่อแสดงทิศทางของการอ่านความสัมพันธ์ให้ถูกต้อง แม่ ลูก มี
ขั้นตอนที่ 3 ขั้นตอนที่ 3 : พิจารณา class ที่อยู่ติดกับหัวลูกศรว่ามีความสัมพันธ์กับ class แรกด้วย min-card และ max-card เป็นเท่าใด แม่ ลูก มี 0..n
ขั้นตอนที่ 4 ขั้นตอนที่ 4 : พิจารณา class ที่อยู่ติดกับหัวลูกศรว่ามีความสัมพันธ์กับ class แรกด้วย min-card และ max-card เป็นเท่าใด จนกระทั่งได้ภาพที่สมบูรณ์ แม่ ลูก มี 0..n 1..1