ตัวอย่างการวาด Class Diagram ของระบบธนาคาร และความสัมพันธ์ระหว่างคลาส (Class Relationship)

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) สามารถที่จะสืบทอดคุณสมบัติถึงกันได้  เช่นเดียวกับคลาสซึ่งเป็นต้นแบบที่จะนำไปสร้างวัตถุอีกต่อหนึ่ง คลาสหนึ่งสามารถที่จะสืบทอดคุณสมบัติจากอีกคลาสหนึ่งได้  โดยคลาสที่เป็นผู้รับการสืบทอดจะมีคุณสมบัติเช่นเดียวกับคลาสที่เป็นผู้ให้การสืบทอด (ดูรูปข้างล่างประกอบ)

จากรูปจะเห็นว่าคลาส 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..*  ซึ่งเครื่องหมายและตัวเลขดังกล่าวใช้ระบุถึงจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ของแต่ละคลาส  โดยตัวเลขที่ปลายสุดของคลาสฝั่งตรงกันข้ามจะใช้บอกจำนวนของความสัมพันธ์ของคลาสที่อยู่อีกฝั่งหนึ่ง (ดูรูปข้างล่างประกอบ)

จากรูปข้างบนเราแปลความหมายได้ว่า  บริษัท(company) สามารถมีพนักงาน(person)ได้ตั้งแต่ 1 คนถึงหลาย ๆ คน แต่พนักงานหนึ่งคนสามารถสังกัดได้แค่หนึ่งบริษัทเท่านั้น  โดยรูปแบบนั้นสามารถกำหนดได้โดยใช้ตัวเลขต่างประกอบกับเครื่องหมาย .. และ * โดยตัวอย่างรูปแบบความสัมพันธ์แบบต่าง ๆ มีดังต่อไปนี้
      1..1                 หนึ่งถึงหนึ่ง
      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)




   





ไม่มีความคิดเห็น:

แสดงความคิดเห็น