1 / 25

Class Diagram

Class Diagram. Classification Abstraction. Problem Domain รถ. เป็นกระบวนการหาว่ามี Object ใดบ้างใน Problem Domain. รถ. -ประเภทรถ -สีของรถ. +วิ่ง +จอด +เลี้ยว. รถเก๋งสีแดงของสมศักดิ์. รถมอเตอร์ไซด์สีชมพูของสมศรี. รถตู้สีขาวของสมควร. Aggregation Abstraction.

reesej
Télécharger la présentation

Class Diagram

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Class Diagram

  2. Classification Abstraction Problem Domain รถ • เป็นกระบวนการหาว่ามี Object ใดบ้างใน Problem Domain รถ -ประเภทรถ -สีของรถ +วิ่ง +จอด +เลี้ยว รถเก๋งสีแดงของสมศักดิ์ รถมอเตอร์ไซด์สีชมพูของสมศรี รถตู้สีขาวของสมควร

  3. Aggregation Abstraction ดูว่า Class ใดเป็นส่วนประกอบ (is part of) ของ Class อื่นหรือไม่ และการประกอบกันของ Class ต้องทำให้เกิด Class ใหม่ ซึ่งมี Concept ใหม่เสมอ ห้องเรียน กระดานดำ เก้าอี้ โต๊ะ นักเรียน ครูผู้สอน

  4. Generalization Abstraction คือกระบวนการนำ Class ที่มีลักษณะเหมือนหรือคล้ายคลึงกันหรือมีคุณสมบัติอย่างใดอย่างหนึ่งร่วมกัน (General) มาจัดหมวดหมู่ไว้เป็น Class เดียวกัน กระบวนการย้อนกลับของ Generalization Abstraction เรียกว่า Specialization ซึ่ง Specialization คือการตอบคำถามว่า Class หนึ่งๆ นั้นสามารถจำแนกเป็น Class อะไรได้บ้าง คน ผู้ชาย ผู้หญิง

  5. Association Abstraction คือกระบวนการในการสร้างความสัมพันธ์ระหว่าง Class ต่างๆ ใน Problem Domain ที่เราสนใจ 0..n 1..1 0..n 1..1 ทำ ผู้ชาย การแต่งงาน ผู้หญิง ทำ 0..1 0..1 ผู้ชาย เป็นสามี ภรรยา ผู้หญิง

  6. Class Diagram คืออะไร • แผนภาพที่ใช้แสดง Class และความสัมพันธ์ในแง่ต่างๆ (Relationship)ระหว่าง Class • ความสัมพันธ์ใน Class Diagram จะป็นความสัมพันธ์แบบ Static Relationship • Static Relationship หมายถึงความสัมพันธ์ที่มีอยู่แล้วเป็นปกติระหว่าง Class ต่างๆ • Dynamic Relationship หมายถึงความสัมพันธ์ที่เกิดขึ้นเนื่องจากกิจกรรมต่างๆระหว่าง Class

  7. ตัวอย่าง • Dynamic Relationship • เจ้าของบัญชีฝากเงินเข้าบัญชีเงินฝาก • เจ้าของบัญชีถอนเงินจากบัญชีเงินฝาก • เจ้าของบัญชีปรับปรุงยอดบัญชีเงินฝาก • Static Relationship • เจ้าของบัญชีเป็นเจ้าของบัญชีเงินฝาก

  8. หลักการในการสร้าง Class Diagram (Class Diagram Modeling Techniques) • กำหนดกรอบของ Problem Domain ให้ชัดเจน • พิจารณาหา Object ที่สามารถจับต้องได้ เห็นได้ สัมผัสได้ • พิจารณาหา Object ที่ไม่สามารถจับต้องได้ • ใช้ Classification Abstraction เพื่อแยกแยะและสร้าง Class จาก Object ที่มีอยู่ • หา Aggregation Abstraction โดยพิจารณา Class ที่ได้จาก Classification Abstraction ว่ามี Class ใดหรือไม่ที่มีความสัมพันธ์แบบเป็นส่วนหนึ่งหรือประกอบด้วย (Is Part of)กับ Class อื่นๆ

  9. หลักการในการสร้าง Class Diagram (Class Diagram Modeling Techniques) (ต่อ) • ใช้ Generalization มาพิจารณา Class ต่างๆ ใน Class Diagram • ใช้ Association มาพิจารณา Class ต่างๆ ใน Class Diagram • พิจารณา Class Diagram ที่สร้างมาทั้งหมดว่า ทุก Class และทุกกลุ่มของ Class มีความสัมพันธ์ (Relationship)แบบใดแบบหนึ่งกับ Class หรือกลุ่มของ Class อื่นหรือไม่

  10. 1. กำหนดกรอบของ Problem Domain ให้ชัดเจน • เขียน Use Case Diagram ของ Problem Domain ที่กำหนดไว้ • พิจารณาว่าแต่ละ Use Case มี Object อะไรบ้าง

  11. 2. พิจารณาหา Object ที่สามารถจับต้องได้ เห็นได้ สัมผัสได้ (ถ้ามี) หาตัวแทนของ Tangible Object ในกรณีที่ Tangible Object หลายๆ ตัวใน Problem Domain เดียวกันให้ครบทุกตัว

  12. 3. พิจารณาหา Object ที่ไม่สามารถจับต้องได้ (ถ้ามี) หาตัวแทนของ Intangible Object ในกรณีที่มี Intangible Object หลายๆ ตัวใน Problem Domain เดียวกันที่มีอยู่หรือต่าจะมีอยู่ใน Problem ให้ครบทุกตัว

  13. 4.ใช้ Classification Abstraction • ใช้ Classification Abstraction เพื่อแยกแยะและสร้าง Class จาก Objects ที่มีอยู่ • หา Attribute และ Function ที่มีอยู่ใน Class นั้นๆ เท่าที่จะหามาได้ • วาด Class ที่ได้ทั้งหมดลงใน Class Diagram

  14. 5. หา Aggregation Abstraction โดยพิจารณา Class ที่ได้จาก Classification Abstraction ว่ามี Class ใดหรือไม่ที่มีความสัมพันธ์แบบเป็นส่วนหนึ่งหรือประกอบด้วย (Is Part of)กับ Class อื่นๆ ถ้ามี หาว่า Aggregation ที่เกิดขึ้นนั้นเป็นแบบ One to One หรือ Many to One และใส่ Cardinality ให้ถูกต้อง

  15. 6. ใช้ Generalization • ใช้ Generalization มาพิจารณา Class ต่างๆ ใน Class Diagram หากเกิดมีความสัมพันธ์แบบ Generalization หรือ Specialization เกิดขึ้น ให้เพิ่มเติมลงใน Class Diagram • ในขั้นตอนนี้อาจมีการสร้าง Class ใหม่เพื่อเป็น Generalization Class ก็ได้

  16. 7. ใช้ Association • ใช้ Association มาพิจารณา Class ต่างๆ ใน Class Diagram เพิ่มเติมสัญลักษณ์ของ Association ลงใน Class Diagram • พิจารณาประเภทของความสัมพันธ์และ Cardinality ให้ถูกต้อง

  17. 8. พิจารณา Class Diagram ที่สร้างมาทั้งหมด • พิจารณา Class Diagram ที่สร้างมาทั้งหมดว่า ทุก Class และทุกกลุ่มของ Class มีความสัมพันธ์ (Relationship)แบบใดแบบหนึ่งกับ Class หรือกลุ่มของ Class อื่นหรือไม่ • หากมี Class ใด Class หนึ่ง ยังไม่มี Relationship กับ Class อื่นๆเลย อาจเกิดจาก Class นั้นเป็น Class ที่เกินความจำเป็น หรือ ยังขาด Class อื่นๆ ที่จำเป็นต้องมีและมีมี Relationship กับ Class ดังกล่าว สิ่งที่ต้องทำหากเกิดกรณีนี้ขึ้นคือ เริ่มต้นใหม่ตั้งแต่ขั้นตอนที่ 1 Note ขั้นตอนที่ 1 ถึง 7 สามารถทำสลับขั้นตอนกันได้

  18. ตัวอย่าง [สร้าง Class Diagram จาก Problem Domain ต่อไปนี้] ในคณะวิทยาศาสตร์ของมหาวิทยาลัยแห่งหนึ่งประกอบด้วยบุคลากรหลายประเภท ได้แก่ อาจารย์ นักศึกษา และเจ้าหน้าที่ โดยที่ อาจารย์แต่ละท่านมีหน้าที่ในการสอนวิชาใดวิชาหนึ่ง หรือมากกว่า 1 วิชาก็ได้ และนักศึกษามีหน้าที่ในการศึกษาวิชาใดวิชาหนึ่ง หรือมากว่า 1 วิชาก็ได้ ในเวลาเดียวกันเจ้าหน้าที่ของภาควิชา คือเจ้าหน้าที่ประจำห้องทดลองต่างๆ โดยกำหนดว่าใน 1 ห้องทดลองจะต้องมีเจ้าหน้าที่ 1 คนเสมอ

  19. จาก Problem Domain นำมาเขียน Use Case Diagram การเรียนการสอน การใช้ห้องทดลอง <<uses>> นักเรียน การเรียนการสอน ในคณะวิทยาศาสตร์ การดูแลห้องทดลอง อาจารย์ เจ้าหน้าที่

  20. หา Object หรือ Class ที่มีในแต่ละ Use Case จากทุกๆ User Case จะมี Class ทั้งหมดในระบบคือ อาจารย์ นักเรียน เจ้าหน้าที่ ห้องเรียน วิชาเรียน ชั่วโมงเรียน และห้องทดลอง

  21. สร้าง Class Diagram ห้องทดลอง 1..1 0..1 1..1 ดูแล นักเรียน อาจารย์ 1..1 เจ้าหน้าที่ ใช้ ใช้ 1..n 1..n เรียน สอน วิชาเรียน ห้องเรียน ชั่วโมงเรียน 0..n 0..n 0..n 1..1 1..n 0..n

  22. สร้าง Class Diagram พิจารณา Generalization ห้องทดลอง 1..1 1..1 0..1 บุคลากร ดูแล นักเรียน อาจารย์ 1..1 เจ้าหน้าที่ ใช้ ใช้ 1..n 1..n วิชาเรียน ห้องเรียน ชั่วโมงเรียน สอน เรียน 0..n 0..n 0..n 1..1 1..n 0..n

  23. สร้าง Class Diagram พิจารณา Generalization ห้องทดลอง บุคลากร 1..1 1..1 0..1 นักเรียน อาจารย์ ดูแล 1..1 เจ้าหน้าที่ ใช้ ใช้ 1..n 1..n วิชาเรียน ห้องเรียน ห้อง ชั่วโมงเรียน สอน เรียน 0..n 0..n 0..n 1..1 1..n 0..n

  24. สร้าง Class Diagram พิจารณา Aggregation Abstraction คณะวิทยาศาสตร์ ห้องทดลอง บุคลากร 1..1 1..1 0..1 นักเรียน อาจารย์ ดูแล 1..1 เจ้าหน้าที่ ใช้ ใช้ 1..n 1..n วิชาเรียน ห้องเรียน ห้อง ชั่วโมงเรียน สอน เรียน 0..n 0..n 0..n 1..1 1..n 0..n

More Related