1. ตัวอย่างการวาด Class Diagram ของระบบธนาคาร
1.1 คลาสลูกค้า (Customer)
1.2 คลาสลูกค้าวีไอพี (VIP) ที่สามารถดำเนินธุรกรรมทางการเงินต่างๆ
ได้มากเป็นพิเศษ
1.3 คลาสพนักงานธนาคาร (Banker)
1.3 คลาสผู้จัดการธนาคาร (Manager)
กำหนด ชื่อ class ชื่อ attributes (มาอย่างละ
5 attributes) และชื่อ operations หรือ
methods (มาอย่างละ 3 operations) ในแต่ละ
class
Class
Diagram ATM Transaction Systems
2. ความสัมพันธ์ระหว่างคลาส (Class
Relationship) มีทั้งหมดกี่ประเภท อะไรบ้าง
รูปแบบความสัมพันธ์ระหว่างคลาส
(class
relationship) ของคลาสไดอะแกรมสามารถแบ่งออกได้เป็นรูปแบบต่าง
ๆ ดังต่อไปนี้
1. การสืบทอดคุณสมบัติ (Generalization)
ในแนวคิดของการพัฒนาระบบแบบแนวคิดเชิงวัตถุ (Object Oriented Programming : OOP) นั้น วัตถุ (object) สามารถที่จะสืบทอดคุณสมบัติถึงกันได้ เช่นเดียวกับคลาสซึ่งเป็นต้นแบบที่จะนำไปสร้างวัตถุอีกต่อหนึ่ง คลาสหนึ่งสามารถที่จะสืบทอดคุณสมบัติจากอีกคลาสหนึ่งได้ โดยคลาสที่เป็นผู้รับการสืบทอดจะมีคุณสมบัติเช่นเดียวกับคลาสที่เป็นผู้ให้การสืบทอด (ดูรูปข้างล่างประกอบ)
ในแนวคิดของการพัฒนาระบบแบบแนวคิดเชิงวัตถุ (Object Oriented Programming : OOP) นั้น วัตถุ (object) สามารถที่จะสืบทอดคุณสมบัติถึงกันได้ เช่นเดียวกับคลาสซึ่งเป็นต้นแบบที่จะนำไปสร้างวัตถุอีกต่อหนึ่ง คลาสหนึ่งสามารถที่จะสืบทอดคุณสมบัติจากอีกคลาสหนึ่งได้ โดยคลาสที่เป็นผู้รับการสืบทอดจะมีคุณสมบัติเช่นเดียวกับคลาสที่เป็นผู้ให้การสืบทอด (ดูรูปข้างล่างประกอบ)
จากรูปจะเห็นว่าคลาส
disaster
recovery administrator และ db administrator ต่างก็ได้รับการสืบทอดคุณสมบัติจาก system administrator หมายความว่าถ้าคลาส system administrator มีคุณสมบัติทีประกอบด้วย
attribute ต่าง ๆ เช่น เลขประจำตัว, ชื่อ, สกุล,
การศึกษา ฯลฯ ทั้ง disaster recovery
administrator และ db administrator ก็จะมีคุณสมบัติที่เป็น attribute ต่าง ๆ
ดังกล่าวข้างต้น เช่นเดียวกัน โดยเราวาดเส้นแสดงการสืบทอดคุณสมบัติ (generalization) ด้วยเส้นตรงที่มีปลายลูกศรสีขาวจากคลาสที่เป็นผู้รับการสืบทอดชี้ไปที่คลาสที่เป็นผู้ให้การสืบทอดดังรูปที่แสดงข้างบน
เราเรียกการสืบทอดคุณสมบัติแบบนี้ว่า การเป็นประเภทหนึ่งของ (a-kind-of) เช่น disaster
recover administrator และ db administrator เป็นประเภทหนึ่งของ system administrator
2. การเป็นส่วนหนึ่งของ (Aggregation)
แนวคิดนี้ต่างจากแนวคิดการสืบทอดคุณสมบัติที่จะมองว่าคลาสหนึ่งสืบทอดคุณสมบัติจากอีกคลาสหนึ่ง แต่จะมองคลาสหนึ่ง ๆ สามารถมีส่วนประกอบเป็นคลาสย่อย ๆ อะไรบ้าง (ดูรูปข้างล่างประกอบ)
แนวคิดนี้ต่างจากแนวคิดการสืบทอดคุณสมบัติที่จะมองว่าคลาสหนึ่งสืบทอดคุณสมบัติจากอีกคลาสหนึ่ง แต่จะมองคลาสหนึ่ง ๆ สามารถมีส่วนประกอบเป็นคลาสย่อย ๆ อะไรบ้าง (ดูรูปข้างล่างประกอบ)
จากรูปจะเห็นว่าคลาสบ่อน้ำ (pond) ซึ่งอาจจะมีส่วนประกอบต่าง ๆ หลาย ๆ ส่วน เช่น น้ำ, ดอกบัว,
จอกแหน, ปลา ฯลฯ และมีส่วนประกอบส่วนหนึ่งเป็นคลาสเป็ด
(duck) สังเกตุว่าถ้าเรานำคลาสเป็ดออกไปจากคลาสบ่อน้ำ
ก็ไม่ทำให้คุณสมบัติของความเป็นบ่อน้ำนั้นหายไปแต่อย่างใด
ดังนั้นการเป็นส่วนหนึ่งของจึงหมายถึงคลาสที่เป็นส่วนประกอบย่อยของคลาสหลัก
ที่ถึงแม้ว่าจะไม่มีคลาสย่อยเหล่านี้ก็ไม่ทำให้คุณสมบัติของความเป็นคลาสหลักสูญเสียไปแต่อย่างใด
เราแทนความสัมพันธ์ในลักษณะนี้ด้วยเส้นตรงที่ลากจากคลาสที่เป็นส่วนประกอบไปหาคลาสหลักที่เป็นเจ้าของส่วนประกอบ
โดยปลายเส้นตรงใช้รูปสี่เหลี่ยมข้าวหลามตัดสีขาว
เราเรียกความสัมพันธ์ในลักษณะนี้ว่าการเป็นส่วนหนึ่งของ (a-part-of)
3. การเป็นองค์ประกอบของ (Composition)
ความสัมพันธ์ในลักษณะนี้จะคล้าย ๆ กับความสัมพันธ์แบบเป็นส่วนหนึ่งของ คือคลาสย่อยเป็นส่วนหนึ่งของคลาสหลัก แต่ต่างกันตรงที่ส่วนประกอบย่อยนี้จะไม่สามารถถูกนำออกจากส่วนประกอบหลักได้ เพราะถ้านำส่วนประกอบย่อยออกไปแล้วส่วนประกอบหลักก็จะสูญเสียคุณสมบัติของความเป็นคลาสนั้น ๆ จัดเป็ฯองค์ประกอบที่ไม่อาจขาดได้ (ดูรูปข้างล่างประกอบ)
ความสัมพันธ์ในลักษณะนี้จะคล้าย ๆ กับความสัมพันธ์แบบเป็นส่วนหนึ่งของ คือคลาสย่อยเป็นส่วนหนึ่งของคลาสหลัก แต่ต่างกันตรงที่ส่วนประกอบย่อยนี้จะไม่สามารถถูกนำออกจากส่วนประกอบหลักได้ เพราะถ้านำส่วนประกอบย่อยออกไปแล้วส่วนประกอบหลักก็จะสูญเสียคุณสมบัติของความเป็นคลาสนั้น ๆ จัดเป็ฯองค์ประกอบที่ไม่อาจขาดได้ (ดูรูปข้างล่างประกอบ)
จากรูปข้างบนคลาสคาร์บูเรเตอร์เป็นคลาสที่เป็นองค์ประกอบคลาสรถยนต์
ถ้าเรานำคาร์บูเรเตอร์ออกจากรถยนต์ไป รถยนต์ก็คงไม่สามารถทำงานได้
ดังนั้นคาร์บูเรเตอร์จึงเป็นองค์ประกอบที่มิอาจขาดได้ เราแทนความสัมพันธ์ในลักษณะนี้ด้วยเส้นตรงที่ลากจากคลาสที่เป็นองค์ประกอบไปหาคลาสหลักที่เป็นเจ้าขององค์ประกอบ
โดยปลายเส้นตรงใช้รูปสี่เหลี่ยมข้าวหลามตัดสีดำ เราเรียกความสัมพันธ์ในลักษณะนี้ว่าการเป็นส่วนหนึ่งของ (a-part-of) เช่นเดียวกับความสัมพันธ์แบบการเป็นส่วนหนึ่งของ (aggregation) แต่เป็นส่วนหนึ่งที่ไม่อาจจะแยกออกจากคลาสหลักได้
4. ความเกี่ยวข้องกัน (Association)
ความสัมพันธ์แบบนี้เป็นความสัมพ้นธ์ส่วนใหญ่ของคลาสต่าง ๆ ในระบบ ซึ่งจะทำงานร่วมกันด้วยความสัมพันธ์ที่เกี่ยวข้องกัน เป็นความสัมพันธ์ในรูปแบบของการทำงานร่วมกันเช่นเดียวกับการทำงานในชีวิตประจำวันของเรา (ดูรูปข้างล่างประกอบ)
ความสัมพันธ์แบบนี้เป็นความสัมพ้นธ์ส่วนใหญ่ของคลาสต่าง ๆ ในระบบ ซึ่งจะทำงานร่วมกันด้วยความสัมพันธ์ที่เกี่ยวข้องกัน เป็นความสัมพันธ์ในรูปแบบของการทำงานร่วมกันเช่นเดียวกับการทำงานในชีวิตประจำวันของเรา (ดูรูปข้างล่างประกอบ)
จากรูปข้างบนจะเห็นคลาสนักศึกษา(student) มีความสัมพันธ์คือลงทะเบียน (enrolled) กับคลาสการลงทะเบียน
(enrollment)
และคลาสอาจารย์ (professor) ก็มีความสัมพันธ์คือการบรรยาย (instructs) ให้กับคลาสการสัมนา (seminar) ซึ่งลักษณะความสัมพันธ์จะคล้ายกับความสัมพันธ์ของการทำงานในโลกแห่งความเป็นจริง
5. จำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity)
จากรูปแบบความสัมพันธ์ที่เราได้เห็นมาในข้อ 2, 3, 4 จะสังเกตุเห็นว่าได้มีการระบุตัวเลขและเครื่องหมาย 1, 0..*, 1..* ซึ่งเครื่องหมายและตัวเลขดังกล่าวใช้ระบุถึงจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ของแต่ละคลาส โดยตัวเลขที่ปลายสุดของคลาสฝั่งตรงกันข้ามจะใช้บอกจำนวนของความสัมพันธ์ของคลาสที่อยู่อีกฝั่งหนึ่ง (ดูรูปข้างล่างประกอบ)
จากรูปแบบความสัมพันธ์ที่เราได้เห็นมาในข้อ 2, 3, 4 จะสังเกตุเห็นว่าได้มีการระบุตัวเลขและเครื่องหมาย 1, 0..*, 1..* ซึ่งเครื่องหมายและตัวเลขดังกล่าวใช้ระบุถึงจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ของแต่ละคลาส โดยตัวเลขที่ปลายสุดของคลาสฝั่งตรงกันข้ามจะใช้บอกจำนวนของความสัมพันธ์ของคลาสที่อยู่อีกฝั่งหนึ่ง (ดูรูปข้างล่างประกอบ)
จากรูปข้างบนเราแปลความหมายได้ว่า
บริษัท(company)
สามารถมีพนักงาน(person)ได้ตั้งแต่ 1
คนถึงหลาย ๆ คน
แต่พนักงานหนึ่งคนสามารถสังกัดได้แค่หนึ่งบริษัทเท่านั้น
โดยรูปแบบนั้นสามารถกำหนดได้โดยใช้ตัวเลขต่างประกอบกับเครื่องหมาย .. และ *
โดยตัวอย่างรูปแบบความสัมพันธ์แบบต่าง ๆ มีดังต่อไปนี้
1..1 หนึ่งถึงหนึ่ง
0..* ศูนย์ถึงหลายๆ
1..* หนึ่งถึงหลายๆ
0..1 ศูนย์ถึงหนึ่ง
2..4 สองถึงสี่
1..3,5 หนึ่งถึงสาม หรือถึงห้า
0..* ศูนย์ถึงหลายๆ
1..* หนึ่งถึงหลายๆ
0..1 ศูนย์ถึงหนึ่ง
2..4 สองถึงสี่
1..3,5 หนึ่งถึงสาม หรือถึงห้า
ในการเขียนคลาสไดอะแกรม
เราใช้รูปแบบความสัมพันธ์แบบต่าง ๆ ดังที่ได้กล่าวมาแล้ว
นำมาเชื่อมโยงคลาสต่าง ๆ
เข้าด้วยกันประกอบขึ้นเป็นคลาสไดอะแกรมที่ใช้บอกถึงโครงสร้างและการทำงานของระบบงานที่เรากำลังออกแบบนั่นเอง
สำหรับ ความสัมพันธ์ระหว่างคลาส (Class
Relationship) Class Diagram ATM Transaction Systems นั้นมีดังนี้
1.Bank
กับ ATM Info มีความสัมพันธ์กันแบบจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) คือธนาคาร 1 ธนาคารจะเชื่อกับระบบ ATM ของธนาคาร 1 ระบบ
2.
Bank กับ Debit Card มีความสัมพันธ์กันแบบจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) คือธนาคาร 1 ธนาคารจะมี ATM ของธนาคารตั้งแต่
1 ใบขึ้นไป จนถึงหลายๆใบ ตามเงื่อนไขหรือตามบัญชีในสาขาต่างๆของธนาคาร
3. Bank กับ Customer มีความสัมพันธ์กันแบบจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) คือธนาคาร 1
ธนาคารจะมีลูกค้าตั้งแต่ 1 คนขึ้นไปหรือมากกว่า
4. Debit Card กับ
Customer มีความสัมพันธ์กันแบบจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) คือลูกค้าจะมีบัตร ATM หรือ Debit
Card ตั้งแต่ไม่มีเลยหรือมีหลายใบก็ได้ แต่ต้องมีลูกค้าตั้งแต่ 1
คนขึ้นไปถึงจะมีบัตร ATM ได้
5. Debit Card กับ
Account มีความสัมพันธ์กันแบบจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) คือบัญชีธนาคารจะสามารถเปิดบัตร ATM หรือ Debit
Card ตั้งแต่ไม่มีเลยหรือมีหลายใบก็ได้
แต่ต้องมีบัญชีธนาคารอย่างน้อย 1 บัญชีขึ้นไปจึงจะมีบัตร ATM ได้
6.
Account กับ ATM
Transaction มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือการที่จะมีการทำธุรกรรมทางการเงินผ่าน
ATM Transaction ต้องได้รับคุณสมบัติหรือข้อมูลจากทางบัญชี
.Account จึงจะมีการทำธุรกรรมเกิดขึ้นได้
7. ATM Info กับ ATM
Transaction มีความสัมพันธ์กันแบบจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity) คือการมีการทำธุรกรรมทางการเงินเกิดขึ้นได้ตั้งแต่ไม่มีเลยจนถึงการเกิดขึ้นของธุรกรรมได้หลายๆรายการ
โดยที่ต้องมีระบบ ATM ไว้เรียบร้อยแล้ว
8. Account กับ Standard
Customer มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือบัญชีของลูกค้าทั่วไปจะเป็นส่วนหนึ่งของระบบบัญชีลูกค้ารวมของธนาคาร
แต่จะมีการเก็บข้อมูลไว้อีกส่วนหนึ่งเพื่อเป็นการระบุสถานะเพิ่มเติม
9.
Account กับ VIP
Customer มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือบัญชีของลูกค้าพิเศษจะเป็นส่วนหนึ่งของระบบบัญชีลูกค้ารวมของธนาคาร
แต่จะมีการเก็บข้อมูลไว้อีกส่วนหนึ่งเพื่อเป็นการระบุสถานะเพิ่มเติมเช่นสิทธิประโยชน์และคุณสมบัติที่เพิ่มขึ้นจากลูกค้าทั่วไปเพื่อให้ระบบ
Account เรียกใช้หรือตรวจสอบสิทธิ
10.
Account กับ Current
Account มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือเป็นการแยกบัญชีของลูกค้าเป็นบัญชีเดินสะพัดโดยจะเป็นส่วนหนึ่งของระบบบัญชีลูกค้ารวมของธนาคาร
เพื่อให้ระบบ Account
เรียกใช้โดยการแยกประเภทบัญชี
11. Account กับ
Saving Account มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือเป็นการแยกบัญชีของลูกค้าเป็นบัญชีออมทรัพย์โดยจะเป็นส่วนหนึ่งของระบบบัญชีลูกค้ารวมของธนาคาร
เพื่อให้ระบบ Account
เรียกใช้โดยการแยกประเภทบัญชี เพื่อใช้ในระบบธนาคารต่อไป
12. ATM Transaction กับ Withdraw Transaction มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือเป็นเชื่อมโยงการทำธุรกรรมการถอนเงินสดผ่านระบบ
ATM กับกิจกรรมธุรกรรมที่เกิดขึ้น
โดยการถอนเงิน(Withdraw Transaction)เป็นส่วนหนึ่งของธุรกรรม(ATM
Transaction)
13. ATM Transaction กับ Query Transaction มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือเป็นเชื่อมโยงการทำธุรกรรมการเช็คยอดเงินคงเหลือผ่านระบบ
ATM กับกิจกรรมธุรกรรมที่เกิดขึ้น
โดยการเช็คยอดเงิน(Query Transaction )เป็นส่วนหนึ่งของธุรกรรม(ATM
Transaction)
14. ATM Transaction กับ Transfer Transaction มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือเป็นเชื่อมโยงการทำธุรกรรมการโอนเงินระหว่างบัญชีผ่านระบบ
ATM กับกิจกรรมธุรกรรมที่เกิดขึ้น
โดยการโอนเงิน(Transfer Transaction)เป็นส่วนหนึ่งของธุรกรรม(ATM
Transaction)
15. ATM Transaction กับ Pin validation Transaction
มีความสัมพันธ์กันแบบการสืบทอดคุณสมบัติ (Generalization)คือเป็นเชื่อมโยงการจัดการเกี่ยวกับรหัสผ่านบัตร
ATM(Debit card) ของเจ้าของบัตรโดยเกี่ยวข้องกับรหัสผ่านเก่าและรหัสผ่านใหม่ที่ต้องการเปลี่ยนซึ่งถือเป็นธุรกรรมประเภทหนึ่งของระบบ(ATM
Transaction)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น