UML Modeling

Download Report

Transcript UML Modeling

UML Modeling
SCC : Suthida Chaichomchuen
[email protected]
1
What is UML?
• UML : Unified Modeling Language
คือ โมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP : Object
Oriented Programming
• UML เป็ นภาษาแผนภาพ ซึ่งจะมี Notation ที่นาไปใช้ใน
Model ต่าง ๆ
2
Notation
• Class
• Aggregation
• Generalize
• Association
3
เครื่ องมือที่ใช้ในการแปลง UML เป็ น Coding
• Java
• Power builder
• VB
4
Brief history of UML
เกิดจากการรวมเอาข้อดีของ 3 แนวคิดมารวมกัน คือ
1. Grady Booch
Booch method
2. Jame Rumbough
Object Modeling Techniques (OMT)
3. Ivar Jacobson
Object Oriented Software Engineer (OOSE)
5
Why UML?
1. UML สามารถแสดงส่ วนประกอบในการสร้างโครงการในรู ป
ของ OOP
2. เชื่อมแนวคิดกับการออกแบบระบบโดยใช้ Object
Oriented Code
3. ง่ายต่อการทาความเข้าใจและสามารถแปลงเป็ น Code
Program ได้
6
Diagram of UML
• Diagram ของ UML ที่ใช้ใน Object-Oriented
Analysis and Design แบ่งได้เป็ น 2 ประเภทคือ
– Static Diagram
– Dynamic Diagram
7
Static Diagram
• คือ Diagram ที่แสดงภาพในเชิงสถิตย์ (Static) ของระบบ
โดยจะแสดงถึงการมีอยูข่ อง Class และความสัมพันธ์ระหว่าง
Class แต่จะไม่แสดงถึงกิจกรรมที่จะเกิดขึ้น
• มี 2 Diagrams ที่ใช้คือ
– Use Case Diagram
– Class Diagram
8
Dynamic Diagram
• คือ Diagram ที่แสดงภาพในเชิงกิจกรรม (Dynamic)
ของระบบ โดยจะแสดงถึงสิ่ งที่เกิดขึ้นจากกิจกรรมของ Class
ต่าง ๆ ที่มีในระบบ
• มี 2 Diagrams ที่ใช้คือ
– Sequence Diagram
– Statechart Diagram
9
Use Case Diagram
• ใช้เพื่ออธิบายฟังก์ชนั ของระบบในมุมมองของกลุ่มผูใ้ ช้ระบบ
• เป็ นเทคนิคในการสร้างแบบจาลองเพื่อใช้อธิบายหน้าที่ของระบบใหม่
หรื อระบบปัจจุบนั
• ความต้องการของระบบจะได้จาก ลูกค้า/ผูใ้ ช้ และผูพ้ ฒั นาระบบ
10
Use Case Diagram
• ใน Diagram จะประกอบด้วยสัญลักษณ์ต่อไปนี้
– Use Case
– Actor
– Use case Relation
– System
11
Use Case Diagram
SimpleWatch
Actor
ReadTime
WatchUser
Use case
SetTime
WatchRepairPerson
ChangeBattery
12
Class Diagram
• ใช้เพื่อแสดงโครงสร้างของระบบซึ่งประกอบด้วย
– Class และรายละเอียดภายใน Class
– ความสัมพันธ์ในเชิง abstraction ระหว่าง Class เช่น
• Aggregation
• Generalization
• Association
13
Class Diagram
Class
Multiplicity
1
2
PushButton
state
push()
release()
Association
SimpleWatch
1
1
1
2
1
LCDDisplay
blinkIdx
blinkSeconds()
blinkMinutes()
blinkHours()
stopBlinking()
referesh()
Battery
load()
1
Time
now()
Attributes
Operations
14
Sequence Diagram
• ใช้เพื่อแสดงกิจกรรมรวมของระบบ ซึ่งเป็ น กิจกรรมที่เกิดขึ้น
ระหว่าง ผูใ้ ช้กบั ระบบ และระหว่าง Object ต่าง ๆ ในระบบ
• ใช้เพื่อบอกลาดับการทางานของระบบ โดยมี Object และเวลา
เป็ นตัวกาหนดลาดับของงาน
• ใช้เพื่อแสดงปฏิสัมพันธ์ (Interaction) ระหว่าง Object
ตามลาดับของเหตุการณ์ที่เกิดขึ้น ณ เวลาที่กาหนด
15
Sequence Diagram
Object
:WatchUser
:SimpleWatch
:LCDDisplay
pressButton1()
blinkHours()
pressButton1()
blinkMinutes()
pressButton2()
:Time
incrementMinutes()
refresh()
pressButtons1And2()
commitNewTime()
stopBlinking()
Activation
Message
16
State Diagram
• ใช้เพื่อแสดงสถานะ (State) ของแต่ละ Object รวมทั้ง
เหตุการณ์ต่าง ๆ ที่ทาให้สถานะของ Object เปลี่ยนไป
• โดยจะให้ความสนใจว่า ณ เวลาต่าง ๆ Object นั้นมีสถานะเป็ น
แบบใด
17
State Diagram
Initial state
Event
button1&2Pressed
Transition
button1&2Pressed
Blink
Hours
button2Pressed
State
Increment
Hours
button1Pressed
Blink
Minutes
button2Pressed
Increment
Minutes
button1Pressed
Stop
Blinking
Blink
Seconds
button1&2Pressed
Final state
button2Pressed
Increment
Seconds
18
Object คืออะไร?
• วัตถุในโลกทั้งที่จบั ต้องได้ และจับต้องไม่ได้
• กิจกรรมที่เกิดขึ้นระหว่าง Object 2 ตัวขึ้นไปมาจาก 2 อย่าง
คือ
– การมีความสัมพันธ์ (Relationship)
– การมีปฏิสัมพันธ์ (Interaction)
19
ตัวอย่างสิ่ งที่เกิดจาก objects
• คนรับประทานอาหาร
– Interaction : รับประทาน
– Relationship : เป็ นเจ้าของ
• สุ นขั เล่นกับแมว
– Interaction : เล่น
– Relationship : เป็ นเพื่อน
20
ตัวอย่าง
• นาย ก เปิ ดตูเ้ ย็นยีห่ อ้ A แล้วหยิบน้ ามาดื่ม
• Objects
– นาย ก
– ตูเ้ ย็นยีห่ อ้ A
– น้ า
• Relationships
– นาย ก เป็ นเจ้าของตูเ้ ย็นยีห่ อ้ A
– น้ าอยูใ่ นตูเ้ ย็นยีห่ อ้ A
21
ตัวอย่าง
• Interactions
– นาย ก เปิ ดตูเ้ ย็นยีห่ อ้ A
– นาย ก หยิบน้ า
– นาย ก ดื่มน้ า
22
Relationship
• ความเกี่ยวข้องหรื อความสัมพันธ์ระหว่าง Object 2 ตัวขึ้นไป
เช่น
– ความเป็ นแม่-ลูก
– ความเป็ นเจ้าของการมีอยู่
23
Interaction
• ปฏิสมั พันธ์หรื อการกระทาใด ๆ ที่เกิดขึ้นระหว่าง Objects 2
ตัวขึ้นไป เช่น
– การสร้าง
– การเปลี่ยนแปลง
– การเล่น
– การกระตุน้
24
Domain
• คือ กรอบของความสนใจที่มีต่อ object นั้น ๆ
• ใน Domain หนึ่งสามารถมี Objects ได้ต้ งั แต่ 2 ตัว
ขึ้นไปจนถึงนับไม่ถว้ น
• Object ตัวหนึ่ง ๆ สามารถอยูไ่ ด้ในหลาย ๆ Domain
25
Object Orientation คืออะไร?
• หมายถึง การใช้ Object เป็ นตัวหลักเพื่อพิจารณาความเป็ นจริ ง
ต่าง ๆ ที่เกิดขึ้นในโลก
26
Concept
• หมายถึง ความคิดรวบยอดที่เรามีให้กบั วัตถุน้ นั ๆ ภายในกรอบที่
กาหนด
27
Class
• กลุ่มของ Objects ที่ได้จากการให้ concept กับ object
ต่าง ๆ ในกรอบที่กาหนด หรื อเรี ยกอีกอย่างว่า Abstract
Objects
• เปรี ยบเสมือนแม่พิมพ์ (Template) ที่ใช้เพื่อสร้าง object
• Class ถือเป็ นนามธรรม (abstract) เราไม่สามารถทาให้
class ดาเนินกิจกรรมใด ๆ ได้เลย
28
Attributes & Functions
• Attributes : คุณสมบัติที่ใช้บรรยาย object โดยคุณสมบัติ
เหล่านี้จะอยูใ่ น domain ที่เราสนใจ
• Functions : ความสามารถในการทากิจกรรมของ object
ที่มีไว้เพื่อให้ object อื่น ๆ ใน domain สามารถเรี ยกใช้
หรื อกระตุน้ ให้เกิดได้
29
ตัวอย่าง
• นาย ก เปิ ดเครื่ องคอมพิวเตอร์ยหี่ อ้ A
• Objects
– นาย ก
– เครื่ องคอมพิวเตอร์ยหี่ อ้ A
• Class
– คน
– เครื่ องคอมพิวเตอร์
30
Abstraction & Instantiation
• Abstraction : กระบวนการในการให้ concept กับ
object จนเกิดเป็ น class
• Instantiation : กระบวนการของการทาให้เกิด object
จาก class
31
Abstractions
• แบ่งได้เป็ น 4 กระบวนการย่อย ๆ คือ
– Classification Abstraction
– Aggregation Abstraction
– Generalization Abstraction
– Association Abstraction
32
Classification Abstraction
• เป็ นกระบวนการที่ใช้เพื่อแยกประเภท (Classify) object
ต่าง ๆ ที่อยูใ่ น domain และให้ concept กับ object
ต่าง ๆ เหล่านั้น เพื่อให้ได้ class พื้นฐานที่ตอ้ งการ
• เป็ น Abstraction ที่สาคัญที่สุด เพราะ class
เกิดขึ้นด้วย Classification abstraction
33
Aggregation Abstraction
• คือ กระบวนการที่นาเอา class พื้นฐาน มารวมกันหรื อประกอบ
กัน เพื่อให้เกิดเป็ น class ที่ใหญ่ข้ ึนหรื อซับซ้อนขึ้น
34
Generalization Abstraction
• คือ กระบวนการในการนา class ที่มีลกั ษณะเหมือนหรื อ
คล้ายคลึงกัน หรื อมีคุณสมบัติอย่างใดอย่างหนึ่งร่ วมกันมาจัด
หมวดหมู่ไว้เป็ น class เดียวกัน
• กระบวนการย้อนกลับของ Generalization คือ
Specialization ซึ่ง Specialization คือการตอบ
คาถามว่าใน class หนึ่ง ๆ นั้นสามารถจาแนกเป็ น class
อะไรได้บา้ ง
35
Association Abstraction
• คือ กระบวนการในการสร้างความสัมพันธ์ระหว่าง class ต่าง ๆ
ใน Problem Domain ที่เราสนใจ
• ความสัมพันธ์ดงั กล่าวคือ ความสัมพันธ์ที่ไม่สามารถอธิบายได้ดว้ ย
Aggregation หรื อ Generalization
36
Attributes & Functions
• Attribute หมายถึง คุณสมบัติต่าง ๆ ที่ใช้บรรยาย object
โดยคุณสมบัติเหล่านี้จะอยูใ่ น domain ที่เราสนใจ
• Function หมายถึง ความสามารถในการทากิจกรรมของ
object ที่มีไว้เพื่อให้ object อื่น ๆ ใน domain สามารถ
เรี ยกใช้หรื อกระตุน้ ให้เกิดได้
37
Object-Oriented Software Engineering
• OOSE คือ การพัฒนาระบบคอมพิวเตอร์ดว้ ยหลักการ
Object Orientation ประกอบด้วย 3 ขั้นตอนใหญ่คือ
– Object-Oriented Analysis : OOA
– Object-Oriented Design : OOD
– Object-Oriented Implementation หรื อ
Object-Oriented Programming : OOP
38
Object-Oriented Analysis : OOA
• เป็ นขั้นตอนการวิเคราะห์เพื่อให้ทราบว่า Problem
Domain คืออะไร
• เพื่อทาความเข้าใจในรายละเอียดของปัญหาเหล่านั้น
• เป็ นการหาคาตอบให้กบั คาถาม
What
is the problem to be solved?
39
Object-Oriented Design : OOD
• เป็ นขั้นตอนการออกแบบหรื อจาลอง (Model) วิธีการเพื่อ
แก้ปัญหาใน Problem Domain
• เป็ นการหาคาตอบให้กบั คาถาม
How
to solve the problem?
40
Object-Oriented Programming : OOP
• เป็ นขั้นตอนการสร้างหนทางแก้ปัญหาในรายละเอียดให้เกิดขึ้นและ
ใช้งานได้จริ ง
• เป็ นการหาคาตอบให้กบั คาถาม
How
to implement the solution?
41
Problem Domain
•
•
•
•
•
•
รถยนต์นงั่ TOYOTA
รถจักรยานยนต์ SUZUKI
รถโดยสาร 6 ล้อ VOLVO
เรื อซีทรานส์ควีนส์
หัวรถจักรไอน้ า
รถจักรยาน BMX
42