uml modeling - @@ home - kku web hosting · domain • คือ...
TRANSCRIPT
1
1
UML ModelingSCC : Suthida Chaichomchuen
2
What is UML?
• UML : Unified Modeling Languageคือ โมเดลมาตรฐานที่ใชหลักการออกแบบ OOP : Object Oriented Programming
• UML เปนภาษาแผนภาพ ซึ่งจะมี Notation ที่นําไปใชใน Model ตาง ๆ
2
3
Notation
• Class• Aggregation• Generalize• Association
4
เครื่องมือที่ใชในการแปลง UML เปน Coding
• Java• Power builder• VB
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 ได
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
5
9
Dynamic Diagram
• คือ Diagram ที่แสดงภาพในเชิงกิจกรรม (Dynamic) ของระบบ โดยจะแสดงถึงสิ่งที่เกดิขึ้นจากกิจกรรมของ Class ตาง ๆ ที่มีในระบบ
• มี 2 Diagrams ที่ใชคือ– Sequence Diagram– Statechart Diagram
10
Use Case Diagram
• ใชเพื่ออธิบายฟงกชันของระบบในมุมมองของกลุมผูใชระบบ• เปนเทคนิคในการสรางแบบจําลองเพื่อใชอธิบายหนาทีข่องระบบใหม
หรือระบบปจจุบัน• ความตองการของระบบจะไดจาก ลูกคา/ผูใช และผูพัฒนาระบบ
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
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
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
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
10
19
Object คืออะไร?
• วัตถุในโลกทั้งที่จับตองได และจับตองไมได• กิจกรรมที่เกิดขึ้นระหวาง Object 2 ตัวข้ึนไปมาจาก 2 อยาง
คือ– การมีความสัมพันธ (Relationship)– การมีปฏิสัมพันธ (Interaction)
20
ตัวอยางสิง่ที่เกิดจาก objects
• คนรับประทานอาหาร– Interaction : รับประทาน– Relationship : เปนเจาของ
• สุนัขเลนกับแมว– Interaction : เลน– Relationship : เปนเพื่อน
11
21
ตัวอยาง
• นาย ก เปดตูเย็นยี่หอ A แลวหยิบน้ํามาดื่ม• Objects
– นาย ก– ตูเย็นยี่หอ A– น้ํา
• Relationships– นาย ก เปนเจาของตูเย็นยี่หอ A– น้ําอยูในตูเย็นยี่หอ A
22
ตัวอยาง
• Interactions– นาย ก เปดตูเย็นยี่หอ A– นาย ก หยิบน้าํ– นาย ก ดื่มน้ํา
12
23
Relationship
• ความเกี่ยวของหรือความสัมพันธระหวาง Object 2 ตัวข้ึนไป เชน – ความเปนแม-ลูก– ความเปนเจาของการมีอยู
24
Interaction
• ปฏิสัมพันธหรือการกระทําใด ๆ ที่เกดิขึน้ระหวาง Objects 2 ตัวขึ้นไป เชน– การสราง– การเปลี่ยนแปลง– การเลน– การกระตุน
13
25
Domain
• คือ กรอบของความสนใจที่มีตอ object นั้น ๆ• ใน Domain หนึ่งสามารถมี Objects ไดตั้งแต 2 ตัวข้ึน
ไปจนถึงนับไมถวน• Object ตัวหนึ่ง ๆ สามารถอยูไดในหลาย ๆ Domain
26
Object Orientation คืออะไร?
• หมายถึง การใช Object เปนตัวหลักเพื่อพิจารณาความเปนจริงตาง ๆ ที่เกิดขึน้ในโลก
14
27
Concept
• หมายถึง ความคิดรวบยอดที่เรามีใหกับวตัถุนั้น ๆ ภายในกรอบที่กําหนด
28
Class
• กลุมของ Objects ที่ไดจากการให concept กับ object ตาง ๆ ในกรอบที่กําหนด หรือเรียกอีกอยางวา Abstract Objects
• เปรียบเสมือนแมพิมพ (Template) ที่ใชเพื่อสราง object• Class ถือเปนนามธรรม (abstract) เราไมสามารถทําให
class ดําเนินกิจกรรมใด ๆ ไดเลย
15
29
Attributes & Functions
• Attributes : คุณสมบัติที่ใชบรรยาย object โดยคุณสมบัติเหลานี้จะอยูใน domain ที่เราสนใจ
• Functions : ความสามารถในการทํากิจกรรมของ object ที่มีไวเพื่อให object อ่ืน ๆ ใน domain สามารถเรียกใชหรือกระตุนใหเกดิได
30
ตัวอยาง
• นาย ก เปดเครื่องคอมพิวเตอรยี่หอ A• Objects
– นาย ก– เครื่องคอมพิวเตอรยี่หอ A
• Class– คน– เครื่องคอมพิวเตอร
16
31
Abstraction & Instantiation
• Abstraction : กระบวนการในการให concept กับ object จนเกดิเปน class
• Instantiation : กระบวนการของการทําใหเกดิ object จาก class
32
Abstractions
• แบงไดเปน 4 กระบวนการยอย ๆ คือ– Classification Abstraction– Aggregation Abstraction– Generalization Abstraction– Association Abstraction
17
33
Classification Abstraction
• เปนกระบวนการที่ใชเพื่อแยกประเภท (Classify) object ตาง ๆ ที่อยูใน domain และให concept กบั object ตาง ๆ เหลานั้น เพื่อใหได class พื้นฐานที่ตองการ
• เปน Abstraction ที่สําคัญที่สุด เพราะ class เกดิขึ้นดวย Classification abstraction
34
Aggregation Abstraction
• คือ กระบวนการที่นําเอา class พื้นฐาน มารวมกันหรือประกอบกัน เพื่อใหเกิดเปน class ที่ใหญขึ้นหรือซับซอนขึ้น
18
35
Generalization Abstraction
• คือ กระบวนการในการนํา class ที่มีลักษณะเหมือนหรือคลายคลึงกัน หรือมีคุณสมบัติอยางใดอยางหนึ่งรวมกันมาจัดหมวดหมูไวเปน class เดียวกัน
• กระบวนการยอนกลับของ Generalization คือ Specialization ซ่ึง Specialization คือการตอบคําถามวาใน class หนึ่ง ๆ นั้นสามารถจําแนกเปน class อะไรไดบาง
36
Association Abstraction
• คือ กระบวนการในการสรางความสัมพันธระหวาง class ตาง ๆ ใน Problem Domain ที่เราสนใจ
• ความสัมพันธดังกลาวคือ ความสัมพันธที่ไมสามารถอธิบายไดดวย Aggregation หรือ Generalization
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
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?
21
41
Object-Oriented Programming : OOP
• เปนขั้นตอนการสรางหนทางแกปญหาในรายละเอียดใหเกดิขึ้นและใชงานไดจริง
• เปนการหาคําตอบใหกับคําถามHow to implement the solution?
42
Problem Domain
• รถยนตน่ัง TOYOTA• รถจักรยานยนต SUZUKI• รถโดยสาร 6 ลอ VOLVO• เรอืซทีรานสควีนส• หัวรถจักรไอน้ํา• รถจักรยาน BMX