188
Lec 01 Overview of Object-Oriented Technology Basic Concepts of Object-Orientation Object-Oriented Software Development By Dr. Nattapong Songneam http://www.siam2dev.com [email protected] [email protected] [email protected] OOAD : Object-Oriented Analysis and Design 1 Last Update : 24/03/2561

Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Lec01Overview of Object-Oriented Technology

Basic Concepts of Object-Orientation Object-Oriented Software Development

ByDr. Nattapong Songneamhttp://www.siam2dev.com

[email protected]@hotmail.com

[email protected]

OOAD : Object-Oriented Analysis and Design

1

Last Update : 24/03/2561

Page 2: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ขอตกลงในการเรยน วชา OOAD 3/2560

• เรมเรยนเวลา ..... เปนตนไป

• คะแนนจตพสย 20 คะแนน

– ขาดหก 2 คะแนน

– ลา / มาสาย หก 1 คะแนน

• เนอหา www.siam2dev.net หนา E-Learning

• Midterm 20%

• Final 30%

• Project 30% หองละ 3 กลม OOAD : Object-Oriented Analysis and

Design

Page 3: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Project1. แบงกลม

2. กาหนด บ. / องคกร / หนวยงานวางแผน กาหนดหนาทในกลม กาหนดความรบผดชอบ ใหสมมตเปนฝาย

IT เปน In house

3. เขยน/วางแผนธรกจ Business Rule

4. วเคราะหความตองการ Requirement Specifications >> ขอกาหนดของความตอง

Use Case Diagram

Class Diagram

Activity Diagram

5. ออกแบบOOAD : Object-Oriented Analysis and

Design

UML

บทท 5

Page 4: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

ACar care service System

BHotel Reservation System

CCinema complex

กลม A จะไมไดทาการวเคราะหของ บ.

ตวเอง

กลม B จะเปนโรงแรม

กลม C จะเปนโรงภาพยนต

ถา กลม A ไปหาขอมลจากกลม B แลวถากลม B ไมใหความรวมมอ กใหเขยนลงในรายงาน

Page 5: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

บ. Angel White

1. ดาเนนธรกจอะไร

2. แผนธรกจแผนระยะสน 1-3 ..........................

แผนระยะยาว 1-5 .................

3. ขอมลเบองตน ของ บ. เชน ทตง ประธาน บ. ....ตดตอ ฯลฯ

4. การบรหารองคกร เชน มกแผนก ม พนกงานจานวน ... ฯลฯ

5. บ. น ตองพฒนาระบบอะไร ?

OOAD : Object-Oriented Analysis and Design

บ. นตองใหพฒนาระบบซอขาย ออนไลน ทา E-Commerceบ. น ไประบความตองการมา

4- 5 หนากระดาษ

พรอมสมาชกในกลม ใครรบผดชอบทาอะไร

สง พฤหสบด ท 16 พ.ย. 60

Page 6: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

สง Business Rule หรอ แผนธรกจ ของ บ. กลม

• สงในหองเรยน

• ในวน พฤ ท 16 พ.ย. 2560

• ประกอบไปดวย

– ชอ บ. กลม

– แผนธรกจ

– สมาชกในกลม

– นาเสนอ ดวย PPT

OOAD : Object-Oriented Analysis and Design

Page 7: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Reviews

• Algorithm• Software Development

OOAD : Object-Oriented Analysis and Design

Page 8: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

การพฒนาซอฟตแวร

• การเขยนโปรแกรมแบบดงเดม / แบบโครงสราง

– Traditional Software Development– Structural Software Development

• การเขยนโปรแกรมแบบเชงวตถ / การพฒนาระบบเชงวตถ

– OOAD , OOSE , OOA , OOD , OOP , OO Testing

OOAD : Object-Oriented Analysis and Design

Traditional OOStructural ProgrammingBasic , c , pascal ,PSEUDOCODE , FLOWCHARTDFD , ERD , NF

Page 9: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ขอแตกตาง ระหวางการพฒนาโปรแกรม กบ การ

พฒนาระบบ

• พฒนาโปรแกรมกมขนเดยว ..เขยนโปรแกรม ...

• การพฒนาระบบ ...ครบวงจร มากกวา

OOAD : Object-Oriented Analysis and Design

HW SW

เชน กรณท บ. เพงเปดใหม

ตองการใหคณพฒนาระบบ

- Hardware………

-software

Prcoess

Page 10: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

2 วชาทเกยวกบการวเคราะหและออกแบบระบบ

• SA : System Analysis and Design• OOAD : Object - Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

DFD : Data Flow Diagram

Page 11: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

DFD : Data Flow Diagram

ระบบ การซอขายสนคา ของรานสะดวกซอ 7-11

Context diagram ของระบบ การซอขายสนคา ของรานสะดวกซอ 7-11

ลกคา

0

ก. Entityข. Boundaryค. External Source

ชอ นามสกล ทอย เบอรโทร...

…..?

บตรสมาชก / ขอมลสมาชก

Page 12: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ฝาย IT

OOAD : Object-Oriented Analysis and Design

TeamProgram

mer

Team IT support

Team …

Team SA

Team Design

Team Programmer

Team Database

Page 13: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Traditional Software Development

• Structural Programming Language– C,Pascal– Basic

OOAD : Object-Oriented Analysis and Design

Text Mode/Dos >> Sequential >> Algorithms

Algorithms คออะไร ?

1. คอ : ขนตอนวธ กระบวนการแกปญหาททอธบายมาเปนขนตอนทชดเจน 2. ยก ต.ย. ได

3. สรป ได

BACKGROUND

SETUP

Page 14: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

มองวาเปนปญหา แลวหาวธแกไขปญหา

• 2 + 4 + 6 + ... 100

OOAD : Object-Oriented Analysis and Design

Problem

• 8 5 4 9 5 2 1 10

Max ?

Min ?

Algorithm ขนตอนวธ

Page 15: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

มองวาเปนปญหา แลวหาวธแกไขปญหา

• 2 + 4 + 6 + ... 100

OOAD : Object-Oriented Analysis and Design

Problem

• มพนกงาน 100 ใหแสดงเงนเดอน

มากทสด ไปยง นอยทสด

Max ?

Min ?

Algorithm ขนตอนวธSorting

Page 16: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

2 + 4 + 6 + ... 100

• นาเสนอโดย โดยใชเครอง

– PSEUDOCODE– FLOWCHART

OOAD : Object-Oriented Analysis and Design

• จะตองอธบายใหคนอนๆ ในทมเขาใจ เพอไปพฒนาตอ

• เหมอนตอนทเราสรางบาน จาเปนตองมแปลน หรอ

ออกแบบ

Page 17: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Start Start

Enter 5 Enter X

Page 18: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

PSEUDOCODE

1. START2. … ENTER / READ / INPUT Number3. STOP / FINISH / END

OOAD : Object-Oriented Analysis and Design

1. เรมตน

2. อานคา ตวเลข 10 จานวนเขามา

3. สนสด

Page 19: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

1 + 3 + 5 + 7 + 9 …999

• MAX• MIN• AVG

OOAD : Object-Oriented Analysis and Design

8 7 6 8 1 4 9 2 4 25

Page 20: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Windows Application

• OOP

• Event-Driven Programming

• Visual Programming

OOAD : Object-Oriented Analysis and Design

VBDelphiJavaVC#

IDEIntegrate Development Environment

Tools Language

Page 21: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Event Driven Programming

• การเขยนโปรแกรมตามเหตการณ

OOAD : Object-Oriented Analysis and Design

Button9_click()

Button8_click()

Page 22: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Traditional/Structure OO

•Algorithm•Flowchart•DFD•ER•Normalization

•Unified Process•UML

• use case diagram• class/object diagram• Activity diagram• Sequence diagram• Collaboration diagram• deployment diagram• component diagramInformation/Database System

Requirement Specification

Page 23: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงเขยนโปรแกรมเรยงลาดบตวเลข 13 ตว

• 8 9 7 4 5 1 8 5 3 4 1 2 6

• จงเรยงจากนอยไปมาก

• จากมากไปนอย

OOAD : Object-Oriented Analysis and Design

จงเขยนอลกอรทม

• Pseudocode• FlowChart

Page 24: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Data / Information

• 8000 , 7999 , 25000 ,7444, 97700, 55000 44400 1000 , 2000 ,

OOAD : Object-Oriented Analysis and Design

สรปรายงานแสดงเงนเดอนของพนกงาน

ลาดบ ชอ-นามสกล เงนเดอน โอท

1 นายญาณภทร 200 0

2 นางสาววรดา 20000000 150

Page 25: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ประเภทระบบสารสนเทศ

• TPS : Transaction Processing System• MIS : Management Information System• EIS : Executive Information System• DSS : Decision Support System• ES : Expert System

OOAD : Object-Oriented Analysis and Design

Page 26: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 27: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 28: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 29: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงเขยน PSEUDOCODE

1. START2. ENTER Radius3. COMPUTE CircleArea 3.14*Radius*Radius4. Display CircleArea5. STOP อรนช

6. ไมม

OOAD : Object-Oriented Analysis and Design

Page 30: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 31: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 32: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Pseudocode TH/EN

1. START1. READ / ENTER >> Initial Stage

2. ประกาศตวแปร กาหนดคาเบองตน

3. PROCESS ..การคานวณ การทางานเปนโปรแกรมยอย1. ฟงกชน Function

2. โพรซเยอร Procedure

2. แสดงผล Display , Show , Output

3. STOP

OOAD : Object-Oriented Analysis and Design

Module / MethodA = pow(2,3)

printf(“hello world”);

writeln(“hello world”);

Page 33: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Structural Programming

• C , Pascal• Basic >> none Structural Programming / none

Procedural Programming– GOTO 28– GOTO 52 – GOTO 14

OOAD : Object-Oriented Analysis and Design

Sequence / ลาดบ

Selection / Decision ตดสนใจ ทางเลอก

Iteration / Repeat / Loop การทาซ า

DO , While , For

Page 34: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• Algorithm + Syntax

OOAD : Object-Oriented Analysis and Design

X := 5 ; , pascal , delphiX = 5; … java , cX = 5 ….vb

Page 35: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Pseudocode TH/EN

1. START1. READ / ENTER >> Initial Stage

2. ประกาศตวแปร กาหนดคาเบองตน

3. PROCESS ..การคานวณ การทางานเปนโปรแกรมยอย1. ฟงกชน Function

2. โพรซเยอร Procedure

2. แสดงผล Display , Show , Output

3. STOP

OOAD : Object-Oriented Analysis and Design

Module / MethodA = pow(2,3)

printf(“hello world”);

writeln(“hello world”);

• Sequence• Selection• Repeat• Modular

INPUT

PROCESS

OUTPUT

Page 36: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงเขยน Algorithm ของการหาอายเฉลยของ นศ. ในหองน

1. ………………..2. ………………..

OOAD : Object-Oriented Analysis and Design

Page 37: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

• Sequence• Selection• Repeat• Modular

Start

Stop

Start READ dataENTER dataINPUT data

รบจากแปนพมพ

ยาว

กวาง

Page 38: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

การรบคา

• กรณาปอนความกวาง ............

• กรณาปอนความสง …………….

OOAD : Object-Oriented Analysis and Design

READ Width

กรณาปอนความ

กวาง ..........

Start

*** ภาษาไทย ไมควรปะปนภาษาองกฤษ

Page 39: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงหาคาเฉลยของ อาย นกศกษาในหองน

• การวเคราะหปญหา

1. สงทโจทยตองการ

2. รปแบบผลลพธ

3. ขอมลนาเขา

4. ตวแปรทใช

5. วธการประมวลผล --- Psuedocode

OOAD : Object-Oriented Analysis and Design p. 39

Var• N แทน จานวน นศ.

• age [10] • age[N]• Sum• Average

Page 40: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงหาคาเกรดเฉลยของ นกศกษาในหองน

• การวเคราะหปญหา

– สงทโจทยตองการ

– รปแบบผลลพธ

– ขอมลนาเขา

– ตวแปรทใช

– วธการประมวลผล --- Psuedocode

OOAD : Object-Oriented Analysis and Design

Algorithm

ขนตอนวธ ?

หมายถง แนวทางแบบดงเดม ไมสามารถนากลบมาใชใหมได

เนองจาก การพฒนาระบบแบบนใชไดเฉพาะงาน และไมไดคานงถงการนากลบมาใชใหม

เนองจาก ระบบงานสมยกอนไมได ใหญ และมความวบซอนมากนน

OO

Page 41: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Reusable การนากลบมาใช

• ต.ย. การพฒนาระบบบญช ดวยภาษาปาสคาล สาหรบ บ. A

• ซอฟตแวรน จะใชไดสาหรบ บ. นเทานน หรอ ใชไดเฉพาะงานนเทานน

• การนากลบมาใชใหม ไมไดหมายถง COPY & PATSE

OOAD : Object-Oriented Analysis and Design

Page 42: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ต.ย.

โปรแกรม สามารถคานวณท ได

OOAD : Object-Oriented Analysis and Design

โปรแกรม สามารถคานวณท ได สเหลยม

อกรปแบบหนง

โปรแกรม สามารถคานวณท ได สามเหลยม อกรปแบบหนง

Page 43: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

การออกแบบ ใหด

• ไมอยางนน ตวทจะมาตอยอด จะไมสามารถตอจากของเดม

OOAD : Object-Oriented Analysis and Design

Page 44: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงเขยนโปรแกรมเรยงลาดบตวเลข 13 ตว

8 9 7 4 5 1 8 5 3 4 1 2 6

จงเรยงจากนอยไปมาก

จากมากไปนอย

OOAD : Object-Oriented Analysis and Design

จงเขยนอลกอรทม

Max

8 9

N – 1 รอบ

N – 1 รอบ

Page 45: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

SORTING

• Selection sort

• Bubble sort

• Merge sort

• Shell sort

• Quick sort

• ฯลฯ

OOAD : Object-Oriented Analysis and Design

Page 46: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ภาษาคอมพวเตอร/ไมใชภาษาคอมพวเตอร

OOAD : Object-Oriented Analysis and Design

ภาษาคอมพวเตอร ไมใช ภาษาคอมพวเตอร

variablesIf /select/switch/ Loop for do whileFunction/sub/procedure/method

Compiler/Interpreter

•Pascal•Vb•Delphi•Java•PHP•Etc.

•HTML•ASP

+ java script+ vb / vc#

สครป /แทก

เทคโนโลยฝงเซรฟเวอร

Page 47: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ตวอยาง : จงแกปญหา จงหา พ.ท. สเหลยมใด

1. กวาง*ยาว2. จบ

OOAD : Object-Oriented Analysis and Design

1. ด*ด2. จบ

Algorithm ?

Algorithm ? มลาดบ

ขนตอนทชดเจน

Page 48: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ขนตอนการพฒนาโปรแกรม

OOAD : Object-Oriented Analysis and Design

สงทโจทยตองการ Algorithm

PL:

Programming

Language

TestingMaintenance

SDLC : software development life cycle

Page 49: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

1. กวาง*ยาว2. จบ

1. เรมตน2. กาหนดคา w0 , h0,RecArea 03. อานคา ความกวาง เกบในตวแปร w, ความยาว

เกบไวใน h4. คานวณ RecArea W*H5. แสดงผลลพธ RecArea6. สนสดW*H

INPUT

PROCESS

OUTPUT

*** การเขยน ออกแบบอลกอรทม ตองทาหลายๆ รอบ

SET w 0

ไมควรเขยนแบบพรรณนา มากเกนไป ควรเขยนสนๆ กะทดรด ไดใจความ 1 งาน

อาน ความกวาง เขามา

Page 50: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

PSEUDOCODE

• SET X 5;• SET X 5

OOAD : Object-Oriented Analysis and Design

X := 5;pascal

X= 5;C/java

การกาหนดคา

Assign value

Operator= :=

X= 5VB

Page 51: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

C

int x;x = 10;

OOAD : Object-Oriented Analysis and Design

Page 52: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

public class calRecArea {public static void main(String args[]) {int width=0;int height=0;int result =0;result =width*height;System.out.println( result);}

} OOAD : Object-Oriented Analysis and

Design

ไฟล calRecArea.java

Case-sensitive

Page 53: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

vb

Class CalRecAreaPrivate sub calRecArea() …..End sub

End class

OOAD : Object-Oriented Analysis and Design

โปรแกรมยอย ไมมการคนคา

Page 54: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Private function ซอขาว(money as int16)ซอขาว

....

....

.....

return ขาว

End function

OOAD : Object-Oriented Analysis and Design

Statement ประโยคคาสง

Page 55: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

หาคาเลขยกกาลง

function pow(x as int16,y as int16) as double………return x

end function

OOAD : Object-Oriented Analysis and Design

vb

Page 56: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงเขยน/สรางฟงกชน ดวย

• Java• C• Pascal• Basic• VB• VC#

OOAD : Object-Oriented Analysis and Design

Page 57: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

• Case-sensitive– java , c ,VC#, c++,c#,php,perl

• None-case sensitive– Vb, delphi ,pascal

int x;int X;

Page 58: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• Byte == byte 0..128 • Short int16 -32768 -- 32767• Integer int32 21…….• Long int64 4…

OOAD : Object-Oriented Analysis and Design

Page 59: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Feedback

OOAD : Object-Oriented Analysis and Design

INPUT PROCESS OUTPUT

Page 60: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

power

• 2^5• Math.pow(2,5)

OOAD : Object-Oriented Analysis and Design

Procedure/sub/voidFunction

Page 61: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

สรปคาศพท

• Case sensitive , None case-sensitive• Programming Language• Divide and Conquer• Algorithm• Structural Programming• Traditional Programming

OOAD : Object-Oriented Analysis and Design

Page 62: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

จงเขยน Algorithm ของ

• 1 + 2 + 3 +…. 100–Do–While–For

OOAD : Object-Oriented Analysis and Design

เลอกใชอยางใดอยางหนง

นาเสนอ Pseudocode และ Flowchart

Page 63: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

1 100

• Algorithm : ขนตอนวธ / การแกปญหาอยางเปนขนตอน1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

*** คาคงตว รแนนอน

ไมรบคา

ควรเลอก for ,while,do

ครงท 1

Page 64: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปรบปรงครงท 1

1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

1. START/BEGIN2. …. {Initialization}3. DECLARE result4. STOP/FINISH/END

กาหนดคา / ประกาศตวแปร

Page 65: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปรบปรงครงท 1

1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

1. START/BEGIN2. …. {Initialization}3. SET I 04. STOP/FINISH/END

กาหนดคา / ประกาศตวแปร

SET X 8SET X X + 8

X = 5X = 5;X :=5;

vb

C,java

Pascal/delphi

Assign value

Page 66: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• SET SUM SUM + 5• SET Y 8• Total Total*25

OOAD : Object-Oriented Analysis and Design

กาหนดคาใหกบตวแปร Assign value

Page 67: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปรบปรงครงท 2

1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

1. START/BEGIN2. …. {Initialization}3. SET I 04. FOR I 1 TO 100

4.1 BEGINCOMPUTE RESULT RESULT + I

4.2 END5. STOP/FINISH/END

กาหนดคา / ประกาศตวแปร

Page 68: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปรบปรงครงท 3

1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

1. START/BEGIN2. …. {Initialization}3. SET I 04. SET result 05. FOR I 1 TO 100

4.1 BEGINCOMPUTE result result + I

4.2 END6. STOP/FINISH/END

กาหนดคา / ประกาศตวแปร

Page 69: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปรบปรงครงท 3

1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

1. START/BEGIN2. …. {Initialization}3. SET I 04. SET total 05. FOR I 1 TO 100

4.1 BEGINCOMPUTE total total + I

4.2 END6. STOP/FINISH/END

กาหนดคา / ประกาศตวแปร

ResultSumTotal

Page 70: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปรบปรงครงท 3

1. เรมตน2. ทาตงแต 1 ...1003. เอาแตละคาบวกกน4. แสดงผลลพธ5. สนสด

OOAD : Object-Oriented Analysis and Design

1. START/BEGIN2. …. {Initialization}3. SET I 04. SET total 05. FOR I 1 TO 100

4.1 BEGINCOMPUTE total total + ISET I I + 1

4.2 ENDDISPLAY total

6. STOP/FINISH/END

กาหนดคา / ประกาศตวแปร

ResultSumTotal

DISPLAYSHOWPRINTOUTPUT

Page 71: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

FLOWCHART

OOAD : Object-Oriented Analysis and Design

START

STOP

SET I 0SET total 0

FOR I1 TO 100COMPUTE total total + I

DISPLAY total

Page 72: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

FLOWCHARTDO

OOAD : Object-Oriented Analysis and Design

START

STOP

SET I 1SET total 0

DISPLAY total

COMPUTE Total total + I

I >100

I I +1

FALSE

TRUE

Page 73: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

connector

OOAD : Object-Oriented Analysis and Design

Same page Previous page

A

A

Next page

Page 74: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Summations

OOAD : Object-Oriented Analysis and Design

วตถ Object- attribute- function

วตถ Object- attributes- functions

Page 75: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

TxtResult

• Form• Button• TextBox

OOAD : Object-Oriented Analysis and Design

Page 76: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 77: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 78: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 79: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 80: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 81: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Event Driven Programming

• การเขยนโปรแกรมแบบอางองเหตการณ

OOAD : Object-Oriented Analysis and Design

KeyupKeydownkeypress

Page 82: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 83: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

2 + 4 + 6 + 8 …100

OOAD : Object-Oriented Analysis and Design

Page 84: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

5 + 10 + 15 + 20 + … 200

OOAD : Object-Oriented Analysis and Design

Page 85: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Buttons

• Attribute– Name– Font– ForeColor– Text– BackColor– size

OOAD : Object-Oriented Analysis and Design

Page 86: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

1. เรมตน

2. กาหนดคา w0 , h0,RecArea 03. อานคา ความกวาง เกบในตวแปร w, ความยาว

เกบไวใน h4. คานวณ ReacAreaW*H5. แสดงผลลพธ RecArea6. สนสด

INPUT

PROCESS

OUTPUT

Initialization stageเตรยมตวแปร ประกาศตวแปร

INPUT/READ/ENTER

Page 87: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

PSEUDOCODE : รหสเทยม/รหสจาลอง

• START / BEGIN• SET X 0• READ / ENTER / INPUT•• STOP /FINISH / END

OOAD : Object-Oriented Analysis and Design

• VB• PASCAL• C• JAVA• DELPHI

คอ เครองหมาย กาหนดคา assign valueVb/C#/Java= ในภาษา

X = 5 X=5;

ใน AlgorithmSET X 5

Pascal/Delphi:= ในภาษา

X := 5;

Page 88: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Requirement / Information Gathering

• Functional Requirements• Non-functional Requirements

OOAD : Object-Oriented Analysis and Design

Page 89: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Lec 01

Overview of Object-Oriented Technology Basic Concepts of Object-Orientation Object-Oriented Software Development

By

Nattapong Songneam , Ph.D.(IT)

http://[email protected]@hotmail.com

OOAD : Object-Oriented Analysis and Design

1

Page 90: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Lecture Outline

OOAD : Object-Oriented Analysis and Design

2

Software, Systems and Software Systems

Software Crisis

Traditional Software Development

Object-Oriented Software Development

Principle of Object Orientation

Key Benefits of Object-Oriented Software Development

What do we learn in this course?

2

Page 91: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

What is software?อะไรคอซอฟตแวร (What is software)ซอฟตแวรชดคาส ง (Instructions) ทส งใหคอมพวเตอรประมวลผลโดยสามารถกระทางานตามทระบไวใหสาเรจ และมประสทธภาพทตองการได (computer programs)

โครงสรางขอมล (Data structures) ทาหนาทเกบสารสนเทศทใช หรอถกเรยกใชโดยโปรแกรม

เอกสาร (Documents) ทบรรยายวธปฏบตการ และวธการใชงานโปรแกรม

OOAD : Object-Oriented Analysis and Design

3

Page 92: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Microsoft Word

• เปด เครอง

– Boot – อปกรณตอพวง ..... Mouse, keyboard ..monitor– Ready ..window start up– Activate ……….– Double Click ท icon ms-word load ขอมลของเวรด อย

ใน HD เขาสแรม เพราะ HD ทางานชากวา CPU ทางานระดบ

ไมโครวนาท(ในวชา OS) เขาส RAM ทางานชากวา CPU นาโน

(10-9 )s แต GHz. จงตอง แคช ....รจสเตอร ...

OOAD : Object-Oriented Analysis and Design

Page 93: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Microsoft

• Queue จดการคว

OOAD : Object-Oriented Analysis and Design

P1 P2 P3 P4

Process

Page 94: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ในอดมคต

OOAD : Object-Oriented Analysis and Design

บญช 12

ประเภท HRM INVENTORY

WAREHOURSELOGISTIC

WINDOWS/OS

INTERNET

DRIVER DSS

ES

สแกน

ลายนวมอ

Presentation

Virus

Scan Virus

จงอธบาย ? 1 หนากระดาษ จากรป

Page 95: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

โจทย

• คอมพวเตอรใจภาษาอะไร ?• ทาไมคอมพวเตอรเขาใจแคภาษาเครอง

• หรอภาษาเครองคออะไร

• ภาษา C คอมพวเตอรเขาใจหรอไม ?

OOAD : Object-Oriented Analysis and Design

10101110 = 8 Bit = 1 Byte = 1 ตว Ascii Code

0000 0000…1111 1111

256 แบบ

44 ตว

26 ตว

0-9

F1-F12

1000 ตว

26 ตว

0-9

F1-F12

Page 96: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ระดบของภาษาคอมพวเตอร

1. ภาษาเครอง2. ภาษาสญลกษณ / Assembly3. ภาษาชนสง (High Level Language)

1. Pascal ,Basic,GWBasic,Qbasic, C , C++ ฯลฯ

4. ภาษาชนสงมาก (Very High Level Language)5. ภาษาธรรมชาต

OOAD : Object-Oriented Analysis and Design

ภาษาเชงวตถ

ภาษาแบบวชวล

Assembler01010010

Mov AX,BXADD BX,2SUB DX,2

Program CalCircleVar R : integer;Beginwrite(“Enter R: ”);End.

compiler

compiler interpreter

SQL: Structure Query Language

Page 97: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

สง Business Rule หรอ แผนธรกจ ของ บ. กลม

[email protected]

• ภาย ใน ศกร 1 ก.ค. 2559

• ประกอบไปดวย

– ชอ บ. กลม

– แผนธรกจ

– สมาชกในกลม

– Present นาเสนอ จนทร 4 ก.ค. 2559

OOAD : Object-Oriented Analysis and Design

Page 98: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• Depend on hardware Assembly• Independent pascal , c

OOAD : Object-Oriented Analysis and Design

Page 99: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

0101011011111001110001110011111111000010101101111101110001110011111111000010101101111100111000111001100

111000111001111111100001010110111110011100011100110011100011100111111110000101011011111001110001110011001110001110011111111000010101101111100111000111001100111000111001111111100001010110111110011100011100110011100011100111111110000101011011111001110001110011001110001110011111111000010101101111100111000111001100111000111001111111100001010110111110011100011100110011100011100111111110000101011011111001110001110011001110001110011111111000010101101111100111000111001100

OOAD : Object-Oriented Analysis and Design

A

Page 100: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Page 101: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

SQL

• DBMS/RDBMS– อยากไดขอมลลกคาทมฐานเงนเดอนสง 50000 ?“SELECT CustName , CustSalary FROM TbCustomerWHERE CustSalary > 50000”

OOAD : Object-Oriented Analysis and Design

ถาเปนโปรแกรมภาษาชนสง

- เปดไฟลฐานขอมล

Physical - อานขอมลตงแตแถวแรกไปจนเจอ

- เราตองแสดงขอมลออกมา

Database Management System

Relational Database Management System

ODBMSObject Database Management

System

Page 102: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

SQL

• DML • “SELECT * FROM TbMember”• DDL• DCL

OOAD : Object-Oriented Analysis and Design

Page 103: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ภาษาธรรมชาต NLP

• Natural Language Programming– Lisp– Prolog

OOAD : Object-Oriented Analysis and Design

AI : Artificial Intelligentปญญาประดษฐ

Nueral Networkเครอขายประสาทเทยม

ตวอยางจากภาพยนตร

Terminator : ฅนเหลก

Skynet

iRobot

Identity : อตลกษณ

Robot:Dreaming

Page 104: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

How Does Software Work?ชดคาสง (Instructions) และ ขอมล (data) รวมกนทางานเพอสราง ลาดบของสถานะแบบไมตอเนองภายในคอมพวเตอร

อาจหลายสถานะทสามารถเปนไปได ทเวลาใดๆ สถานะตางๆ ของ Software ทาความเขาใจไดยาก

OOAD : Object-Oriented Analysis and Design

4

DiscreteDigital

Analog

Page 105: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Dim age as int16

OOAD : Object-Oriented Analysis and Design

Page 106: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ASCII code

• 0000 0000• 1111 1111

OOAD : Object-Oriented Analysis and Design

แอสก(ASCII) หรอ รหสมาตรฐานของสหรฐอเมรกาเพอการแลกเปลยนสารสนเทศ [1] (องกฤษ: ASCII: American Standard Code for Information Interchange) เปนรหสอกขระทประกอบดวยอกษรละตน เลขอารบก เครองหมายวรรคตอน และสญลกษณตางๆ โดยแตละรหสจะแทนดวยตวอกขระหนงตว เชน รหส 65 (เลขฐานสบ) ใชแทนอกษรเอ (A) พมพใหญ เปนตน

จากวกพเดย สารานกรมเสร

Page 107: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Systems and Software Systems

A System is “An organized or connected group of Objects; a whole composed of parts

in orderly arrangement according to some scheme or plan”

OOAD : Object-Oriented Analysis and Design

A software-intensive System (Software System) is system ทประกอบดวยระบบ software ระบบยอย ทมบทบาท หรอมสวน

ในการควบคมสวนสาคญของพฤตกรรมท งหมดของระบบ

Examples of Software Systems ระบบควบคมการบน, ระบบทางรถไฟ, ระบบซอ ขายหลกทรพย,

ระบบบญช,ระบบงานธนาคาร,ระบบการเรยนการสอน ฯลฯ

OS

Page 108: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

“Why” Do We Build Software Systems?

• เพอแกปญหาตามความตองการของผใช(User) • software ตองสามารถแกปญหาของผใชได • software ตองสามารถทางานทผใชตองการไดอยาง

ถกตองและมประสทธภาพ

OOAD : Object-Oriented Analysis and Design

6

แทจรงแลวซอฟตแวร คอสญญาณไฟฟา

MIS

MIS

Page 109: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

“How” Do We Build Software Systems?

โดย “decomposition” และ “synthesis” จาแนกยอย และสรางแบบจาลองของปญหาใน

รปแบบทสามารถตดตอสอสารกบผอนได (กระบวนการ Specification/Analysis)

ขอมล/สารสนเทศเกยวกบขอบเขตของปญหา (problem domain) จะตองเปนทเขาใจตรงกน

ทาการสงเคราะห (Synthesize) แนวทางการแกปญหา (solution) โดยมงเนนท actions หรอdata (กระบวนการDesign/Implementation)

OOAD : Object-Oriented Analysis and Design

7

Page 110: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Top-Down

OOAD : Object-Oriented Analysis and Design

Page 111: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Structure Chart

• Divide and Conquer• แบงรวม - รวมแบง

OOAD : Object-Oriented Analysis and Design

Integrate System

Page 112: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Software Development Process

• Requirement Specification : define problem domain• Analysis : what problem to be solved?

– เพอบอกวามปญหาอะไรบาง ปญหา 1 ปญหา 2 ปญหา 3 ปญหา ... ทตองแก

• Design : how to solve the problem?– แตละปญหาแกอยางไร

• Implementation : how to implement the solution?– ทาตามท design ไว

• Testing : how to ensure that the solution can solve the problem?

• Maintenance : how to adjust the solution to accomodatechange?

• Retirement : when does the system to be retired?

OOAD : Object-Oriented Analysis and Design

Page 113: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Requirement

• Requirement >> โปรแกรมสามารถคานวณตางๆ ดงนได

– หาคาพนทตางๆ

– คานวณภาษได

– คานวณ SQRT

– คานวณ POWER

• Analysis

– 1. หาคาพนทตางๆ

– 2. คานวณภาษได

OOAD : Object-Oriented Analysis and Design

Page 114: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ต.ย. การออกแบบจากบนลงลาง top down design

OOAD : Object-Oriented Analysis and Design

หาคาพนทตางๆ

Page 115: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• Flowchart• Algorithm

– Begin/Start• …• …• …• …• …

– End/Stop

OOAD : Object-Oriented Analysis and Design

หาคาพนทตางๆ

START

STOP

Page 116: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

FLOWCHART

• SYSTEM FLOWCHART– ทงระบบ

• PROGRAM FLOWCHART– สวนโปรแกรม

OOAD : Object-Oriented Analysis and Design

ผงงานระบบ และ ผงงานโปรแกรม เหมอนหรอตางกนอยางไร ?ใหยกตวอยาง

Page 117: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Software Development Life Cycle

• SDLC Model

• ประกอบดวยจานวนชดของขนตอน ในกระบวนการพฒนา Software (Software Development Process)

• อาจเกดปญหาไดในทกๆ ขนตอนการพฒนา• มหลาย Model ทแตกตางกนในวธดาเนนการของขนตอน เชน

Waterfall Model, Incremental Model, Spiral Model เปนตน

• แตละ Software ใช Model ทแตกตางกนในการพฒนา• แตละ Model มจดเดน จดดอย ในตวเอง

OOAD : Object-Oriented Analysis and Design

Page 118: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

The Cost of Change

OOAD : Object-Oriented Analysis and Design

60 - 100 x

1.5 - 6 x

1 x

design development maintenance

10ความเสยง หรอ คาใชจายในการพฒนาระบบเมอเวลาผานไปเรอยๆ จะสงแบบทวคณ

Page 119: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

“What Techniques” Can Be Used?

• ขนอยกบสงท software engineer มงเนนระหวางการสงเคราะห(Synthesis) แนวทางการแกปญหา• มงเนน Process (Action) …งาน หรอ ฟงกชนของระบบ• มงเนน Data …. ขอมล..• มงเนน Object …ออบเจกต....

OOAD : Object-Oriented Analysis and Design

11

Page 120: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Traditional Software Development• ใช Structured Analysis & Design Techniques

พจารณาเฉพาะ Data (Data-Oriented) ตวอยางเชน Data Flow Model, ER (Entity-

Relational) Model พจารณาเฉพาะ Action (Action-Oriented) ทเกยวเนอง/

กระทากบ Data ตวอยางเชน Finite State Machine (FSM)

ใช Structured Implementation Techniques ใช Structured/Procedural Programming Languages

ตวอยางเชน BASIC, Pascal, C

OOAD : Object-Oriented Analysis and Design

12OO vb vc# java Delphi

Hybrid บางภาษายงทางานแบบดงเดม หรอแบบโครงสราง

Page 121: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Problems with Traditional Techniques Do Traditional techniques work?

Yes, they do (at a cost !!!) Problems

ในปจจบน Commercial Software จานวนมาก ยงคงใช Traditional Techniques

Software มขนาดใหญ และซบซอนมากขน เพอตอบสนองความตองการของผใชและราคาทถกลงของ Hardware

การคนหาขอบกพรองของ Software Design และImplementation ใชเวลานาน และเสยคาใชจายสง

การบารงรกษา Software ทาไดไมสะดวก และมคาใชจายเขามาเกยวของ

OOAD : Object-Oriented Analysis and Design

13

Page 122: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Complexity

OOAD : Object-Oriented Analysis and Design

ลกคา พนกงา

ผจดกา

ระบบ

ซอขาย

ระบบ

สนเชอ

ระบบ

ประกน

ระบบ

ฝาก-

ถอน

ระบบ

รายงาน

ระบบ

เครดตระบบ

สนเชอ

ซอบาน

ระบบ

สนเชอ

ซอรถ

ระบบ

สนเชอ

อนๆ

ระบบ

โอนเงน

ระบบ

โอนเงน

ใน

ประเทศระบบ

โอนเงน

ตางประเ

ทศ อนๆ กวา

รอย

ระบบ

ระบบ

บญช

ระบบ

การเงน

Page 123: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• Reusable คอ การนากลบมาใชใหมตามหลกการของ OO โดยทงานใหมทเพมเขามาจะไมสงผลกระทบตองานเดม

OOAD : Object-Oriented Analysis and Design

งาน

ใหม

Page 124: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

รถยนต

รถสปอรต

4 ประต

มลอ

มเครองยนต

4 ประต

มลอ

มเครองยนต เทอรโบ

เปดประทน

Inheritance

• Reusable คอ การนากลบมาใชใหม ตามหลกการของ OO โดยทงานใหมทเพมเขามาจะไมสงผลกระทบตองานเดม

Page 125: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Software Crisis Software มการเปลยนแปลง (Change) ตลอดเวลา

ระบบ Software เดม (Legacy Software) ไมสามารถ

ปฏบตงานรวมกนกบเทคโนโลยแบบใหมได

(Interoperability) ยากแกการขยายขอบเขตของระบบ Software เดม

(Extendability) ไมสามารถนา Software ทมอยเดมมาใชใหมได

(Reusuability) มกพฒนา Software จากเรมตน ไมไดพฒนาจากของเดมทมอย

OOAD : Object-Oriented Analysis and Design

14

ปญหาของการพฒนาระบบแบบเดม

จงนาไปสการพฒนาโดยหลกการ

เชงวตถ

Page 126: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Software Crisis การพฒนา Hardware เรวมาก

ขนาด (Size) ของซอฟตแวร ใหญขน และเพมความซบซอน (Complexibility) มากขน

แตการพฒนา Software ชา และม bug คาใชจาย (Cost) ในการพฒนา และบารงรกษาสง

(Maintainability) ใชเวลาในการพฒนา (Time to Market) นาน หรอ ได

ซอฟตแวรคณภาพดอยทไมตรงกบความตองการของผใช

ชองวางระหวาง Users และ Programmers

OOAD : Object-Oriented Analysis and Design

15

Page 127: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

What are Object-Oriented Techniques? มมมองใหมของ Software Decomposition

พจารณาขอมล (attribute/data) และ หนาท/พฤตกรรม (Action/behavior) รวมกนเปนวตถ (Object)

เสนอแนวทางใหมในการ Synthesis พจารณาแนวทางการสงเคราะห วธการแกปญหา โดย

มงเนนท Data และ Actions โดยรวมเปนหนวยเดยวกนคอ Object

แยกสวนของ Data และ Actions ทไมเกยวของไว ในรปของ การเรยกใช Module

พจารณาขอบเขตของปญหา (Problem Domain) และสรางแบบจาลองการแกปญหา (Modeling Objects) ตามสภาพความเปนจรง (Real World)

OOAD : Object-Oriented Analysis and Design

16

ปญหาของการพฒนาระบบแบบเดม

จงนาไปสการพฒนาโดยหลกการ

เชงวตถ

Page 128: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

มมมองใหมของ Software Decompositionพจารณาขอมล (attribute/data) และ หนาท/พฤตกรรม (Action/behavior)

รวมกนเปนวตถ (Object)

• มองพนกงาน แบบดงเดม .... เปนเพยง data หรอ entity ธรรมดามแคขอมล เชน มชอพนกงาน รหส เบอรโทร อเมล เพศ

OOAD : Object-Oriented Analysis and Design

ปญหาของการพฒนาระบบแบบเดม

จงนาไปสการพฒนาโดยหลกการ

เชงวตถ

พนกงาน

ชอ รหส ทอย

เบอรโทร

แผนก

ทาไมจงไมเกบแผนกในพนกงาน ?

เราเลอก อะไรเปน PK ? เหตผล

Page 129: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Table พนกงงาน

ID Name Gender Tel Address Department Salary001 ชโลธร FeMale 0888

777711

BKK แมบาน 2500

002 ชาลสา Male 0811 กทม รปภ. 180

OOAD : Object-Oriented Analysis and Design

AnomalyInsert Anomaly Delete AnomalyUpdate Anomaly

Page 130: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Table พนกงงาน

ID Name Gender Tel Address Dept_ID Salary001 ชโลธร FeMale 0888

777711

BKK D001 2500

002 ชาลสา Male 0811 กทม D002 180

OOAD : Object-Oriented Analysis and Design

AnomalyInsert Anomaly Delete AnomalyUpdate Anomaly

Dept_ID Dept_Name

Detail

D001 แมบาน

D002 รปภ.

Page 131: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Primary Key หมายถง

1. สงทเปน unique ไมซา2. จะแทนขอมลทงทบเพล Tuple ได หรอ แถว หรอ เรคคอรด3. จะตองไมวาง null ไมได 4. จะสอความหมาย และสนๆ ไดใจความ5. จะตองไมเปน Multi Value Attribute

OOAD : Object-Oriented Analysis and Design

เราเลอก อะไรเปน PK ? เหตผล

เพราะอะไร จงไมเลอกทอยเปน PK

นาย ก อย กทม

นาย ข อย กทม

นาย ง อย กทม

นาย ก อย กทม

นาย ก อย เชยงใหม

นาย ก อย สงขลา

Multi Value Attribute

นาย ก เบอร 081-xxxxxxxนาย ก อย 02-

นาย ก อย 089-

ใหยกตวอยาง อะไรทสามารถเปน คา Null ได

ชอ เบอรโทร

ใหยกตวอยาง อะไรทสามารถเปน คา Multi Value Attributes ได

Page 132: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

E-mail

• X…….• Line ID

OOAD : Object-Oriented Analysis and Design

ID Name Gender Tel Address Dept_ID Salary E-mail001 ชโลธร FeMale 088

8777711

BKK D001 2500 [email protected]@Hotmail.com

002 ชาลสา Male 0811

กทม D002 180

Page 133: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ใน หลกการเชงวตถ จะมองพนกงานเปน object

• มองพนกงานใหมในเชง OO

OOAD : Object-Oriented Analysis and Design

พนกงาน

- ชอ- ทอย- เบอรโทร

+ กาหนดชอ ()+ เปลยนทอย ()+ ลา ()

*** มอง พนกงาน เปนวตถ ทม

Attribute และฟงกชน

Attribute

Function

Page 134: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ต.ย. โปรแกรมในภาษาจาวา

class Test {int x;Customer c;c = new Customer()c.setName(“dr.nattapong songneam”);

}

OOAD : Object-Oriented Analysis and Design

PDT

ADT

Function / Method

Page 135: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

What are Object-Oriented Techniques?

• พจารณา software ในรปแบบของ clients และ servers

• servers ซอน Implementation ของ Actions ไวภายใตInterface

• clients เรยกใชไดเฉพาะ Interface ท server เปดใหบรการเทาน น

OOAD : Object-Oriented Analysis and Design

ObjectA

ObjectB

Client Server

request

result or deny

*** Server มความสามารถบางอยางทให client เรยกใชได

Page 136: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ในซอฟตแวร เชงวตถ จะม object หลายตวท

ทางานรวมกน

OOAD : Object-Oriented Analysis and Design

คน รถยนต

ServerClient

driveสมชาย

สมหญ

ServerClient

ถามอาย

อาย 41

Message

ตวทกระตน หรอเรมทางาน มองเปน serverตวทตอบกลบมา หรอ ตอบสนอง เปน client

Page 137: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ในซอฟตแวร เชงวตถ จะม object หลายตวท

ทางานรวมกน

OOAD : Object-Oriented Analysis and Design

ลกคาพนกงา

Server Client

สอบถามโปรโมชน

สมชายสมหญ

Server Client

ถามอาย

อาย 41

Message

ตวทกระตน หรอเรมทางาน มองเปน serverตวทตอบกลบมา หรอ ตอบสนอง เปน client

เสนอโปรโมชน

Page 138: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Attributes / Data MemberFunction/Behavior / Method Member

ในภาษาจาวาใน OO

BaseHieght

setBased()calArea()t1.calArea()

T t1 = new T();

Object

class

Page 139: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Object-Oriented SoftwareOOAD : Object-Oriented Analysis and Design

O1

O3

O2

O4

m1

m2

m4m3

m5

Program

Environment

• ซอฟตแวรเชงวตถ (Object-Oriented Software)คอ กลม หรอชด(Collection) ของวตถทมหนาทรบผดชอบตอ

การจดการขอมลของตนเอง และตดตอสอสารกบวตถอนๆ โดยสง

ขอความ (Message) ใหแกกนและกนแทนระบบ/ซอฟตแวร

ต.ย. บ. Angel WhiteE-commerce

Page 140: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

O1

O3

O2

O4

m1

m2

m4m3

m5

Program

Environmentแทนระบบ/ซอฟตแวร

ต.ย. บ. Angel WhiteE-commerce

แทนระบบ/ซอฟตแวร

ต.ย. บ. Angel WhiteHRM

แทนระบบ/ซอฟตแวร

ต.ย. บ. Angel WhiteInventory

แทนระบบ/ซอฟตแวร

ต.ย. บ. Angel WhitePurchase Order

Page 141: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• Button …b1 …..b9 b0• Menu file• Textbox t1

OOAD : Object-Oriented Analysis and Design

class object

object

Page 142: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

What is an object?OOAD : Object-Oriented Analysis and Design

• วตถ (object)

เปน กลมหรอชด (collection) ของสงตอไปน

• แอททรบวต (Attribute) ของวตถจะบอกถงขอมล (Data)คณลกษณะเฉพาะหรอ สถานะของวตถ

• เมทธอด (Method) จะบอกถงหนาท (functionality) หรอ

พฤตกรรม (behavior) ตางๆของวตถนนๆ

• โดยม แอสโซซเอชน (Association) อนไดแก สงทบอกถง

ความสมพนธ (Relationship) ของวตถนน กบวตถอนๆ รวมทง

ปฏสมพนธ (Interactions) ระหวางวตถกบวตถอนๆ

?

Page 143: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

ปากกา

• Attributes

– ส

– ความยาว

– นาหนก

– ฝาปากกา

– ราคา

• Actions/Functions

– เขยนไดOOAD : Object-Oriented Analysis and

Design

class PEN {

private String color;

private int width;

private double weight;

private double price;

private Object cap; //ฝาปากกา

public void Writable() {

}

public void Openable() {

….

}

}

Implement in java?

Page 144: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Functions/Behaviors/Methods/Actions

• สงนนทาอะไรไดบาง คอความสามารถของสงนน Methods• สงนนมพฤตกรรม เปนอยางไร Behaviors• สงนนมหนาทอะไร Functions

OOAD : Object-Oriented Analysis and Design

ในหลกการเชงวตถ OO

ในภาษาเชงวตถ OOP

Page 145: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

คณลกษณะ / attributes

• สงทเรามองวตถ วา วตถนนมอะไรบางเปนสวนประกอบ และม

หนาตาเปนอยางไร

OOAD : Object-Oriented Analysis and Design

หมก

ดาม

ฝาปากกา

ไส

ราคา

ยหอ

ปากกา

Page 146: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Mobile

• Attribute– รปทรง– ส– ราคา– นาหนก

• Function/Action/Behavior– โทรออก– รบสาย– เลนเกม– ดราคา– ดรน

OOAD : Object-Oriented Analysis and Design

class Mobile {private String Shapes;private Color color;private double price;private double weight;

public void call() {

}public void receive() {…}public void setPrice(double p) {

price = p;}public double getPrice() {

return price;}

}

Implement in java

Page 147: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

โทรออก ()รบสาย ()สงขอความ ()

โทรออก ()รบสาย ()สงขอความ ()เลนเกม ()เลนเฟส ()

โทรออก ()รบสาย ()สงขอความ ()เลนเกม ()เลนเฟส ()เขยนโปรแกรมได ()

surfacesmartphone

mobile

Page 148: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• ทว

• ดนสอ

• รถยนต

• รถเมล

• รถไฟฟา

• รถไฟ

• คน

• แมว

• สนข

OOAD : Object-Oriented Analysis and Design

ดหนง ดละคร

จอแบบ จอนน

ปมกด

จอแบบ จอนน

ปมกด

จอ

ลาโพง

จอ

ลาโพง

ภาพ

เสยง

มลกษณะสเหลยม

รโมท

ภาพ

เสยง

มลกษณะสเหลยม

รโมท

Page 149: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• 1.ญาณภทร TV• Attribute จอแบน นาหนก ขนาด ราคา

• Function รบสญญาณคลนวทย ฉายภาพได ตอเนตได มชองรบ

USB• 2.ณฎฐกตต ดนสอ

• Attribute ความยาว ส ไสดนสอ นาหนก ราคา ดาม ยหอ

• Function เขยนได

• 3.สธ รถยนต

• Attribute ประต เครองยนต 4ลอ CC• Function ขบได กนฝน ปองกนเเดด นงพกผอน ฟงเพลงได

• 4.วงศกร รถเมล

• ATTRIBUTE สาย ยหอ เลขประจารถ สรถ รหสประจาสายOOAD : Object-Oriented Analysis and

Design

Page 150: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Identify Problem DomainOOAD : Object-Oriented Analysis and Design

ระบ ขอบเขตของปญหา (Problem Domain) เพอสรางแบบจาลอง

วตถ (Modeling Objects) เปนการกาหนดขอบเขตของสงทเราจะพจารณาใหเปนวตถ (Object) เราไมสามารถสนใจทกๆ วตถ (Object) ในโลกของความเปนจรง ใน

เวลาเดยวกนได

เชนเดยวกบทเราไมสามารถสนใจทกความสมพนธ และ กจกรรม ทก

ความสมพนธ และทกกจกรรมทเกดขนในโลกของความเปนจรงไดเชนกน

Page 151: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

• ลอ• กระจก• กระโปรงหนา• พวงมาลย

OOAD : Object-Oriented Analysis and Design

Real World Computer World

• ยหอ• รน• ราคา• ส

• รถในโลกความเปนจรง เราจะนกถง • รถในโลกของคอมพวเตอร เราจะสนใจแต

Page 152: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Objects = Attributes, Methods, AssociationsOOAD : Object-Oriented Analysis and Design

AttributesAgeGenderName….

AssociationsmyLeftArmmyLeftLegmyRightArm....

Methods/OperationsJump..Talk...Dance

Ask FriendJumpWalkJumpShake myHeadShake myBody

A working OO system:a conversation between networksof objects

Tim

head

bodyarmarm

leg leg

Page 153: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Objects = Attributes, Methods, AssociationsOOAD : Object-Oriented Analysis and Design

AttributesModelCompanyColor….

AssociationsBrakeLeftFrontWheelGear....

Methods/OperationsStart..Go...Stop..

Go ForwardGo BakcwardTurn LeftTurn RightApply BrakeChange Gear….

A working OO system:a conversation between networksof objects

รถยนต

body

Brake

wheelwheel

wheel

wheel Engine

Page 154: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Object/Class

การตงชอกลม ทม Attribute และ Function เหมอนกนแบบเดยวกน จดใหอยกลม

เดยวกน เรยกวาคลาส

อะไรอยกลมเดยวกน เรยกวา

คลาสเดยวกน

OOAD : Object-Oriented Analysis and Design

ส1

ส2

สามเหลยม

- มมมสามมม

สเหลยม

- มมมสมม

วงกลม

ไมมมม

สามเหลยม

- ฐ

- ส

- คานวณพ.ท. ()สเหลยม

- กวาง

- ยาว

- คานวณพ.ท.()วงกลม

รศม

- คานวณพ.ท.()

Page 155: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

กาหนดคณลกษณะ (Attribute) ใหกบวตถ

วตถ “Tim” มคณลกษณะสาคญคอ อาย (25 ป) เพศ (ชาย) ชอ (Tim) เปนตน

วตถ “รถยนตคนหนง” สามารถ วง เลยวซาย และเลยวขวาได เปนตน

กาหนดพฤตกรรม/วธการกระทา (Method) ใหกบวตถ

วตถ “Tim” สามารถ เดน ยน นง และนอน ได เปนตน

วตถ “รถยนตคนหนง” สามารถ วง เลยวซาย และเลยวขวาได เปนตน

กาหนดความสมพนธ/ปฏสมพนธกบวตถอน (Association) วตถ “Tim” ประกอบดวย ลาตว(body) แขน (arm) 2 แขน ขา(leg) 2 ขา เปนตน

วตถ “รถยนตคนหนง” ประกอบดวย ตวถง(body) ลอ (wheel) 4 ลอ เปนตน

วตถ “Tim” สามารถสรางกจกรรม ใหวตถ “รถยนตคนหนง” เกดการเปลยนแปลงสถานะได

เชน การขบรถ เปนตน

Objects Abstraction

Page 156: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

วตถท ม Attribute, Method และ Association ของวตถคลายๆ กนจะถกจดอยในกลมหรอ คลาส (Class) เดยวกน

Group of Objects

นายแดง นายดา นายเขยว

Page 157: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

• คา Attribute, Method และ Association ของวตถ จะถกกาหนดไวใน “คลาส” (Class)

• คลาส (Class)• เปนสงทนาเสนอ Abstract Data Types (ADTs) ของวตถ (Object) ทเราตองการจาลอง• กาหนดรายละเอยดเกยวกบ Attribute, Method และAssociation ของวตถ (Object)• เปนพมพเขยว (Blueprint) ของวตถ (Object)

Defining Class

Page 158: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

คลาส (Class) เปนพมพเขยว (Blueprint) ของวตถ (Object)

ไมสามารถนามาใชไดโดยตรง กาหนดคณลกษณะรวมกนในรปของ Attribute กาหนดวธการกระทา/พฤตกรรม รวมกนของวตถ ในรปของ Method กาหนดความสมพนธ /ปฏสมพนธกบวตถอ นในรปของ Association

เรยกไดวา วตถ (Object) เปนสงทสรางขน หรอเปน อนแสตนซ (Instance) ของคลาส (Class)

Class

Page 159: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Classes & InstancesOOAD : Object-Oriented Analysis and Design

Person

Tim Don

• เรยกไดวา คลาส (Class) เปน พมพเขยว/แบบแปลน (Blueprint) ของ วตถ(Object)

• เรยกไดวา วตถ (Object) เปน อนแสตนซ (Instance) ของคลาส (Class)

Page 160: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Class & ObjectOOAD : Object-Oriented Analysis and Design

Class

PERSON

AgeGender Name myArmsmyLegs

Jump()Walk()Talk()Sleep()ShakeMyArms()

Object “นายดา”

Age = 35Gender = ชายName = นายดาmyArms = แขนmyLegs = ขา

can Jumpcan Walkcan Talkcan Sleepcan ShakeMyArms

Page 161: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Class & ObjectOOAD : Object-Oriented Analysis and Design

Class

PERSON

AgeGender Name

myArmsmyLegs

Jump()Walk()Talk()

Dance()ShakeMyArms() Object “Don”

Age = 25Gender = MaleName = DonmyArms = ArmsmyLegs = Legs

can Jumpcan Walkcan Talkcan Dancecan ShakeMyArms

Page 162: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Classes & InstancesOOAD : Object-Oriented Analysis and Design

• เรยกไดวา คลาส (Class) เปน พมพเขยว/แบบแปลน (Blueprint) ของ วตถ (Object)• เรยกไดวา วตถ (Object) เปน อนแสตนซ (Instance) ของคลาส (Class)

Page 163: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Class & ObjectOOAD : Object-Oriented Analysis and Design

Class

CAR

ModelColor

Company theGeartheBrake

GoForward()GoBackward()

TurnLeft()TurnRight()

ApplyBrake()

Object “aCar”

Model = CelicaColor = RedCompany = ToyotatheGear = GeartheBrake = Brake

can GoForwardcan GoBackwardcan TurnLeftcan TurnRightcan ApplyBrake

Page 164: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Message Passing (1) Message Passing

คอการท วตถตดตอกนดวยการสง ขอความ (message) ถงกนและกน

มผลทาให วตถทรบขอความ (received object) เปลยนแปลงสถานะ หรอ กระทาการอยางใดอยางหนง โดยจะทาการประมวลผลตามความตองการของวตถทสงขอความ หรอ ปฏเสธคารองขอ

OOAD : Object-Oriented Analysis and Design

32

Page 165: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Tim

ถาวตถ Tim ตองการขบรถ aCar จะตองทาอยางไร?

aCar

ขบรถ

Example of Message Passing (1)

33

Page 166: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Message passing (2) การสง Message ไปยงวตถใดๆ แลววตถนนกระทาการอยาง

ใดอยางหนง เปนการเรยก Method ทถกกาหนดไวในวตถนนมาทางาน เปรยบเทยบไดกบการเรยก function call หรอ

procedure call ทมใน Procedural Programming โดยผาน Interface

แตละวตถ ตองรบผดชอบ พฤตกรรมของตนเอง โดยผานการเรยกใช Method

OOAD : Object-Oriented Analysis and Design

34

Page 167: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Tim

ถาวตถ Tim ตองการขบรถ aCar

aCaraCar.GoForward(100)aCar.goBackward()aCar.TurnLeft()aCar.TurnRight()aCar.ApplyBrake()

Example of Message Passing (2)

35

Page 168: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Object-Oriented Software

OOAD : Object-Oriented Analysis and Design

m1

m2

m4m3

m5

Software

Environment

36

Page 169: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Characteristics of an Object

OOAD : Object-Oriented Analysis and Design

• Identity• Information Hiding • Encapsulation• Inheritance• Polymorphism

37

Page 170: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Identity

วตถ (Object) จะตองมลกษณะเฉพาะประจาตว (Identity) วตถใดๆ สามารถมคณลกษณะ (Attribute) เหมอนๆ กนได

เชน วตถ“Tim” และ“Don” เปนเพศชาย และอาย 25 ป เหมอนกน

วตถใดๆ สามารถมพฤตกรรม (Behavior/Method) เหมอนๆ กนได เชน วตถ“Tim” และ“Don” สามารถกน เดน นอน นง ได เหมอนกน

วตถใดๆ สามารถความสมพนธเกยวของ (Association) กบวตถอนๆเหมอนๆ กนได เชน วตถ“Tim” และ“Don” ประกอบดวย 2 แขน และ 2 ขา เหมอนๆ กน

วตถ “Tim” และ “Don” สรางจากคลาส (Class) เดยวกนคอ “Person”

แตเราถอวา วตถ“Tim” และวตถ “Don” เปนคนละวตถกน

OOAD : Object-Oriented Analysis and Design

38

Page 171: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Encapsulation พจารณาวตถ (Object) ไดเสมอน กลองดา (Black Box)

วตถใด ตอง “ร” วธหรอขนตอนการทางานภายใน (Method) ของตนเอง

วตถอน ไมจาเปนตองรวาวธ หรอขนตอนการทางานภายในเปนอยางไร

วตถอนตองการเรยกใช Method ของวตถนได โดยสง Message มาโดยท Message จะตองอยในรปแบบทตกลงกนไวกอน

OOAD : Object-Oriented Analysis and Design

black box

Object

IncomingMessage Outgoing Message

39

Page 172: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

นายดา

Example of Encapsulation

Tim.jump()Tim.walk()Tim.talk()Tim.dance() Tim.shakeMyArms()

40

Page 173: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Information Hiding พจารณาวตถ (Object)

สามารถกาหนดขอบเขตการเขาถง Attribute และ Method กาหนดวาใครสามารถเหนหรอใช Attribute และ Method

ของวตถนนไดบาง

OOAD : Object-Oriented Analysis and Design

anObject

talk()

walk()

jump()

Name

Age

ObjectDiagram A.

anObject

talk()

walk()

jump()

Name

Age

Object Diagram B.

anObject

talk()

walk()

Jump()

Name

Age

Object Diagram C.41

Page 174: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Information Hiding and Encapsulation

Q: จะคานวณคา “Age” จาก PERSON ได อยางไร?

เกบคา วน-เดอน-ปเกด ไว แลวคานวณคา “Age” เมอม request? เกบคาอายปจจบน (current age) และupdate ทกๆ ป?

A: don’t care!!! ตราบใดทเราสามารถ maintain “getAge()” interface

PERSON

AgeGender Name

myArmsmyLegs

Jump()Walk()Talk()

Dance()ShakeMyArms()

getAge()

42

Page 175: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Advantages of Information Hiding and Encapsulation

Maintainability เปนการพจารณาโครงสรางซอฟตแวรในระดบนามธรรม

(Abstraction) หรอในระดบสง (High-Level) โดยไมคานงถงรายละเอยด วธการ หรอภาษาทจะนาไปพฒนา (Implementation)

Flexibility ทาใหการพฒนาซอฟตแวรเชงวตถมความยดหยน

(Flexibility) สามารถเปลยนแปลงไดงาย (Ease of Change)

ระบบ Software ใดๆ สามารถปฏบตงานรวมกนไดอยางสะดวก และมประสทธภาพ เนองจากไมจาเปนตอง “ร” รายละเอยดการทางานภายในของระบบ

OOAD : Object-Oriented Analysis and Design

43

Page 176: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Inheritance (1) การถายทอดคณสมบต (Inheritance)

คอการท class ทตางกนม Attributes และ Methods ทเหมอนกน

Subclasses รบถายทอดคณสมบต (inherit) ของ properties จาก Superclass

OOAD : Object-Oriented Analysis and Design

Employee

Director Worker Driver

Superclass

Subclasses

44

Page 177: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Inheritance (2)OOAD : Object-Oriented Analysis and Design

Class Diagram

SHAPE

center

move

CIRCLE

radius

calculateArea

TRIANGLE

baseheight

calculateArea

SQUARE

side

calculateArea

45

Page 178: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Inheritance (2)OOAD : Object-Oriented Analysis and Design

aSHAPE

center

move

CIRCLE Is a kind of SHAPE

SQUARE Is a kind of SHAPE

Object Diagram

aCIRCLE

calculate area

radius

center

move

aTRIANGLE

base

calculate area

center

height

move

aSQUARE

side

calculate area

center

move

46

Page 179: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Generalization and Specialization Generalization การกาหนดคณลกษณะรวมกนจากคลาส หลายๆ คลาส และนามา

กาหนดไวในคลาสทอยในลาดบชนสงขน (superclass) ของ โครงสรางลาดบชน (Class hierarchy)

bottom-up Specialization การกาหนดคลาสใหมขน (Subclass) โดยรบถายทอด

คณสมบต (inherit) คณสมบตทงหมดอนไดแก คณลกษณะ และพฤตกรรม จากคลาสเดม

top-down

OOAD : Object-Oriented Analysis and Design

47

Page 180: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Inheritance (3)OOAD : Object-Oriented Analysis and Design

generalization

Shape

Rectangle Circle Triangle

Sphere Cylinder

specialization

48

Page 181: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Multiple Inheritance

• คลาส 1 คลาส รบถายทอดคณสมบต (inherit) จาก superclass ตงแต2 คลาสขนไป

OOAD : Object-Oriented Analysis and Design

Person Employee

ManagingDirector

49

Page 182: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Advantages of Inheritance Avoiding redundancies Source Code ในสวนทเหมอนกนจะถกเขยนขนเพยงครง

เดยว

Code reuse สามารถนาไปใชใหมได (reuse) ไดโดยการรบถายทอด

คณสมบต

Reduced code size and complexity เนองจาก Source Code ถกเขยนขนเพยงครงเดยว และถก

นาไปใชใหมไดไมจากด จงเปนการประหยดเนอท Source Code และลดความซบซอนของ Source Code

OOAD : Object-Oriented Analysis and Design

50

Page 183: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Polymorphism Polymorphism วตถตาง ๆ ทมพฤตกรรมแบบเดยวกนอยในตว แต

รายละเอยดวธการกระทาอาจแตกตางกนได ขนอยกบวาวตถนนถกนาไปใชแบบใด

เชน วตถ “SQUARE” และวตถ “CIRCLE” ตางกสามารถถก “calculateArea” ได แตวธการ “calculateArea” ของทง 2วตถ อาจไมเหมอนกน

วตถตาง ๆ มวธคณลกษณะ และรายละเอยดวธการกระทาทแตกตางกน แตมองใหเหมอนกนได จากคณลกษณะและพฤตกรรมทวตถเหลานนมรวมกน

เชน วตถ “SQUARE” และวตถ “CIRCLE” มวธการ “calculate Area” ตางกน แตสามารถมองคณสมบตรวมกนอนไดแก ทง 2 วตถ ตางกเปน วตถ “SHAPE” ทสามารถ “calculate Area” ได

OOAD : Object-Oriented Analysis and Design

51

Page 184: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

PolymorphismOOAD : Object-Oriented Analysis and Design

can move the same way

internally, all“shapes” have center

Calculate area themselves differently

if shapes need to move,they get the “move”from their parent

SHAPE

center

move

CIRCLE

radius

calculateArea

TRIANGLE

baseheight

calculateArea

SQUARE

side

calculateArea

52

Page 185: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Advantages of Polymorphism

Software Interoperability ระบบ Software ใดๆ สามารถปฏบตงานรวมกนไดอยาง

สะดวก และมประสทธภาพ เนองจากสามารถมองภาพรวมของวตถ ทอยภายในระบบเปนรปแบบทมลกษณะรวมกน โดยไมจาเปนตอง “ร” รายละเอยดการทางานภายในของวตถ

OOAD : Object-Oriented Analysis and Design

53

Page 186: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

Why Object Orientation? Key Benefits of Object Orientation

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

ซบซอนของ Software ไดดกวา Traditional Techniques สนบสนน การตดตอสอสารทมประสทธภาพในชวงวงรอบการพฒนา

Software (Software Development Life Cycle) ตอบสนองตอ Software Crisis ลดผลกระทบอนเกดจากการเปลยนแปลง (Change) ของ Software สนบสนนการนา components กลบมาใชใหม (High Level reuse

of Components) สนบสนนการแกไข Problems of Software อนไดแก

Reusability, Extendability, Interoperability เปนตน

OOAD : Object-Oriented Analysis and Design

54

Page 187: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

What do we learn about OOT? OO Terms and Concepts

Object and Class Inheritance, Encapsulation and Polymorphism Relationship and Interaction between classes

OO Analysis and Design Object Modeling with UML

OO Programming Languages Java Language

Distributed Object Technology RMI and CORBA .NET

OOAD : Object-Oriented Analysis and Design

55

Page 188: Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป นต นไป • คะแนนจ ตพ ส ย 20 คะแนน –ขาดห

OOAD : Object-Oriented Analysis and Design

Summary Software, Systems and Software Systems Software Crisis Traditional Software Development Object-Oriented Software Development Principle of Object Orientation Key Benefits of Object-Oriented Software

Development What do we learn in this course?

56