lec03 1 classification...
TRANSCRIPT
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
สอบระหวางภาค 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 : [email protected]
• Facebook : [email protected]
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 ตอไปน