Class Diagram

Post on 18-Mar-2016

95 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Class Diagram. SCC : Suthida Chaichomchuen std@kmitnb.ac.th. ความหมาย. Class diagram คือ แผนภาพที่ใช้แสดง class และความสัมพันธ์ ( relationship) ระหว่าง class ความสัมพันธ์ที่แสดงเป็นความสัมพันธ์เชิงสถิตย์ ( static ) ไม่ใช่ความสัมพันธ์ที่เกิดขึ้นเนื่องจากกิจกรรม ( dynamic ). - PowerPoint PPT Presentation

Transcript

1

Class Diagram SCC : Suthida Chaichomchuen

std@kmitnb.ac.th

2

ความหมาย

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

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

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

3

Examples of Relationship

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

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

4

สญัลักษณ์ Class

Man

- Name# Surname- Age

+ Tell_Name+ Tell_Age

5

สญัลักษณ์ Visibility

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

6

Visibility แบบ Public

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

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

7

Visibility แบบ Private

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

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

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

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

8

Visibility แบบ Protected

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

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

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

9

ตัวอยา่ง Class คน

คน

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

+ สผีม

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

10

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

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

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

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

11

หลักการ...

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

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

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

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

12

หลักการ...

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

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

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

13

หลักการ...

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

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

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

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

14

หลักการ...

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

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

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

15

หลักการ...

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

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

Cardinality ใหถ้กูต้อง

16

หลักการ...

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

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

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

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

17

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

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

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

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

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

18

หา use case จาก problem domain

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

19

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

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

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

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

20

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

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

21

เขยีน Use Case Diagram

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

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

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

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

อาจารย์

นักศึกษา

<<uses>>

เจา้หน้าท่ี

22

object/class ทัง้ระบบ

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

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

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

หอ้ง

25

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

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

Online System)

26

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

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

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

Problem Domain

27

Problem Domain

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

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

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

28

Problem Domain

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

29

Problem Domain

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

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

top related