Top Banner
1 Class Diagram SCC : Suthida Chaichomchuen [email protected]
29

Class Diagram

Mar 18, 2016

Download

Documents

jared

Class Diagram. SCC : Suthida Chaichomchuen [email protected]. ความหมาย. Class diagram คือ แผนภาพที่ใช้แสดง class และความสัมพันธ์ ( relationship) ระหว่าง class ความสัมพันธ์ที่แสดงเป็นความสัมพันธ์เชิงสถิตย์ ( static ) ไม่ใช่ความสัมพันธ์ที่เกิดขึ้นเนื่องจากกิจกรรม ( dynamic ). - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Class Diagram

1

Class Diagram SCC : Suthida Chaichomchuen

[email protected]

Page 2: Class Diagram

2

ความหมาย

• Class diagram คือ แผนภาพที่ใชแ้สดงclass และความสมัพนัธ์ (relationship)

ระหวา่ง class• ความสมัพนัธท่ี์แสดงเป็นความสมัพนัธเ์ชงิ

สถิตย์ (static ) ไมใ่ชค่วามสมัพนัธท์ี่เกิดขึ้น เนื่องจากกิจกรรม (dynamic)

Page 3: Class Diagram

3

Examples of Relationship

• Static relationship– เจา้ของบญัชเีป็นเจา้ของบญัชเีงินฝาก

• Dynamic relationship– เจา้ของบญัชฝีากเงินเขา้บญัชเีงินฝาก– เจา้ของบญัชถีอนเงินจากบญัชเีงินฝาก– เจา้ของบญัชปีรบัปรุงยอดบญัชเีงินฝาก

Page 4: Class Diagram

4

สญัลักษณ์ Class

Man

- Name# Surname- Age

+ Tell_Name+ Tell_Age

Page 5: Class Diagram

5

สญัลักษณ์ Visibility

• Private แทนด้วย -• Protected แทนด้วย #• Public แทนด้วย +

Page 6: Class Diagram

6

Visibility แบบ Public

• มองเหน็และเรยีกใชไ้ด้โดยตรงจากภายนอก• เขา้ไปเปล่ียนค่า อ่านค่า หรอืเรยีกใชง้านได้ทันที

โดยอิสระจากภายนอก• มกัใชกั้บ Functions มากกวา่ Attributes • จะใชเ้ครื่องหมาย (+) กำากับไวข้า้งหน้า

Page 7: Class Diagram

7

Visibility แบบ Private

• ไมส่ามารถเหน็ได้จากภายนอก จะเหน็ได้ภายใน เฉพาะตัว class เองเท่านัน้

• หากภายนอกต้องการแก้ไข หรอือ่านค่า ทำาได้ วธิเีดียวคือ ทำาผ่าน Function ท่ีเก่ียวขอ้ง

• โดยทัว่ไปมกัใชกั้บ Attributes มากกวา่Functions

• จะใชเ้ครื่องหมาย - ( ) กำากับไวข้า้งหน้า

Page 8: Class Diagram

8

Visibility แบบ Protected

• สงวนไวส้ำาหรบัการทำา Inheritance โดยเฉพาะ• โดยปกติจะเป็นของ Superclass• เมื่อทำา inheritance แล้ว Attributes และ

Functions เหล่านี้จะเป็นได้ทัง้ Private หรอืProtect ซึ่งขึ้นอยูกั่บภาษาท่ีใช้

• จะใชเ้ครื่องหมาย (# ) กำากับไวห้น้า

Page 9: Class Diagram

9

ตัวอยา่ง Class คน

คน

- เลขบตัรประจำาตัวประชาชน- ชื่อ# นามสกลุ- อายุ- หมูเ่ลือด

+ สผีม

+ บอกเลขบตัรประชาชน+ บอกชื่อ+ บอกนามสกลุ+ บอกอายุ+ บอกหมูเ่ลือด

Page 10: Class Diagram

10

หลักการในการสรา้ง Class Diagram

• กำาหนดกรอบของ Problem Domain ให้ชดัเจน– เขยีน use case diagram ของ

problem domain ท่ีกำาหนดไว้– พจิารณาวา่ในแต่ละ use case มี object

ใดอยูบ่า้ง– ทำาใหค้รบทกุ use case

Page 11: Class Diagram

11

หลักการ...

• พจิารณาหา Tangible objects ใหค้รบทกุตัว– ในกรณีท่ีมหีลายตัวใน problem domain

เดียวกัน ใหห้าตัวแทน object นัน้• พจิารณาหา Intangible objects ใหค้รบทกุ

ตัว– ในกรณีท่ีมหีลายตัวใน problem domain

เดียวกัน ใหห้าตัวแทน object นัน้

Page 12: Class Diagram

12

หลักการ...

• ใช้ Classification Abstraction เพื่อ แยกแยะและสรา้ง class จาก object ท่ีมอียู่

– หา attributes และ functions ท่ีมอียูใ่นclass นัน้ ๆ

– วาด class ท่ีได้ลงใน class diagram

Page 13: Class Diagram

13

หลักการ...

• หา Aggregation Abstraction โดย พจิารณา class ท่ีมคีวามสมัพนัธแ์บบเป็น

สว่นหน่ึงหรอืประกอบด้วยกับ class อ่ืน ๆ– ระบุชนิด aggregation ได้แก่

•One to One หรอื•Many to One

– ใส่ Cardinality ใหถ้กูต้อง

Page 14: Class Diagram

14

หลักการ...

• ใช้ Generalization มาพจิารณา class ต่าง ๆ ใน class diagram– หากมคีวามสมัพนัธแ์บบ generalization

หรอื specialization ใหเ้พิม่ลงไปในclass diagram

– อาจมกีารสรา้ง class ใหมเ่พื่อเป็นgeneralized class ได้

Page 15: Class Diagram

15

หลักการ...

• ใช้ Association มาพจิารณา class ต่าง ๆใน class diagram– เพิม่เติมสญัลักษณ์ของ Association

ลงใน Class Diagram– พจิารณาประเภทของความสมัพนัธแ์ละ

Cardinality ใหถ้กูต้อง

Page 16: Class Diagram

16

หลักการ...

• พจิารณาวา่ทกุ class ควรมคีวามสมัพนัธ์ แบบใดแบบหนึ่งกับ class อ่ืน

• หากพบ class ท่ียงัไมม่คีวามสมัพนัธกั์บclass อ่ืน อาจมสีาเหตจุาก– class นัน้เป็น class ท่ีเกินความจำาเป็น ซึ่ง

ไมจ่ำาเป็นต้องมใีนระบบได้– หรอืต้องเพิม่เติม class อ่ืนที่มคีวาม

สมัพนัธกั์บ class ดังกล่าวเขา้ไป

Page 17: Class Diagram

17

ตัวอยา่งการสรา้ง Class Diagram Problem Domain ท่ีกำาหนดคือ

“ในคณะวชิาวทิยาศาสตรข์องสถาบนัการศึกษาแหง่ หนึ่งมบุีคลากรหลายประเภทด้วยกัน ได้แก่ อาจารย์

นักศึกษา และเจา้หน้าท่ี โดยท่ีอาจารยแ์ต่ละท่านมหีน้าท่ี ในการสอนวชิาใดวชิาหนึ่งหรอืมากกวา่ 1 วชิาก็ได้

และนักศึกษาก็มหีน้าท่ีในการศึกษาวชิาวชิาหนึ่ง หรอื มากกวา่ 1 วชิาก็ได้ ในเวลาเดียวกันเจา้หน้าท่ีของภาค

วชิา คือ เจา้หน้าท่ีประจำาหอ้งทดลองต่าง ๆ โดยกำาหนด วา่ใน 1 หอ้งทดลองจะต้องมเีจา้หน้าท่ี 1 ”คนเสมอ

Page 18: Class Diagram

18

หา use case จาก problem domain

• use case ของระบบคือ– การเรยีนการสอน– การใชห้อ้งทดลอง– การดแูลหอ้งทดลอง

Page 19: Class Diagram

19

หา object/class จาก use case• use case การเรยีนการสอน

– นักเรยีน อาจารย์– หอ้งเรยีน วชิาเรยีน ชัว่โมงเรยีน

• use case การใชห้อ้งทดลอง– นักเรยีน อาจารย์– หอ้งทดลอง

• use case การดแูลหอ้งทดลอง– เจา้หน้าท่ี– หอ้งทดลอง

Page 20: Class Diagram

20

หา actor จาก use case• สรุป actors ท่ีมจีาก use case คือ

– นักเรยีน– อาจารย์– เจา้หน้าที่

Page 21: Class Diagram

21

เขยีน Use Case Diagram

การเรยีนการสอนในคณะวทิยาศาสตร์

การเรยีนการสอน

การดแูลหอ้งทดลอง

การใช้หอ้งทดลอง

อาจารย์

นักศึกษา

<<uses>>

เจา้หน้าท่ี

Page 22: Class Diagram

22

object/class ทัง้ระบบ

• นักเรยีน• อาจารย์• เจา้หน้าที่• หอ้งเรยีน• วชิาเรยีน• ชัว่โมงเรยีน• หอ้งทดลอง

Page 23: Class Diagram

23

เขยีน Class Diagram เบื้องต้น

คณะวทิยาศาสตร์

หอ้งเรยีน หอ้งทดลอง บุคลากร

เจา้หน้าท่ี

1..n

1..n

1..n

1..n

ชัว่โมงเรยีน วชิาเรยีน

นักเรยีน อาจารย์ใช้

มี

เรยีน สอน

ดแูล

ใช้

1..10 ..n 0..n

1..n 1..n

1..1 1..1

1..1

0..n 0..n

0..1

Page 24: Class Diagram

24

ปรบัเปล่ียน Class Diagram ใหส้มบูรณ์ขึ้น

คณะวทิยาศาสตร์

หอ้งเรยีน หอ้งทดลอง บุคลากร

เจา้หน้าท่ี

1..n

1..n

1..nชัว่โมงเรยีน วชิาเรยีน

นักเรยีน อาจารย์ใช้

มี

เรยีน สอน

ดแูล

ใช้

1..10..n 0..n

1..n 1..n

1..1 1..1

1..1

0..n 0..n

0..1

หอ้ง

Page 25: Class Diagram

25

ขอ้สอบกลางภาค

• เขยีน class diagram ของระบบรายงานผล การเรยีนผ่านเครอืขา่ยอินเทอรเ์น็ต (Grade

Online System)

Page 26: Class Diagram

26

•ระบบต้องมคีวามสามารถในการแสดงผลการเรยีนของนักศึกษา

ผ่านระบบเครอืขา่ยอินเตอรเ์น็ต•โดยนักศึกษาสามารถดผูลการ

เรยีนในแต่ละภาคเรยีนจนถึง ภาคเรยีนปัจจุบนัได้

Problem Domain

Page 27: Class Diagram

27

Problem Domain

•ซึง่ผลการเรยีนท่ีแสดงจะต้องมคีวาม ถกูต้องและรกัษาสทิธสิว่นบุคคลได้

•ระบบจะต้องสามารถรกัษาความปลอดภัยของขอ้มูลท่ีมอียูใ่นฐาน

ขอ้มูลได้ไมว่า่จะมเีหตกุารณ์ใด ๆ เกิดขึน้ก็ตาม

Page 28: Class Diagram

28

Problem Domain

•สำาหรบัการกรอกขอ้มูลผลการเรยีนในแต่ละรายวชิานัน้จะทำาโดยเจา้หน้าท่ีฝ่ายทะเบยีน ซึง่ผู้ท่ีจะทำาหน้าท่ีน้ีได้จะต้องเป็นผู้ได้รบัอนุญาตจากระบบแล้วเท่านัน้

Page 29: Class Diagram

29

Problem Domain

•นอกจากนัน้แล้วอาจารยท่ี์ปรกึษาสามารถจะเขา้ไปดผูลการเรยีนของนักศึกษาท่ีอยูใ่นการ

ดแูลของตนเองได้ด้วย แต่จะต้องได้รบัการอนุญาตจากระบบแล้วเชน่กัน