chapter 13 - object-oriented analysis and · pdf filechapter xiii: object-oriented analysis...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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