การวิเคราะห์และออกแบบระบบเชิงวัตถุ (OOAD)

Report
Association Abstraction
อ.วิวฒ
ั น์ ชินนาทศิริกุล
วัตถุประสงค์
1. เพื่อให้สามารถสร้างความสัมพันธ์ระหว่าง class ต่าง ๆ ใน problem
domain โดยใช้ Association Abstraction ได้
2. เพื่อให้สามารถใส่ Cardinality ของความสัมพันธ์ในเชิง Association
ได้ถกู ต้อง
Relationship (ความสัมพันธ์)

ความสัมพันธ์ ต่าง ๆ ในชีวิตประจาวัน
 แม่มีลก
ู
 สามีรก
ั ภรรยา
 นายกบริหารประเทศ
 ปากกาอยูบ
่ นโต๊ะทางาน
 นั กเรียนลงทะเบียนเรียน


สามารถจัดเอาความสัมพันธ์แบบ Aggregation เป็ นความสัมพันธ์แบบ
“is related to” ได้เช่นกัน เพราะการเป็ นส่วนประกอบ หรือ การมี
ส่วนประกอบ ก็คือ ความสัมพันธ์เป็ นเจ้าของ ( has a )นัน่ เอง
จากหลักการที่วา่ Class ต่างๆใน Domain สามารถมีความสัมพันธ์กนั
ได้ เป็ นที่มาของ Abstraction ที่เรียกว่า Association Abstraction
Cardinary ใน Association Abstraction

Cardinary
หมายถึง
จานวนสมาชิกหรือตัวเลขที่ใช้แสดงจานวนสมาชิก ที่สามารถมีได้ใน
Class หนึ่ งๆ ที่มีส่วนร่วมใน Association
ตัวอย่าง

ผูช้ ายมีภรรยาได้เพียง 1 คน หรือไม่มีเลย ในขณะเดียวกันผูห้ ญิงก็มีสามีได้
เพียงคนเดียวหรือไม่มีเลย
Cardinary ของความสัมพันธ์ได้แก่
Class
Min Card
Max Card
ผูช้ าย
0
1
ผูห้ ญิง
0
1

แม่สามารถมีลกู ได้ต้งั แต่ 0 คน ถึงกี่คนก็ได้ ในทางกลับกันลูก 1 คนมีแม่
ได้เพียงคนเดียว
Cardinary ของความสัมพันธ์ได้แก่
Class
Min Card
Max Card
แม่
1
1
ลูก
0
N
หลักการเขียน Diagram แสดง Association

ในการเขียนภาพเพื่อแสดง Association นั้น มีหลักการเขียนดังนี้
- ลากเส้นตรงเชื่อม Class โดยมีชื่อ Association กากับที่เส้น
- มีลกู ศร แสดงเส้นทางในการอ่านความสัมพันธ์
- กาหนด min card และ max card กากับที่ปลายเส้นตรงที่ติดกับ
Class
ตัวอย่าง Association Abstraction แสดงความสัมพันธ์ของแม่มีลกู
มี
1
ลูก
แม่
มี
2
ลูก
แม่
มี
3
ลูก
แม่
1..1
4
มี
ลูก
แม่
1..1
5
0..n
แม่
มี
0..n
ลูก
ตัวอย่าง Association ของผูช้ ายแต่งงานกับผูห้ ญิง
0..1
แต่งงาน
0..1
ผูห้ ญิง
ผูช้ าย
ตัวอย่าง Association ของนักศึกษาลงทะเบียนรายวิชา
0..n
นักศึกษา
ลงทะเบียน
1..n
วิชา
ตัวอย่าง จงเขียน Association Abstraction แสดง
ความสัมพันธ์ของคลาส เมื่อกาหนด Problem Domain
ดังนี้

นักศึกษา สามารถไม่ลงทะเบียนเรียน หรือลงทะเบียนเรียนได้หลาย
วิชา และในแต่ละรายวิชา อาจไม่มีนักศึกษาลงทะเบียนเลย หรื อมี
นักศึกษาลงทะเบียนได้หลายคน และอาจารย์ อาจไม่มีวิชาสอน หรือ
สอนได้หลายรายวิชา อาจารย์สอนนักศึกษาตั้งแต่ 1 คนขึ้ นไป และ
นักศึกษาเรียนกับอาจารย์ต้งั แต่ 1 คนขึ้ นไป
Association Abstraction แสดงความสัมพันธ์
ระหว่าง นักเรียน – วิชาเรียน – อาจารย์ผสู ้ อน
0..n
0..n
นักเรียน
ลงทะเบียนเรียน
วิชาเรียน
0..n
1..n
สอน
สอน
1..n
1..n
อาจารย์ผสู ้ อน
ตัวอย่าง จงเขียน Association Abstraction แสดง
ความสัมพันธ์ของคลาส เมื่อกาหนด Problem Domain
ดังนี้

บริษัทแห่งหนึ่ ง มีประธานบริษัท 1 คนทาหน้าที่บริหารงาน และประธานทา
หน้าที่ออกนโยบาย เพื่อใช้บริหารงานได้หลายนโยบาย หรือไม่ออกนโยบายเลย
หัวหน้าแผนกรับนโยบายไปปฏิบัติ โดยที่นโยบายหนึ่ งๆอาจถูกนาไปปฏิ บัติโดย
หัวหน้าแผนกได้หลายๆคน ขณะที่หวั หน้าแผนกแต่ละคนสามารถรับนโยบายได้
หลายๆนโยบาย หน้าที่ของหัวหน้าแผนกคือการบริหารงานในแผนกของตนเพีย ง
1 แผนกเท่านั้ น หัวหน้าแผนกจะจัดทาแผนกี่แผนก็ได้เพื่อกาหนดนโยบายการ
ทางานภายในแผนก แต่ละแผนกจะถูกแบ่งเป็ นชิ้ นงานย่อยๆตั้งแต่ 1 ชิ้ นงานขึ้ นไป
โดยแต่ละชิ้ นงานอาจถูกปฏิบัติดว้ ยเจ้าหน้าที่ กี่คนก็ ได้ และเจ้า หน้าที่ แต่ละคน
สามารถไม่ปฏิบตั ิ หรือปฏิบตั ิงานกี่ชนก็
ิ้ ได้
Association Diagram ที่ได้
บริษัท
แผนก
1..1
1..1
บริหาร
บริหาร
1..1
1..1
ประธานบริษัท
หัวหน้าแผนก
เจ้าหน้าที่
0..n
1..1
ปฏิบตั ิ
1..1
ออก
0..n
จัดทา
ปฏิบตั ิงาน
0..n
0..n
0..n
0..n
1..1
นโยบาย
แผนกงาน
1..n
ชิ้ นงาน
ตัวอย่าง การใช้ Abstraction ทั้ง 4 แบบ ใน Problem Domain
มหาวิทยาลัย
1..n
นักศึกษาที่ลงทะเบียน 1..n 0..n
เรียน
เรียนตามปกติ
1..n
1..1
วิชาเรียน
คณะครุศาสตร์
คณะวิชา
มี
0..n
วินัย
วิชยั
นักศึกษาที่ลงทะเบียน
แบบไม่เอาหน่ วยกิต
สมชาย
สมศรี
สอน
วิชาสถิติ ภาษาอังกฤษ วิชาคอมพิวเตอร์
คณะวิทยาการจัดการ
1..n
อาจารย์ผูส้ อน
อาจารย์พิเศษ
อ.สมบูรณ์
อ.สุนัน
คณะวิทยาศาสตร์
อ.ชุมพล
แบบฝึ กหัด
1. จงสร้าง Class Diagram ที่แสดงถึง Association ที่มี Cardinality ที่
ถูกต้องของความสัมพันธ์ดงั ต่อไปนี้
1.1 นั กเรียน – วิชาเรียน – อาจารย์ผส
ู้ อน
1.2 ธนาคาร - สมุดบัญชี – ผูฝ
้ ากเงิน
1.3 ห้องสมุด – บรรณารักษ์ – หนั งสือ - หมวดหนั งสือ
1.4 เครื่องบิน – พนั กงาน – ผูโ้ ดยสาร - อาหาร
1.5 ผูจ้ ด
ั การ - ร้านอาหาร – ลูกค้า – อาหาร - โต๊ะอาหาร
2. จงอธิบายความสัมพันธ์ ตามที่กาหนดในแผนภาพ
1..n
1..n
ผูจ้ ดั การ
ร้านอาหาร
เป็ นเจ้าของ
1..n
จ่ายเงิน
ค่าอาหาร
นายตัน
MK
1..n
โต๊ะอาหาร
1..n
1..n
1..1
ลูกค้า
กิน
มี
0..n
Oishi
อาหาร
นาย ศรราม
นางสาว สุวนันท์

similar documents