การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 8 ...

52
กกกกกกกกกกกกกกกกก กกกกกกกกก กกกกก 8 Object- Oriented Software Design ปปปปปป ปปปปปปปปปป ปปปปปปปปปปปปปปปปปปปปปปปปปปป ปปป ปปปปปปปปปปปปปปปปปปปปปปป ปปปปปปปปปปปปปปปปปปปปปปปปปปปปป

description

การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 8 Object-Oriented Software Design. ปริญญา น้อยดอนไพร สาขาวิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราช ภัฏ สุราษฎร์ธานี. Object-Oriented Software Design. Object-Oriented Concept Introduction to Object-Oriented Software Design. - PowerPoint PPT Presentation

Transcript of การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 8 ...

Page 1: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

การออกแบบและพัฒนาซอฟต์�แวร�

บทท�� 8 Object-Oriented Software Designปริ�ญญา น้�อยดอน้ไพริ

สาขาวิ�ชาวิ�ทยาการิคอมพ�วิเตอริ� คณะวิ�ทยาศาสตริ�และเทคโน้โลย�

มหาวิ�ทยาล!ยริาชภั!ฏส$ริาษฎริ�ธาน้�

Page 2: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Software Design

• Object-Oriented Concept• Introduction to Object-Oriented

Software Design

Page 3: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Concept

• Object & Class• Inheritance (การสื�บทอด)• Polymorphism• Encapsulation• Class Relationship

Page 4: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Introduction to Object-Oriented Software Design

Page 5: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Concept

• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship

Page 6: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object

• Object World• Message• Method/Operation• Interface• Event• Responsibilities

Page 7: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object

Page 8: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object

Click ( )

Page 9: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object

Person Post OfficeDeliver (Mail)

DeliverSend Mail

Page 10: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object

Person Vending Machine

Buy Pepsi

Sell (10 Baht, Pepsi)

Sell

Page 11: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object

Person Elevator

Go to 3rd floor

MoveToFloor (3)

MoveToFloorOpenClose

Page 12: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class

Person

Somchai

Somsri

Somsak

Somying

Page 13: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class

Student

Somchai

Somsri

Somsak

Somying

Page 14: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class

Tennis Player

Paradorn

Venus

Marat

Martina

Page 15: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class

Institute

Social Technology

Engineering

Science

Agricultural Technology

Page 16: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class

• Template• Name• Attributes• Operations• Responsibilities

Page 17: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class

Name

Attributes

Operations

Responsibilities

Page 18: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

ClassStudent

StudentIDFirstNameLastNameAddressetc…RegisterForCourseDropCourseetc...

Page 19: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

ClassTennis Player

FirstNameLastNameNationalityRankingetc…RegisterForTournamentetc...

Page 20: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

ClassCar

Car Reg. NumberMakerModelColoretc…AccelerateStopetc...

Page 21: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

ClassAirplane

Plane NumberManufacturerModeletc…TakeOffLandingetc...

Page 22: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object & Class

Student

Somchai

Somsri

Somsak

Somying

Page 23: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object & Class

Student

Somchai

Somsri

Somsak

Somying

Student

StudentIDFirstNameLastNameAddressetc…

RegisterForCourseDropCourseetc...

Page 24: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object & Class

Student

Somchai

Somsri

Somsak

Somying

Student1

B4555555SomchaiSaetung7146 Suranivet 7etc…

RegisterForCourseDropCourseetc...

Page 25: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Student1B4555555SomchaiSaetung7146 Suranivet 7etc…RegisterForCourseDropCourseetc...

StudentStudentIDFirstNameLastNameAddressetc…RegisterForCourseDropCourseetc...

Page 26: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Concept

• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship

Page 27: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Inheritance

Animal

Dog PersonCat

Page 28: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Inheritance

Land Vehicle

Truck CarBus

Page 29: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Inheritance

Transaction

Rental Transaction

Lease Transaction

Sales Transaction

Page 30: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Inheritance

• Class Hierarchy• Sub Class• Super Class• Reusability• Overriding

Page 31: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Inheritance

Land Vehicle

Car

Toyota

TruckBus

Vios Altis Camry

Page 32: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

TransactiontransNotransDatetransTimeetc…

Rental Transaction

Lease Transaction

Sales TransactiontransNotransDatetransTimeetc…quantitySold…

transNotransDatetransTimeetc…memberNo…

transNotransDatetransTimeetc…duration…

Page 33: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Concept

• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship

Page 34: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Polymorphism

DrawChart

DrawChart(1)

DrawChart(1,2,1,2)

DrawChart(1,1,1)DrawTriangle(1,1,1)

DrawRect(1,2,1,2)

DrawCircle(1)

Page 35: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Polymorphism

• Add(integer, integer)• Add(string, string)• Add(string, integer)

Add(1,1) 2 Add(“Hello”, “World”) “HelloWorld” Add(“Hello”, 2) “Hello2” Add(2, “Hello”) ?

Page 36: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Polymorphism

:PaySlip

:HourlyPaidEmployee

:WeeklyPaidEmployee

:MonthlyPaidEmployee

getTotalPay()

calculatePay()

calculatePay()

calculatePay()

Page 37: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Polymorphism

• Overloading

Page 38: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Concept

• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship

Page 39: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Encapsulation

• Abstraction• Information Hiding• Security

Page 40: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

EncapsulationStudent

StudentID: B4555555FirstName: SomchaiLastName: SaetungCourses Registered: [204204], [204203] etc…

DropCourseSetNameGetNameetc...

Page 41: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Encapsulation

Person Vending Machine

Buy Pepsi

Sell (10 Baht, Pepsi)

Sell

Page 42: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Object-Oriented Concept

• Object & Class• Inheritance• Polymorphism• Encapsulation• Class Relationship

Page 43: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Association• Aggregation• Composition• Generalization

Page 44: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Association

Pilot Planes

Page 45: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Association– Son – Father– Customer – Operator– User - Computer

Page 46: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Composition

Car

Seat WheelEngine

Page 47: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Composition– Car – Wheel, Engine, Seat– House – Window, Roof, Door, Wall– Computer – Monitor, CPU, Keyboard– Building – Rooms – Circle – Points– Book - Chapter

Page 48: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Aggregation

Classroom Student

Page 49: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Aggregation– Classroom – Student– Keyboard – Key– Notebook – Paper– Computer – Monitor, CPU, Keyboard

Page 50: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Generalization

Land Vehicle

Truck CarBus

Page 51: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Class Relationship

• Generalization– Car – Mercedes-Benz, BMW, Lexus– Animal – Cat, Rat, Dog

Page 52: การออกแบบและพัฒนาซอฟต์แวร์ บทที่  8  Object-Oriented Software Design

Introduction to Object-Oriented Software Design