UML Modeling

42
1 UML Modeling SCC : Suthida Chaichomchuen [email protected]

description

UML Modeling. SCC : Suthida Chaichomchuen [email protected]. What is UML?. UML : Unified Modeling Language คือ โมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP : Object Oriented Programming UML เป็นภาษาแผนภาพ ซึ่งจะมี Notation ที่นำไปใช้ใน Model ต่าง ๆ. Notation. Class Aggregation Generalize - PowerPoint PPT Presentation

Transcript of UML Modeling

Page 1: UML Modeling

1

UML ModelingSCC : Suthida Chaichomchuen

[email protected]

Page 2: UML Modeling

2

What is UML?

• UML : Unified Modeling Language

คื�อ โมเดลมาตรฐานที่��ใช้�หล�กการออกแบบ OOP : Object Oriented Programming

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

Page 3: UML Modeling

3

Notation

• Class

• Aggregation

• Generalize

• Association

Page 4: UML Modeling

4

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

• Java

• Power builder

• VB

Page 5: UML Modeling

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)

Page 6: UML Modeling

6

Why UML?

1. UML สามารถแสดงส&วนป็ระกอบในการสร�าง โคืรงการในร-ป็ข้อง OOP

2. เช้��อมแนวคื(ดก�บการออกแบบระบบโดยใช้�Object Oriented Code

3. ง&ายต&อการที่$าคืวามเข้�าใจและสามารถแป็ลง เป็�น Code Program ได�

Page 7: UML Modeling

7

Diagram of UML

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

– Dynamic Diagram

Page 8: UML Modeling

8

Static Diagram

• คื�อ Diagram ที่��แสดงภาพในเช้(งสถ(ตย/(Static) ข้องระบบ โดยจะแสดงถ งการม�อย-&

ข้อง Class และคืวามส�มพ�นธ์/ระหว&าง Class แต&จะไม&แสดงถ งก(จกรรมที่��จะเก(ดข้ 1น

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

– Class Diagram

Page 9: UML Modeling

9

Dynamic Diagram

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

เก(ดข้ 1นจากก(จกรรมข้อง Class ต&าง ๆ ที่��ม�ในระบบ

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

– Statechart Diagram

Page 10: UML Modeling

10

Use Case Diagram

• ใช้�เพ��ออธ์(บายฟั3งก/ช้�นข้องระบบในม4มมองข้องกล4&มผ-�ใช้�ระบบ

• เป็�นเที่คืน(คืในการสร�างแบบจ$าลองเพ��อใช้�อธ์(บาย หน�าที่��ข้องระบบใหม& หร�อระบบป็3จจ4บ�น

• คืวามต�องการข้องระบบจะได�จาก ล-กคื�า/ ผ-�ใช้� และผ-�พ�ฒนาระบบ

Page 11: UML Modeling

11

Use Case Diagram

• ใน Diagram จะป็ระกอบด�วยส�ญล�กษณ์/ต&อไป็น�1– Use Case

– Actor

– Use case Relation

– System

Page 12: UML Modeling

12

Use Case Diagram

WatchUser WatchRepairPerson

ReadTime

SetTime

ChangeBattery

Actor

Use case

SimpleWatch

Page 13: UML Modeling

13

Class Diagram

• ใช้�เพ��อแสดงโคืรงสร�างข้องระบบซึ่ �งป็ระกอบด�วย– Class และรายละเอ�ยดภายใน Class

– คืวามส�มพ�นธ์/ในเช้(ง abstraction ระหว&าง Class เช้&น• Aggregation

• Generalization

• Association

Page 14: UML Modeling

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 15: UML Modeling

15

Sequence Diagram

• ใช้�เพ��อแสดงก(จกรรมรวมข้องระบบ ซึ่ �งเป็�น ก(จกรรมที่��เก(ดข้ 1นระหว&าง ผ-�ใช้�ก�บระบบ และ

ระหว&าง Object ต&าง ๆ ในระบบ• ใช้�เพ��อบอกล$าด�บการที่$างานข้องระบบ โดยม�

Object และเวลาเป็�นต�วก$าหนดล$าด�บข้องงาน• ใช้�เพ��อแสดงป็ฏิ(ส�มพ�นธ์/ (Interaction) ระหว&าง

Object ตามล$าด�บข้องเหต4การณ์/ที่��เก(ดข้ 1น ณ์ เวลาที่��ก$าหนด

Page 16: UML Modeling

16

Sequence Diagram

Object

MessageActivation

blinkHours()

blinkMinutes()

incrementMinutes()

refresh()

commitNewTime()stopBlinking()

pressButton1()

pressButton2()

pressButtons1And2()

pressButton1()

:WatchUser :Time:LCDDisplay:SimpleWatch

Page 17: UML Modeling

17

State Diagram

• ใช้�เพ��อแสดงสถานะ (State) ข้องแต&ละ Object รวมที่�1งเหต4การณ์/ต&าง ๆ ที่��ที่$าให�สถานะข้อง

Object เป็ล��ยนไป็• โดยจะให�คืวามสนใจว&า ณ์ เวลาต&าง ๆ Object น�1น

ม�สถานะเป็�นแบบใด

Page 18: UML Modeling

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 19: UML Modeling

19

Object คื�ออะไร?

• ว�ตถ4ในโลกที่�1งที่��จ�บต�องได� และจ�บต�องไม&ได�• ก(จกรรมที่��เก(ดข้ 1นระหว&าง Object 2 ต�วข้ 1นไป็

มาจาก 2 อย&างคื�อ– การม�คืวามส�มพ�นธ์/ (Relationship)

– การม�ป็ฏิ(ส�มพ�นธ์/ (Interaction)

Page 20: UML Modeling

20

ต�วอย&างส(�งที่��เก(ดจาก objects

• คืนร�บป็ระที่านอาหาร– Interaction : ร�บป็ระที่าน– Relationship : เป็�นเจ�าข้อง

• ส4น�ข้เล&นก�บแมว– Interaction : เล&น– Relationship : เป็�นเพ��อน

Page 21: UML Modeling

21

ต�วอย&าง

• นาย ก เป็9ดต-�เย:นย��ห�อ A แล�วหย(บน$1ามาด��ม• Objects

– นาย ก– ต-�เย:นย��ห�อ A

– น$1า• Relationships

– นาย ก เป็�นเจ�าข้องต-�เย:นย��ห�อ A

– น$1าอย-&ในต-�เย:นย��ห�อ A

Page 22: UML Modeling

22

ต�วอย&าง

• Interactions

– นาย ก เป็9ดต-�เย:นย��ห�อ A

– นาย ก หย(บน$1า– นาย ก ด��มน$1า

Page 23: UML Modeling

23

Relationship

• คืวามเก��ยวข้�องหร�อคืวามส�มพ�นธ์/ระหว&างObject 2 ต�วข้ 1นไป็ เช้&น– คืวามเป็�นแม&-ล-ก– คืวามเป็�นเจ�าข้องการม�อย-&

Page 24: UML Modeling

24

Interaction

• ป็ฏิ(ส�มพ�นธ์/หร�อการกระที่$าใด ๆ ที่��เก(ดข้ 1น ระหว&าง Objects 2 ต�วข้ 1นไป็ เช้&น

– การสร�าง– การเป็ล��ยนแป็ลง– การเล&น– การกระต4�น

Page 25: UML Modeling

25

Domain

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

2 ต�วข้ 1นไป็จนถ งน�บไม&ถ�วน• Object ต�วหน �ง ๆ สามารถอย-&ได�ในหลาย ๆ

Domain

Page 26: UML Modeling

26

Object Orientation คื�ออะไร?

• หมายถ ง การใช้� Object เป็�นต�วหล�กเพ��อ พ(จารณ์าคืวามเป็�นจร(งต&าง ๆ ที่��เก(ดข้ 1นในโลก

Page 27: UML Modeling

27

Concept

• หมายถ ง คืวามคื(ดรวบยอดที่��เราม�ให�ก�บว�ตถ4น�1น ๆ ภายในกรอบที่��ก$าหนด

Page 28: UML Modeling

28

Class

• กล4&มข้อง Objects ที่��ได�จากการให� concept ก�บ object ต&าง ๆ ในกรอบที่��ก$าหนด หร�อเร�ยก

อ�กอย&างว&า Abstract Objects

• เป็ร�ยบเสม�อนแม&พ(มพ/ (Template) ที่��ใช้�เพ��อ สร�าง object

• Class ถ�อเป็�นนามธ์รรม (abstract) เราไม& สามารถที่$าให� class ด$าเน(นก(จกรรมใด ๆ ได�

เลย

Page 29: UML Modeling

29

Attributes & Functions

• Attributes : คื4ณ์สมบ�ต(ที่��ใช้�บรรยาย object โดยคื4ณ์สมบ�ต(เหล&าน�1จะอย-&ใน domain ที่��เรา

สนใจ• Functions : คืวามสามารถในการที่$าก(จกรรม

ข้อง object ที่��ม�ไว�เพ��อให� object อ��น ๆ ในdomain สามารถเร�ยกใช้�หร�อกระต4�นให�เก(ดได�

Page 30: UML Modeling

30

ต�วอย&าง

• นาย ก เป็9ดเคืร��องคือมพ(วเตอร/ย��ห�อ A

• Objects

– นาย ก– เคืร��องคือมพ(วเตอร/ย��ห�อ A

• Class

– คืน– เคืร��องคือมพ(วเตอร/

Page 31: UML Modeling

31

Abstraction & Instantiation

• Abstraction : กระบวนการในการให� concept ก�บ object จนเก(ดเป็�น class

• Instantiation : กระบวนการข้องการที่$าให�เก(ดobject จาก class

Page 32: UML Modeling

32

Abstractions

• แบ&งได�เป็�น 4 กระบวนการย&อย ๆ คื�อ– Classification Abstraction

– Aggregation Abstraction

– Generalization Abstraction

– Association Abstraction

Page 33: UML Modeling

33

Classification Abstraction

• เป็�นกระบวนการที่��ใช้�เพ��อแยกป็ระเภที่(Classify) object ต&าง ๆ ที่��อย-&ใน domain

และให� concept ก�บ object ต&าง ๆ เหล&าน�1น เพ��อให�ได� class พ�1นฐานที่��ต�องการ

• เป็�น Abstraction ที่��ส$าคื�ญที่��ส4ด เพราะ class เก(ดข้ 1นด�วย Classification abstraction

Page 34: UML Modeling

34

Aggregation Abstraction

• คื�อ กระบวนการที่��น$าเอา class พ�1นฐาน มารวม ก�นหร�อป็ระกอบก�น เพ��อให�เก(ดเป็�น class ที่��

ใหญ&ข้ 1นหร�อซึ่�บซึ่�อนข้ 1น

Page 35: UML Modeling

35

Generalization Abstraction

• คื�อ กระบวนการในการน$า class ที่��ม�ล�กษณ์ะ เหม�อนหร�อคืล�ายคืล งก�น หร�อม�คื4ณ์สมบ�ต(

อย&างใดอย&างหน �งร&วมก�นมาจ�ดหมวดหม-&ไว�เป็�นclass เด�ยวก�น

• กระบวนการย�อนกล�บข้อง Generalization คื�อ Specialization ซึ่ �ง Specialization คื�อ

การตอบคื$าถามว&าใน class หน �ง ๆ น�1นสามารถ จ$าแนกเป็�น class อะไรได�บ�าง

Page 36: UML Modeling

36

Association Abstraction

• คื�อ กระบวนการในการสร�างคืวามส�มพ�นธ์/ ระหว&าง class ต&าง ๆ ใน Problem Domain

ที่��เราสนใจ• คืวามส�มพ�นธ์/ด�งกล&าวคื�อ คืวามส�มพ�นธ์/ที่��ไม&

สามารถอธ์(บายได�ด�วย Aggregation หร�อGeneralization

Page 37: UML Modeling

37

Attributes & Functions

• Attribute หมายถ ง คื4ณ์สมบ�ต(ต&าง ๆ ที่��ใช้� บรรยาย object โดยคื4ณ์สมบ�ต(เหล&าน�1จะอย-&ใน

domain ที่��เราสนใจ• Function หมายถ ง คืวามสามารถในการที่$า

ก(จกรรมข้อง object ที่��ม�ไว�เพ��อให� object อ��น ๆ ใน domain สามารถเร�ยกใช้�หร�อกระต4�นให�

เก(ดได�

Page 38: UML Modeling

38

Object-Oriented Software Engineering

• OOSE คื�อ การพ�ฒนาระบบคือมพ(วเตอร/ด�วย หล�กการ Object Orientation ป็ระกอบด�วย 3

ข้�1นตอนใหญ&คื�อ– Object-Oriented Analysis : OOA

– Object-Oriented Design : OOD

– Object-Oriented Implementation หร�อObject-Oriented Programming : OOP

Page 39: UML Modeling

39

Object-Oriented Analysis : OOA

• เป็�นข้�1นตอนการว(เคืราะห/เพ��อให�ที่ราบว&าProblem Domain คื�ออะไร

• เพ��อที่$าคืวามเข้�าใจในรายละเอ�ยดข้องป็3ญหาเหล&าน�1น

• เป็�นการหาคื$าตอบให�ก�บคื$าถามWhat is the problem to be solved?

Page 40: UML Modeling

40

Object-Oriented Design : OOD

• เป็�นข้�1นตอนการออกแบบหร�อจ$าลอง (Model) ว(ธ์�การเพ��อแก�ป็3ญหาใน Problem Domain

• เป็�นการหาคื$าตอบให�ก�บคื$าถามHow to solve the problem?

Page 41: UML Modeling

41

Object-Oriented Programming : OOP

• เป็�นข้�1นตอนการสร�างหนที่างแก�ป็3ญหาในรายละเอ�ยดให�เก(ดข้ 1นและใช้�งานได�จร(ง

• เป็�นการหาคื$าตอบให�ก�บคื$าถามHow to implement the solution?

Page 42: UML Modeling

42

Problem Domain

• รถยนต/น��ง TOYOTA• รถจ�กรยานยนต/ SUZUKI• รถโดยสาร6 ล�อ VOLVO• เร�อซึ่�ที่รานส/คืว�นส/• ห�วรถจ�กรไอน$1า• รถจ�กรยาน BMX