54
290353 Object-Oriented Analysis and Design อ.อออออออออ อออออออออ อออออออออออออออออออออออออออ ออออออออออออออออ ออออออออ ออออออออออออออออ อออออ 3 ออออออออออออออออ ออออออออออออออ Class

290353 Object-Oriented Analysis and Design

Embed Size (px)

DESCRIPTION

290353 Object-Oriented Analysis and Design. อ.ธารารัตน์ พวงสุวรรณ คณะวิทยาศาสตร์และศิลปศาสตร์ มหาวิทยาลัยบูรพา วิทยาเขตสารสนเทศจันทบุรี. บทที่ 3 แนวคิดในการสร้าง และจัดหมวดหมู่ Class. เนื้อหา. การกำหนด Problem Domain Classification Abstraction Aggregation Abstraction - PowerPoint PPT Presentation

Citation preview

Page 1: 290353 Object-Oriented  Analysis and Design

290353 Object-Oriented Analysis and Design

อ.ธาราร�ตน์� พวงสุ�วรรณคณะว�ทยาศาสุตร�และศ�ลปศาสุตร�

มหาว�ทยาล�ยบู�รพา ว�ทยาเขตสุารสุน์เทศจั�น์ทบู�ร

บูทท ! 3แน์วค�ดใน์การสุร%าง

และจั�ดหมวดหม�& Class

Page 2: 290353 Object-Oriented  Analysis and Design

เน์'(อหาการก�าหนด Problem DomainClassification AbstractionAggregation AbstractionGeneralization AbstractionAssociation Abstraction

Page 3: 290353 Object-Oriented  Analysis and Design

คือการก�าหนดขอบเขตของสิ่��งที่��ต�องการจะพิ�จารณา

เป็�นสิ่��งที่��ต�องพิ�จารณาอ�นด�บแรกเมื่�อตกลงที่��จะพิ�ฒนาระบบด�วยหล�กการของ OOAD

สิ่ามื่ารถก�าหนด Problem Domain ได�จากการสิ่อบถามื่คืวามื่ต�องการ (Requirement) จากผู้'�ใช้�ระบบ (End-User) งานน�*น ๆ

การก)าหน์ดการก)าหน์ด Problem DomainProblem Domain

Page 4: 290353 Object-Oriented  Analysis and Design

Problem Domain ท !แน์&ชั�ดม�กจัะย�งไม&สุามารถหาได%ใน์ข�(น์ต%น์ของการเร�!มว�เคราะห�ระบูบู แต&การก)าหน์ดโครงใหญ่& หร'อภาพรวมของ Problem Domain น์�(น์ต%องชั�ดเจัน์

เช้,น ถ�าจะพิ�ฒนาระบบงานให�ก�บฝ่.ายบ�ญช้� น��นแสิ่ดงว,า Object ต,าง ๆ ต�องเป็�นเร�องที่��เก��ยวข�องก�บฝ่.ายบ�ญช้� (ซึ่1�งขณะเด�ยวก�นอาจเก��ยวก�บฝ่.ายบ2คืคืลก3ได� แต,ต�องไมื่,มื่� Object ใด ๆ ที่��ไมื่,เก��ยวก�บฝ่.ายบ�ญช้�) และในอนาคืตอาจต�องรวมื่เอางบการเง�นเป็�นสิ่,วนหน1�งของ Problem Domain ก3ได�

ข%อควรจั)าใน์การก)าหน์ดข%อควรจั)าใน์การก)าหน์ด Problem DomainProblem Domain

Page 5: 290353 Object-Oriented  Analysis and Design

การค%น์หา การค%น์หา Objects Objects ใน์ ใน์ Problem DomainProblem Domainสิ่��งแรกที่��ต�องที่�าเมื่�อเรามื่� Problem Domain ในภาพิ

รวมื่แล�ว คือ การพิ�จารณาว,า มื่� Object อะไรบ�างภายใน Domain น�*น ๆ โดยย�งไมื่,ต�องคื�าน1งถ1งก�จกรรมื่ที่��เก�ดข1*นในระบบ

“ค)าน์าม” ถอเป็�นต�วบ,งช้�*ที่��ด�ในการหา Object ใน Problem Domain แต,อย,างไรก3ตามื่คื�านามื่บางคื�าอาจจะกลายเป็�น Attribute ของ Objects ก3ได�เช้,นเด�ยวก�น

หาคื�านามื่ที่�*งหมื่ดที่��มื่�ใน Problem Domain แล�วจ1งมื่าแยกแยะภายหล�งว,าสิ่��งใดคือ Objects สิ่��งใดคือ Attribute ของ Object

5

Page 6: 290353 Object-Oriented  Analysis and Design

การจั)าแน์ก Object ใน์ Problem DomainObject มื่� 2 ป็ระเภที่

Touchable or Tangible Object Intangible Object

บที่บาที่ (Roles) เช้,น คืร' ต�ารวจ เหต2การณ6 ( Incidents , Event )ป็ฏิ�สิ่�มื่พิ�นธ์6 (Interactions) เช้,น ที่างแยก

สิ่�ญญาเง�นก'�

Page 7: 290353 Object-Oriented  Analysis and Design

ต�วอย&างการหา ต�วอย&างการหา ObjectObject ใน์ ใน์ Problem DomainProblem Domainต�วอย,างที่�� 1 ข�อคืวามื่ :

“หน์�งสุ'อเล&มหน์0!ง ปกสุ แดง ภายในป็ระกอบด�วยเน์'(อหาเก !ยวก�บู Object Orientation หน�งสิ่อเล,มื่น�*มื่�จ�านวน 50 หน์%า”ค)าน์าม ประเภทหน�งสิ่อเล,มื่หน1�ง Object

ป็กสิ่�แดง หน1�งใน Attribute ของ Object หน�งสิ่อเล,มื่หน1�ง

เน*อหาเก��ยวก�บ Object Orientation

หน1�งใน Attribute ของ Object หน�งสิ่อเล,มื่หน1�ง

หน�า เป็�นล�กษณะนามื่ที่��บอกถ1งจ�านวนหน�าของหน�งสิ่อ ถอเป็�นสิ่,วนหน1�งของ Attribute ของ Object หน�งสิ่อเล,มื่หน1�ง

7

Page 8: 290353 Object-Oriented  Analysis and Design

ต�วอย&างการหา ต�วอย&างการหา ObjectObject ใน์ ใน์ Problem DomainProblem Domainต�วอย,างที่�� 2

ข�อคืวามื่ :“การประมวลผลข�อมื่'ลด�านการเง�นของธ์นาคืารพิาณ�ช้ย6ด�วยเคืร�องคือมื่พิ�วเตอร6 มื่�ด�วยการ 2 ป็ระเภที่ ได�แก, การประมวลผลแบูบู Batch (การสิ่ะสิ่มื่ข�อมื่'ลไว�ก,อนช้,วงระยะเวลาหน1�ง แล�วจ1งป็ระมื่วลผู้ลในคืราวเด�ยว ) การประมวลผลแบูบู Real Time (การป็ระมื่วลผู้ลที่�นที่�ที่��มื่�ข%อม�ลเข�าสิ่',ระบบ ) และในการป็ระมื่วลผู้ลในแต,ละคืร�*งจะมื่�เวลาท !ใชั%ใน์การประมวลผล (Elapse Time) ที่��ไมื่,แน,นอนข1*นอย',ก�บขน์าดของข%อม�ลที่��เข�ามื่าสิ่',ระบบ โดยการป็ระมื่วลผู้ลแบบ Batch ในแต,ละว�นจะมื่�เวลาเร�!มประมวลผล (Starting Time) ที่��แน,นอน ในขณะที่��การป็ระมื่วลผู้ลแบบ Real Time ต�องพิร�อมื่สิ่�าหร�บการป็ระมื่วลผู้ลเสิ่มื่อ เพิราะเวลาของการเข�ามื่าของข�อมื่'ลไมื่,แน,นอน”

8

Page 9: 290353 Object-Oriented  Analysis and Design

ต�วอย&างการหา Object ใน์ Problem Domain

ค)าน์าม ประเภทการป็ระมื่วลผู้ล Object

ป็ระเภที่ของการป็ระมื่วลผู้ล (ซึ่1�งมื่� 2 ป็ระเภที่ คือ Batch และ Real Time)

หน1�งใน Attribute ของ Object การป็ระมื่วลผู้ล

ข�อมื่'ล Object

ขนาดของข�อมื่'ล หน1�งใน Attribute ของ Object ข�อมื่'ล

เวลาที่��ใช้�ในการป็ระมื่วลผู้ล (Elapse Time)

หน1�งใน Attribute ของ Object การป็ระมื่วลผู้ล

เวลาที่��เร��มื่ต�นการป็ระมื่วลผู้ล (Starting Time)

หน1�งใน Attribute ของ Object การป็ระมื่วลผู้ล

9

Page 10: 290353 Object-Oriented  Analysis and Design

Abstractions

กระบวนการในการให� Concept ก�บ Object ต,าง ๆ ใน Real World เพิ�อสิ่ร�าง Class น�*นเราเร�ยกว,า Abstractions ซึ่1�งแบ,งออกได�เป็�น

4 กระบวนการย,อย คือ Classification Abstraction Aggregation Abstraction Generalization Abstraction Association Abstraction

Page 11: 290353 Object-Oriented  Analysis and Design

Classification Classification AbstractionAbstractionเป็�นกระบวนการที่��ใช้�แยกป็ระเภที่ (Classify) Object

ต,าง ๆ ที่��อย',ใน Domain และให� Concept ก�บ Object ต,าง ๆ เหล,าน�*น เพิ�อให�ได� “Class พิ*นฐาน” (Fundamental Classes) ที่��ต�องการ

เป็�นการตอบคื�าถามื่ว,า Object ต�วใดต�วหน1�งน�*นเป็�นสิ่มื่าช้�กของกล2,มื่ Object (Class ) ใด - “Is Member of”

การที่�า Classification Abstraction หรอการสิ่ร�าง Classจาก Object แสิ่ดงด�วยสิ่�ญล�กษณ6 ล'กศรป็ระที่��ลากจาก Object ไป็ย�ง Class

11

Page 12: 290353 Object-Oriented  Analysis and Design

Classification Abstraction เราถอว,า Classification เป็�น abstraction

ที่��สิ่�าคื�ญที่��สิ่2ด เพิราะ Class เก�ดข1*นด�วย Classification Abstraction

ถ�าหาก Class พิ*นฐานที่��เก�ดข1*นในข�*นตอนน�*เก�ดข�อผู้�ดพิลาด การสิ่ร�าง Class ใหมื่, ๆ ด�วยกระบวนการ Aggregation และ Generalization และการสิ่ร�างคืวามื่สิ่�มื่พิ�นธ์6 ระหว,าง Class ต,าง ๆ ด�วย Association ย,อมื่เก�ดคืวามื่ผู้�ดพิลาดด�วยเช้,นก�น

Page 13: 290353 Object-Oriented  Analysis and Design

รถจั�กรยาน์ยน์ต�ซู�ซู�ก�

รถยน์ต�โตโยต%า

รถโดยสุาร 6 ล%อ volvo

รถยนต6

Concept เก��ยวก�บรถ1 . มื่�เคืร�องยนต62. มื่�ล�อจ�านวนหน1�ง3. ว��งไป็บนถนนได�4. ใช้�แก<สิ่หรอน�ามื่�นเป็�นเช้�องเพิล�ง

เรออ�นดามื่�นป็ร�=นเซึ่สิ่ รถไฟ รถจ�กรยาน BMX

Classification Abstraction

Page 14: 290353 Object-Oriented  Analysis and Design

Classification Abstraction

คน์

สุมชัายสุมหญ่�ง สุมจั�ตร สุมศ�กด�3

Is member of

Page 15: 290353 Object-Oriented  Analysis and Design

Classification Classification ของของ Class Class คน์คน์สิ่มื่ช้าย สิ่มื่หญ�ง สิ่มื่จ�ตร และสิ่มื่ศ�กด�? ถอ

เป็�น Object ในโดเมื่นหน1�ง ซึ่1�งที่�*ง 4 มื่�ล�กษณะเหมื่อนก�นคือ มื่�ห' มื่�ตา มื่�ป็าก สิ่ามื่ารถด�าเน�นก�จกรรมื่ต,างๆ ได�เหมื่อนคืนที่��วไป็ ด�งน�*นที่�*ง 4 ถอเป็�น Object ใน Class คืน

15

Page 16: 290353 Object-Oriented  Analysis and Design

Classification Abstraction

รถ

รถเก4งของแดง รถมอเตอร�ไซูต�ของด)า

รถสุปอร�ตของสุมศร รถต�%ของสุมควร

Is member of

Page 17: 290353 Object-Oriented  Analysis and Design

Classification ของคน์และรถยน์ต�

ถ�า Problem Domain ป็ระกอบด�วย Object ที่�*งสิ่�*น 7 ต�ว คือ สิ่มื่ช้ายสิ่มื่หญ�ง สิ่มื่จ�ตร สิ่มื่ศ�กด�? รถเก@งสิ่�แดงของสิ่มื่ช้าย รถมื่อเตอร6ไซึ่คื6สิ่�ช้มื่พิ'ของสิ่มื่หญ�งและสิ่มื่จ�ตร และรถต'�สิ่�ขาวของสิ่มื่ศ�กด�?

หล�งจากใช้� Classification Abstraction ในการแยกแยะ Object เหล,าน�* จะพิบว,าไม&สุามารถใชั% Concept เพ ยงหน์0!งเด ยวใน์การแยกแยะท�กๆ Object ใน์ Problem Domain ได%

Concept ที่��ใช้�แยกป็ระเภที่ของ Object ใน Problem Domain น�*คือ Concept ของรถยนต6 และ คืน

17

Page 18: 290353 Object-Oriented  Analysis and Design

Classification Abstractionในบางคืร�*ง Object หน1�งสิ่ามื่ารถ เป็�นสิ่มื่าช้�กของ Class ได�มื่ากกว,าหน1�ง Class ได�เช้,นก�นด�งต�วอย,างต,อไป็น�*

แมวแมว หมาหมา สุ�ตว�สุ !ขาสุ�ตว�สุ !ขา สุ�ตว�สุ ด)าสุ�ตว�สุ ด)า

แมวสุ ด)าแมวสุ ด)า หมาสุ ขาวหมาสุ ขาว ว�วสุ ด)าว�วสุ ด)า แมวสุ ขาวแมวสุ ขาว

แมวแมว หมาหมา

Page 19: 290353 Object-Oriented  Analysis and Design

Classification Abstraction

เราสิ่ามื่ารถแก�ป็Aญหาคืวามื่ก�ากวมื่ โดยการป็ร�บป็ร2ง Classification ของหมื่าและแมื่ว ใหมื่,จะได�ผู้ลล�พิธ์6 ด�งต,อไป็น�*

แมวแมว หมาหมา สุ�ตว�สุ !ขาม เขาสุ�ตว�สุ !ขาม เขา

แมวสุ ด)าแมวสุ ด)า หมาสุ ขาวหมาสุ ขาว ว�วสุ ด)าว�วสุ ด)า แมวสุ ขาวแมวสุ ขาว

Page 20: 290353 Object-Oriented  Analysis and Design

Classification ของ หมา แมว สุ�ตว�สุ ขาวและสุ�ตว�สุ ด)า

แมื่วสิ่�ด�า หมื่าสิ่�ด�า แมื่วสิ่�ขาว หมื่าสิ่�ขาว

หมื่า แมื่ว สิ่�ตว6สิ่�ขาว สิ่�ตว6สิ่�ด�า

Page 21: 290353 Object-Oriented  Analysis and Design

จากร'ป็ ถอว,าเป็�นการที่�า Classification ที่��คื,อนข�างก�ากวมื่ เพิราะ Object หน1�งต�วสิ่ามื่ารถจ�ดอย',ใน Class มื่ากกว,า 1 Class

การแก�ไขคืวามื่ก�ากวมื่จากการสิ่ร�าง Class ที่��ใช้� Concept หลายๆ Concept พิร�อมื่ๆ ก�น คือเลอกว,าจะใช้� Concept ใดเพิ�ยง Concept

เด�ยวในการแยกแยะ Object โดยจ�ดให� Concept ที่��เหลอเป็�นเพิ�ยง Attribute ของ Class เที่,าน�*น

21

Classification Classification ของ หมา แมว ของ หมา แมว สุ�ตว�สุ ขาว และสุ�ตว�สุ ด)าสุ�ตว�สุ ขาว และสุ�ตว�สุ ด)า

Page 22: 290353 Object-Oriented  Analysis and Design

การปร�บูปร�งการท)า C lassification ของหมาและแมว

หมื่าสิ่�ด�า หมื่าสิ่�ขาว แมื่วสิ่�ด�า แมื่วสิ่�ขาว

หมื่า แมื่ว

Page 23: 290353 Object-Oriented  Analysis and Design

ต�วอย&างการจั)าแน์ก ต�วอย&างการจั)าแน์ก Objects Objects และ และ ClassClass*** จากต�วอย,าง Problem Domain ต,อไป็น�* ให�น�สิ่�ตจ�าแนก

Object และ Classต�วอย,างที่�� 1

“พิยาบาล ช้�อ ป็ราณ� ฉี�ดยาป็Cองก�นโรคืบาดที่ะย�กให�แก,คืนไข�ช้�อ ก�ตต�”

ต�วอย,างที่�� 2“นายสิ่มื่ช้ายเตะฟ2ตบอล”

ต�วอย,างที่�� 3“ระบบน�เวศในสิ่วนจต2จ�กรป็ระกอบด�วยสิ่�ตว6นานาช้น�ด เช้,น แมื่ลง กบ สิ่2น�ข แมื่ว เป็�นต�น”

23

Page 24: 290353 Object-Oriented  Analysis and Design

การพ�จัารณา Method ของคลาสุการหา Method ของ Class คือ เป็�น Object ที่��ถ'กกระที่�าสิ่�าหร�บ Method จะใช้�คื�ากร�ยา (Verb) เป็�นต�วระบ2บ,งช้�*

Page 25: 290353 Object-Oriented  Analysis and Design

Classification ของ Class คน์(ใสุ&รายละเอ ยดของ Attribute ก�บู Method)

สิ่มื่ช้าย สิ่มื่หญ�ง

สิ่มื่จ�ตร สิ่มื่ศ�กด�?

คืนช้�อนามื่สิ่ก2ลเพิศอาย2บอกช้�อและนามื่สิ่ก2ลบอกเพิศบอกอาย2

Page 26: 290353 Object-Oriented  Analysis and Design

Visibility ของ Attributes และ Methodเป็�นการจ�าแนกป็ระเภที่ของ Attributes

และ Operation ตามื่คืวามื่สิ่ามื่ารถในการเห3นและการเข�าถ1งPublic (+)Private (-)Protected (#)

26

Page 27: 290353 Object-Oriented  Analysis and Design

Public Attributes andMethodsคือ Attributes และ Method ที่��สิ่ามื่ารถมื่องเห3นได�

และสิ่ามื่ารถเร�ยกใช้�ได�โดยตรงจากภายนอกสิ่ามื่ารถมื่องเห3นได�จากภายนอก เข�าไป็เป็ล��ยนคื,า อ,าน

คื,า หรอเร�ยกใช้�งาน Attributes/Method ได�โดยที่��วไป็จะใชั%ก�บู Method มากกว&า

Attributesจะใช้�เคืร�องหมื่าย (+) ก�าก�บไว�หน�า Public

Attribute และ Public Method เช้,น สิ่�ผู้มื่ สิ่�ผู้�ว

Page 28: 290353 Object-Oriented  Analysis and Design

Private Attributes andMethodsคือ Attributes และ Method ที่��ไมื่,สิ่ามื่ารถเห3นได�

เลยจากภายนอก Classการเข�าถ1ง Attribute เหล,าน�*ได�ต�องผู้,านที่าง

Method ที่��มื่�ไว�เที่,าน�*นโดยที่��วไป็จัะใชั%ก�บู Attributes มากกว&า

Methodจะใช้�เคืร�องหมื่าย - ( ) ก�าก�บไว�หน�า Private

Attribute และ Private Methodเช้,น อาย2ของคืน

Page 29: 290353 Object-Oriented  Analysis and Design

Protected Attributes andMethods

คือ Attributes และ Method ที่��ไมื่,สิ่ามื่ารถเห3นได�จากภายนอกแต,เป็�นสิ่,วนที่��สิ่ามื่ารถสิ่,งต,อให� Inherited Class ได�เที่,าน�*น

สิ่งวนไว�สิ่�าหร�บการที่�างาน Inheritance (Specialization) โดยเฉีพิาะ

Attributes/Method ของ Superclass เมื่�อ Inheritance แล�ว จะกลายไป็เป็�น Private หรอ Protected Attributes/Method ของ Subclass

จะใช้�เคืร�องหมื่าย (# ) ก�าก�บไว�หน�า Protected Attribute และ Protected Method

เช้,น ล�กษณะที่างกรรมื่พิ�นธ์26ที่��ล'กสิ่บที่อดมื่าจากพิ,อแมื่,

Page 30: 290353 Object-Oriented  Analysis and Design

Classification ของคน์ (ใสุ&รายละเอ ยด Visibility ของ Attributes และ Method)

30

สิ่มื่ช้าย สิ่มื่หญ�ง

สิ่มื่จ�ตร สิ่มื่ศ�กด�?

คืน-ช้�อ#นามื่สิ่ก2ล-เพิศ-อาย2+บอกช้�อและนามื่สิ่ก2ล+บอกเพิศ+บอกอาย2

Page 31: 290353 Object-Oriented  Analysis and Design

Outside View ของ Class คน์คืน

ช้�อนามื่สิ่ก2ลเพิศอาย2บอกช้�อและนามื่สิ่ก2ล()บอกเพิศ()บอกอาย2 ( )

Class คืน

คืน

บอกช้�อและนามื่สิ่ก2ล()บอกเพิศ()บอกอาย2 ( )

Outside Viewของ Class คืน

Page 32: 290353 Object-Oriented  Analysis and Design

Aggregation Abstractionคือ กระบวนการที่��น�าเอา Class พิ*นฐานที่��สิ่ร�างข1*นจาก

Classification Abstraction มื่ารวมื่ก�นหรอป็ระกอบก�น(Aggregation) เพิ�อให�เก�ด Class ที่��ใหญ,ข1*น หรอซึ่�บซึ่�อนข1*น

การที่�า Aggregation คือการตอบคื�าถามื่ว,า ใน Class กล2,มื่หน1�งน�*น เราสิ่ามื่ารถที่��จะน�ามื่�นมื่ารวมื่ก�นเพิ�อที่�าให�เก�ด Class ใหมื่, ที่��มื่� Concept ใหมื่, ได�หรอไมื่,อย,างไร

เป็�นการพิยามื่ยามื่ตอบคื�าถามื่ที่��ว,า มื่� Class ใดเป็�นสิ่,วนป็ระกอบของ Class อ�นหรอไมื่, – “Is part of”

การแสิ่ดงสิ่�ญล�กษณ6ที่�าได�โดยการโยงล'กศรเป็�นสิ่��เหล��ยมื่ขนมื่เป็Eยกป็'นจาก Class ย,อย หรอ Class ที่��เป็�นสิ่,วนป็ระกอบไป็ย�ง Class หล�ก

32

Page 33: 290353 Object-Oriented  Analysis and Design

รถยน์ต�

ต�วถ�งรถล%อ

เคร'!องยน์ต�

Aggregation

Aggregation

หล�งคารถ กระจัก ประต�

Page 34: 290353 Object-Oriented  Analysis and Design

Aggregation ของห%องเร ยน์

Page 35: 290353 Object-Oriented  Analysis and Design

Cardinality, Required Components และ Optional Components

Cardinality คือสิ่��งที่��ใช้�แสิ่ดงจ�านวนในคืวามื่สิ่�มื่พิ�นธ์6ระหว,าง Class ใน Aggregation Abstractionในที่าง Object Orientation มื่�กจะเร�ยก Class ย,อยว,าเป็�น Component

Required Component หรอ Mandatory Component คือสิ่,วนป็ระกอบที่��จ�าเป็�นต�องมื่�

Optional Components คือสิ่,วนป็ระกอบที่��ไมื่,จ�าเป็�นต�องมื่�ก3ได�

35

Page 36: 290353 Object-Oriented  Analysis and Design

Aggregation ของรถเก4ง

36

รถเก4ง

เคร'!องยน์ต� ล%อ ประต� ถ�งลมน์�รภ�ย

Mandatory Mandatory Mandatory optional

Page 37: 290353 Object-Oriented  Analysis and Design

Aggregation ของ Class หน์�งสุ'อตามื่ที่��ก�าหนดใน Problem Domain มื่�ด�งน�*

หน์�งสุ'อ เก�ดจากการรวมื่ก�นของหน�าป็ก คื�าน�า สิ่ารบ�ญ บที่ของเน*อหา และบรรณาน2กรมื่

บูทของเน์'(อหา เก�ดจากการรวมื่ก�นของหน�าหน�งสิ่อหน์%าหน์�งสุ'อ เก�ดจากการรวมื่ก�นของต�วหน�งสิ่อและ

ร'ป็ภาพิ

37

Page 38: 290353 Object-Oriented  Analysis and Design

Aggregation Abstraction ของหน์�งสุ'อ

38

Page 39: 290353 Object-Oriented  Analysis and Design

Aggregation Abstraction ของบูทหน์�งสุ'อ

39

Page 40: 290353 Object-Oriented  Analysis and Design

Aggregation Abstraction ของหน์%าหน์�งสุ'อ

40

Page 41: 290353 Object-Oriented  Analysis and Design

Aggregation Abstraction Abstraction แบูบูหลายชั�(น์ของหน์�งสุ'อแบูบูหลายชั�(น์ของหน์�งสุ'อ

41

Page 42: 290353 Object-Oriented  Analysis and Design

Aggregation Abstraction แบูบูหลายชั�(น์ของหน์�งสุ'อจากร'ป็สิ่ามื่ารถอธ์�บายได�ว,าหน�งสิ่อแบ,งออกเป็�น

สิ่,วนของปก มื่�เพิ�ยง 2 ป็กคือ ป็กหน�าและป็กหล�งค)าน์)า มื่�อย,างน�อย 1 คื�าน�า หรออาจจะมื่ากกว,าน�*นสุารบู�ญ่ มื่�ได�เพิ�ยงหน1�งเด�ยวในหน�งสิ่อ 1 เล,มื่เน์'(อหา ต�องมื่�อย,างน�อย 1 บที่เสิ่มื่อบูรรณาน์�กรม ในหน�งสิ่อหน1�งเล,มื่ย,อมื่จะมื่�

บรรณาน2กรมื่เพิ�ยงหน1�งเด�ยวเที่,าน�*น

42

Page 43: 290353 Object-Oriented  Analysis and Design

Aggregation Abstraction Aggregation Abstraction แบูบูหลายชั�(น์แบูบูหลายชั�(น์ของหน์�งสุ'อของหน์�งสุ'อ((ใสุ&รายละเอ ยดของ ใสุ&รายละเอ ยดของ Attributes Attributes และ และ Method)Method)

43

Page 44: 290353 Object-Oriented  Analysis and Design

Generalization Generalization AbstractionAbstractionเป็�นกระบวนการในการน�า Class ที่��มื่�ล�กษณะ

เหมื่อน หรอคืล�ายคืล1งก�น หรอมื่�คื2ณสิ่มื่บ�ต�อย,างใดอย,างหน1�งร,วมื่ก�น (General) มื่าจ�ดหมื่วดหมื่', ไว�เป็�น Class เด�ยวก�น

กระบวนการย�อนกล�บของ Generalization Abstraction เร�ยกว,า Specialization (เป็�นการตอบคื�าถามื่ว,าใน Class หน1�งๆ สิ่ามื่ารถจ�าแนกเป็�น Class อะไรได�บ�าง)

44

Page 45: 290353 Object-Oriented  Analysis and Design

รถยน์ต�ค�ณสุมบู�ต� : ม ล%อ

ม เคร'!องยน์ต�

รถบรรที่2กคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของรถยนต6

+ สิ่ามื่ารถบรรที่2กของได�

รถเก@งคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของรถยนต6

+ ใช้�โดยสิ่าร มื่� 4 ป็ระต'

รถสิ่ป็อร6ตคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของรถเก@ง+ว��งได�เร3วกว,า + เป็Fดป็ระที่2นได�

Page 46: 290353 Object-Oriented  Analysis and Design

สุ�ตว�ป6กค�ณสุมบู�ต� : ม ป6ก

ม ขา 2 ขา

นกคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของสิ่�ตว6ป็Eก +

บ�นได�

ไก,คื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�สิ่�ตว6ป็Eก

+ ข�นได�

ไก,ช้นคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ไก,

+ ข�นได� + ช้นไก,ได�

Page 47: 290353 Object-Oriented  Analysis and Design

InheritanceInheritanceกลไกท !เก�ดจัาก กลไกท !เก�ดจัาก Generalization Generalization AbstractionAbstractionInheritance หมื่ายถ1งการถ,ายคื2ณสิ่มื่บ�ต�จาก

Superclass ไป็ย�ง SubclassSubclass คือ Class ที่��เก�ดจากการที่�า Specialize

Superclass คือ Class เร��มื่ต�นในการที่�า Specialize

สิ่�ญล�กษณ6ที่��ใช้�ใน Object Orientation แที่นการที่�า Inheritance คือ ล'กศรซึ่1�งห�วล'กศรเป็�นร'ป็สิ่ามื่เหล��ยมื่ใสิ่ช้�*จาก Subclass ไป็ย�ง Superclass

47

Page 48: 290353 Object-Oriented  Analysis and Design

สุ�ญ่ล�กษณ�แสุดงการท)า Inheritance

48

Page 49: 290353 Object-Oriented  Analysis and Design

Multiple Inheritance

การ Inherit จาก Superclass ที่��มื่ากกว,า 1 Class เพิ�อให�ได� Subclass ที่��มื่�คื2ณสิ่มื่บ�ต�พิ�เศษเพิ�ยงต�วเด�ยวหรอมื่ากกว,า

49

Page 50: 290353 Object-Oriented  Analysis and Design

Association Abstraction

เป็�นกระบวนการในการสิ่ร�างคืวามื่สิ่�มื่พิ�นธ์6ระหว,าง Class ต,างๆ ใน Problem Domain ที่��เราสิ่นใจ

เป็�นคืวามื่สิ่�มื่พิ�นธ์6ที่��อย',บนระนาบเด�ยวก�น คือสิ่��งของที่�*งสิ่องสิ่��งที่��มื่�คืวามื่สิ่�มื่พิ�นธ์6ก�นเป็�นสิ่��งที่��มื่�คืวามื่สิ่�าคื�ญเที่,าเที่�ยมื่ก�น ไมื่,ใช้,องคื6ป็ระกอบของก�น

เป็�นคืวามื่สิ่�มื่พิ�นธ์6ที่��ไมื่,สิ่ามื่ารถอธ์�บายได�ด�วย Aggregation (คืวามื่สิ่�มื่พิ�นธ์6ในเช้�งการรวมื่ก�น การป็ระกอบก�น หรอการแบ,งแยกสิ่,วนป็ระกอบ ) หรอ Generalization (คืวามื่สิ่�มื่พิ�นธ์6ในเช้�ง การจ�ดป็ระเภที่จ�ดหมื่วดหมื่', หรอการจ�าแนก ) เช้,น คืนเป็�นเจ�าของรถยนต6

50

Page 51: 290353 Object-Oriented  Analysis and Design

Multiplicity

คือคื,าที่��เป็�นไป็ได�ของจ�านวนสิ่มื่าช้�กใน Class หน1�งๆ ที่��มื่�สิ่,วนร,วมื่ใน Association น�*น ซึ่1�งเร�ยกคื,าของจ�านวนสิ่มื่าช้�กของ Class ที่��เป็�นไป็ได�ใน Association น�*นว,า “Multiplicity”

เร�ยกจ�านวนที่��น�อยที่��สิ่2ดของสิ่มื่าช้�กของ Class ที่��มื่�สิ่,วนร,วมื่ใน Association ว,า “Minimum Multiplicity (Min-card)”

เร�ยกจ�านวนที่��มื่ากที่��สิ่2ดของสิ่มื่าช้�กของ Class ที่��มื่�สิ่,วนร,วมื่ใน Association ว,า “Maximum Multiplicity (Max-card)”

51

Page 52: 290353 Object-Oriented  Analysis and Design

ประเภทความสุ�มพ�น์ธ�ใน์ Association

1.One-to-one Association (1-1) คือ Association ที่�� Class ที่�*งสิ่องข�างของ Association มื่� Max-card เป็�น 1 ที่�*งคื',

2.One-to-many Association (1-M) คือ Association ที่�� Class ข�างหน1�งของ Association มื่� Max-card เป็�น 1 ในขณะที่�� Class อ�กข�างหน1�งมื่� Max-card ที่��มื่�คื,ามื่ากกว,า 1

3.Many-to-many Association (M-N) คือ Association ที่�� Class ที่�*งสิ่องข�างของ Association มื่� Max-card มื่ากกว,า 1 ที่�*งคื',

Page 53: 290353 Object-Oriented  Analysis and Design

ต�วอย&าง Association Abstraction

จากต�วอย,างต,อไป็น�*สิ่ร�างคืวามื่สิ่�มื่พิ�นธ์6แบบ Association จากคืลาสิ่ที่��ก�าหนด

สิ่มื่าช้�กของห�องสิ่มื่2ดป็ระช้าช้น (Member) มื่�บ�ตรสิ่มื่าช้�ก (Member Card) ได�เพิ�ยงหน1�งใบ (ก)าหน์ด Class : Member และ Member card)

ในการยมื่หน�งสิ่อ (Book) แต,ละคืร�*งสิ่มื่าช้�กสิ่ามื่ารถยมื่ได�อย,างน�อย 1 เล,มื่อย,างมื่าก 5 เล,มื่ (ก)าหน์ด Class : Member และ Book)

Page 54: 290353 Object-Oriented  Analysis and Design

หล�กการใน์การเข ยน์ Diagram แสุดง Association1.เข�ยน Class 2 Class ที่��มื่�คืวามื่สิ่�มื่พิ�นธ์6 และลากเสิ่�น

ตรงพิร�อมื่ที่�*งใสิ่,ช้�อคืวามื่สิ่�มื่พิ�นธ์62.เข�ยนล'กศรเพิ�อแสิ่ดงที่�ศที่างของการอ,านคืวามื่สิ่�มื่พิ�นธ์6

ให�ถ'กต�อง (หรอก�าหนดแบบ 2 ที่�ศที่างก3ได�)3.พิ�จารณา Class ที่��อย',ในที่�ศที่างที่��ห�วล'กศรช้�*ไป็ ว,ามื่�

คืวามื่สิ่�มื่พิ�นธ์6ก�บ Class แรกด�วยจ�านวนน�อยที่��สิ่2ดและมื่ากที่��สิ่2ดเที่,าใด

4.พิ�จารณา Class ที่��อย',ในที่�ศที่างตรงข�ามื่ห�วล'กศรว,ามื่�คืวามื่สิ่�มื่พิ�นธ์6ก�บ Class ที่��สิ่องด�วยจ�านวนน�อยที่��สิ่2ดและมื่ากที่��สิ่2ดเที่,าใด

54