uml modeling
Post on 04-Jan-2016
67 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
UML ModelingSCC : Suthida Chaichomchuen
std@kmitnb.ac.th
2
What is UML?
• UML : Unified Modeling Language
คื�อ โมเดลมาตรฐานที่��ใช้�หล�กการออกแบบ OOP : Object Oriented Programming
• UML เป็�นภาษาแผนภาพ ซึ่ �งจะม� Notation ที่�� น$าไป็ใช้�ใน Model ต&าง ๆ
3
Notation
• Class
• Aggregation
• Generalize
• Association
4
เคืร��องม�อที่��ใช้�ในการแป็ลง UML เป็�น Coding
• Java
• Power builder
• VB
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 ได�
7
Diagram of UML
• Diagram ข้อง UML ที่��ใช้�ใน Object-Oriented Analysis and Design แบ&งได�เป็�น 2 ป็ระเภที่คื�อ– Static Diagram
– Dynamic Diagram
8
Static Diagram
• คื�อ Diagram ที่��แสดงภาพในเช้(งสถ(ตย/(Static) ข้องระบบ โดยจะแสดงถ งการม�อย-&
ข้อง Class และคืวามส�มพ�นธ์/ระหว&าง Class แต&จะไม&แสดงถ งก(จกรรมที่��จะเก(ดข้ 1น
• ม� 2 Diagrams ที่��ใช้�คื�อ– Use Case Diagram
– Class Diagram
9
Dynamic Diagram
• คื�อ Diagram ที่��แสดงภาพในเช้(งก(จกรรม(Dynamic) ข้องระบบ โดยจะแสดงถ งส(�งที่��
เก(ดข้ 1นจากก(จกรรมข้อง Class ต&าง ๆ ที่��ม�ในระบบ
• ม� 2 Diagrams ที่��ใช้�คื�อ– Sequence Diagram
– Statechart Diagram
10
Use Case Diagram
• ใช้�เพ��ออธ์(บายฟั3งก/ช้�นข้องระบบในม4มมองข้องกล4&มผ-�ใช้�ระบบ
• เป็�นเที่คืน(คืในการสร�างแบบจ$าลองเพ��อใช้�อธ์(บาย หน�าที่��ข้องระบบใหม& หร�อระบบป็3จจ4บ�น
• คืวามต�องการข้องระบบจะได�จาก ล-กคื�า/ ผ-�ใช้� และผ-�พ�ฒนาระบบ
11
Use Case Diagram
• ใน Diagram จะป็ระกอบด�วยส�ญล�กษณ์/ต&อไป็น�1– Use Case
– Actor
– Use case Relation
– System
12
Use Case Diagram
WatchUser WatchRepairPerson
ReadTime
SetTime
ChangeBattery
Actor
Use case
SimpleWatch
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
15
Sequence Diagram
• ใช้�เพ��อแสดงก(จกรรมรวมข้องระบบ ซึ่ �งเป็�น ก(จกรรมที่��เก(ดข้ 1นระหว&าง ผ-�ใช้�ก�บระบบ และ
ระหว&าง Object ต&าง ๆ ในระบบ• ใช้�เพ��อบอกล$าด�บการที่$างานข้องระบบ โดยม�
Object และเวลาเป็�นต�วก$าหนดล$าด�บข้องงาน• ใช้�เพ��อแสดงป็ฏิ(ส�มพ�นธ์/ (Interaction) ระหว&าง
Object ตามล$าด�บข้องเหต4การณ์/ที่��เก(ดข้ 1น ณ์ เวลาที่��ก$าหนด
16
Sequence Diagram
Object
MessageActivation
blinkHours()
blinkMinutes()
incrementMinutes()
refresh()
commitNewTime()stopBlinking()
pressButton1()
pressButton2()
pressButtons1And2()
pressButton1()
:WatchUser :Time:LCDDisplay:SimpleWatch
17
State Diagram
• ใช้�เพ��อแสดงสถานะ (State) ข้องแต&ละ Object รวมที่�1งเหต4การณ์/ต&าง ๆ ที่��ที่$าให�สถานะข้อง
Object เป็ล��ยนไป็• โดยจะให�คืวามสนใจว&า ณ์ เวลาต&าง ๆ Object น�1น
ม�สถานะเป็�นแบบใด
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
19
Object คื�ออะไร?
• ว�ตถ4ในโลกที่�1งที่��จ�บต�องได� และจ�บต�องไม&ได�• ก(จกรรมที่��เก(ดข้ 1นระหว&าง Object 2 ต�วข้ 1นไป็
มาจาก 2 อย&างคื�อ– การม�คืวามส�มพ�นธ์/ (Relationship)
– การม�ป็ฏิ(ส�มพ�นธ์/ (Interaction)
20
ต�วอย&างส(�งที่��เก(ดจาก objects
• คืนร�บป็ระที่านอาหาร– Interaction : ร�บป็ระที่าน– Relationship : เป็�นเจ�าข้อง
• ส4น�ข้เล&นก�บแมว– Interaction : เล&น– Relationship : เป็�นเพ��อน
21
ต�วอย&าง
• นาย ก เป็9ดต-�เย:นย��ห�อ A แล�วหย(บน$1ามาด��ม• Objects
– นาย ก– ต-�เย:นย��ห�อ A
– น$1า• Relationships
– นาย ก เป็�นเจ�าข้องต-�เย:นย��ห�อ A
– น$1าอย-&ในต-�เย:นย��ห�อ A
22
ต�วอย&าง
• Interactions
– นาย ก เป็9ดต-�เย:นย��ห�อ A
– นาย ก หย(บน$1า– นาย ก ด��มน$1า
23
Relationship
• คืวามเก��ยวข้�องหร�อคืวามส�มพ�นธ์/ระหว&างObject 2 ต�วข้ 1นไป็ เช้&น– คืวามเป็�นแม&-ล-ก– คืวามเป็�นเจ�าข้องการม�อย-&
24
Interaction
• ป็ฏิ(ส�มพ�นธ์/หร�อการกระที่$าใด ๆ ที่��เก(ดข้ 1น ระหว&าง Objects 2 ต�วข้ 1นไป็ เช้&น
– การสร�าง– การเป็ล��ยนแป็ลง– การเล&น– การกระต4�น
25
Domain
• คื�อ กรอบข้องคืวามสนใจที่��ม�ต&อ object น�1น ๆ• ใน Domain หน �งสามารถม� Objects ได�ต�1งแต&
2 ต�วข้ 1นไป็จนถ งน�บไม&ถ�วน• Object ต�วหน �ง ๆ สามารถอย-&ได�ในหลาย ๆ
Domain
26
Object Orientation คื�ออะไร?
• หมายถ ง การใช้� Object เป็�นต�วหล�กเพ��อ พ(จารณ์าคืวามเป็�นจร(งต&าง ๆ ที่��เก(ดข้ 1นในโลก
27
Concept
• หมายถ ง คืวามคื(ดรวบยอดที่��เราม�ให�ก�บว�ตถ4น�1น ๆ ภายในกรอบที่��ก$าหนด
28
Class
• กล4&มข้อง Objects ที่��ได�จากการให� concept ก�บ object ต&าง ๆ ในกรอบที่��ก$าหนด หร�อเร�ยก
อ�กอย&างว&า Abstract Objects
• เป็ร�ยบเสม�อนแม&พ(มพ/ (Template) ที่��ใช้�เพ��อ สร�าง object
• Class ถ�อเป็�นนามธ์รรม (abstract) เราไม& สามารถที่$าให� class ด$าเน(นก(จกรรมใด ๆ ได�
เลย
29
Attributes & Functions
• Attributes : คื4ณ์สมบ�ต(ที่��ใช้�บรรยาย object โดยคื4ณ์สมบ�ต(เหล&าน�1จะอย-&ใน domain ที่��เรา
สนใจ• Functions : คืวามสามารถในการที่$าก(จกรรม
ข้อง object ที่��ม�ไว�เพ��อให� object อ��น ๆ ในdomain สามารถเร�ยกใช้�หร�อกระต4�นให�เก(ดได�
30
ต�วอย&าง
• นาย ก เป็9ดเคืร��องคือมพ(วเตอร/ย��ห�อ A
• Objects
– นาย ก– เคืร��องคือมพ(วเตอร/ย��ห�อ A
• Class
– คืน– เคืร��องคือมพ(วเตอร/
31
Abstraction & Instantiation
• Abstraction : กระบวนการในการให� concept ก�บ object จนเก(ดเป็�น class
• Instantiation : กระบวนการข้องการที่$าให�เก(ดobject จาก class
32
Abstractions
• แบ&งได�เป็�น 4 กระบวนการย&อย ๆ คื�อ– Classification Abstraction
– Aggregation Abstraction
– Generalization Abstraction
– Association Abstraction
33
Classification Abstraction
• เป็�นกระบวนการที่��ใช้�เพ��อแยกป็ระเภที่(Classify) object ต&าง ๆ ที่��อย-&ใน domain
และให� concept ก�บ object ต&าง ๆ เหล&าน�1น เพ��อให�ได� class พ�1นฐานที่��ต�องการ
• เป็�น Abstraction ที่��ส$าคื�ญที่��ส4ด เพราะ class เก(ดข้ 1นด�วย Classification abstraction
34
Aggregation Abstraction
• คื�อ กระบวนการที่��น$าเอา class พ�1นฐาน มารวม ก�นหร�อป็ระกอบก�น เพ��อให�เก(ดเป็�น class ที่��
ใหญ&ข้ 1นหร�อซึ่�บซึ่�อนข้ 1น
35
Generalization Abstraction
• คื�อ กระบวนการในการน$า class ที่��ม�ล�กษณ์ะ เหม�อนหร�อคืล�ายคืล งก�น หร�อม�คื4ณ์สมบ�ต(
อย&างใดอย&างหน �งร&วมก�นมาจ�ดหมวดหม-&ไว�เป็�นclass เด�ยวก�น
• กระบวนการย�อนกล�บข้อง Generalization คื�อ Specialization ซึ่ �ง Specialization คื�อ
การตอบคื$าถามว&าใน class หน �ง ๆ น�1นสามารถ จ$าแนกเป็�น class อะไรได�บ�าง
36
Association Abstraction
• คื�อ กระบวนการในการสร�างคืวามส�มพ�นธ์/ ระหว&าง class ต&าง ๆ ใน Problem Domain
ที่��เราสนใจ• คืวามส�มพ�นธ์/ด�งกล&าวคื�อ คืวามส�มพ�นธ์/ที่��ไม&
สามารถอธ์(บายได�ด�วย Aggregation หร�อGeneralization
37
Attributes & Functions
• Attribute หมายถ ง คื4ณ์สมบ�ต(ต&าง ๆ ที่��ใช้� บรรยาย object โดยคื4ณ์สมบ�ต(เหล&าน�1จะอย-&ใน
domain ที่��เราสนใจ• Function หมายถ ง คืวามสามารถในการที่$า
ก(จกรรมข้อง object ที่��ม�ไว�เพ��อให� object อ��น ๆ ใน domain สามารถเร�ยกใช้�หร�อกระต4�นให�
เก(ดได�
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
39
Object-Oriented Analysis : OOA
• เป็�นข้�1นตอนการว(เคืราะห/เพ��อให�ที่ราบว&าProblem Domain คื�ออะไร
• เพ��อที่$าคืวามเข้�าใจในรายละเอ�ยดข้องป็3ญหาเหล&าน�1น
• เป็�นการหาคื$าตอบให�ก�บคื$าถามWhat is the problem to be solved?
40
Object-Oriented Design : OOD
• เป็�นข้�1นตอนการออกแบบหร�อจ$าลอง (Model) ว(ธ์�การเพ��อแก�ป็3ญหาใน Problem Domain
• เป็�นการหาคื$าตอบให�ก�บคื$าถามHow to solve the problem?
41
Object-Oriented Programming : OOP
• เป็�นข้�1นตอนการสร�างหนที่างแก�ป็3ญหาในรายละเอ�ยดให�เก(ดข้ 1นและใช้�งานได�จร(ง
• เป็�นการหาคื$าตอบให�ก�บคื$าถามHow to implement the solution?
42
Problem Domain
• รถยนต/น��ง TOYOTA• รถจ�กรยานยนต/ SUZUKI• รถโดยสาร6 ล�อ VOLVO• เร�อซึ่�ที่รานส/คืว�นส/• ห�วรถจ�กรไอน$1า• รถจ�กรยาน BMX
top related