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

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

  • Upload
    ngodiep

  • View
    230

  • Download
    3

Embed Size (px)

Citation preview

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