งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Class Diagram.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Class Diagram."— ใบสำเนางานนำเสนอ:

1 Class Diagram

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

3 หา Use Case จาก Problem Domain
การเรียนการสอน ประกอบด้วย Actor คือ นักเรียน อาจารย์ การใช้ห้องทดลอง การดูแลห้องทดลอง ประกอบด้วย Actor คือ เจ้าหน้าที่ Actors ที่มีจาก use case คือ นักเรียน อาจารย์ เจ้าหน้าที่

4

5 จาก Use Case ที่ได้ เราสามารถหา Objects/Classes ที่มีอยู่ในระบบ
นักเรียน อาจารย์ // Object/Class Actor ห้องเรียน วิชาเรียน ชั่วโมงเรียน // Object/Class อื่นๆ Use case การใช้ห้องทดลอง นักเรียน อาจารย์ // Object/Class Actor ห้องทดลอง // Object/Class อื่นๆ Use case การดูแลห้องทดลอง เจ้าหน้าที่ // Object/Class Actor ห้องทดลอง // Object/Class อื่นๆ

6 เขียน Class Diagram เบื้องต้น (ไม่มี Attributes, Operations) จาก Scenario

7 ได้เพิ่ม Class บาง Class ที่จำเป็นได้แก่
คณะวิทยาศาสตร์ เกิดจาก Aggregation Abstraction (ของห้องเรียน ห้องทดลองและบุคลากร) บุคลากร เกิดจาก Generalization (บุคลากร จำแนกเป็นเจ้าหน้าที่ นักเรียนและอาจารย์) จาก Class Diagram เบื้องต้น ประกอบด้วย Class ที่เป็น Tangible ได้แก่บุคลากร (จำแนกเป็นเจ้าหน้าที่ นักเรียนและอาจารย์) ห้องเรียน และห้องทดลอง ส่วน Class ที่เป็น Intangible ได้แก่ คณะวิทยาศาสตร์ วิชาเรียน และชั่วโมงเรียน นอกจากนี้จาก Problem Domain ที่กำหนดให้ เราจะพบว่า Class Diagram จะมีความสัมพันธ์กันอันเกิดจากการใช้ Abstraction แบบต่าง ๆ และมีการสร้าง Class เพิ่มขึ้นด้วย เพื่อเพิ่มความสมบูรณ์ให้กับ Class Diagram ได้แก่ Class ชั่วโมงเรียน เพื่อช่วยในการโยงความสัมพันธ์ระหว่างห้องเรียนกับวิชาเรียน  การปรับเปลี่ยน Class Diagram ให้สมบูรณ์ขึ้น (คำว่า สมบูรณ์ขึ้น คือทำให้ Class Diagram เข้าใจได้ง่ายและครบถ้วนขึ้น อาจมีการเพิ่ม Class หรือความสัมพันธ์ขึ้น แต่ต้องไม่ทำให้เรื่องราวที่มีเปลี่ยนไป) โดยการเพิ่ม Class ห้อง ซึ่งเป็น Generalized Class หรือ Super class ของห้องเรียนกับห้องทดลองนั่นเอง เมื่อปรับเปลี่ยน Class Diagram ให้สมบูรณ์มากยิ่งขึ้น

8 เมื่อปรับเปลี่ยน Class Diagram ให้สมบูรณ์มากยิ่งขึ้น

9 สามารถปรับเปลี่ยน Class Diagram อีกครั้ง เพื่อให้ได้ Class Diagram ที่สมบูรณ์ขึ้น โดยเพิ่มเติม Attributes และ Operations

10 หมายเหตุ อย่างไรก็ตาม Class Diagram ที่ได้ จะถูกทำ Refinement ในขั้นตอนของ Object-Oriented Design (OOD) เพื่อเพิ่มความสมบูรณ์ จนกระทั่งสามารถนำมาใช้เป็นต้นแบบในการพัฒนาระบบงานในคอมพิวเตอร์ได้ในที่สุด

11 องค์ประกอบของ Class Diagram
องค์ประกอบของ Class Diagram

12 องค์ประกอบของ Class Diagram
ตัวบ่งชี้ Multiplicity Navigation ชื่อของ Role ความสัมพันธ์ Association Generalization (Inheritance) Aggregation Composition Dependency

13 Visibility (การมองเห็นหรือความสามารถในการเข้าใช้ข้อมูล)

14 ตัวอย่าง การเขียน Class โดยใช้ภาษา จาวา

15

16 UML Syntax for Class Name
ชื่อ Class ไม่มีช่องว่าง และขึ้นต้นด้วยตัวพิมพ์ใหญ่ เช่น Bank ถ้ามีมากกว่า 1 คำตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ เช่น BankAccount

17 UML Syntax for Attributes
Visibility Name : Type [ = ค่าเริ่มต้น ] Visibility ประกอบด้วย + (public) , - (private), # (protected) Name คือ ชื่อAttribute ไม่มีช่องว่าง ขึ้นต้นด้วยตัวพิมพ์เล็ก ตัวแรกของคำถัดไปเป็นตัวพิมพ์ใหญ่เช่น userID Type คือ ชนิดข้อมูล (ขึ้นกับแต่ละภาษา) Primitive Type ข้อมูลพื้นฐาน เช่น integer, boolean Class Type Attribute ของ Class หนึ่งอาจมีชนิดเป็น Class อื่นได้ UML Syntax for Attributes

18 UML Syntax for Operations
Visibility Name(Parameter List : Type) : Return type UML Syntax for Operations Visibility ประกอบด้วย + (public) , - (private), # (protected) Name คือ ชื่อ เหมือนกับชื่อของ Attribute แต่เป็นคำกริยา เช่น withdrawMoney Parameter List คือ รายการตัวแปรหรือ Objects ที่ถูกส่ง เข้าไปใน Operation (Method) เพื่อ ใช้ดำเนินการอย่างใดอย่างหนึ่ง ( อาจไม่มีก็ได้ ) Type , Return type คือ ชนิดข้อมูล เหมือน Attribute

19 Visibility private ( - )
มักใช้กับ Attributes มากกว่า Operations เห็นได้ภายในเฉพาะตัว class ไม่สามารถเห็นได้ จากภายนอก การเข้าถึงจากภายนอกจะกระทำผ่าน Operation ที่เตรียมไว้ public ( + ) มักใช้กับ Operations มากกว่า Attributesมองเห็นและเข้าถึงได้โดยตรงจากภายนอก protected (#) สงวนไว้สำหรับการทำ Inheritance โดยเฉพาะโดยปกติจะเป็นของ Super class เมื่อทำ inheritance แล้ว Attributes และ Operations เหล่านี้จะเป็นได้ทั้ง Private หรือ Protect ซึ่งขึ้นอยู่กับภาษาที่ใช้

20 ความสัมพันธ์ระหว่างคลาส (Class Relationship)

21 ระดับความสำคัญ มีอยู่ 3 รูปแบบ
ระดับความสำคัญ มีอยู่  3  รูปแบบ 1 . Unary Relationship  เป็นความสัมพันธ์ที่เกิดกับคลาสเดียว  เช่น หัวหน้าห้องของนักศึกษาแต่ละคน 2 . Binary Relationship เป็นความสัมพันธ์ที่เกิดขึ้นระหว่างคลาส  2  คลาส 3 . Ternary Relationship เป็นความสัมพันธ์ที่เกิดขึ้นระหว่างคลาสมากกว่า  2  คลาสขึ้นไป Relationships Between Class

22 1 . Unary Relationship  เป็นความสัมพันธ์ที่เกิดกับคลาสเดียว  เช่น หัวหน้าห้องของนักศึกษาแต่ละคน

23 2 . Binary Relationship  เป็นความสัมพันธ์ที่เกิดขึ้นระหว่างคลาส  2  คลาส  เช่น  ความสัมพันธ์ระหว่างคลาส “นักศึกษา” กับ  คลาส  “คณะวิชา”  ซึ่งสัมพันธ์กันโดยความสัมพันธ์ “สังกัด”

24 3 . Ternary Relationship  เป็นความสัมพันธ์ที่เกิดขึ้นระหว่างคลาสมากกว่า  2  คลาสขึ้นไป

25 รูปแบบความสัมพันธ์

26 การสืบทอดคุณสมบัติ (Generalization การเป็นส่วนหนึ่งของ (Aggregation)
ระหว่างคลาส (class relationship) ของคลาสไดอะแกรมสามารถแบ่งออกได้เป็นรูปแบบต่าง ๆ ดังต่อไปนี้ การสืบทอดคุณสมบัติ (Generalization การเป็นส่วนหนึ่งของ (Aggregation) การเป็นองค์ประกอบของ (Composition) ความเกี่ยวข้องกัน (Association) จำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity)

27

28 1. การสืบทอดคุณสมบัติ (Generalization)
ในแนวคิดของการพัฒนาระบบแบบแนวคิดเชิงวัตถุ  (Object Oriented Programming : OOP) นั้น วัตถุ (object) สามารถที่จะสืบทอดคุณสมบัติถึงกันได้  เช่นเดียวกับคลาสซึ่งเป็นต้นแบบที่จะนำไปสร้างวัตถุอีกต่อหนึ่ง คลาสหนึ่งสามารถที่จะสืบทอดคุณสมบัติจากอีกคลาสหนึ่งได้  โดยคลาสที่เป็นผู้รับการสืบทอดจะมีคุณสมบัติเช่นเดียวกับคลาสที่เป็นผู้ให้การสืบทอด โดยเราวาดเส้นแสดงการสืบทอดคุณสมบัติ (generalization) ด้วยเส้นตรงที่มีปลายลูกศรสีขาวจากคลาสที่เป็นผู้รับการสืบทอดชี้ไปที่คลาสที่เป็นผู้ให้การสืบทอดดังรูปที่แสดงข้างบน เราเรียกการสืบทอดคุณสมบัติแบบนี้ว่า การเป็นประเภทหนึ่งของ (a-kind-of)

29 1. การสืบทอดคุณสมบัติ (Generalization)

30 1. การสืบทอดคุณสมบัติ (Generalization)
เป็นความสัมพันธ์ระหว่าง Object หรือ Class ในลักษณะของการสืบทอดคุณสมบัติจาก Class หนึ่ง (Super class) ไปยังอีก Class หนึ่ง (Subclass)

31

32 คลาสที่เป็นส่วนประกอบ Composition and Aggregation
คลาสที่เป็นส่วนประกอบ Composition and Aggregation

33 2. การเป็นส่วนหนึ่งของ (Aggregation)
แนวคิดนี้ต่างจากแนวคิดการสืบทอดคุณสมบัติที่จะมองว่าคลาสหนึ่งสืบทอดคุณสมบัติจากอีกคลาสหนึ่ง แต่จะมองคลาสหนึ่ง ๆ สามารถมีส่วนประกอบเป็นคลาสย่อย ๆ อะไรบ้าง การเป็นส่วนหนึ่งของ จึงหมายถึงคลาสที่เป็นส่วนประกอบย่อยของคลาสหลัก ที่ถึงแม้ว่าจะไม่มีคลาสย่อยเหล่านี้ก็ไม่ทำให้คุณสมบัติของความเป็นคลาสหลักสูญเสียไปแต่อย่างใด เราแทนความสัมพันธ์ในลักษณะนี้ด้วยเส้นตรงที่ลากจากคลาสที่เป็นส่วนประกอบไปหาคลาสหลักที่เป็นเจ้าของส่วนประกอบ โดยปลายเส้นตรงใช้รูปสี่เหลี่ยมข้าวหลามตัดสีขาว เราเรียกความสัมพันธ์ในลักษณะนี้ว่าการเป็นส่วนหนึ่งของ (a-part-of)

34 2. การเป็นส่วนหนึ่งของ (Aggregation)

35 2. การเป็นส่วนหนึ่งของ (Aggregation)

36

37 3 การเป็นองค์ประกอบของ (Composition)
ความสัมพันธ์ในลักษณะนี้จะคล้าย ๆ กับความสัมพันธ์แบบเป็นส่วนหนึ่งของ คือคลาสย่อยเป็นส่วนหนึ่งของคลาสหลัก  แต่ต่างกันตรงที่ส่วนประกอบย่อยนี้จะไม่สามารถถูกนำออกจากส่วนประกอบหลักได้  เพราะถ้านำส่วนประกอบย่อยออกไปแล้วส่วนประกอบหลักก็จะสูญเสียคุณสมบัติของความเป็นคลาสนั้น ๆ  จัดเป็ฯองค์ประกอบที่ไม่อาจขาดได้

38 3 การเป็นองค์ประกอบของ (Composition)

39 ความเหมือนและความแตกต่างระหว่าง Aggregation และ Composition

40

41 4. ความเกี่ยวข้องกัน (Association)
ความสัมพันธ์แบบนี้เป็นความสัมพ้นธ์ส่วนใหญ่ของคลาสต่าง ๆ ในระบบ ซึ่งจะทำงานร่วมกันด้วยความสัมพันธ์ที่เกี่ยวข้องกัน  เป็นความสัมพันธ์ในรูปแบบของการทำงานร่วมกันเช่นเดียวกับการทำงานในชีวิตประจำวันของเรา  

42 5. จำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity)
จากรูปแบบความสัมพันธ์ที่เราได้เห็นมาในข้อ 2, 3, 4  จะสังเกตุเห็นว่าได้มีการระบุตัวเลขและเครื่องหมาย 1, 0..*, 1..*  ซึ่งเครื่องหมายและตัวเลขดังกล่าวใช้ระบุถึงจำนวนของสมาชิกที่อยู่ในความสัมพันธ์ของแต่ละคลาส  โดยตัวเลขที่ปลายสุดของคลาสฝั่งตรงกันข้ามจะใช้บอกจำนวนของความสัมพันธ์ของคลาสที่อยู่อีกฝั่งหนึ่ง

43 5. จำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity)
จากรูปข้างบนเราแปลความหมายได้ว่า  บริษัท(company) สามารถมีพนักงาน(person)ได้ตั้งแต่ 1 คนถึงหลาย ๆ คน แต่พนักงานหนึ่งคนสามารถสังกัดได้แค่หนึ่งบริษัทเท่านั้น

44

45

46 5. จำนวนของสมาชิกที่อยู่ในความสัมพันธ์ (multiplicity)
โดยรูปแบบนั้นสามารถกำหนดได้โดยใช้ตัวเลขต่างประกอบกับเครื่องหมาย .. และ * โดยตัวอย่างรูปแบบความสัมพันธ์แบบต่าง ๆ มีดังต่อไปนี้

47

48

49

50

51

52

53

54

55

56

57

58 Realization / implementation

59 ตัวอย่าง

60

61

62 สรุปความสัมพันธ์

63 ตัวอย่าง


ดาวน์โหลด ppt Class Diagram.

งานนำเสนอที่คล้ายกัน


Ads by Google