21
1 1 UML Modeling SCC : Suthida Chaichomchuen [email protected] 2 What is UML? UML : Unified Modeling Language คือ โมเดลมาตรฐานที่ใชหลักการออกแบบ OOP : Object Oriented Programming UML เปนภาษาแผนภาพ ซึ่งจะมี Notation ที่นําไปใชใน Model ตาง

UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

1

1

UML ModelingSCC : Suthida Chaichomchuen

[email protected]

2

What is UML?

• UML : Unified Modeling Languageคือ โมเดลมาตรฐานที่ใชหลักการออกแบบ OOP : Object Oriented Programming

• UML เปนภาษาแผนภาพ ซึ่งจะมี Notation ที่นําไปใชใน Model ตาง ๆ

Page 2: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

2

3

Notation

• Class• Aggregation• Generalize• Association

4

เครื่องมือที่ใชในการแปลง UML เปน Coding

• Java• Power builder• VB

Page 3: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

3

5

Brief history of UML

เกิดจากการรวมเอาขอดีของ 3 แนวคิดมารวมกัน คือ1. Grady Booch

Booch method2. Jame Rumbough

Object Modeling Techniques (OMT)3. Ivar Jacobson

Object Oriented Software Engineer (OOSE)

6

Why UML?

1. UML สามารถแสดงสวนประกอบในการสรางโครงการในรูปของ OOP

2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช Object Oriented Code

3. งายตอการทําความเขาใจและสามารถแปลงเปน Code Program ได

Page 4: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

4

7

Diagram of UML

• Diagram ของ UML ที่ใชใน Object-Oriented Analysis and Design แบงไดเปน 2 ประเภทคือ– Static Diagram– Dynamic Diagram

8

Static Diagram

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

• มี 2 Diagrams ที่ใชคือ– Use Case Diagram– Class Diagram

Page 5: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

5

9

Dynamic Diagram

• คือ Diagram ที่แสดงภาพในเชิงกิจกรรม (Dynamic) ของระบบ โดยจะแสดงถึงสิ่งที่เกดิขึ้นจากกิจกรรมของ Class ตาง ๆ ที่มีในระบบ

• มี 2 Diagrams ที่ใชคือ– Sequence Diagram– Statechart Diagram

10

Use Case Diagram

• ใชเพื่ออธิบายฟงกชันของระบบในมุมมองของกลุมผูใชระบบ• เปนเทคนิคในการสรางแบบจําลองเพื่อใชอธิบายหนาทีข่องระบบใหม

หรือระบบปจจุบัน• ความตองการของระบบจะไดจาก ลูกคา/ผูใช และผูพัฒนาระบบ

Page 6: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

6

11

Use Case Diagram

• ใน Diagram จะประกอบดวยสัญลักษณตอไปนี้– Use Case– Actor– Use case Relation– System

12

Use Case Diagram

WatchUser WatchRepairPerson

ReadTime

SetTime

ChangeBattery

Actor

Use case

SimpleWatch

Page 7: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

7

13

Class Diagram

• ใชเพื่อแสดงโครงสรางของระบบซึ่งประกอบดวย– Class และรายละเอียดภายใน Class– ความสัมพันธในเชิง abstraction ระหวาง Class เชน• Aggregation• Generalization• Association

14

Class Diagram

Batteryload()

1

2Timenow()

PushButtonstatepush()release()

1

1

1

1

12

blinkIdxblinkSeconds()blinkMinutes()blinkHours()stopBlinking()referesh()

LCDDisplay

SimpleWatch

Class

AssociationMultiplicity

Attributes

Operations

Page 8: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

8

15

Sequence Diagram

• ใชเพื่อแสดงกจิกรรมรวมของระบบ ซ่ึงเปน กิจกรรมที่เกดิขึ้นระหวาง ผูใชกับระบบ และระหวาง Object ตาง ๆ ในระบบ

• ใชเพื่อบอกลําดับการทํางานของระบบ โดยมี Object และเวลาเปนตัวกําหนดลําดับของงาน

• ใชเพื่อแสดงปฏิสัมพันธ (Interaction) ระหวาง Object ตามลําดับของเหตุการณที่เกดิขึ้น ณ เวลาที่กําหนด

16

Sequence Diagram

Object

MessageActivation

blinkHours()

blinkMinutes()

incrementMinutes()

refresh()

commitNewTime()stopBlinking()

pressButton1()

pressButton2()

pressButtons1And2()

pressButton1()

:WatchUser :Time:LCDDisplay:SimpleWatch

Page 9: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

9

17

State Diagram

• ใชเพื่อแสดงสถานะ (State) ของแตละ Object รวมทั้งเหตุการณตาง ๆ ที่ทําใหสถานะของ Object เปลี่ยนไป

• โดยจะใหความสนใจวา ณ เวลาตาง ๆ Object นั้นมีสถานะเปนแบบใด

18

State Diagram

button1&2Pressed

button1&2Pressed

button1Pressed

button2Pressed

button2Pressed

button2Pressed

button1Pressed

button1&2Pressed IncrementMinutes

IncrementHours

BlinkHours

BlinkSeconds

BlinkMinutes

IncrementSeconds

StopBlinking

StateInitial state

Final state

Transition

Event

Page 10: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

10

19

Object คืออะไร?

• วัตถุในโลกทั้งที่จับตองได และจับตองไมได• กิจกรรมที่เกิดขึ้นระหวาง Object 2 ตัวข้ึนไปมาจาก 2 อยาง

คือ– การมีความสัมพันธ (Relationship)– การมีปฏิสัมพันธ (Interaction)

20

ตัวอยางสิง่ที่เกิดจาก objects

• คนรับประทานอาหาร– Interaction : รับประทาน– Relationship : เปนเจาของ

• สุนัขเลนกับแมว– Interaction : เลน– Relationship : เปนเพื่อน

Page 11: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

11

21

ตัวอยาง

• นาย ก เปดตูเย็นยี่หอ A แลวหยิบน้ํามาดื่ม• Objects

– นาย ก– ตูเย็นยี่หอ A– น้ํา

• Relationships– นาย ก เปนเจาของตูเย็นยี่หอ A– น้ําอยูในตูเย็นยี่หอ A

22

ตัวอยาง

• Interactions– นาย ก เปดตูเย็นยี่หอ A– นาย ก หยิบน้าํ– นาย ก ดื่มน้ํา

Page 12: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

12

23

Relationship

• ความเกี่ยวของหรือความสัมพันธระหวาง Object 2 ตัวข้ึนไป เชน – ความเปนแม-ลูก– ความเปนเจาของการมีอยู

24

Interaction

• ปฏิสัมพันธหรือการกระทําใด ๆ ที่เกดิขึน้ระหวาง Objects 2 ตัวขึ้นไป เชน– การสราง– การเปลี่ยนแปลง– การเลน– การกระตุน

Page 13: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

13

25

Domain

• คือ กรอบของความสนใจที่มีตอ object นั้น ๆ• ใน Domain หนึ่งสามารถมี Objects ไดตั้งแต 2 ตัวข้ึน

ไปจนถึงนับไมถวน• Object ตัวหนึ่ง ๆ สามารถอยูไดในหลาย ๆ Domain

26

Object Orientation คืออะไร?

• หมายถึง การใช Object เปนตัวหลักเพื่อพิจารณาความเปนจริงตาง ๆ ที่เกิดขึน้ในโลก

Page 14: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

14

27

Concept

• หมายถึง ความคิดรวบยอดที่เรามีใหกับวตัถุนั้น ๆ ภายในกรอบที่กําหนด

28

Class

• กลุมของ Objects ที่ไดจากการให concept กับ object ตาง ๆ ในกรอบที่กําหนด หรือเรียกอีกอยางวา Abstract Objects

• เปรียบเสมือนแมพิมพ (Template) ที่ใชเพื่อสราง object• Class ถือเปนนามธรรม (abstract) เราไมสามารถทําให

class ดําเนินกิจกรรมใด ๆ ไดเลย

Page 15: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

15

29

Attributes & Functions

• Attributes : คุณสมบัติที่ใชบรรยาย object โดยคุณสมบัติเหลานี้จะอยูใน domain ที่เราสนใจ

• Functions : ความสามารถในการทํากิจกรรมของ object ที่มีไวเพื่อให object อ่ืน ๆ ใน domain สามารถเรียกใชหรือกระตุนใหเกดิได

30

ตัวอยาง

• นาย ก เปดเครื่องคอมพิวเตอรยี่หอ A• Objects

– นาย ก– เครื่องคอมพิวเตอรยี่หอ A

• Class– คน– เครื่องคอมพิวเตอร

Page 16: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

16

31

Abstraction & Instantiation

• Abstraction : กระบวนการในการให concept กับ object จนเกดิเปน class

• Instantiation : กระบวนการของการทําใหเกดิ object จาก class

32

Abstractions

• แบงไดเปน 4 กระบวนการยอย ๆ คือ– Classification Abstraction– Aggregation Abstraction– Generalization Abstraction– Association Abstraction

Page 17: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

17

33

Classification Abstraction

• เปนกระบวนการที่ใชเพื่อแยกประเภท (Classify) object ตาง ๆ ที่อยูใน domain และให concept กบั object ตาง ๆ เหลานั้น เพื่อใหได class พื้นฐานที่ตองการ

• เปน Abstraction ที่สําคัญที่สุด เพราะ class เกดิขึ้นดวย Classification abstraction

34

Aggregation Abstraction

• คือ กระบวนการที่นําเอา class พื้นฐาน มารวมกันหรือประกอบกัน เพื่อใหเกิดเปน class ที่ใหญขึ้นหรือซับซอนขึ้น

Page 18: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

18

35

Generalization Abstraction

• คือ กระบวนการในการนํา class ที่มีลักษณะเหมือนหรือคลายคลึงกัน หรือมีคุณสมบัติอยางใดอยางหนึ่งรวมกันมาจัดหมวดหมูไวเปน class เดียวกัน

• กระบวนการยอนกลับของ Generalization คือ Specialization ซ่ึง Specialization คือการตอบคําถามวาใน class หนึ่ง ๆ นั้นสามารถจําแนกเปน class อะไรไดบาง

36

Association Abstraction

• คือ กระบวนการในการสรางความสัมพันธระหวาง class ตาง ๆ ใน Problem Domain ที่เราสนใจ

• ความสัมพันธดังกลาวคือ ความสัมพันธที่ไมสามารถอธิบายไดดวย Aggregation หรือ Generalization

Page 19: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

19

37

Attributes & Functions

• Attribute หมายถึง คุณสมบัติตาง ๆ ที่ใชบรรยาย object โดยคุณสมบัติเหลานี้จะอยูใน domain ที่เราสนใจ

• Function หมายถึง ความสามารถในการทํากิจกรรมของ object ที่มีไวเพื่อให object อ่ืน ๆ ใน domain สามารถเรียกใชหรือกระตุนใหเกดิได

38

Object-Oriented Software Engineering

• OOSE คือ การพัฒนาระบบคอมพิวเตอรดวยหลักการ Object Orientation ประกอบดวย 3 ขั้นตอนใหญคือ– Object-Oriented Analysis : OOA– Object-Oriented Design : OOD– Object-Oriented Implementation หรือ

Object-Oriented Programming : OOP

Page 20: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

20

39

Object-Oriented Analysis : OOA

• เปนขั้นตอนการวิเคราะหเพื่อใหทราบวา Problem Domain คืออะไร

• เพื่อทําความเขาใจในรายละเอียดของปญหาเหลานั้น• เปนการหาคําตอบใหกับคําถาม What

is the problem to be solved?

40

Object-Oriented Design : OOD

• เปนขั้นตอนการออกแบบหรือจําลอง (Model) วิธีการเพื่อแกปญหาใน Problem Domain

• เปนการหาคําตอบใหกับคําถาม How to solve the problem?

Page 21: UML Modeling - @@ Home - KKU Web Hosting · Domain • คือ กรอบของความสนใจที่มีต อ object นั้น ๆ • ใน Domain หนึ่งสามารถม

21

41

Object-Oriented Programming : OOP

• เปนขั้นตอนการสรางหนทางแกปญหาในรายละเอียดใหเกดิขึ้นและใชงานไดจริง

• เปนการหาคําตอบใหกับคําถามHow to implement the solution?

42

Problem Domain

• รถยนตน่ัง TOYOTA• รถจักรยานยนต SUZUKI• รถโดยสาร 6 ลอ VOLVO• เรอืซทีรานสควีนส• หัวรถจักรไอน้ํา• รถจักรยาน BMX