204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362...

64
1 204362 Object-oriented design การออกแบบเช งว ัตถุ Credit 3(3-0-6) Pre : CS 361 or CS 363 ผศ.วาสนา น ัยโพธิSec 001 .ดร.อารีรัตน์ ตรงรัศมีทอง Sec 002

Transcript of 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362...

Page 1: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

1

204362 Object-oriented design การออกแบบเชงวตถ

Credit 3(3-0-6)Pre : CS 361 or CS 363

ผศ.วาสนา นยโพธ Sec 001อ.ดร.อารรตน ตรงรศมทอง Sec 002

Page 2: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

2

Outline1. Introduction2. Software life-cycle model3. Object-oriented analysis -structure analysis4. UML : Notation5. Object-oriented analysis -behavior analysis

-UML6. Object-oriented design7. OO testing

วตถประสงคเพอใหนกศกษามความร ความเขาใจเกยวกบแนวคดหลกเชงวตถเพออธบายถงการวเคราะห การออกแบบ และการเขยนโปรแกรมเชงวตถเพอใหนกศกษาฝกปฎบตเก ยวกบการเขยนโปรแกรมดวยวธการเชงวตถ

Page 3: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

3

References :Bennett,simon.”Object-oriented systems analysis and design

using UML 4th edition” . McGraw-Hill companies,2010.Coad,peter and Yourdon,edward.”Object-oriented design”.

Prentice-Hall International,Inc.,1991.Gready booch . “Object-orientd analysis and design”. Addison-

wesley publishing company,1994.Oestereich Bernd , “Developing software with UML:object-oriented

analysis and design in practice” ,addisonwesley,2002.

Stephen R. schach , “Classical and object-oriented software engineering with UML and C++” , McGraw-hill international editor,1999.

Page 4: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

4

วนสอบMidterm ???Final Friday May 13th, 2016 15:30 – 18:30

เอกสารประกอบการสอนhttp://www.cs.science.cmu.ac.th/course/204326

คะแนน 100 คะแนนMidterm 35Final 35Project 20Assignment 10

Page 5: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

งานเดยว นาเสนอกบอาจารย

Project 20 คะแนน• เสนอชอโครงงาน หลกการและเหตผล (ม template project proposal แจก) กาหนดสง project proposal :week 2-3 แรก

• Analysis&design-Paper เอกสารการวเคราะหและออกแบบ สงเมอเรยน diagram นนๆ

• Implement-Program (code ดวย OOP)

สอบ 2 สปดาหสดทายของการเรยนการสอน ปลายเมษายน (20-30 เมษายน)

5

Page 6: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

Object-oriented programming language ควรม feature อยางนอย 5 อยาง1.ทาอยางไรถงจะ create class , create objectม feature ในการ encapsulate attribute กบ operation เขาดวยกนนอกจากนกสามารถระบ visibility(private , public คออะไร) mechanism ท

เราตองทาได เชน จะ create object อยางไร จะ delete อยางไร2.ทาอยาไรถงจะ create gen-spec. ได3.ทาอยางไรถงจะ create composition structure หรอ whole-part

structure– ตองม class ทเปนลกษณะท containment class (class ทม class อนอย

ขางใน) อาจเปนลกษณะของ pointer หรออะไรกแลวแต4.จะอธบาย attribute อยางไร ดวา

– visibility มกประเภท ทสามารถจะ represent instance connection ได5.จะอธบาย method (operation , service) อยางไรคอจะม feature ของ polymorphism หรอ dynamic binding หรอไม

(คอ polymorphism คออะไร แลวทาไมถงเปน dynamic binding

6

สรป OOPL-create class create object – create gen/spec – create composition – attribute (visibility) -method polymorphism dynamic binding

Page 7: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

7

บทท 1 บทนา1.1 ความหมายของคลาส และ ออปเจค1.2 แนวคดหลกเชงวตถ -abstraction-encapsulation-message-classification-inheritance-reuse

1.3 การจดการกบระบบทซบซอน 1.4 เปรยบเทยบ

Functional decomposition Data Flow diagramInformation Modeling -E R diagram

Page 8: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

8

Harry:First grade classWe get an indication of what student.Harry has learned and how he makes senses of his world. Harry can do this because human-have the ability to form concepts-can able their concept with symbols -can manipulate these symbols to define and communicate meaning

Page 9: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

9

1.1 ความหมายของ คลาส และ วตถ (definitions of class and object)คาวา เชงวตถ (Object-oriented) เปนแนวคดของออปเจค

ออปเจคเปนอะไรกไดเปนไดท งรปธรรมและนามธรรม

ObjectAn abstraction of something in a problem domain,

reflecting the capabilities of the system to keep information about it, interact with it, or both.

ออปเจคตองประกอบดวยคณสมบต (attribute) และพฤตกรรม (behavior) +identity คอระบไดวาคนน น ตวน น สงน น

Page 10: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

10

พฤตกรรม สนใจวาทาเชนนแลวไดผลเชนนน

ไมสนใจกลไกภายใน

คณสมบต เชน ส รปราง

คณสมบต มมมองจากแตละระบบ อาจไมเหมอนกน

เชน พนกงาน

ระบบบคคล

ระบบการฝกอบรม(training)

คณสมบตของพนกงานจาก ทง 2 ระบบ ตางกนไมเหมอนกน

Page 11: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

11

object identity behavior statesA person. ‘Hussain’. speak , walk , read. studying , resting, qualified

A shirt. ‘My favourite shrink , stain , rip. pressed , dirty , worn.button-down’white denim shirt’.

A sale. ‘sale number 0015, earn loyalty points. invoiced, cancelled 15/06/02’

A bottle ‘This bottle of spill in transit. unsold , opened, emptyof ketchup. ketchup ’

Characteristics of some objects

Page 12: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

12

A class is ‘A description of a set of object that share attribute, operation, methods, relationships and semantics’

Moreover ‘The purpose of a class is to declare a collection of methods, operations and attributes that fully describe the structure and behavior of objects.’

Page 13: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

13

Object คอ abstraction ของสงใน problem domain ทเราตองการเกบ information ทเราตองการตดตอกบ object

ซงทง information ทเราตองการเกบ และตองการตดตอ ในรปแบบของ attribute ในรปแบบของ method ซง

encapsulate ไวใน object

Class คอ description ของ object ซงอาจเปน 1 หรอ หลาย object description นนประกอบไปดวย set ของ attribute set ของ service หรอ method

นอกจากนนกรวมไปถง method ทเปน service พนฐานของ การทางานกบ class : create update delete

การกาหนดสาระสาคญ

Page 14: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

14

ตวอยางคลาสบญชธนาคาร : class Account

คณสมบต : เลขบญช

ชอลกคาทอางองได

ยอดคงเหลอ

วงเงนยอดเครดต

พฤตกรรม : เปดบญช

ฝาก

ถอน

ปดบญช

ถามยอดคงเหลอ

Page 15: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

15

ระบบงาน

ประกอบดวยชนสวนหรองานอะไรบาง

แตละชนสวนหรองานนมสวนยอยๆ อะไรบาง

-หากงานนนมอยแลว(ตรงกบทเราตองการ) ในคลงโปรแกรม

นามาประกอบเปนชนงาน

ไมตองสนใจวาทางานอยางไร

แตทราบวาแตละชนสวนสมพนธกนอยางไร

- หากไมมกสรางชนใหม แลวนามาไวในคลงโปรแกรม

สรป - เวลาทางานเราเรมจากทมอย

- แลวสรางสวนทไมมเพมเขามา

Page 16: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

16

1.2 แนวคดหลกเชงวตถ (object-oriented concepts)

มหลกการคดดงน

- การแปลงเปนนามธรรม (Abstraction) การกาหนดสาระสาคญ

เราตองมองใหไดวา ในระบบทเราสนใจมอะไรบางเกยวของทอยากร อยากทราบตองการเกบ

เปนการลอมกรอบความคดมองสงใดสงหนง เนนเฉพาะสวนทเกยวของกบปญหาทเราจะแกตดสวนทไมเกยวของออกไป เปนการลดความซบซอน

ผานเครองกรอง

เกบเฉพาะทเราสนใจลอมกรอบงานใหได ตองกาหนด problem domain ใหชดเจน

Abstraction Encapsulation Message Classification Inheritance Reuse

แนวทางการกาหนดสาระทดคอ การทาลาดบชน โดยเรมจากกาหนดสาระสาคญหลกหรอภาพรวมกอน แลวจงพจารณาแยกแยะสาระสาคญแตละสวนยอยลงไป

Page 17: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

17การกาหนดสาระสาคญ ดจาก character ของวตถ -ขนกบมมมองของผใช

Page 18: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

18

Employee - พนกงาน พนกงาน แตตางมมมอง attribute-behavior กตางกน

– พนกงานขายของหนาราน– พนกงานบญช– พนกงานชางไฟฟา– พนกงานเขยนโปรแกรม

object นกศกษา ตางมมมอง attribute-behavior กตางกน

Page 19: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

19

- การหอหม (encapsulation) การหอหมออปเจค คอ มองเหนเฉพาะพฤตกรรมทตองการใหเหน

ทาไดเฉพาะการดาเนนงานทใหทา นอกนนเปลยนแปลงหรอเขาถงไมได

other objects send messages requesting services.

An object's operations can only be called by amessage with a valid operation signature.

An object'a data can only beaccess by its own operations.

The representtation of anobject'a data is hidden inside.

encapsulation : the layers of protection that surround an object.

data

Page 20: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

20

Page 21: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

21

- ขอความปฏบตการ (message) การตดตอระหวางออปเจค

ออปเจคหนงสงไปยงอกออปเจคหนงเพอใหออปเจคนนทางานตามทตองการ

message ประกอบไปดวย 3 สวน

- receive object

- message name

- argument

aPerson.setName(wassana);

Page 22: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

22

public class Universe {static void main() {

Worker peter = new Worker();Boss boss = new Boss();peter.advise(boss);peter.doWork();

}}

object1:Universe object2:Worker object3:Boss

1:object()

2.object()

3.advise(boss)

4.doWork()

5.workStarted()

oop

Sequence diagram

OOA&OOD

เรยนมาแลว

วชานกาลงจะเรยน

Page 23: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

23

- การจาแนกชน (classification)

ระบบมหลายๆ ออปเจค

นาคณสมบตและพฤตกรรมทเหมอนกนมารวมอยในคลาส

เดยวกน คลาสมคณสมบตและพฤตกรรมรวมกนพาหนะ

เรอเครองบนรถ

รถยนตนง

สวนบคคลรถบรรทก

Page 24: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

24

Page 25: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

25

Page 26: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

26

-การถายทอด(inheritance)

เปนการรบมรดก subclass รบจาก superclass

คอ subclass เหมอน (คอไดรบการถายทอดมา)

subclass + คณสมบตพเศษ

ความสมพนธระหวาง subclass กบ superclass คอ IS-Asubclass IS-A superclass

IS-A

รถ

รถยนตนง

สวนบคคลรถบรรทก

superclass / subclass

บางทเรยกวา generalization / specialization

superclass /generalization

subclass /specialization

ISA

Page 27: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

27

การถายทอดแบงเปน

- การถายทอดทางเดยว (single inheritance)

Subclass หนงมไดเพยง Superclass เดยว

-การถายทอดหลายทาง (multiple inheritance)

Subclass หนงมไดมากกวาหนง Superclass

Vehicle

WatercraftLandcraft Aircraft

car truck train sailboat Powerboat

Page 28: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

28

- การนากลบมาใชไดอก (reuse)เนองจากเราออกแบบทกอยางเปนคลาส

และเกบไวในคลงโปรแกรม

เมอมระบบใหมจะใช กนาทมอยแลวในคลงมาใช

สรป object-oriented concepts abstraction encapsulation message classification inheritance reuse

Page 29: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

29

1.3 การวเคราะหระบบทซบซอน

(principles for managing complexity)

การวเคราะหระบบ เนองจากระบบมความซบซอน

เรามวธการทจะจดการกบสงทซบชอนดงน

“เนองจากระบบม Obj ม class มสงตางๆ มากมาย

แนวคดหรอวธการ

เพอจดการกบระบบงานทซบชอน”

Page 30: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

30

(1) Abstraction (การแปลงเปนนามธรรม) แบงเปน 2 สวน

- การแปลงโฟรซเยอรเปนนามธรรม (procedure abstraction)

คอการดาเนนงานใดๆ กตามทผใชมองเหนวา

มผลกระทบทางเดยว(single effect)

คอทางานอยางเดยว

แมวาโฟรซเยอรนน จะประกอบดวยกรหสคาสงหรอกโปรแกรมยอยกตาม

-การแปลงขอมลเปนนามธรรม (data abstraction)

คอ การกาหนดขอมลพรอมกบการดาเนนงานททาบนขอมล

การทางานบนขอมลตองผานการดาเนนงานทเรากาหนด

Page 31: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

31

(2) Encapsulation (การหอหม)

เปนเหมอนกลองดาททกอยางถกหอหมไวภายใน

การตดตอ รแควาเราสงอะไรเขาไปแลวจะไดอะไรออกมา

Page 32: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

32

(3) inheritance(การถายทอด)

เปนการถายทอดจาก superclass ไปหา subclass

เปนเทคนคทเราสามารถระบในการวเคราะหไดวา

superclass กบ subclass มสวนเหมอนกนอยาไร

มตรงไหนทเหมอนกนระหวางหลาย ๆ คลาส

ระบไดในการวเคราะหของเรา

Page 33: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

33

(4) association (การมสวนรวม) เปนการเชอมตอแนวคด

เปนการเชอมตอระหวาง 2 สง

และ 2 สงน เชอมตอกนไดอยางไร

Teacher Courseteach

Customer Productbuy

Advisor Adviseeadvice

Page 34: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

34

(5) communication with message (การตดตอดวยขอความ)

ออปเจคหนงจะตดตอกบอกออปเจคหนง

ตองเปนการสงขอความเทานน จะตดตอโดยวธอนไมได

เปนการกาหนดการตดตอระหวางกน

Page 35: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

35

(6) method of organization (วธการในการจดระเบยบ)

เปนวธการทเราจะจดสงตางๆ จะทาอยางม 3 วธ

6.1 ออปเจคและคณสมบต = concept object

เปนการจดระหวางออปเจคกบคณสมบตวา สมพนธ

กนอยางไร เปนการหาความตางของสงทเหมอนกนโดย

ใชคณสมบต เชน ปากกาทเปนประเภทเดยวกนแตคน

ละส เราจงไดปากกาสแดง ปากกาสนาเงน เปนตน

6.2 สวนประกอบ ( whole and part) = concept composition

เปนการหาสวนประกอบของสงนนๆ-ปากกา-ไสสปรง

,ปากกา-ปลอกพลาสตก

Page 36: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

36

6.3 ความแตกตางระหวางคลาส =concept ของ class gen/spec.composition[classes&members , and distinguishing between them]

คลาส ดออปเจค แลวหาความแตกตางของคลาส

เรามหลายๆออปเจค จะจาแนกออปเจค

เปนกกลม เปนกประเภท ดจากคณสมบตและพฤตกรรม

เชน ปากกาเขยนแผนใส ปากกาหมกซม ปากกาเขยนไวทบอรด เปนตน

Page 37: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

37

(7) สเกล (scale) มมมมอง 2 level

Scale up เปนการประยกตสวนประกอบเขาไป ชวยทาใหเราเหน

งานใหญขน ซบซอนขน (ออปเจคคลาสงานระบบงาน)

เหมาะกบระบบงานเลก-กลาง

Scale down subject-class-object detail ลงไปเรอยๆ

ภาพใหญลง detail

เหมาะกบระบบงานกลาง-ใหญ

Page 38: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

38

(8) การจาแนกโดยพฤตกรรม (categories of behavior)

เรามวธการจดพฤตกรรมวาเหมอนหรอตางกนอยางไร

ม 3 วธ

8.1 Immediate causation - สาเหตของการเกดพฤตกรรม

มอะไรมากระตนใหเกดพฤตกรรมนน

8.2 change overtime - ประวตของพฤตกรรมนนเปนมา

อยางไร มรปแบบ (pattern) ทเหมอนกนหรอไม

8.3 similarity of function - พฤตกรรมทงสอง มการทางานม

ฟงกชนเหมอนกนหรอไม

service,method,operation

Page 39: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

39

Summary principles for managing complexityAbstraction

Encapsulation

Inheritance

Association

Communication with Message

Method of organization – object&attribute - whole&part

- classes&members and distinguishing between them

Scale

Categories of behavior - immediate causation - change overtime

- similarlity of function

Page 40: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

Principles for managing complexity1.Abstraction -procedure abstraction –data abstraction2.Encapsulation3. Inheritance4.Association5.Communication with Message6.Method of organization – object&attribute - whole&part - classes&members and distinguishing between them7.Scale –scale up -scale down8.Categories of behavior - immediate causation - change overtime - similarlity of function

Student no 1 2 3 4 5 6 7 8 9 0

1 2 3 4 5 6 7 8 1 2Principles for

managing complexity

กาหนดสง

จงอธบายเมอเรานาแนวคดเชงวตถ(OO Concept) มาวเคราะหระบบงาน จะทาใหเราสามารถจดการกบระบบงานทยงยากซบซอน ทาใหระบบงานนนทาความเขาใจไดงายขน

Page 41: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

41

1.4 วธการวเคราะห (analysis method)

เปรยบเทยบวธการวเคราะหในแนวทาง

- functional decomposition

- data flow approach

- information modeling

- object-oriented เราจะศกษาวา

functional decomposition เปนอยางไรมขอดขอเสยอยางไร

data flow diagram เปนอยางไร มขอดขอเสยอยางไร

information modeling เปนอยางไร มขอดขอเสยอยางไร

แลววธการเชงวตถนาขอดของวธการตางๆ มารวมกน

Page 42: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

42

(1). Functional decomposition

= ฟงกชน + ฟงกชนยอย + การตดตอระหวางฟงกชน

อธบายเปนการแบงระบบออกเปนฟงกชน

จากฟงกชนแบงเปนฟงกชนยอย

ระหวางฟงกชนหรอฟงกชนยอยอาจมการตดตอกน

ลกษณะของ Functional decomposition

Page 43: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

43

วธการนมองปญหา หรอโดเมนของปญหาเปนฟงกชน

โดยดวา

ระบบเราตองการ กระบวนการอะไร

และการตดตอกนทาอยางไร

ขอเสย

- ฟงกชนทเราวเคราะหอาจไมตรงตามทผใชตองการ

- หากความตองการ ของผใชเปลยน

ฟงกชนหรอฟงกชนยอยกตองเปลยนตาม

วธการนมพนฐานบน

สงทเปลยนแปลงเรว

นกวเคราะหตองเปลยนแปลงรปแบบ เพอใหตรงกบสงทผใชตองการ

Page 44: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

44

(2).data flow

= การไหลของขอมล (data (&control) flow)

+ data (&control) transformation

+ การเกบขอมล (data store)

+ termination

+ process spec.

+ data dictionarydata flow diagram

- ใชสญลกษณวงกลม เรยก bubble แทนกระบวนการตางๆ

- ขอมลมการไหลอยางไร

- มการจดเกบขอมลทไหน

- terminate คอจบทไหน

- process spec เปนอยางไร (กระบวนการนทาอะไรบาง)

- data dictionary ในระบบม field อะไรบาง แตละ field มชนดขอมลเปนอะไร มขนาดเทาไร

ลกษณะของ data flow

Page 45: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

45

Page 46: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

46

data flow diagram ใชสญลกษณวงกลม

เรยก bubble แทนกระบวนการตางๆ

- ขอมลมการไหลอยางไร

- มการจดเกบขอมลทไหน

- terminate คอจบทไหน

- process spec เปนอยางไร (กระบวนการนทาอะไรบาง)

- data dictionary ในระบบม field อะไรบาง แตละ field ม

ชนดขอมลเปนอะไร มขนาดเทาไร

Page 47: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

47

data flow มหลายระดบ

ละเอยดแคไหน

ระดบ จงเปนระดบของการแปลงเปนนามธรรม

(level of abstraction)

เมอมระบบ หาความตองการ - คยกบผใช

เลอกวาอะไรควรเปน bubble

การเลอก bubble

Page 48: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

48

- bubble แรก คอ bubble ทรบเหตการณทกระตนใหระบบเกด ซงอาจมหลายเหตการณ กมหลาย bubble เพอรบเหตการณตางๆ

- จากนนดวาขอมลอะไรไหลเขาสระบบ และไดขอมลอะไรออกไป- อาจเพมการจดเกบขอมล หากขอมลนนมการนาไปใช

เมอเปนระดบลางๆ เชน ระดบ 2 ระดบ 3

กประยกต functional decomposition เขาไป

bubble กจะมฟงกชนหรอฟงกชนยอยอะไรบาง

Page 49: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

49

ขอเสย

- หากในระดบท 1 มเหตการณมาก bubble จะมาก&ยงยาก

- ไมมวธกรป bubble ตางๆ ใหอยในกลมเดยวกน ซงการรวมอาจจะไมถกตองกได

- ไมไดบอกวาการจดเกบนนมโครงสรางขอมลเปนอยางไร

-ไมเหมาะกบระบบททาเฉพาะ แกไขขอมล(update) คนคน(retrieve) เพราะวาแทบจะไมม bubble ใดเลย

นอกจาก update retrieve bubble และบอกรายละเอยดอะไรไมได

- จาก data flow เมอเขาสการออกแบบหรอ structure chart ไมมวธการไหนทจะ map ไปไดตองเรมการออกแบบใหม

Page 50: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

50

(3). information modeling

= ออปเจค หรอ เอนทต

+ คณสมบต คอ เอนทตประกอบดวยคณสมบต อะไรบาง

+ ความสมพนธ

+ ชนดซปเปอร/ชนดยอย(supertype/subtype)

+ ความสมพนธของออปเจค (associative object)

E-R diagram เปน information modeling แบบหนง

ลกษณะของ information modeling

Page 51: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

51

Page 52: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

52

รป associative object1

1

1MWORKER WORK PROJECT

USES

MACHINE

อธบาย คาวา associative object

ปกต ความสมพนธเกดจาก

ความสมพนธระหวางเอนทตกบเอนทต

associative object หมายถง

ความสมพนธทเกดจากเอนทต กบความสมพนธ

หรอ ความสมพนธ กบความสมพนธ

Page 53: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

53

จากตวอยาง

คนงานหลายๆ คน ทางานใน 1 โครงงาน

และการทางาน(work) นน จะใชเครองมอ 1 ชด

และความสมพนธ USES จะเกดไมได ถาความสมพนธ WORK ไม

เกดขนกอน

เรารวมเอนทตและความสมพนธ และตงชอใหเปนความสมพนธ

ของออปเจค ชอ WORK

แลวความสมพนธของออปเจคนจงมความสมพนธ USES กบ

เครองมอ

Page 54: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

54

ขอเสยของ information modeling- ไมมการดาเนนงานตางๆ เนองจาก ใน E-R diagram มแตเอนทตและ

ความสมพนธของเอนทต

- การตดตอระหวางเอนทตไมม เนองจากไมมการดาเนนงานเราไมมการ

กาหนดขอความเลย

- ไมมการถายทอด คอใน E-R diagram ความสมพนธระหวาง

Superclass/subclassคอ ISA แตไมไดบงบอกวามการถายทอด จะนามา

แค key ลกษณะอนๆ ไมไดระบชดเจนวามการถายทอดอยางไร

Page 55: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

55

การถายทอด ใน E-R diagram

แปลงเปนตาราง ไดดงน

ตาราง A ประกอบดวย 3 คอลมน R S T ม R เปน key

ตาราง B ได 3 คอลมน R U V

ตาราง C ได 3 คอลมน R X Y

A R , S , T

B U , V C X , Y

ISA

Page 56: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

56

เชงวตถ = คลาสและออปเจค

+ การถายทอด

+ การตดตอดวยขอความ

Attribute and exclusive operation

Communication with message

Generalization Specialization

Inheritance

attribute

instance connection

generalization specialization

whole & partE-R

OOPL

OOA

semantic

สงทดใน ER

สงทดใน OOPL

Page 57: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

57

จากรป อธบายไดดงน

ในการวเคราะหเชงวตถ (OOA) เปนการ merge ระหวาง

information modeling กบ OOPL

นนคอเปนการนาสงทดของแตละสวนมา

E-R

OOPL

OOA

semantic

Page 58: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

58

สงทดใน E-R

-คณสมบต

-การตดตอระหวางออปเจค ออปเจคสมพนธกน

อยางไร ตดตอกนอยางไร

-เจนเนอรรลเซชน/สเปเชยลไรซเชชน คอ

ความสมพนธ ISA ใน E-R diagram

- สวนประกอบ เปนความสมพนธทออปเจคตางๆ

ประกอบดวยออปเจคอะไรบาง

Page 59: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

59

จาก OOPL

- คณสมบตและการดาเนนงาน ใน OOPL เวลาออกแบบ

ออปเจคเราตองกาหนดวาออปเจคนนมคณสมบตและการ

ดาเนนงานอะไรบาง เพราะวาออปเจค กคอ การแปลงเปน

นามธรรมอยางหนง

- การตดตอระหวางออปเจค

- มลกษณะของ Generalization/Specialization

- มการถายทอด มลกษณะเปนการถายทอดแบบภายนอก

คอการถายทอดใน 3 โมเดลทกลาวมายงไมกลาวถงการ

ถายทอดทชดเจน แตมการกลาวใน OOPL

Page 60: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

60

Shift of Mindsetprocedural Mindset Object-oriented MindsetWhat does system do? Of what objects

What is its purpose? How can I model the system dynamically using objects , their behavior , and other object they use?

How do I design and code achieve this function behavior?

Focus on algorithm Algorithmic function deters

Page 61: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

61

แนวความคดภาษาเชงวตถ

• การเนนทปญหาและองคประกอบของปญหาเพอการแกปญหาน น เราเรยกวา Problem space

• เหมอนการจาลองความเปนจรงในชวตความเปนอยของมนษยท จะประกอบดวย คน สตว ส งของ และใชส งตางๆ เพอแกปญหา คอแตละสง มหนาทในการแกปญหา

Page 62: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

62

Page 63: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

63

แนวคดของเอลน เคย (Alan Kay)

• ทกๆ สงเปนวตถ• โปรแกรม คอ กลมของวตถทสงสารบอกกนเพอ

ทางาน• วตถแตละวตถมหนวยความจา• วตถตองมชนด• วตถทจดอยในประเภทเดยวกนยอมไดรบขาวสาร

เหมอนกน

เปนผหนงทพฒนาsmall Talk ซงเปนตนแบบของการเขยนโปรแกรมเชงวตถ ไดใหนยามของภาษาเชงวตถไวดงน

Page 64: 204362 Object-oriented design การออกแบบเชงวัตถุิ 1 204362 Object-oriented design การออกแบบเชงวัตถุิ Credit .

64

จบ...บทท 1 บทนา

1.1 ความหมาย ของ object class

1.2 แนวคดหลกเชงวตถ concept1.3 การจดการกบระบบทซบซอน1.4 เปรยบเทยบ Functional decomposition ,Data Flow ,

Information Modeling

objected-oriented