chapter 13 - object-oriented analysis and · pdf filechapter xiii: object-oriented analysis...

11
Chapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda Introduction to OOAD OOAD using UML Advantages and Disadvantages of OOAD Object-Oriented Analysis and Design 2 INTRODUCTION TO OOAD ความรู ้เบื องต้นเกียวกับการว เคราะห์และออกแบบ ระบบเช งวัตถุ Object-Oriented Analysis and Design 3 Introduction to OOAD ความรู ้เบื (องต้นเกี /ยวกับการวิเคราะห์และออกแบบระบบเชิงวัตถุมี หลายประเด็น แต่ในที /นี (จะกล่าวถึง 3 หัวข้อหลัก คือ o วัตถุ (Object) o คลาส (Class) o ความสัมพันธ์ระหว่างคลาส (Class Relationship) Object-Oriented Analysis and Design 4

Upload: lamdieu

Post on 20-Mar-2018

300 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Chapter XIII:

Object-Oriented Analysis and Design

(OOAD)

Agenda

• Introduction to OOAD

• OOAD using UML

• Advantages and Disadvantages of OOAD

Object-Oriented Analysis and Design 2

INTRODUCTION TO OOADความรูเ้บื�องต้นเกี�ยวกบัการวิเคราะหแ์ละออกแบบระบบเชิงวตัถุ

Object-Oriented Analysis and Design 3

Introduction to OOAD

• ความรูเ้บื(องตน้เกี/ยวกบัการวเิคราะหแ์ละออกแบบระบบเชงิวตัถุมีหลายประเดน็ แต่ในที/นี(จะกล่าวถงึ 3 หวัขอ้หลกั คอืo วตัถุ (Object)

o คลาส (Class)

o ความสมัพนัธร์ะหวา่งคลาส (Class Relationship)

Object-Oriented Analysis and Design 4

Page 2: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Object

• วตัถุ (Object) หมายถงึ สิ/งใดสิ/งหนึ/งที/ผูใ้ชต้อ้งการจดัเกบ็ขอ้มลูคุณลกัษณะเฉพาะของวตัถุ (Object Data) และพฤตกิรรมของวตัถุ(Object Behavior) ซึ/งเป็นกจิกรรมที/สามารถเกดิขึ(นกบัวตัถุนั (นๆ ในระบบที/จะพฒันา โดยวตัถุนั (นอาจจะเป็นสิ/งที/จบัตอ้งได ้หรอืเป็นสิ/งที/จบัตอ้งไมไ่ด้

Object-Oriented Analysis and Design 5

Object (ต่อ)

• สิ/งที/เกดิขึ(นกบัวตัถุในขณะหนึ/งไมว่า่จะเป็นกจิกรรม (Activity) การกระทาํ(Action) หรอืการเคลื/อนไหว (Movement) จะเป็นผลมาจากความสมัพนัธ ์(Relationship) ซึ/งไมส่ามารถมองเหน็ได ้ตอ้งอาศยัการตคีวามเอง และการมปีฏสิมัพนัธ ์(Interaction) ระหวา่ง 2 วตัถุขึ(นไป ซึ/งสามารถเหน็ได้อยา่งชดัเจน

• เชน่ “สมชายเขา้ไปในหอ้งพกัหมายเลข 412 เพื/อหยบิสมดุบนัทกึ”o วตัถุ คอื สมชาย หอ้ง 412 และสมดุบนัทกึo ความสมัพนัธร์ะหวา่งวตัถุ คอื สมชายเป็นเจา้ของหอ้งพกัหมายเลข 412, สมชาย

เป็นเจา้ของสมดุบนัทกึ และสมดุบนัทกึอยูใ่นหอ้งพกัหมายเลข 412o ปฏสิมัพนัธร์ะหวา่งวตัถุ คอื สมชายเขา้ไปในหอ้งพกัหมายเลข 412 และสมชาย

หยบิสมดุบนัทกึ

Object-Oriented Analysis and Design 6

Class

• คลาส (Class) เป็นการจดักลุม่ของวตัถุที/มลีกัษณะพื(นฐานเหมอืนกนัไวภ้ายในคลาสเดยีวกนั เชน่ คลาสสนิคา้ และคลาสผูข้าย โดยแต่ละคลาสจะประกอบดว้ย1. คุณลกัษณะ (Attribute) เป็นการรวบรวมคุณลกัษณะของสิ/งของอยูภ่ายใตข้อบเขต

การพฒันาระบบ

2. วธิกีาร (Method/Operation) เป็นการระบุกจิกรรมที/วตัถุสามารถทาํได ้หรอืถกูรอ้งขอใหท้าํได้

Object-Oriented Analysis and Design 7

Class (ต่อ)

• ในหลกัการเชงิวตัถุ คลาสจะป็นนามธรรม ระบบจะไมส่ามารถสรา้งกจิกรรมใดๆ เพื/อดาํเนินการกบัคลาสได ้เชน่ กจิกรรมขายสนิคา้ไม่สามารถเกดิขึ(นได ้เนื/องจากสนิคา้ป็นเพยีงนามธรรม

• จงึตอ้งมกีระบวนการสรา้งวตัถุจากคลาสนั (นๆ ซึ/งเรยีกวา่ Instantiation และเรยีกวตัถุวา่ Instance

Object-Oriented Analysis and Design 8

Page 3: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Class Relationship

• ความสมัพนัธร์ะหวา่งคลาสเกดิขึ(นจากคลาสสามารถตดิต่อสื/อสารและทาํงานรว่มกนัไดโ้ดยการสง่สารไป-มาระหวา่งกนัเพื/อใหเ้กดิกจิกรรมขึ(นในระบบ ความสมัพนัธร์ะหวา่งคลาสม ี3 ลกัษณะ คอื1. Degree of Relationship

2. Multiplicity/Cardinality Ratio

3. Abstraction

Object-Oriented Analysis and Design 9

Class Relationship (ต่อ)

1. ดกีรขีองความสมัพนัธ ์(Degree of Relationship)1. Unary Relationship

2. Binary Relationship

3. Ternary Relationship

Object-Oriented Analysis and Design 10

Class Relationship (ต่อ)

2. จาํนวนวตัถุที/สมัพนัธก์นั (Multiplicity/Cardinality Ratio)

Object-Oriented Analysis and Design 11

Class Relationship (ต่อ)

3. ความสมัพนัธท์ี/เกดิจากการสรา้งแนวคดิใหก้บัคลาสในระบบ (Abstraction)

1. การมสีว่นรว่ม (Association)

Object-Oriented Analysis and Design 12

Page 4: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Class Relationship (ต่อ)

3. ความสมัพนัธท์ี/เกดิจากการสรา้งแนวคดิใหก้บัคลาสในระบบ (Abstraction) (ต่อ)

2. การรวมกลุม่ (Aggregation)

Object-Oriented Analysis and Design 13

Class Relationship (ต่อ)

3. ความสมัพนัธท์ี/เกดิจากการสรา้งแนวคดิใหก้บัคลาสในระบบ (Abstraction) (ต่อ)

3. การเป็นสว่นประกอบ (Composition)

Object-Oriented Analysis and Design 14

Class Relationship (ต่อ)

3. ความสมัพนัธท์ี/เกดิจากการสรา้งแนวคดิใหก้บัคลาสในระบบ (Abstraction) (ต่อ)

4. ความสมัพนัธแ์บบ Generalization/Specialization

Object-Oriented Analysis and Design 15

OOAD USING UMLการวิเคราะหแ์ละออกแบบระบบเชิงวตัถดุ้วย UML

Object-Oriented Analysis and Design 16

Page 5: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

OOAD Using UML

• การวเิคราะหแ์ละออกแบบระบบเชงิวตัถุดว้ย Unified Modeling Language (UML) เป็นภาษาที/ไดร้บัการยอมรบัอยา่งกวา้งขวาง ปัจจุบนั UML ไดก้าํหนดรปูแบบแผนภาพไวท้ั (งสนิ 13 แผนภาพสาํหรบัอธบิายการทาํงานของระบบ โดยแบ่งแผนภาพออกเป็น 2 กลุ่มหลกัๆ1. Structural Model

2. Behavioral Model

Object-Oriented Analysis and Design 17

OOAD Using UML (ต่อ)

Structural Model

• Class Diagram• Object Diagram• Package Diagram• Composite Structure Diagram• Component Diagram• Deployment Diagram

Behavioral Model

• Use Case Diagram• Activity Diagram• State Diagram• Sequence Diagram• Communication Diagram• Timing Diagram• Interaction Overview Diagram

Object-Oriented Analysis and Design 18

Use Case Diagram

• Use Case Diagram เป็นแผนภาพแสดงความสมัพนัธร์ะหวา่งผูใ้ช้และองคป์ระกอบภายนอกกบัระบบที/จะพฒันา โดยแบ่งเป็นฟังกช์นัต่างๆ ใหเ้หน็ขอบเขตการทาํงานในภาพรวมของระบบทั (งหมด

Object-Oriented Analysis and Design 19

Use Case Diagram (ต่อ)

• สญัลกัษณ์ที/ใชใ้นแผนภาพ

Object-Oriented Analysis and Design 20

Page 6: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Use Case Diagram (ต่อ)

• ตวัอยา่งเบื(องตน้

Object-Oriented Analysis and Design 21

Use Case Diagram (ต่อ)

• ความสมัพนัธ์1. ความสมัพนัธแ์บบ Extend

2. ความสมัพนัธแ์บบ Include

Object-Oriented Analysis and Design 22

Use Case Diagram (ต่อ)

• ตวัอยา่ง

Object-Oriented Analysis and Design 23

Use Case Diagram (ต่อ)

• ความสมัพนัธแ์บบ Generalization/Specialization

Object-Oriented Analysis and Design 24

Page 7: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Use Case Diagram (ต่อ)

• ตวัอยา่ง

Object-Oriented Analysis and Design 25

Activity Diagram

• Activity Diagram เป็นหนึ/งในแผนภาพที/ใชแ้สดงพฤตกิรรมของระบบ เพื/อแสดงลาํดบัการทาํกจิกรรมภายในระบบ ซึ/งลาํดบัเหล่านั (นไม่จาํเป็นตอ้งเกดิขึ(นครั (งละ 1 กจิกรรม

• นอกจากนั (น Activity Diagram ยงัสามารถแสดงเงื/อนไขของการตดัสนิใจในระหวา่งทาํกจิกรรมได ้ซึ/งคลา้ยคลงึกบั Flow Chart Diagram

Object-Oriented Analysis and Design 26

Activity Diagram (ต่อ)

Object-Oriented Analysis and Design 27

Class Diagram

• Class Diagram เป็นแผนภาพที/แสดงคลาสและความสมัพนัธร์ะหวา่งคลาสต่างๆ ของระบบภายใตข้อบเขตของระบบที/จะพฒันาที/ได้กาํหนดไวแ้ลว้

Object-Oriented Analysis and Design 28

Page 8: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Class Diagram (ต่อ)

• การสรา้งคลาส1. คน้หาคาํนาม2. พจิารณาความเหมาะสมของคาํนามที/จะนํามาสรา้งเป็นคลาส

i. ตดัคาํนามที/ไมอ่ยูภ่ายใตข้อบเขตของระบบที/จะพฒันาii. ตดัคาํนามที/มคีวามหมายไมช่ดัเจนและไมเ่จาะจงiii. ในกรณทีี/มคีาํนามหลายคาํที/มคีวามหมายซํ(าซอ้นกนั ใหเ้ลอืกใชเ้พยีงคาํเดยีวที/มี

ความหมายชดัที/สดุiv. พจิารณาคาํนามที/เป็นคุณลกัษณะของคลาสv. คาํนามที/เป็นกจิกรรมที/เกดิขึ(นในระบบไมจ่าํเป็นตอ้งสรา้งเป็นคลาส

3. สรปุรายการของคาํนามทั (งหมดที/จะนําไปสรา้งเป็นคลาส

Object-Oriented Analysis and Design 29

Class Diagram (ต่อ)

คน้หาคาํนาม

Object-Oriented Analysis and Design 30

Class Diagram (ต่อ)

พจิารณาความเหมาะสมของคาํนามที/จะมาสรา้งเป็นคลาส

Object-Oriented Analysis and Design 31

Class Diagram (ต่อ)

• สนิคา้ (Product)

• พนกังานขาย (Salesperson)

• การขายสนิคา้(Sale)

• การสั /งซื(อสนิคา้(Purchase)

• ผูข้ายสนิคา้(Vendor)

สรปุรายการของคาํนามทั (งหมดที/จะนําไปสรา้งเป็นคลาส

Object-Oriented Analysis and Design 32

Page 9: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Class Diagram (ต่อ)

• กาํหนดความสมัพนัธร์ะหวา่งคลาส

Object-Oriented Analysis and Design 33

Class Diagram (ต่อ)

• การสรา้งคลาสใหมจ่ากความสมัพนัธร์ะหวา่งคลาสในลกัษณะ Many to Many

Object-Oriented Analysis and Design 34

Class Diagram (ต่อ)

Object-Oriented Analysis and Design 35

Class Diagram (ต่อ)

Object-Oriented Analysis and Design 36

Page 10: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

Sequence Diagram

• Sequence Diagram เป็นภาพที/ใชแ้สดงความมปีฏสิมัพนัธก์นัในลกัษณะของการสง่สาร (Message) ระหวา่งวตัถุตามลาํดบัเหตุการณ์ที/เกดิขึ(นจรงิ โดยนําเสนอทศิทางจากบนลงล่างของแผนภาพ

Object-Oriented Analysis and Design 37

Sequence Diagram (ต่อ)

• สญัลกัษณ์ที/ใชใ้นแผนภาพ

Object-Oriented Analysis and Design 38

Sequence Diagram (ต่อ)

• สญัลกัษณ์ที/ใชใ้นแผนภาพ (ต่อ)

Object-Oriented Analysis and Design 39

Sequence Diagram (ต่อ)

• ตวัอยา่ง

Object-Oriented Analysis and Design 40

Page 11: Chapter 13 - Object-Oriented Analysis and · PDF fileChapter XIII: Object-Oriented Analysis and Design (OOAD) Agenda • Introduction to OOAD • OOAD using UML • Advantages and

ADVANTAGES AND DISADVANTAGES OF OOADข้อดีและข้อเสียการวิเคราะหแ์ละออกแบบระบบเชิงวตัถุ

Object-Oriented Analysis and Design 41

Advantages and Disadvantages of

OOAD

☺ ขอ้ดี1. สามารถนําเสนอระบบไดใ้กลเ้คยีงกบัความเป็นจรงิตามหลกัการ

ธรรมชาติ

2. สามารถนํารหสัโปรแกรมกลบัมาใชใ้หมไ่ด้

� ขอ้เสยี1. การกระจายของขอ้มลูและกฎเกณฑท์างธุรกจิของระบบที/พฒันาไปไวใ้น

แผนภาพแต่ละประเภท

Object-Oriented Analysis and Design 42

Conclusion

Object-Oriented Analysis and Design 43

The End