135
http://www.siam2dev.com [ dr. nattapong songneam] โดย อ.ดร. นัฐพงศ งเนียม http://www.siam2dev.com [email protected] สาขาวิชา วิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราชภัฏพระนคร Last Update : 28/11/2560 Lec03_1_Classification Abstraction แหล่งข ้อมูลเพิ่มเติม : : http://www.lumpaya.com/sdlc01.htm

Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

โดย อ.ดร. นฐพงศ สงเนยมhttp://[email protected]

สาขาวชา วทยาการคอมพวเตอรคณะวทยาศาสตรและเทคโนโลย มหาวทยาลยราชภฏพระนคร

Last Update : 28/11/2560

Lec03_1_Classification Abstraction

แหลงขอมลเพมเตม : : http://www.lumpaya.com/sdlc01.htm

Page 2: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

สอบระหวางภาค 2/2560

• บททใชสอบ– บทท 1, 2, 3.1, 3.2, 3.3, 3.4, 4

• สอบ วนท....• หองสอบ ...

http://www.siam2dev.com [ dr. nattapong songneam]

Page 3: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ดร. นฐพงศ สงเนยม

• http://www.siam2dev.com

• E-mail : [email protected]

• Facebook : [email protected]

http://www.siam2dev.com [ dr. nattapong songneam]

Page 4: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Agenda

1. Objectives

2. Problem Domain

3. Concept / ความคดรวบยอด

4. Classification Abstractions คออะไร

5. หลกการสรางแผนภาพ Classification Abstractions

6. Encapsulation

7. Information Hiding

8. ประเภทของ Attributes และ functionshttp://www.siam2dev.com [ dr.

nattapong songneam]

Page 5: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Objectives

• วตถประสงค

1. เพอใหผอานสามารถไดรหลกการในการกาหนด Problem Domain

2. เพอใหผอานไดเขาใจหลกในการหา Object ใน Problem Domain

3. เพอใหผอานสามารถใช classification Abstraction เพอสราง

Class จาก Object ทมอยได

4. เขาใจหลกการ Encapsulation และ Information Hiding ของ

Class

http://www.siam2dev.com [ dr. nattapong songneam]

Page 6: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction ?

• การกาหนด Problem Domain

เมอตกลงทจะพฒนาระบบคอมพวเตอรดวยหลกการของ OOAD แลว

เพอการวเคราะหความตองการของผใช (User Requirement) สงทตอง

พจารณาอนดบแรกกคอการกาหนดขอบเขตของสงทตองการจะพจารณา

เรยกขอบเขตนวา Problem Domain เราสามารถกาหนด Problem

Domain ไดจากการสอบถามความตองการ (Requirement) จากผใช

ระบบ (End-User) งานนน ๆ

http://www.siam2dev.com [ dr. nattapong songneam]

Problem Domain คอการกาหนดขอบเขตของระบบทจะพฒนา

Page 7: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การพฒนาระบบ

• เมอไดรบมอบหมาย จาก หนวยงาน หรอ บ. ให พฒนาระบบตามแนวทางเชงวตถ คอไดกาหนดแลววาจะใชแนวทางนในการพฒนา

http://www.siam2dev.com [ dr. nattapong songneam]

ในทมงาน 8-10 คน ..........PM : Project Manager บรหารจดการโครงงาน ภายในทม

ใหเสรจตามภารกจทไดรบมอบหมาย

Page 8: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

แนวทาง

• Traditional Development Process

• Object Oriented Development Process

– ใชกระบวนการทงหมด

• OOA - Analysis

• OOD - Design

• OOP - Programming

• OOT= Testing

http://www.siam2dev.com [ dr. nattapong songneam]

OOSEObject-oriented Software engineering

Page 9: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

เมอทา Requirement

• สงทตองพจารณาอนดบแรก – อะไรอยในระบบ / ไมเกยวของกบระบบ

– อะไรไมไดอยในระบบ/ไมเกยวของกบระบบ

http://www.siam2dev.com [ dr. nattapong songneam]

Problem Domain

การกาหนดขอบเขตของระบบ

Page 10: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

สวนใหญเมอใหวเคราะหระบบ หรอวเคราะหนศ. จะถาม

• มอะไรบางในระบบนนๆ• ฐานขอมล จะมกตาราง

–2 ตารางไดหรอไม–3 ไดหรอไม–แลวกตาราง

• ในตาราง เกบแค 2 ฟลดได หรอไม

http://www.siam2dev.com [ dr. nattapong songneam]

คาถามคอเทาไหร

Emp_ID Emp_Name1001 นาย นฐพงศ1002 นางสาว ชลธชา

ระบบรานเซเวน มพนกงาน ...

Page 11: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ระบบการจองหองพกโรงแรม

• หองพก ...จบ

http://www.siam2dev.com [ dr. nattapong songneam]

Information Gatheringการรวบรวมขอมล - ถาม สมภาษณ - แบบสอบถาม - สงเกต - document reviews- do it

Page 12: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

A

B

Cกลม A ตองสอบถามความตองการของกลม Cและวเคราะหระบบตามความตองการของกลม C

กลม B ตองสอบถามความตองการของกลม Aและวเคราะหระบบตามความตองการของกลม A

Page 13: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ERD• 1 Entity

http://www.siam2dev.com [ dr. nattapong songneam]

Employee Customerserv

*** คาวาระบบ กควรมมากกวา 1 หรอ 2 ตาราง/เอนทต

Page 14: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ปญหาทสาคญ ในการวเคราะห

• มกจะขาด

– สวนทสาคญ

– สวนทไมสาคญ

• เกน

– ไมผดมาก

http://www.siam2dev.com [ dr. nattapong songneam]

10 ฟงกชน10 Requirements

ระบบจองหองพก แต ทาการจองไมได

ระบบตรวจสอบเกรด แต เชคเกรดไมได

เกรด นศ. อาจารย วชาสาขาภาค

Page 15: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ระบบจองหองพกโรงแรม ?

• Functions– 1. …………….จอง– 2…………………– 3……………….– 4…………………………..

http://www.siam2dev.com [ dr. nattapong songneam]

Page 16: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

16

ต.ย. ระบบงาน• ระบบการจองหองพกโรงแรม .....กรณศกษา ........................โรงแรม

พระนครแกรนดวว........• ระบบการบรหารจดการหองพกโรงแรม• ระบบการเชาหองพก อพารตเมนท ..กรณศกษา..ปทองอพารตเมนท• ระบบการเชาวดโอ• ระบบการเชาหนงสอ• ระบบซอ-ขาย รานขายดอกไม• ระบบรานขายโทรศพทมอถอ• ระบบรานขายคอมพวเตอรและอปกรณไอท• ระบบคลนก• ระบบโรงพยาบาล• ระบบงานธนาคาร• ระบบการจายเงนเดอนใหพนกงาน (Payroll System)อ.ดร. นฐพงศ สงเนยม

Page 17: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ชองาน / ชอโครงการ

• การวเคราะหและออกแบบระบบการจองหองพกโรงแรม .....กรณศกษา ... .........โรงแรมเอเชยรสอรท ....

• การออกแบบและพฒนาระบบการจองหองพกโรงแรม .....กรณศกษา ... .........โรงแรมเอเชยรสอรท ....

http://www.siam2dev.com [ dr. nattapong songneam]

Page 18: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

18

ต.ย. ระบบงาน• ระบบสตอกสนคา (Inventory System)• ระบบบรหารงานบคคล (HRM : Human Resource

Management)• ระบบจดซอ (Purchase System)• ระบบขนสง (Logistic System)• ระบบอซอมรถ• ระบบคารแคร (Car Care)• ระบบรานสะดวกซอ• ระบบรายขายยา• ระบบคลนก• ระบบสปา• รสอรทแอนดสปา

อ.ดร. นฐพงศ สงเนยม

Page 19: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ระบบคารแคร (Car Care)

• อะไรทเกยวของ/สนใจ– รถ– ลกคา– พนกงาน– เคลอบส– ดดฝน– ใบเสรจ

• อะไรทไมเกยวของ

http://www.siam2dev.com [ dr. nattapong songneam]

รถลกคาพนกงานเคลอบสดดฝนใบเสรจ ลา เกยวหรอไม

ลา –> ไมใชสตวชนด

เงนเดอน

อะไหล

ใบสงซอPO

ใบสลปเงนเดอน

Page 20: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ระบบบรหารดแลรกษารถยนต

http://www.siam2dev.com [ dr. nattapong songneam]

รถ

???

มอะไรเพมเตม ถาเปนระบบรานคารแคร มแครถอยางเดยวเพยงพอไหม ?

Page 21: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

คาถาม

• จะทาทงระบบนนๆ

– HRM– Purchase Order ระบบสงซอ

– ระบบสตอก Inventory System– ระบบจอง Reservation System– ระบบสมาชก member

– ฯลฯ

• หรอ ทาบางระบบยอย http://www.siam2dev.com [ dr. nattapong songneam]

นศ. ตองทาทงหมดขององคกร

หรอ ทกระบบยอยๆ หรอไม ?ควรเอาระบบทเกยวของกน

** 3 – 4 – 5

Page 22: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Problem Domain

http://www.siam2dev.com [ dr. nattapong songneam]

Page 23: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

คนขบรถยนต

• อะไรเกยวของ • จากขอความดานบน จงอธบายในเชงของ

– Information Hiding• การซอนรายละเอยด

– ขนาดของเครองยนต– ขนาดแรงมา– อนๆ พวกนเราไมร ถาอยากรตองถาม หรอ รถยนตตองมความสามารถในการบอก สงตางๆ

เหลานนได นนคอตองมฟงกชน– เราไมรวา เครองยนต เปนเครองเบนซน หรอดเซล

– Encapsulation– Problem Domain

http://www.siam2dev.com [ dr. nattapong songneam]

รถยนต

+ สตารท()+ หยด()+ วงไปขางหนา()+ เลยว()

- เครองยนต

อะไรท ผใช ไมตองร กใหซอนรายละเอยดไว

พวงมาลย

ลอ

*** จากตวอยาง เราสนใจแคการสตารทรถยนต

จงพดถงแค เครองยนต อยางอนไมไดกลาวถง

แตไมใชไมม

คาถาม ทาไม ไมม ฟงกชน +เบรค()

Page 24: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

Page 25: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

คน

- ขา

+ เดนได()

*** จากตวอยาง เราสนใจแคการเดน เพราะฉะนนฟงกชน กเกยวการเดน ซงตองมขา

แตไมใชไมม

คาถาม ทาไม ไมม ฟงกชน +กน()

การกนเราไมได ใช ขา

Problem Domain

Page 26: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ในระบบงานธนาคาร ใครคอผใช

• คน X– พนกงาน / เจาหนาท – ลกคา– ผจดการ ?

http://www.siam2dev.com [ dr. nattapong songneam]

Page 27: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Responsive Design : ใชไดกบทกอปกรณ

http://www.siam2dev.com [ dr. nattapong songneam]

web win

mobile

Page 28: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Information Gathering

• แบบสอบถาม (Questionnaire)• การสมภาษณ (Interviews)• การสงเกต (Observe)• การพจารณาเอกสาร (Document

Review)• ลงมอทา(Practice)

http://www.siam2dev.com [ dr. nattapong songneam]

*** การดตวอยางของเอกสารเดม

ไมใชการ COPY ผดกฎหมาย

เชน ไปเอาใบเสรจของ...ราน 7-11

Page 29: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

มอะไรทอยใน Transcript บาง คณธดารตน

• การออกเกรดอยางเดยวไมใชระบบ ?

http://www.siam2dev.com [ dr. nattapong songneam]

การทนายคณากร ไปเอาขอมลจาก Transcript เรยกวาการทา ?

Page 30: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางการเกบขอมลระบบงานการจายเงนเดอน

• ระบบจายเงนเดอน– เอกสารเดม : สลป (Pay in slip) , ใบสมคร

(Application Forms) , ใบลา , บตรพนกงาน , บตรตอก , สแกนลายนวมอ , ใบเซนชอ , ใบลาออก , แบบคารอง , บตรประกนสงคม

– วธการทางานเดม : การเขางาน-ออก , ประเภท เปนกะ , FullTime , PartTime , OT

– กระบวนการมอะไรบาง– ประเภทตางๆ มอะไรบาง

http://www.siam2dev.com [ dr. nattapong songneam]

Page 31: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การออกแบบเอกสารตางๆ

• ถา ระบบเดม ไมเคยม• กใหไปดตวอยาง ทอนๆ / ในอนเตอรเนต• ถาไมมเลย กคดเอง

http://www.siam2dev.com [ dr. nattapong songneam]

ถาจะออกแบบ ใบลา

Page 32: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การคด OT

• คนหนงทาไดไมเกน กชวโมง– อตราตอชวโมงเทาไหร และมวธคดอยางไร?

• 1.5 ของเงนเดอน = (1.5*Salary )/ (30*8) = 1.5*SAL/240

• ต.ย. สมมตเงนเดอน 10000 = 10000*1.5/240 = 62.5 บาท / ชม.

3*20*62.5 = 3750 + SAL = 13,750 บาท

http://www.siam2dev.com [ dr. nattapong songneam]

ดจากสลป

การคด OT ดไดจากใหน ? / นโยบาย/

Business Rule

Page 33: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Business Rule

• เงอนไขทางธรกจ / องคกร– การรบสมคร– แผนก ฝาย– การทางาน– การเขา– การลา– การคดเงนเดอน

http://www.siam2dev.com [ dr. nattapong songneam]

การทองคกรใดๆ จะดาเนนกจกรรมได ตองมเงอนไขบางอยางเรยก business ruleๆ

ชาระคาเรยน ตามวนเวลาท ม. กาหนดเพม-ถอนลงทะเบยนจานวนหนวยกต ทลงได

การจองหองพก หากยกเลก ภายในหกคาจองอนๆ

Page 34: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

หกอะไรบาง ?

• ลา มาสาย ขาด• ประกนสงคม• สารองเลยงชพ• ช.พ.ค. , สหกรณ กรณเปนคร/ขาราชการ

http://www.siam2dev.com [ dr. nattapong songneam]

Page 35: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

งานกลมทตอง สง ครงท 1

• กาหนด ชองาน• สมาชก

• Business Rule ของ บ. ของกลม ......• ไมนอยกวา 2-3 หนากระดาษ

http://www.siam2dev.com [ dr. nattapong songneam]

Page 36: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction• การกาหนด Problem Domain (ตอ)

– ขอควรจาในการหาและกาหนด Problem Domain นน กคอ Problem Domain ทแนช ดมกจะยงไมสามารถหาไดในข �นตนของการเร มวเคราะหระบบ แตกาหนดโครงใหญ หรอภาพรวมของ Problem Domain น �นตองแนช ด

– เชน ถาตกลงใจจะพฒนาระบบงานใหกบฝายบญช นนแสดงวา Object ตาง ๆ ตองเปนเรองทเกยวของกบฝายบญช (ซงขณะเดยวกนอาจเกยวกบฝายบคคลกได แตตองไมม Object ใด ๆ ทไมเกยวกบฝายบญช) ซงในตอนตนอาจจะไมไดรวมเอางบการเงน เปนสวนหนงใน Domain กเปนไปได แตในอนาคตตองรวมเอางบการเงนนเปนสวนหนงของ Problem Domain กได เปนตน

http://www.siam2dev.com [ dr. nattapong songneam]

Page 37: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

•การรบสมคร•แผนก ฝาย• การทางาน• การเขา• การลา• การคดเงนเดอน • การคดโอท • สวสดการ

ภาษ

HRM

Page 38: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ในกรณระบบจายเงนเดอน

1. การรบสมคร2. การทางาน ขาด ลา มาสาย ลาออก3. การเลอนขน4. การจายเงนเดอน

1. คดเงนเดอน2. OT3. การคดรายได 4. การหกคาใชจาย

5. การรายงาน6. การอบรมพฒนาบคลากร

http://www.siam2dev.com [ dr. nattapong songneam]

สอบวดความร

สอบ Certสงไปอบรม

Page 39: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Problem Domain of Payroll System

http://www.siam2dev.com [ dr. nattapong songneam]

Module/sub system

1

Module/sub system

2

Module/sub system

3

Module/sub system

Module/sub system

5

Module/sub system

4

Page 40: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

• การคนหา Object ใน Problem Domain– สงแรกทตองทาเมอเราม Problem Domain ในภาพรวม

แลว คอ การพจารณาวา ม Object อะไรบางภายใน Domain นน ๆ บาง โดยยงไมตองคานงถงกจกรรมทเกดขนในระบบ (การหา Object ใน Problem Domain)

– หาคานามทงหมดทมใน Problem Domain แลวจงมาแยกแยะภายหลงวาสงใดคอ Object หรอสงใดคอ Attribute

– จากบทท 1 ถงแมวาเราจะทราบแลววา Object ในโลกนแบงออกเปน 2 ประเภทใหญคอ Tangible กบ Intangible แตเราสามารถแยกประเภท Object ไดอก

http://www.siam2dev.com [ dr. nattapong songneam]

Page 41: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

Problem Domain

Problem Domain

Page 42: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

Page 43: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

Page 44: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

หนงสอ : คลาส

• หนงสอจาวา คลาส / วตถ• หนงสอ VB คลาส / วตถ

http://www.siam2dev.com [ dr. nattapong songneam]

VB Book java

VB Book -1 VB Book -2 VB Book -3

Java-1

Java-2

Java-3

Page 45: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

หนงสอ

หนงสอ

วเคราะหและออกแบบ

ระบบเชงวตถ

หนงสอการเขยน

โปรแกรมภาษา

จาวา

การออกแบบและพฒนา

เวบไซตดวย Adobe

Dreamweaver

หนงสอ

ระบบปฏบตการ

เปนสมาชกของเปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

แมว

Page 46: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Problem Domain of Payroll System

http://www.siam2dev.com [ dr. nattapong songneam]

Module/sub system

1

Module/sub system

2

Module/sub system

3

Module/sub system

Module/sub system

5

Module/sub system

4

Page 47: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ประเภทของ Object

• สงทมตวตนสามารถจบตองได (Tangible Objects)– คน สนข รถยนต

• สงทไมมตวตนและไมสามารถจบตองได (Intangible Objects)– บทบาท เหตการณ ปฏสมพนธ

http://www.siam2dev.com [ dr. nattapong songneam]

Page 48: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

Page 49: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ต.ย. 3.1.1 จงพจารณา Object จากขอความตอไปน

• ขอความท 1 “หนงสอ เลมหนง ปกสเหลอง ภายในประกอบดวยเนอหาเกยวกบ Object Orientation หนงสอเลมนมจานวน 250 หนา”

คานาม ประเภทหนงสอ Objectปกสเหลอง หนงใน Attribute ของ Object หนงสอเนอหาเกยวกบ Object Orientation หนงใน Attribute ของ Object หนงสอหนา เปนลกษณะนามทบอกถงจานวนหนาของ

หนงสอ ถอ เปน หนงใน Attribute ของ Object หนงสอ

http://www.siam2dev.com [ dr. nattapong songneam]

Page 50: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

นยาม

• Attribute• Function

http://www.siam2dev.com [ dr. nattapong songneam]

เปดได

ปดได

อานได

ชอ

หนา

ปก

ราคาหนงสอ

เนอหา

Page 51: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

หนงสอ- ปก- หนา- เนอหา

- อานได()

Page 52: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Attributes

• PDT : Primitive Data Type– Int , float ,string datetime, char ,boolean– ไมมฟงกชน เกบขอมลไดอยางเดยว

• ADT : Abstract Data Type/ References Type / Class / Object

http://www.siam2dev.com [ dr. nattapong songneam]

Page 53: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

IPHONE ...ชลภช

• PDT …………..• ADT ……………………

http://www.siam2dev.com [ dr. nattapong songneam]

Attributes PDT ราคา ส น าหนก รน ยหอ

ADT ปม เคส แบต ...

Dim x as แมว

Dim k as ไก

Dim y as stringDim j as int16Dim x as boolean

Page 54: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

class computer{

private string hdd;}COMPUTER

- HDD

HDD

class computer{

private HDD hdd;hdd = new HDD();

}

class HDD {private String name;private Model model;private double Price;}public void setPrice(double price) {Price = price;}

Class computer{

private string hdd;}

Page 55: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

C

#include <stdio.h>

static void main() {

int x;

string color;

Colors Color;

}

http://www.siam2dev.com [ dr. nattapong songneam]

PDT

ADT

Page 56: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

java

class testOO {public static void main(string arsg[]) {

Color color;color = new Color();}

}

http://www.siam2dev.com [ dr. nattapong songneam]

ประกาศตวแปร (Variables Declaration)

สรางอนสแตนซ (Create Object/Instantiate)

Page 57: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

จงให concept กบหนงสอ

• ใหความคดรวบยอด ? อะไรทเรยกวาหนงสอ

• Attribute

– ชอหนงสอ

– ผเขยน

– ราคา

– วนทพมพ

– สานกพมพ

– จานวนหนา

– จานวนกเลม

– ประเภท

• Function

http://www.siam2dev.com [ dr. nattapong songneam]

Page 58: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

จงให ความคดรวบยอด

• ผลไม

– ส

– ชอ

– ขนาด

– รปทรง

– กนได

http://www.siam2dev.com [ dr. nattapong songneam]

• คน

– ชอ

– นามสกล

– อาย

– เพศ

– กนได

Eatable polymorphism

Eatable()

Eatable()Eatable()

Fruit Human

Page 59: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ผลไม

http://www.siam2dev.com [ dr. nattapong songneam]

แมว

แอปเปล

ซมซง S7

Page 60: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

ผลไมสแดง

ผลไมสเขยว

แอบเปล

รปทรง

รสชาต

ขนาด

ไดจากตนไม

กนได()

Page 61: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การวง

• รถ• คน• มา

http://www.siam2dev.com [ dr. nattapong songneam]

วงได RUN

• VB Compile RUN

Page 62: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

• ขอความท 2 “การประมวลผลขอมลดานการเงนของธนาคารแหงหนงดวยเครองคอมพวเตอร มดวยกน 2 ประเภทไดแก การประมวลผลแบบ Batch (การสะสมขอมลไวชวงระยะเวลาหนงกอนแลวคอยนามาประมวลในเวลาเดยว) และ การประมวลผลแบบ RealTime (คอการประมวลผลทนททไดรบขอมล) และในการประมวลผลแตละครงจะมเวลาในการประมวลผล Elapse Time ทไมแนนอนขนอยกบปรมาณของขอมล”

คานาม ประเภทการประมวลผล Objectประเภทของการประมวลผล หนงใน Attribute ของ Object การประมวลผลขอมล Objectขนาดของขอมล หนงใน Attribute ของ Object ขอมลเวลาทใชในการประมวลผล Elapse Time หนงใน Attribute ของ Object การประมวลผลขอมล

http://www.siam2dev.com [ dr. nattapong songneam]

ต.ย. 3.1.2 จงพจารณา Object จากขอความตอไปน

Page 63: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ประเภทของการประมวลผล

• Batch :: ในธนาคาร รายงานยอดรายได ประจาเดอน / ประจาป

• RealTime :: ในธนาคาร การฝาก การถอน การอพเดต ทาทนท

– Internet :: เปน Real Time แตม Delay

http://www.siam2dev.com [ dr. nattapong songneam]

Page 64: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ATM System

• Real Time Processing

http://www.siam2dev.com [ dr. nattapong songneam]

Page 65: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Batch Processing)การประมวลผลแบบกลม (Batch Processing)ขอมล ของการประมวลผล

แบบนจะถกเกบไวในชวงเวลาทกาหนด เชน 7 วน หรอ 1 เดอน แลวจงนาขอมลทสะสมไวมาประมวลผลรวมกนครงเดยว เชน การคานวณคาบรการนาประปา โดยขอมลปรมาณนาทใชทงหมดจะถกเกบบนทกไวในรอบ 1 เดอน แลวนามาประมวลผลเปนคานาประปาในครงเดยวการประมวลผลแบบนมกมความผด พลาดสง เนองจากขอมลอาจเกดความคลาดเคลอนกอนการประมวลผล แตเสยคาใชจายในการประมวลผลนอย

http://www.siam2dev.com [ dr. nattapong songneam]

Page 66: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Real-Time Processing

การประมวลผลแบบทนท (Real-Time Processing)เปน การประมวลผลทเกดขนพรอมกบการรบขอมลหรอหลงจากไดรบขอมลทนท เชน การฝากและถอนเงนกบธนาคาร เมอลกคาฝากเงน ขอมลนนจะถกประมวลผลทนท ทาใหยอดเงนฝากในบญชนนมการเปลยนแปลงการประมวลผลแบบนจะมความผด พลาดนอย แตเสยคาใชจายในการประมวลผลมาก

http://www.siam2dev.com [ dr. nattapong songneam]

Page 67: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การคนหา Object ใน Problem Domain

• คานาม ถอวาเปนตวบงช (indicator) ทดในการหา Object• Object ม 2 ประเภท

– Touchable or Tangible Object– Intangible Object

• บทบาท (Roles) เชน คร ตารวจ • เหตการณ ( Incidents , Event )• ปฏสมพนธ (Interactions) เชน ทางแยก สญญาเงนก

http://www.siam2dev.com [ dr. nattapong songneam]

Page 68: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การคนหา Object ใน Problem Domain

• ในการพจารณา Problem Domain เราอาจจะไดพบกบ Object หรอ Class หรอทงสองอยางกได สงทเราตองทากคอ การระบวาสงใดคอ class สงใดคอ Object แตในบางครงคานามคาหนงอาจจะเปนไดทง สอง อยาง กลาวคอ คานามนนอาจเปนไดทง class หรอ Object ดงนนเราจงอาจตองกลบไป พจารณา Problem Domain ใหรอบคอบอกครงหนง หากเกดกรณอยางน ดงตวอยางตอไปน

http://www.siam2dev.com [ dr. nattapong songneam]

Page 69: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางท 3.3 จากขอความตอไปน เราสามารถจาแนก class และ Object ไดดงน

• ขอความท 1 “พยาบาล ชอ ปราณ ฉดยาปองกนโรคบาดทะยกใหแกคนไขชอ สมชาย ”

• คานาม– ปราณ ประเภท Object

หมายเหต คาวา พยาบาล ถอเปนคลาส class สวนปราณถอเปน Object หนงใน Class พยาบาล

– ยาปองกนโรคบาดทะยก ประเภท Class หรอ Objectหมายเหต ถอเปน Class ไดเพราะการบอกเพยงกวาง ๆ วา เปนยาปองกนบาดทะยก ไมไดบอกยหอยา หรอ ระบวาเปนยาขวดใด แตในขณะเดยวกนกอาจถอไดวาเปน Object กไดหากจะให concept เพยงวายาปองกนบาดทะยก ซงเปน Object ของ Class ยา ทงนข นอยกบวา Problem Domain จะใหความละเอยดของการสรางคลาสมากเพยงใด

– คนไขชอ สมชาย ประเภท Objectหมายเหต คาวา คนไข ถอเปน คลาส class และ สมชาย ถอเปน Object หนงของคลาสน http://www.siam2dev.com [ dr.

nattapong songneam]

Page 70: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ยากน ยาฉด

ยาปองกนโรคบาดทะยก ยาฉดแก

อกเสบ

ยาปองกนโรคบาดทะยก

ยหอ A

ยาปองกนโรคบาดทะยก

ยหอ Bhttp://www.siam2dev.com [ dr.

nattapong songneam]

การแบงประเภทยายา

Is Member Of Is Member Of

Page 71: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

กระบวนการในการหาวาม Objects ใดบางใน Problem Domain และ Object แตละตวอยใน class ใดนน คอ กระบวนการทเรยกวา Classification Abstraction จากทผานมาเราไดรวาสามารถสราง Class จาก Object ทมอยนโดยการให Concept กบสงนน ๆ หรอถาจะกลาวอกอยางหนงกคอเปนการตอบคาถามทวา ม Object ตวใดตวหนงเปนสมาชกของ (Is Member Of”) ของกลมของ (Class) Object ใด ในทาง Object Orientation นนการทา Classification Abstraction หรอการสราง Class จาก Object นนจะใช สญลกษณ ลกศรประทลากจาก Object ไปยง Class ดงตวอยางตอไปน

http://www.siam2dev.com [ dr. nattapong songneam]

Page 72: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

28/11/60http://www.siam2dev.com [ dr.

nattapong songneam] 72

Classification abs.

Class A

Class B

Class C

Class E

Class N

Class A Class A1

Class A2

Class A3

Aggregate

จะไดคลาสตางๆ

Page 73: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

คน

สมชาย นก สมจตร ลกเกด

Is member of

http://www.siam2dev.com [ dr. nattapong songneam]

Page 74: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

รถ

รถเกงของแดงรถมอเตอรไซต

ของดารถสปอรตของสมศร รถตของสมควร

Is member of

http://www.siam2dev.com [ dr. nattapong songneam]

Page 75: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

รถ

รถเกงของแดง รถมอเตอรไซตของดา

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

Is member of

ถาเตมรถไฟ จะอยในกลมนหรอไม

http://www.siam2dev.com [ dr. nattapong songneam]

Page 76: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยาง Classification Abstraction

คอมพวเตอรNotebook

? ? ? ?

Is member of

http://www.siam2dev.com [ dr. nattapong songneam]

Page 77: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

คน

นฐพงศ กลวด สมชาย

สมศรเปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

Page 78: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ธนาคาร

กรงไทย กรงเทพ ทหารไทย

กสกรเปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

?

Page 79: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

นกศกษา

สเนตร กมลวรรณ ดวงมณ

ประมาภรณเปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

Page 80: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

อาจารย

นฐพงศ ภมใจ จดาภา

มณรตนเปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

ซไรดาเปนสมาชกของ

Page 81: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

หนงสอ

หนงสอ

วเคราะหและออกแบบ

ระบบเชงวตถ

หนงสอการเขยน

โปรแกรมภาษา

จาวา

การออกแบบและพฒนา

เวบไซตดวย Adobe

Dreamweaver

หนงสอ

ระบบปฏบตการ

เปนสมาชกของเปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

แมว

Page 82: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

ในบางครง Object หนงสามารถ เปนสมาชกของ Class ไดมาก กวา

หนง Class ไดเชนกนดงตวอยางตอไปน

แมว หมา สตวสขา สตวสดา

แมวสดา หมาสขาว ววสดาhttp://www.siam2dev.com [ dr.

nattapong songneam]

แมวสขาว

ถานกวเคราะหระบบไมด จะไดผลลพธ

Page 83: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ถา

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

http://www.siam2dev.com [ dr. nattapong songneam]

Page 84: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstractionเราสามารถแกปญหาความกากวม โดยการปรบปรง Classification ของหมาและแมว ใหมจะไดผลลพธ ดงตอไปน

แมว หมา สตวส ขามเขา

แมวสดา หมาสขาว ววสดา

สตวมเขา

http://www.siam2dev.com [ dr. nattapong songneam]

แมวสขาว

ระบบมความซบซอนมาก

Page 85: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ขนตอน การทา Classification Abs.ขนตอนท 1 : กาหนด Problem Domain

ขนตอนท 2 : หาคานาม

ขนตอนท 3 : แยกแยะ คานาม วา object หรอ attributes ของ

objects

ขนตอนท 4 : ให concept การใหความคดรวบยอด เพอใหได คลาส

พนฐานตางๆ

- วาดเปนแผนภาพเพอแสดง concept

ขนตอนท 5 : จากนน ระบ วาวตถใด อยในคลาสใด

ขนตอนท 6 : จากใสรายละเอยดของคลาส attribute , function

ขนตอนท 7 : วาดแผนภาพ แสดง classification abstractions28/11/60http://www.siam2dev.com [ dr.

nattapong songneam] 85

คอหาคลาสๆ จากวตถตางๆ

ทอยใน Problem domain

Page 86: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางท 3.4

“หนงสอเลมหนง ปกสเหลอง ภายในประกอบดวยเนอหา

เกยวกบ Object Orientation หนงสอเลมนมจานวน

50 หนา”

http://www.siam2dev.com [ dr. nattapong songneam]

Page 87: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ขนตอนท 1 : หาคานาม

คานาม

1. หนงสอเลมหนง

2. ปกสเหลอง

3. เนอหาเกยวกบ Object Orientation

4. หนา

http://www.siam2dev.com [ dr. nattapong songneam]

“หนงสอเลมหนง ปกสเหลอง ภายใน

ประกอบดวยเนอหาเกยวกบ Object

Orientation หนงสอเลมนมจานวน 50

หนา”

Page 88: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ขนตอนท 2 : แยกประเภทของคานาม

แยกประเภทของคานาม

• หนงสอเลมหนง : Object

• ปกสเหลอง : Attribute

• เนอหาเกยวกบ Object Orientation : Attribute

• หนา : Attribute

http://www.siam2dev.com [ dr. nattapong songneam]

คานาม Object attributes

หนงสอเลมหนง Object

ปกสเหลอง เปน

attributes

Page 89: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ขนตอนท 4. ให concept การใหความคดรวบยอด

เพอใหได คลาสพนฐานตางๆ

http://www.siam2dev.com [ dr. nattapong songneam]

หนงสอ VB มชอ

มราคา

มผแตง

มปก

มเนอหา

อานได()หนงสอ java

หนงสอ

Page 90: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ขนตอนท 5

http://www.siam2dev.com [ dr. nattapong songneam]

หนงสอ

หนงสอ Visual Basic หนงสอ javaหนงสอ OS

เปนสมาชกของ

Is member of

Page 91: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ขนตอนท 6

http://www.siam2dev.com [ dr. nattapong songneam]

หนงสอ Visual Basic หนงสอ javaหนงสอ OS

เปนสมาชกของ

Is member of

หนงสอ-ปก

-เนอหา

-ผแตง

-ราคา

+ อานได()

Page 92: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การระบ Class และ Object

• ในบาง Problem Domain อาจจะไดทง Class และ Object ในเวลา

เดยวกน ดงนน จาเปนตองระบใหแนชดวาสงใดคอ Class และสงใดคอ

Object

http://www.siam2dev.com [ dr. nattapong songneam]

Page 93: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางท 3.5

“พยาบาลชอ ปราณ ฉดยาปองกนโรคบาดทะยกใหแก

คนไขชอ กตต”

ขนตอนท 1 : แยกคานาม

• พยาบาลชอ ปราณ

• ยาปองกนโรคบาดทะยก

• คนไขชอกตต

http://www.siam2dev.com [ dr. nattapong songneam]

Page 94: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางท 5

ขนตอนท 2 : แยกประเภทของคานาม• พยาบาล : Class• ปราณ : Object หนงใน Class พยาบาล• คนไข : Class• กตต : Object หนงใน Class คนไข • ยาปองกนโรคบาดทะยก : Class / Object

http://www.siam2dev.com [ dr. nattapong songneam]

Page 95: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางท 5

• ยาปองกนโรคบาดทะยก : Class– เพราะเปนการบอกอยางกวาง ๆ วาเปนยาปองกน

บาดทะยก แตไมไดระบยหอยา

• ยาปองกนโรคบาดทะยก : Object– ถอเปน Object หนงใน Class ยา

http://www.siam2dev.com [ dr. nattapong songneam]

Page 96: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification Abstraction

• กระบวนการในการหาวาม Object ใดบางในProblem Domain และ Object แตละตวอยใน Class ใด

• การทา Classification Abstraction แสดงดวยสญลกษณ ลกศรประทลากจาก Objects ไปยง Class

http://www.siam2dev.com [ dr. nattapong songneam]

Page 97: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification ของ Class คน

คน

สมศร สมควร สมจตร สมศกด

http://www.siam2dev.com [ dr. nattapong songneam]

Page 98: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

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

แมวสดา หมาสดา แมวสขาว หมาสขาว

หมา แมว สตวสขาว สตวสดา

http://www.siam2dev.com [ dr. nattapong songneam]

Page 99: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การปรบปรงการทา Classification Abs. ของหมาและแมว

หมาสดา หมาสขาว แมวสดา แมวสขาว

หมา แมว

http://www.siam2dev.com [ dr. nattapong songneam]

Page 100: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification

ของ Class คนทมการใสรายละเอยดแลว

สมศร สมควร สมจตร สมศกด

คน

ชอนามสกลเพศอาย

บอกชอและนามสกลบอกเพศบอกอาย

http://www.siam2dev.com [ dr. nattapong songneam]

Class name

attributes

function

Page 101: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

HDD

http://www.siam2dev.com [ dr. nattapong songneam]

Private HDD hdd;hdd = new HDD();hdd = new HDD();hdd = new HDD();hdd = new HDD();hdd1 = new HDD();

Page 102: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Encapsulation

• Encapsulation เปรยบเสมอนกบการนาเปลอกมาครอบ

Attributes และ Function ของ Class เอาไว

• ลกษณะของเปลอก

– เปลอกใส จะสามารถมองไดจากภายนอก

– เปลอกทบ จะไมสามารถเหนไดจากภายนอก

• ภาพของ Class ทมองเหนไดจากภายนอกนนเรยกวา

Outside View

http://www.siam2dev.com [ dr. nattapong songneam]

Page 103: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Outside View ของ Class คน

คน

อาย

บอกอาย ( )

Class คน

คน

บอกอาย ( )

Outside Viewของ Class คน

http://www.siam2dev.com [ dr. nattapong songneam]

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

Page 104: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การเขาถงไดหรอไมได เรยกวา การทา

Information Hidding

http://www.siam2dev.com [ dr. nattapong songneam]

ทเรยน

+ หนาม - เนอ ทเรยน

Outside View

+ eatable()

Inside View

# เมลด

Page 105: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Visibility / Accessibility

http://www.siam2dev.com [ dr. nattapong songneam]

- Private# Protected+ Public

attributes

functions

Page 106: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Outside View ของ Class คน

คน

อาย

บอกอาย ( )

Class คน

คน

บอกอาย ( )

Outside Viewของ Class คน

http://www.siam2dev.com [ dr. nattapong songneam]

สผว

Page 107: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Encapsulation / Information Hiding / Outside View

X

Y

Z

http://www.siam2dev.com [ dr. nattapong songneam]

เปลอกใสเปลอกทบ

Page 108: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การเรยกด Attribute โดยการใช Function

สมศกด : คนอายบอกอาย ( )

สมศร : คนอายบอกอาย ( )

โปรดบอกอาย

http://www.siam2dev.com [ dr. nattapong songneam]

Page 109: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

การเขยนเมอ Function ถกเรยกใชงาน

สมศกด : คน

อาย

บอกอาย ( )

สมศร : คน

อาย

บอกอาย ( )

สวนของ Function จะถกเขยนดวยตวเอยง

http://www.siam2dev.com [ dr. nattapong songneam]

Page 110: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Information Hiding

• คอ คณสมบตของ Object ทเมอตองการเขาถง Attribute บางตวของ Object นน จะตองอาศยการทาผาน Function ทสามารถมองเหนและเรยกใชได เทานน– เพราะ Attribute ถกหมดวยเปลอกทบ– เพราะ Function ถกหมดวยเปลอกใส

http://www.siam2dev.com [ dr. nattapong songneam]

Page 111: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ประเภทของ Attribute และ Function

• จาแนกตามความสามารถในการเหนและเขาถง Attribute และ Function เหลานนได 3 ประเภทคอ– Private Attributes and Functions– Protected Attributes and Functions – Public Attributes and Functions

http://www.siam2dev.com [ dr. nattapong songneam]

Page 112: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

VB

Java

http://www.siam2dev.com [ dr. nattapong songneam]

Public class PersonPrivate age as Int16Public sub EAT()

Msgbox “Eating”End sub

End class

public class Person {private int age;public void EAT() {

Sysyem.out.println( “Eating”)}

}

Page 113: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Private Attributes and Functions

• คอ Attributes และ Functions ทไมสามารถเหนไดเลยจากภายนอก

• การเขาถง Attribute เหลานไดตองผานทาง Function ทมไวเทานน

• จะใชเครองหมาย (-) กากบไวหนา Private Attribute และ Private Function

• เชน อายของคน

http://www.siam2dev.com [ dr. nattapong songneam]

Page 114: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Protected Attributes and Functions

• คอ Attributes และ Functions ทไมสามารถเหนไดจากภายนอกแตเปนสวนทสามารถสงตอให Inherited Class ไดเทานน

• จะใชเครองหมาย (#) กากบไวหนา Protected Attribute และ Protected Function

• เชน ลกษณะทางกรรมพนธทลกสบทอดมาจากพอแม

http://www.siam2dev.com [ dr. nattapong songneam]

Page 115: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Public Attributes and Functions

• คอ Attributes และ Functions ทสามารถมองเหนไดและสามารถเรยกใชไดโดยตรงจากภายนอก

• จะใชเครองหมาย (+) กากบไวหนา Public Attribute และ Public Function

• เชน สผม สผว

http://www.siam2dev.com [ dr. nattapong songneam]

Page 116: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification ของ Class คน

สมศร สมควร สมจตร สมศกด

คน

- ชอ# นามสกล- เพศ- อาย

+ บอกชอและนามสกล ()+ บอกเพศ ()+ บอกอาย ()

http://www.siam2dev.com [ dr. nattapong songneam]

Page 117: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Classification ของ Class คน

สมศร สมควร สมจตร สมศกด

คน

- ชอ# นามสกล- เพศ- อาย

+ บอกชอและนามสกล+ บอกเพศ+ บอกอาย

สมศร

http://www.siam2dev.com [ dr. nattapong songneam]อาย = 35 อาย = 78 อาย = 78

Page 118: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Inside view

http://www.siam2dev.com [ dr. nattapong songneam]

สมศร : คน

- สมศร : ชอ

# ไทยงาม : นามสกล

- 25 : อาย

+บอกอายได

+บอกชอนามสกลได

+บอกเพศได

Page 119: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Function

• ทผานมาเราพดถงเฉพาะ Attribute ของ class เทานนแต

class ก ยงมอกสงหนงทตองพจารณาดวยนนก คอ

Function ซงถอวาเปนตวกระตนใหดาเนนกจกรรมตางๆ

ซงหมายความวา class จะมความสามารถในการทา

กจกรรมตางๆ บรรจอยภายใน class ซงถอวา Function

นเองเปนตวททาให class แตกตางจากขอมลทวไปนนเอง

http://www.siam2dev.com [ dr. nattapong songneam]

Page 120: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Class Diagramคน

ชอนามสกลอายเพศ

บอกชอและนามสกลบอกอายบอกเพศเปลยนชอ และนามสกล

Function

Attribute

http://www.siam2dev.com [ dr. nattapong songneam]

สมจตร นก สมศร สมปอง

Is member of

Page 121: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Class Diagramรถ

ยหอรนสราคา

บอกยหอบอกรนบอกสราคา

http://www.siam2dev.com [ dr. nattapong songneam]

Is member of

รถเกงของดร.นฐ

รถมอเตอรไซตของนายมก

รถสปอรตของสมหญง รถตของสมชาย

Function

Attribute

Page 122: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Encapsulation & Information Hiding

• Encapsulation คอ ความสามารถในการรวมเอา Attribute

และ Function เกบไวภายใน Class เดยวกน

• Information Hiding คอ ความสามารถในการซอนรายละเอยด

ของขอมลของ Class โดยไมใหผใชทไมมสทธเขาใชงานสามารถ

เขาถงขอมลเหลานนไดโดยตรง (หากตองอาจทาไดโดยผานทาง

Function แทน )

http://www.siam2dev.com [ dr. nattapong songneam]

Page 123: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ตวอยางท 3.6

• เมอสมศรตองการทราบอายของ สมชาย ซงอายกถอเปน Attribute

หนงของสมชาย สงทสมศรจะทาไดคอตองถามจากตวสมชายเอง นน

คอ การกระตนใหสมชายบอกอายของตนออกมา ซงหมายความวา

หากสมชายมความสามารถในการบอกอายหรอ พอใจทจะบอก

(สมชายตองม Function ในการบอกอายทเปน Public Function)

สมศรกสามารถทราบอายของสมชายได

สมศร : คน

อาย

บอกอาย()

สมชาย : คน

อาย

บอกอาย()

โปรดบอกอาย

http://www.siam2dev.com [ dr. nattapong songneam]

Page 124: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ประเภทของ Attribute และ Function

• Private (-) , Private Attribute & Function– คอ Attribute & Function จะไมสามารถมองเหนไดเลยจากภายนอก ม

วธเดยวทจะเขาถง Attribute เหลาน คอ ผานทาง Function ทเปน Public

• Protected (#)– คอ Attribute & Function จะสามารถมองเหนไดเฉพาะคลาสทสบทอด

คณสมบต ( Inherit )จากคลาสแม (Parent Class) เลยจากภายนอก• Public (+)

– คอ Attribute & Function จะสามารถมองเหนไดจากภายนอก

http://www.siam2dev.com [ dr. nattapong songneam]

Page 125: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Class Diagram

Page 126: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Class Diagram

Page 127: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ความคดรวบยอด (concept)

http://www.siam2dev.com [ dr. nattapong songneam]

มรปทรง

ใสนาได

ปรมาตร

ขวดนาตราสงห

ขวดตรา 7

selectขวดนา

..

Page 128: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ความคดรวบยอด (concept)

http://www.siam2dev.com [ dr. nattapong songneam]

เคลอนทได

โดยสารได

รถ BMX

Altisยานพาหนะ

Boing 747

เรอโดยสาร

Page 129: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

ความคดรวบยอด (concept)

http://www.siam2dev.com [ dr. nattapong songneam]

ปมโทรได

รบสายได

Samsung S6

iPhone 6 โทรศพท

อามา

Page 130: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

จะไดคลาสพนฐาน Fundamental Classes

http://www.siam2dev.com [ dr. nattapong songneam]

โทรศพท

ยานพาหนะทว

คน

แมว สตวปก

สนคา

พนกงาน

หองพก

บทเรยน

ปลา

ตนไม

ฯลฯ

พนกงาน

Page 131: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

เกาอ โตะ

อาจารยเมาส

คอม

สายไฟ

แอร

โปรเจกต

เตอรF1 f2 f3 f4 f5 f6

f7 f8

หลอดไฟ

Page 132: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Exercise I

1. สมชาย สมควร และสมศกด เปนนกเรยนในขณะท สมหญงและสมศรเปนนกกฬาทมชาต

2. สมศกด สมหญง และสมศร เปนคนผวดา ในขณะทสมชาย และสมควร เปนคนผวขาว

3. สมชาย สมควร และสมศกด เปนผชาย ในขณะท สมหญง และสมศร เปนผหญง

http://www.siam2dev.com [ dr. nattapong songneam]

จากขอความตอไปน จงเขยนแยกวาอะไรคอออบเจกต อะไรคอคลาส โดยวาดมาเปน แผนภาพ Classification Abstraction

จงวาดเปนแผนภาพแสดงClassification Abstraction

Page 133: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

เฉลย ขอ 1

1. กาหนดคานาม

2. ให Concept

3. วาดแผนภาพ

http://www.siam2dev.com [ dr. nattapong songneam]

1. สมชาย สมควร และสมศกด เปนนกเรยนในขณะท สมหญงและสมศรเปนนกกฬาทมชาต

มชอ

เพศ

เกรดเฉลย

เรยนได()นกเรยนสมชาย

สมควร

สมศกด

มชอ

เพศ

อาย

เลนกฬาได()นกกฬาสมหญง

สมศร

Page 134: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

http://www.siam2dev.com [ dr. nattapong songneam]

นกเรยน นกกฬา

สมชาย สมควรสมศกด สมหญง สมศร

เปนสมาชกของ เปนสมาชกของ

Page 135: Lec03 1 Classification Abstractionsiam2dev.net/E_Learning/OOAD/Lec03_1_Classification_Abstractions… · Lec03_1_Classification Abstraction ... Object ใน Problem Domain 3. เพื่อให

Exercise II

1. คอมพวเตอรยหอ Dell ตอเชอมกบ Printer และ Scanner ยหอ Hewlett Packard ซงถกใชงานโดยนาย ก ซงเปน Programmer

2. นาย ข เปน programmer เชนเดยวกน แตเครองคอมพวเตอรทใชเปนยหอ IBM ซงเชอมกบพรนเตอร

3. นาย ค เปนนกวเคราะหระบบ รบผดชอบการวเคราะหระบบใหกบฝายการบญช และฝายสงซอของบรษทนาเขาและสงออกแหงหนง

http://www.siam2dev.com [ dr. nattapong songneam]

จงเขยน Outside view ของแตละ class ทมอยใน problem domain ตอไปน