Upload
rowan-hodges
View
64
Download
0
Embed Size (px)
DESCRIPTION
290353 Object-Oriented Analysis and Design. อ.ธารารัตน์ พวงสุวรรณ คณะวิทยาศาสตร์และศิลปศาสตร์ มหาวิทยาลัยบูรพา วิทยาเขตสารสนเทศจันทบุรี. บทที่ 3 แนวคิดในการสร้าง และจัดหมวดหมู่ Class. เนื้อหา. การกำหนด Problem Domain Classification Abstraction Aggregation Abstraction - PowerPoint PPT Presentation
Citation preview
290353 Object-Oriented Analysis and Design
อ.ธาราร�ตน์� พวงสุ�วรรณคณะว�ทยาศาสุตร�และศ�ลปศาสุตร�
มหาว�ทยาล�ยบู�รพา ว�ทยาเขตสุารสุน์เทศจั�น์ทบู�ร
บูทท ! 3แน์วค�ดใน์การสุร%าง
และจั�ดหมวดหม�& Class
เน์'(อหาการก�าหนด Problem DomainClassification AbstractionAggregation AbstractionGeneralization AbstractionAssociation Abstraction
คือการก�าหนดขอบเขตของสิ่��งที่��ต�องการจะพิ�จารณา
เป็�นสิ่��งที่��ต�องพิ�จารณาอ�นด�บแรกเมื่�อตกลงที่��จะพิ�ฒนาระบบด�วยหล�กการของ OOAD
สิ่ามื่ารถก�าหนด Problem Domain ได�จากการสิ่อบถามื่คืวามื่ต�องการ (Requirement) จากผู้'�ใช้�ระบบ (End-User) งานน�*น ๆ
การก)าหน์ดการก)าหน์ด Problem DomainProblem Domain
Problem Domain ท !แน์&ชั�ดม�กจัะย�งไม&สุามารถหาได%ใน์ข�(น์ต%น์ของการเร�!มว�เคราะห�ระบูบู แต&การก)าหน์ดโครงใหญ่& หร'อภาพรวมของ Problem Domain น์�(น์ต%องชั�ดเจัน์
เช้,น ถ�าจะพิ�ฒนาระบบงานให�ก�บฝ่.ายบ�ญช้� น��นแสิ่ดงว,า Object ต,าง ๆ ต�องเป็�นเร�องที่��เก��ยวข�องก�บฝ่.ายบ�ญช้� (ซึ่1�งขณะเด�ยวก�นอาจเก��ยวก�บฝ่.ายบ2คืคืลก3ได� แต,ต�องไมื่,มื่� Object ใด ๆ ที่��ไมื่,เก��ยวก�บฝ่.ายบ�ญช้�) และในอนาคืตอาจต�องรวมื่เอางบการเง�นเป็�นสิ่,วนหน1�งของ Problem Domain ก3ได�
ข%อควรจั)าใน์การก)าหน์ดข%อควรจั)าใน์การก)าหน์ด Problem DomainProblem Domain
การค%น์หา การค%น์หา 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
การจั)าแน์ก Object ใน์ Problem DomainObject มื่� 2 ป็ระเภที่
Touchable or Tangible Object Intangible Object
บที่บาที่ (Roles) เช้,น คืร' ต�ารวจ เหต2การณ6 ( Incidents , Event )ป็ฏิ�สิ่�มื่พิ�นธ์6 (Interactions) เช้,น ที่างแยก
สิ่�ญญาเง�นก'�
ต�วอย&างการหา ต�วอย&างการหา 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
ต�วอย&างการหา ต�วอย&างการหา ObjectObject ใน์ ใน์ Problem DomainProblem Domainต�วอย,างที่�� 2
ข�อคืวามื่ :“การประมวลผลข�อมื่'ลด�านการเง�นของธ์นาคืารพิาณ�ช้ย6ด�วยเคืร�องคือมื่พิ�วเตอร6 มื่�ด�วยการ 2 ป็ระเภที่ ได�แก, การประมวลผลแบูบู Batch (การสิ่ะสิ่มื่ข�อมื่'ลไว�ก,อนช้,วงระยะเวลาหน1�ง แล�วจ1งป็ระมื่วลผู้ลในคืราวเด�ยว ) การประมวลผลแบูบู Real Time (การป็ระมื่วลผู้ลที่�นที่�ที่��มื่�ข%อม�ลเข�าสิ่',ระบบ ) และในการป็ระมื่วลผู้ลในแต,ละคืร�*งจะมื่�เวลาท !ใชั%ใน์การประมวลผล (Elapse Time) ที่��ไมื่,แน,นอนข1*นอย',ก�บขน์าดของข%อม�ลที่��เข�ามื่าสิ่',ระบบ โดยการป็ระมื่วลผู้ลแบบ Batch ในแต,ละว�นจะมื่�เวลาเร�!มประมวลผล (Starting Time) ที่��แน,นอน ในขณะที่��การป็ระมื่วลผู้ลแบบ Real Time ต�องพิร�อมื่สิ่�าหร�บการป็ระมื่วลผู้ลเสิ่มื่อ เพิราะเวลาของการเข�ามื่าของข�อมื่'ลไมื่,แน,นอน”
8
ต�วอย&างการหา 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
Abstractions
กระบวนการในการให� Concept ก�บ Object ต,าง ๆ ใน Real World เพิ�อสิ่ร�าง Class น�*นเราเร�ยกว,า Abstractions ซึ่1�งแบ,งออกได�เป็�น
4 กระบวนการย,อย คือ Classification Abstraction Aggregation Abstraction Generalization Abstraction Association Abstraction
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
Classification Abstraction เราถอว,า Classification เป็�น abstraction
ที่��สิ่�าคื�ญที่��สิ่2ด เพิราะ Class เก�ดข1*นด�วย Classification Abstraction
ถ�าหาก Class พิ*นฐานที่��เก�ดข1*นในข�*นตอนน�*เก�ดข�อผู้�ดพิลาด การสิ่ร�าง Class ใหมื่, ๆ ด�วยกระบวนการ Aggregation และ Generalization และการสิ่ร�างคืวามื่สิ่�มื่พิ�นธ์6 ระหว,าง Class ต,าง ๆ ด�วย Association ย,อมื่เก�ดคืวามื่ผู้�ดพิลาดด�วยเช้,นก�น
รถจั�กรยาน์ยน์ต�ซู�ซู�ก�
รถยน์ต�โตโยต%า
รถโดยสุาร 6 ล%อ volvo
รถยนต6
Concept เก��ยวก�บรถ1 . มื่�เคืร�องยนต62. มื่�ล�อจ�านวนหน1�ง3. ว��งไป็บนถนนได�4. ใช้�แก<สิ่หรอน�ามื่�นเป็�นเช้�องเพิล�ง
เรออ�นดามื่�นป็ร�=นเซึ่สิ่ รถไฟ รถจ�กรยาน BMX
Classification Abstraction
Classification Abstraction
คน์
สุมชัายสุมหญ่�ง สุมจั�ตร สุมศ�กด�3
Is member of
Classification Classification ของของ Class Class คน์คน์สิ่มื่ช้าย สิ่มื่หญ�ง สิ่มื่จ�ตร และสิ่มื่ศ�กด�? ถอ
เป็�น Object ในโดเมื่นหน1�ง ซึ่1�งที่�*ง 4 มื่�ล�กษณะเหมื่อนก�นคือ มื่�ห' มื่�ตา มื่�ป็าก สิ่ามื่ารถด�าเน�นก�จกรรมื่ต,างๆ ได�เหมื่อนคืนที่��วไป็ ด�งน�*นที่�*ง 4 ถอเป็�น Object ใน Class คืน
15
Classification Abstraction
รถ
รถเก4งของแดง รถมอเตอร�ไซูต�ของด)า
รถสุปอร�ตของสุมศร รถต�%ของสุมควร
Is member of
Classification ของคน์และรถยน์ต�
ถ�า Problem Domain ป็ระกอบด�วย Object ที่�*งสิ่�*น 7 ต�ว คือ สิ่มื่ช้ายสิ่มื่หญ�ง สิ่มื่จ�ตร สิ่มื่ศ�กด�? รถเก@งสิ่�แดงของสิ่มื่ช้าย รถมื่อเตอร6ไซึ่คื6สิ่�ช้มื่พิ'ของสิ่มื่หญ�งและสิ่มื่จ�ตร และรถต'�สิ่�ขาวของสิ่มื่ศ�กด�?
หล�งจากใช้� Classification Abstraction ในการแยกแยะ Object เหล,าน�* จะพิบว,าไม&สุามารถใชั% Concept เพ ยงหน์0!งเด ยวใน์การแยกแยะท�กๆ Object ใน์ Problem Domain ได%
Concept ที่��ใช้�แยกป็ระเภที่ของ Object ใน Problem Domain น�*คือ Concept ของรถยนต6 และ คืน
17
Classification Abstractionในบางคืร�*ง Object หน1�งสิ่ามื่ารถ เป็�นสิ่มื่าช้�กของ Class ได�มื่ากกว,าหน1�ง Class ได�เช้,นก�นด�งต�วอย,างต,อไป็น�*
แมวแมว หมาหมา สุ�ตว�สุ !ขาสุ�ตว�สุ !ขา สุ�ตว�สุ ด)าสุ�ตว�สุ ด)า
แมวสุ ด)าแมวสุ ด)า หมาสุ ขาวหมาสุ ขาว ว�วสุ ด)าว�วสุ ด)า แมวสุ ขาวแมวสุ ขาว
แมวแมว หมาหมา
Classification Abstraction
เราสิ่ามื่ารถแก�ป็Aญหาคืวามื่ก�ากวมื่ โดยการป็ร�บป็ร2ง Classification ของหมื่าและแมื่ว ใหมื่,จะได�ผู้ลล�พิธ์6 ด�งต,อไป็น�*
แมวแมว หมาหมา สุ�ตว�สุ !ขาม เขาสุ�ตว�สุ !ขาม เขา
แมวสุ ด)าแมวสุ ด)า หมาสุ ขาวหมาสุ ขาว ว�วสุ ด)าว�วสุ ด)า แมวสุ ขาวแมวสุ ขาว
Classification ของ หมา แมว สุ�ตว�สุ ขาวและสุ�ตว�สุ ด)า
แมื่วสิ่�ด�า หมื่าสิ่�ด�า แมื่วสิ่�ขาว หมื่าสิ่�ขาว
หมื่า แมื่ว สิ่�ตว6สิ่�ขาว สิ่�ตว6สิ่�ด�า
จากร'ป็ ถอว,าเป็�นการที่�า Classification ที่��คื,อนข�างก�ากวมื่ เพิราะ Object หน1�งต�วสิ่ามื่ารถจ�ดอย',ใน Class มื่ากกว,า 1 Class
การแก�ไขคืวามื่ก�ากวมื่จากการสิ่ร�าง Class ที่��ใช้� Concept หลายๆ Concept พิร�อมื่ๆ ก�น คือเลอกว,าจะใช้� Concept ใดเพิ�ยง Concept
เด�ยวในการแยกแยะ Object โดยจ�ดให� Concept ที่��เหลอเป็�นเพิ�ยง Attribute ของ Class เที่,าน�*น
21
Classification Classification ของ หมา แมว ของ หมา แมว สุ�ตว�สุ ขาว และสุ�ตว�สุ ด)าสุ�ตว�สุ ขาว และสุ�ตว�สุ ด)า
การปร�บูปร�งการท)า C lassification ของหมาและแมว
หมื่าสิ่�ด�า หมื่าสิ่�ขาว แมื่วสิ่�ด�า แมื่วสิ่�ขาว
หมื่า แมื่ว
ต�วอย&างการจั)าแน์ก ต�วอย&างการจั)าแน์ก Objects Objects และ และ ClassClass*** จากต�วอย,าง Problem Domain ต,อไป็น�* ให�น�สิ่�ตจ�าแนก
Object และ Classต�วอย,างที่�� 1
“พิยาบาล ช้�อ ป็ราณ� ฉี�ดยาป็Cองก�นโรคืบาดที่ะย�กให�แก,คืนไข�ช้�อ ก�ตต�”
ต�วอย,างที่�� 2“นายสิ่มื่ช้ายเตะฟ2ตบอล”
ต�วอย,างที่�� 3“ระบบน�เวศในสิ่วนจต2จ�กรป็ระกอบด�วยสิ่�ตว6นานาช้น�ด เช้,น แมื่ลง กบ สิ่2น�ข แมื่ว เป็�นต�น”
23
การพ�จัารณา Method ของคลาสุการหา Method ของ Class คือ เป็�น Object ที่��ถ'กกระที่�าสิ่�าหร�บ Method จะใช้�คื�ากร�ยา (Verb) เป็�นต�วระบ2บ,งช้�*
Classification ของ Class คน์(ใสุ&รายละเอ ยดของ Attribute ก�บู Method)
สิ่มื่ช้าย สิ่มื่หญ�ง
สิ่มื่จ�ตร สิ่มื่ศ�กด�?
คืนช้�อนามื่สิ่ก2ลเพิศอาย2บอกช้�อและนามื่สิ่ก2ลบอกเพิศบอกอาย2
Visibility ของ Attributes และ Methodเป็�นการจ�าแนกป็ระเภที่ของ Attributes
และ Operation ตามื่คืวามื่สิ่ามื่ารถในการเห3นและการเข�าถ1งPublic (+)Private (-)Protected (#)
26
Public Attributes andMethodsคือ Attributes และ Method ที่��สิ่ามื่ารถมื่องเห3นได�
และสิ่ามื่ารถเร�ยกใช้�ได�โดยตรงจากภายนอกสิ่ามื่ารถมื่องเห3นได�จากภายนอก เข�าไป็เป็ล��ยนคื,า อ,าน
คื,า หรอเร�ยกใช้�งาน Attributes/Method ได�โดยที่��วไป็จะใชั%ก�บู Method มากกว&า
Attributesจะใช้�เคืร�องหมื่าย (+) ก�าก�บไว�หน�า Public
Attribute และ Public Method เช้,น สิ่�ผู้มื่ สิ่�ผู้�ว
Private Attributes andMethodsคือ Attributes และ Method ที่��ไมื่,สิ่ามื่ารถเห3นได�
เลยจากภายนอก Classการเข�าถ1ง Attribute เหล,าน�*ได�ต�องผู้,านที่าง
Method ที่��มื่�ไว�เที่,าน�*นโดยที่��วไป็จัะใชั%ก�บู Attributes มากกว&า
Methodจะใช้�เคืร�องหมื่าย - ( ) ก�าก�บไว�หน�า Private
Attribute และ Private Methodเช้,น อาย2ของคืน
Protected Attributes andMethods
คือ Attributes และ Method ที่��ไมื่,สิ่ามื่ารถเห3นได�จากภายนอกแต,เป็�นสิ่,วนที่��สิ่ามื่ารถสิ่,งต,อให� Inherited Class ได�เที่,าน�*น
สิ่งวนไว�สิ่�าหร�บการที่�างาน Inheritance (Specialization) โดยเฉีพิาะ
Attributes/Method ของ Superclass เมื่�อ Inheritance แล�ว จะกลายไป็เป็�น Private หรอ Protected Attributes/Method ของ Subclass
จะใช้�เคืร�องหมื่าย (# ) ก�าก�บไว�หน�า Protected Attribute และ Protected Method
เช้,น ล�กษณะที่างกรรมื่พิ�นธ์26ที่��ล'กสิ่บที่อดมื่าจากพิ,อแมื่,
Classification ของคน์ (ใสุ&รายละเอ ยด Visibility ของ Attributes และ Method)
30
สิ่มื่ช้าย สิ่มื่หญ�ง
สิ่มื่จ�ตร สิ่มื่ศ�กด�?
คืน-ช้�อ#นามื่สิ่ก2ล-เพิศ-อาย2+บอกช้�อและนามื่สิ่ก2ล+บอกเพิศ+บอกอาย2
Outside View ของ Class คน์คืน
ช้�อนามื่สิ่ก2ลเพิศอาย2บอกช้�อและนามื่สิ่ก2ล()บอกเพิศ()บอกอาย2 ( )
Class คืน
คืน
บอกช้�อและนามื่สิ่ก2ล()บอกเพิศ()บอกอาย2 ( )
Outside Viewของ Class คืน
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
รถยน์ต�
ต�วถ�งรถล%อ
เคร'!องยน์ต�
Aggregation
Aggregation
หล�งคารถ กระจัก ประต�
Aggregation ของห%องเร ยน์
Cardinality, Required Components และ Optional Components
Cardinality คือสิ่��งที่��ใช้�แสิ่ดงจ�านวนในคืวามื่สิ่�มื่พิ�นธ์6ระหว,าง Class ใน Aggregation Abstractionในที่าง Object Orientation มื่�กจะเร�ยก Class ย,อยว,าเป็�น Component
Required Component หรอ Mandatory Component คือสิ่,วนป็ระกอบที่��จ�าเป็�นต�องมื่�
Optional Components คือสิ่,วนป็ระกอบที่��ไมื่,จ�าเป็�นต�องมื่�ก3ได�
35
Aggregation ของรถเก4ง
36
รถเก4ง
เคร'!องยน์ต� ล%อ ประต� ถ�งลมน์�รภ�ย
Mandatory Mandatory Mandatory optional
Aggregation ของ Class หน์�งสุ'อตามื่ที่��ก�าหนดใน Problem Domain มื่�ด�งน�*
หน์�งสุ'อ เก�ดจากการรวมื่ก�นของหน�าป็ก คื�าน�า สิ่ารบ�ญ บที่ของเน*อหา และบรรณาน2กรมื่
บูทของเน์'(อหา เก�ดจากการรวมื่ก�นของหน�าหน�งสิ่อหน์%าหน์�งสุ'อ เก�ดจากการรวมื่ก�นของต�วหน�งสิ่อและ
ร'ป็ภาพิ
37
Aggregation Abstraction ของหน์�งสุ'อ
38
Aggregation Abstraction ของบูทหน์�งสุ'อ
39
Aggregation Abstraction ของหน์%าหน์�งสุ'อ
40
Aggregation Abstraction Abstraction แบูบูหลายชั�(น์ของหน์�งสุ'อแบูบูหลายชั�(น์ของหน์�งสุ'อ
41
Aggregation Abstraction แบูบูหลายชั�(น์ของหน์�งสุ'อจากร'ป็สิ่ามื่ารถอธ์�บายได�ว,าหน�งสิ่อแบ,งออกเป็�น
สิ่,วนของปก มื่�เพิ�ยง 2 ป็กคือ ป็กหน�าและป็กหล�งค)าน์)า มื่�อย,างน�อย 1 คื�าน�า หรออาจจะมื่ากกว,าน�*นสุารบู�ญ่ มื่�ได�เพิ�ยงหน1�งเด�ยวในหน�งสิ่อ 1 เล,มื่เน์'(อหา ต�องมื่�อย,างน�อย 1 บที่เสิ่มื่อบูรรณาน์�กรม ในหน�งสิ่อหน1�งเล,มื่ย,อมื่จะมื่�
บรรณาน2กรมื่เพิ�ยงหน1�งเด�ยวเที่,าน�*น
42
Aggregation Abstraction Aggregation Abstraction แบูบูหลายชั�(น์แบูบูหลายชั�(น์ของหน์�งสุ'อของหน์�งสุ'อ((ใสุ&รายละเอ ยดของ ใสุ&รายละเอ ยดของ Attributes Attributes และ และ Method)Method)
43
Generalization Generalization AbstractionAbstractionเป็�นกระบวนการในการน�า Class ที่��มื่�ล�กษณะ
เหมื่อน หรอคืล�ายคืล1งก�น หรอมื่�คื2ณสิ่มื่บ�ต�อย,างใดอย,างหน1�งร,วมื่ก�น (General) มื่าจ�ดหมื่วดหมื่', ไว�เป็�น Class เด�ยวก�น
กระบวนการย�อนกล�บของ Generalization Abstraction เร�ยกว,า Specialization (เป็�นการตอบคื�าถามื่ว,าใน Class หน1�งๆ สิ่ามื่ารถจ�าแนกเป็�น Class อะไรได�บ�าง)
44
รถยน์ต�ค�ณสุมบู�ต� : ม ล%อ
ม เคร'!องยน์ต�
รถบรรที่2กคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของรถยนต6
+ สิ่ามื่ารถบรรที่2กของได�
รถเก@งคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของรถยนต6
+ ใช้�โดยสิ่าร มื่� 4 ป็ระต'
รถสิ่ป็อร6ตคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของรถเก@ง+ว��งได�เร3วกว,า + เป็Fดป็ระที่2นได�
สุ�ตว�ป6กค�ณสุมบู�ต� : ม ป6ก
ม ขา 2 ขา
นกคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ของสิ่�ตว6ป็Eก +
บ�นได�
ไก,คื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�สิ่�ตว6ป็Eก
+ ข�นได�
ไก,ช้นคื2ณสิ่มื่บ�ต� : คื2ณสิ่มื่บ�ต�ไก,
+ ข�นได� + ช้นไก,ได�
InheritanceInheritanceกลไกท !เก�ดจัาก กลไกท !เก�ดจัาก Generalization Generalization AbstractionAbstractionInheritance หมื่ายถ1งการถ,ายคื2ณสิ่มื่บ�ต�จาก
Superclass ไป็ย�ง SubclassSubclass คือ Class ที่��เก�ดจากการที่�า Specialize
Superclass คือ Class เร��มื่ต�นในการที่�า Specialize
สิ่�ญล�กษณ6ที่��ใช้�ใน Object Orientation แที่นการที่�า Inheritance คือ ล'กศรซึ่1�งห�วล'กศรเป็�นร'ป็สิ่ามื่เหล��ยมื่ใสิ่ช้�*จาก Subclass ไป็ย�ง Superclass
47
สุ�ญ่ล�กษณ�แสุดงการท)า Inheritance
48
Multiple Inheritance
การ Inherit จาก Superclass ที่��มื่ากกว,า 1 Class เพิ�อให�ได� Subclass ที่��มื่�คื2ณสิ่มื่บ�ต�พิ�เศษเพิ�ยงต�วเด�ยวหรอมื่ากกว,า
49
Association Abstraction
เป็�นกระบวนการในการสิ่ร�างคืวามื่สิ่�มื่พิ�นธ์6ระหว,าง Class ต,างๆ ใน Problem Domain ที่��เราสิ่นใจ
เป็�นคืวามื่สิ่�มื่พิ�นธ์6ที่��อย',บนระนาบเด�ยวก�น คือสิ่��งของที่�*งสิ่องสิ่��งที่��มื่�คืวามื่สิ่�มื่พิ�นธ์6ก�นเป็�นสิ่��งที่��มื่�คืวามื่สิ่�าคื�ญเที่,าเที่�ยมื่ก�น ไมื่,ใช้,องคื6ป็ระกอบของก�น
เป็�นคืวามื่สิ่�มื่พิ�นธ์6ที่��ไมื่,สิ่ามื่ารถอธ์�บายได�ด�วย Aggregation (คืวามื่สิ่�มื่พิ�นธ์6ในเช้�งการรวมื่ก�น การป็ระกอบก�น หรอการแบ,งแยกสิ่,วนป็ระกอบ ) หรอ Generalization (คืวามื่สิ่�มื่พิ�นธ์6ในเช้�ง การจ�ดป็ระเภที่จ�ดหมื่วดหมื่', หรอการจ�าแนก ) เช้,น คืนเป็�นเจ�าของรถยนต6
50
Multiplicity
คือคื,าที่��เป็�นไป็ได�ของจ�านวนสิ่มื่าช้�กใน Class หน1�งๆ ที่��มื่�สิ่,วนร,วมื่ใน Association น�*น ซึ่1�งเร�ยกคื,าของจ�านวนสิ่มื่าช้�กของ Class ที่��เป็�นไป็ได�ใน Association น�*นว,า “Multiplicity”
เร�ยกจ�านวนที่��น�อยที่��สิ่2ดของสิ่มื่าช้�กของ Class ที่��มื่�สิ่,วนร,วมื่ใน Association ว,า “Minimum Multiplicity (Min-card)”
เร�ยกจ�านวนที่��มื่ากที่��สิ่2ดของสิ่มื่าช้�กของ Class ที่��มื่�สิ่,วนร,วมื่ใน Association ว,า “Maximum Multiplicity (Max-card)”
51
ประเภทความสุ�มพ�น์ธ�ใน์ 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 ที่�*งคื',
ต�วอย&าง Association Abstraction
จากต�วอย,างต,อไป็น�*สิ่ร�างคืวามื่สิ่�มื่พิ�นธ์6แบบ Association จากคืลาสิ่ที่��ก�าหนด
สิ่มื่าช้�กของห�องสิ่มื่2ดป็ระช้าช้น (Member) มื่�บ�ตรสิ่มื่าช้�ก (Member Card) ได�เพิ�ยงหน1�งใบ (ก)าหน์ด Class : Member และ Member card)
ในการยมื่หน�งสิ่อ (Book) แต,ละคืร�*งสิ่มื่าช้�กสิ่ามื่ารถยมื่ได�อย,างน�อย 1 เล,มื่อย,างมื่าก 5 เล,มื่ (ก)าหน์ด Class : Member และ Book)
หล�กการใน์การเข ยน์ Diagram แสุดง Association1.เข�ยน Class 2 Class ที่��มื่�คืวามื่สิ่�มื่พิ�นธ์6 และลากเสิ่�น
ตรงพิร�อมื่ที่�*งใสิ่,ช้�อคืวามื่สิ่�มื่พิ�นธ์62.เข�ยนล'กศรเพิ�อแสิ่ดงที่�ศที่างของการอ,านคืวามื่สิ่�มื่พิ�นธ์6
ให�ถ'กต�อง (หรอก�าหนดแบบ 2 ที่�ศที่างก3ได�)3.พิ�จารณา Class ที่��อย',ในที่�ศที่างที่��ห�วล'กศรช้�*ไป็ ว,ามื่�
คืวามื่สิ่�มื่พิ�นธ์6ก�บ Class แรกด�วยจ�านวนน�อยที่��สิ่2ดและมื่ากที่��สิ่2ดเที่,าใด
4.พิ�จารณา Class ที่��อย',ในที่�ศที่างตรงข�ามื่ห�วล'กศรว,ามื่�คืวามื่สิ่�มื่พิ�นธ์6ก�บ Class ที่��สิ่องด�วยจ�านวนน�อยที่��สิ่2ดและมื่ากที่��สิ่2ดเที่,าใด
54