Lec03 1 Classification...

Preview:

Citation preview

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

โดย อ.ดร. นฐพงศ สงเนยมhttp://www.siam2dev.comDr.nattapong_s@hotmail.com

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

Last Update : 28/11/2560

Lec03_1_Classification Abstraction

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

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

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

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

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

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

• http://www.siam2dev.com

• E-mail : dr.nattapong_s@hotmail.com

• Facebook : siam2dev@hotmail.com

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

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]

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]

Classification Abstraction ?

• การกาหนด Problem Domain

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

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

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

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

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

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

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

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

การพฒนาระบบ

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

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

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

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

แนวทาง

• 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

เมอทา Requirement

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

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

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

Problem Domain

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

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

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

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

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

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

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

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

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

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

• หองพก ...จบ

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

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

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

A

B

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

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

ERD• 1 Entity

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

Employee Customerserv

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

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

• มกจะขาด

– สวนทสาคญ

– สวนทไมสาคญ

• เกน

– ไมผดมาก

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

10 ฟงกชน10 Requirements

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

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

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

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

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

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

16

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

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

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

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

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

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

18

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

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

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

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

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

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

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

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

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

เงนเดอน

อะไหล

ใบสงซอPO

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

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

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

รถ

???

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

คาถาม

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

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

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

– ฯลฯ

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

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

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

** 3 – 4 – 5

Problem Domain

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

คนขบรถยนต

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

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

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

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

– Encapsulation– Problem Domain

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

รถยนต

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

- เครองยนต

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

พวงมาลย

ลอ

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

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

แตไมใชไมม

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

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

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

คน

- ขา

+ เดนได()

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

แตไมใชไมม

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

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

Problem Domain

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

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

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

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

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

web win

mobile

Information Gathering

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การคด 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

Business Rule

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

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

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

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

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

หกอะไรบาง ?

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

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

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

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

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

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

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

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

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

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

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

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

ภาษ

HRM

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

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

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

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

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

สอบวดความร

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

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

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]

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

Problem Domain

Problem Domain

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

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

หนงสอ : คลาส

• หนงสอจาวา คลาส / วตถ• หนงสอ 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

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

หนงสอ

หนงสอ

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

ระบบเชงวตถ

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

โปรแกรมภาษา

จาวา

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

เวบไซตดวย Adobe

Dreamweaver

หนงสอ

ระบบปฏบตการ

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

เปนสมาชกของ

เปนสมาชกของ

แมว

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

ประเภทของ Object

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

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

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

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

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

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

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

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

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

นยาม

• Attribute• Function

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

เปดได

ปดได

อานได

ชอ

หนา

ปก

ราคาหนงสอ

เนอหา

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

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

- อานได()

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]

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

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;}

C

#include <stdio.h>

static void main() {

int x;

string color;

Colors Color;

}

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

PDT

ADT

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)

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

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

• Attribute

– ชอหนงสอ

– ผเขยน

– ราคา

– วนทพมพ

– สานกพมพ

– จานวนหนา

– จานวนกเลม

– ประเภท

• Function

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

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

• ผลไม

– ส

– ชอ

– ขนาด

– รปทรง

– กนได

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

• คน

– ชอ

– นามสกล

– อาย

– เพศ

– กนได

Eatable polymorphism

Eatable()

Eatable()Eatable()

Fruit Human

ผลไม

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

แมว

แอปเปล

ซมซง S7

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

ผลไมสแดง

ผลไมสเขยว

แอบเปล

รปทรง

รสชาต

ขนาด

ไดจากตนไม

กนได()

การวง

• รถ• คน• มา

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

วงได RUN

• VB Compile RUN

• ขอความท 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 จากขอความตอไปน

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

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

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

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

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

ATM System

• Real Time Processing

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

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

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

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

Real-Time Processing

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

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

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

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

– Touchable or Tangible Object– Intangible Object

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

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

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

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

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

ตวอยางท 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]

ยากน ยาฉด

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

อกเสบ

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

ยหอ A

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

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

nattapong songneam]

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

Is Member Of Is Member Of

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]

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

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

Classification Abstraction

คน

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

Is member of

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

Classification Abstraction

รถ

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

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

Is member of

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

Classification Abstraction

รถ

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

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

Is member of

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

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

ตวอยาง Classification Abstraction

คอมพวเตอรNotebook

? ? ? ?

Is member of

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

คน

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

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

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

ธนาคาร

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

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

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

?

นกศกษา

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

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

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

อาจารย

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

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

เปนสมาชกของ

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

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

หนงสอ

หนงสอ

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

ระบบเชงวตถ

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

โปรแกรมภาษา

จาวา

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

เวบไซตดวย Adobe

Dreamweaver

หนงสอ

ระบบปฏบตการ

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

เปนสมาชกของ

เปนสมาชกของ

ตวอยาง Classification Abstraction

แมว

Classification Abstraction

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

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

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

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

nattapong songneam]

แมวสขาว

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

ถา

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

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

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

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

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

สตวมเขา

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

แมวสขาว

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

ขนตอน การทา 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

ตวอยางท 3.4

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

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

50 หนา”

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

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

คานาม

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

2. ปกสเหลอง

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

4. หนา

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

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

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

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

หนา”

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

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

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

• ปกสเหลอง : Attribute

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

• หนา : Attribute

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

คานาม Object attributes

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

ปกสเหลอง เปน

attributes

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

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

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

หนงสอ VB มชอ

มราคา

มผแตง

มปก

มเนอหา

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

หนงสอ

ขนตอนท 5

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

หนงสอ

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

เปนสมาชกของ

Is member of

ขนตอนท 6

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

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

เปนสมาชกของ

Is member of

หนงสอ-ปก

-เนอหา

-ผแตง

-ราคา

+ อานได()

การระบ Class และ Object

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

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

Object

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

ตวอยางท 3.5

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

คนไขชอ กตต”

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

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

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

• คนไขชอกตต

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

ตวอยางท 5

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

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

ตวอยางท 5

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

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

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

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

Classification Abstraction

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

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

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

Classification ของ Class คน

คน

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

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

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

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

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

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

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

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

หมา แมว

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

Classification

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

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

คน

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

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

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

Class name

attributes

function

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();

Encapsulation

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

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

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

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

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

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

Outside View

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

Outside View ของ Class คน

คน

อาย

บอกอาย ( )

Class คน

คน

บอกอาย ( )

Outside Viewของ Class คน

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

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

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

Information Hidding

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

ทเรยน

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

Outside View

+ eatable()

Inside View

# เมลด

Visibility / Accessibility

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

- Private# Protected+ Public

attributes

functions

Outside View ของ Class คน

คน

อาย

บอกอาย ( )

Class คน

คน

บอกอาย ( )

Outside Viewของ Class คน

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

สผว

Encapsulation / Information Hiding / Outside View

X

Y

Z

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

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

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

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

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

โปรดบอกอาย

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

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

สมศกด : คน

อาย

บอกอาย ( )

สมศร : คน

อาย

บอกอาย ( )

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

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

Information Hiding

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

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

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

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

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

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”)}

}

Private Attributes and Functions

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

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

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

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

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

Protected Attributes and Functions

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

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

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

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

Public Attributes and Functions

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

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

• เชน สผม สผว

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

Classification ของ Class คน

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

คน

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

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

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

Classification ของ Class คน

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

คน

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

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

สมศร

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

Inside view

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

สมศร : คน

- สมศร : ชอ

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

- 25 : อาย

+บอกอายได

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

+บอกเพศได

Function

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

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

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

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

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

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

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

Class Diagramคน

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

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

Function

Attribute

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

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

Is member of

Class Diagramรถ

ยหอรนสราคา

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

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

Is member of

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

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

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

Function

Attribute

Encapsulation & Information Hiding

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

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

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

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

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

Function แทน )

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

ตวอยางท 3.6

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

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

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

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

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

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

สมศร : คน

อาย

บอกอาย()

สมชาย : คน

อาย

บอกอาย()

โปรดบอกอาย

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

ประเภทของ 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]

Class Diagram

Class Diagram

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

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

มรปทรง

ใสนาได

ปรมาตร

ขวดนาตราสงห

ขวดตรา 7

selectขวดนา

..

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

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

เคลอนทได

โดยสารได

รถ BMX

Altisยานพาหนะ

Boing 747

เรอโดยสาร

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

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

ปมโทรได

รบสายได

Samsung S6

iPhone 6 โทรศพท

อามา

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

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

โทรศพท

ยานพาหนะทว

คน

แมว สตวปก

สนคา

พนกงาน

หองพก

บทเรยน

ปลา

ตนไม

ฯลฯ

พนกงาน

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

เกาอ โตะ

อาจารยเมาส

คอม

สายไฟ

แอร

โปรเจกต

เตอรF1 f2 f3 f4 f5 f6

f7 f8

หลอดไฟ

Exercise I

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

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

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

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

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

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

เฉลย ขอ 1

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

2. ให Concept

3. วาดแผนภาพ

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

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

มชอ

เพศ

เกรดเฉลย

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

สมควร

สมศกด

มชอ

เพศ

อาย

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

สมศร

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

นกเรยน นกกฬา

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

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

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 ตอไปน

Recommended