Last Update : 24/03/2561 Lec01...3/OOAD 2560 • เร มเร ยนเวลา ..... เป...

Preview:

Citation preview

Lec01Overview of Object-Oriented Technology

Basic Concepts of Object-Orientation Object-Oriented Software Development

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

Dr.nattapong_s@hotmail.comsiam2dev@hotmail.com

xnattapong@hotmail.com

OOAD : Object-Oriented Analysis and Design

1

Last Update : 24/03/2561

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

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

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

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

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

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

• Midterm 20%

• Final 30%

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

Design

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

OOAD : Object-Oriented Analysis and Design

ACar care service System

BHotel Reservation System

CCinema complex

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

ตวเอง

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

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

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

บ. Angel White

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

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

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

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

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

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

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

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

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

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

– ชอ บ. กลม

– แผนธรกจ

– สมาชกในกลม

– นาเสนอ ดวย PPT

OOAD : Object-Oriented Analysis and Design

Reviews

• Algorithm• Software Development

OOAD : Object-Oriented Analysis and Design

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

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

– 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

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

พฒนาระบบ

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

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

OOAD : Object-Oriented Analysis and Design

HW SW

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

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

- Hardware………

-software

Prcoess

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

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

OOAD : Object-Oriented Analysis and Design

DFD : Data Flow Diagram

OOAD : Object-Oriented Analysis and Design

DFD : Data Flow Diagram

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

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

ลกคา

0

ก. Entityข. Boundaryค. External Source

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

…..?

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

ฝาย IT

OOAD : Object-Oriented Analysis and Design

TeamProgram

mer

Team IT support

Team …

Team SA

Team Design

Team Programmer

Team Database

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

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

• 2 + 4 + 6 + ... 100

OOAD : Object-Oriented Analysis and Design

Problem

• 8 5 4 9 5 2 1 10

Max ?

Min ?

Algorithm ขนตอนวธ

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

• 2 + 4 + 6 + ... 100

OOAD : Object-Oriented Analysis and Design

Problem

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

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

Max ?

Min ?

Algorithm ขนตอนวธSorting

2 + 4 + 6 + ... 100

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

– PSEUDOCODE– FLOWCHART

OOAD : Object-Oriented Analysis and Design

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

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

ออกแบบ

OOAD : Object-Oriented Analysis and Design

Start Start

Enter 5 Enter X

PSEUDOCODE

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

OOAD : Object-Oriented Analysis and Design

1. เรมตน

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

3. สนสด

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

Windows Application

• OOP

• Event-Driven Programming

• Visual Programming

OOAD : Object-Oriented Analysis and Design

VBDelphiJavaVC#

IDEIntegrate Development Environment

Tools Language

Event Driven Programming

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

OOAD : Object-Oriented Analysis and Design

Button9_click()

Button8_click()

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

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

• Pseudocode• FlowChart

Data / Information

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

OOAD : Object-Oriented Analysis and Design

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

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

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

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

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

• 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

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

จงเขยน PSEUDOCODE

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

6. ไมม

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

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

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

• Algorithm + Syntax

OOAD : Object-Oriented Analysis and Design

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

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

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

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

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

• Sequence• Selection• Repeat• Modular

Start

Stop

Start READ dataENTER dataINPUT data

รบจากแปนพมพ

ยาว

กวาง

การรบคา

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

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

OOAD : Object-Oriented Analysis and Design

READ Width

กรณาปอนความ

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

Start

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

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

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

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

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

3. ขอมลนาเขา

4. ตวแปรทใช

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

OOAD : Object-Oriented Analysis and Design p. 39

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

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

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

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

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

– รปแบบผลลพธ

– ขอมลนาเขา

– ตวแปรทใช

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

OOAD : Object-Oriented Analysis and Design

Algorithm

ขนตอนวธ ?

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

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

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

OO

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

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

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

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

OOAD : Object-Oriented Analysis and Design

ต.ย.

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

OOAD : Object-Oriented Analysis and Design

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

อกรปแบบหนง

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

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

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

OOAD : Object-Oriented Analysis and Design

จงเขยนโปรแกรมเรยงลาดบตวเลข 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 รอบ

SORTING

• Selection sort

• Bubble sort

• Merge sort

• Shell sort

• Quick sort

• ฯลฯ

OOAD : Object-Oriented Analysis and Design

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

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#

สครป /แทก

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

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

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

OOAD : Object-Oriented Analysis and Design

1. ด*ด2. จบ

Algorithm ?

Algorithm ? มลาดบ

ขนตอนทชดเจน

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

OOAD : Object-Oriented Analysis and Design

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

PL:

Programming

Language

TestingMaintenance

SDLC : software development life cycle

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 งาน

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

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

C

int x;x = 10;

OOAD : Object-Oriented Analysis and Design

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

vb

Class CalRecAreaPrivate sub calRecArea() …..End sub

End class

OOAD : Object-Oriented Analysis and Design

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

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

....

....

.....

return ขาว

End function

OOAD : Object-Oriented Analysis and Design

Statement ประโยคคาสง

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

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

end function

OOAD : Object-Oriented Analysis and Design

vb

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

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

OOAD : Object-Oriented Analysis and Design

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;

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

OOAD : Object-Oriented Analysis and Design

Feedback

OOAD : Object-Oriented Analysis and Design

INPUT PROCESS OUTPUT

power

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

OOAD : Object-Oriented Analysis and Design

Procedure/sub/voidFunction

สรปคาศพท

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

OOAD : Object-Oriented Analysis and Design

จงเขยน Algorithm ของ

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

OOAD : Object-Oriented Analysis and Design

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

นาเสนอ Pseudocode และ Flowchart

1 100

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

OOAD : Object-Oriented Analysis and Design

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

ไมรบคา

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

ครงท 1

ปรบปรงครงท 1

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

OOAD : Object-Oriented Analysis and Design

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

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

ปรบปรงครงท 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

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

OOAD : Object-Oriented Analysis and Design

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

ปรบปรงครงท 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

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

ปรบปรงครงท 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

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

ปรบปรงครงท 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

ปรบปรงครงท 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

FLOWCHART

OOAD : Object-Oriented Analysis and Design

START

STOP

SET I 0SET total 0

FOR I1 TO 100COMPUTE total total + I

DISPLAY total

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

connector

OOAD : Object-Oriented Analysis and Design

Same page Previous page

A

A

Next page

Summations

OOAD : Object-Oriented Analysis and Design

วตถ Object- attribute- function

วตถ Object- attributes- functions

TxtResult

• Form• Button• TextBox

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

OOAD : Object-Oriented Analysis and Design

Event Driven Programming

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

OOAD : Object-Oriented Analysis and Design

KeyupKeydownkeypress

OOAD : Object-Oriented Analysis and Design

2 + 4 + 6 + 8 …100

OOAD : Object-Oriented Analysis and Design

5 + 10 + 15 + 20 + … 200

OOAD : Object-Oriented Analysis and Design

Buttons

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

OOAD : Object-Oriented Analysis and Design

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

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;

Requirement / Information Gathering

• Functional Requirements• Non-functional Requirements

OOAD : Object-Oriented Analysis and Design

Lec 01

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

By

Nattapong Songneam , Ph.D.(IT)

http://www.siam2dev.comsiam2dev@hotmail.comxnattapong@hotmail.com

OOAD : Object-Oriented Analysis and Design

1

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

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

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

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

OOAD : Object-Oriented Analysis and Design

3

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

Microsoft

• Queue จดการคว

OOAD : Object-Oriented Analysis and Design

P1 P2 P3 P4

Process

ในอดมคต

OOAD : Object-Oriented Analysis and Design

บญช 12

ประเภท HRM INVENTORY

WAREHOURSELOGISTIC

WINDOWS/OS

INTERNET

DRIVER DSS

ES

สแกน

ลายนวมอ

Presentation

Virus

Scan Virus

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

โจทย

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

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

• ภาษา 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

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

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

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

• siam2dev@hotmail.com

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

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

– ชอ บ. กลม

– แผนธรกจ

– สมาชกในกลม

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

OOAD : Object-Oriented Analysis and Design

• Depend on hardware Assembly• Independent pascal , c

OOAD : Object-Oriented Analysis and Design

0101011011111001110001110011111111000010101101111101110001110011111111000010101101111100111000111001100

111000111001111111100001010110111110011100011100110011100011100111111110000101011011111001110001110011001110001110011111111000010101101111100111000111001100111000111001111111100001010110111110011100011100110011100011100111111110000101011011111001110001110011001110001110011111111000010101101111100111000111001100111000111001111111100001010110111110011100011100110011100011100111111110000101011011111001110001110011001110001110011111111000010101101111100111000111001100

OOAD : Object-Oriented Analysis and Design

A

OOAD : Object-Oriented Analysis and Design

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

SQL

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

OOAD : Object-Oriented Analysis and Design

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

• Natural Language Programming– Lisp– Prolog

OOAD : Object-Oriented Analysis and Design

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

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

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

Terminator : ฅนเหลก

Skynet

iRobot

Identity : อตลกษณ

Robot:Dreaming

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

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

OOAD : Object-Oriented Analysis and Design

4

DiscreteDigital

Analog

Dim age as int16

OOAD : Object-Oriented Analysis and Design

ASCII code

• 0000 0000• 1111 1111

OOAD : Object-Oriented Analysis and Design

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

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

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

“Why” Do We Build Software Systems?

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

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

OOAD : Object-Oriented Analysis and Design

6

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

MIS

MIS

“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

Top-Down

OOAD : Object-Oriented Analysis and Design

Structure Chart

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

OOAD : Object-Oriented Analysis and Design

Integrate System

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

Requirement

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

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

– คานวณภาษได

– คานวณ SQRT

– คานวณ POWER

• Analysis

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

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

OOAD : Object-Oriented Analysis and Design

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

OOAD : Object-Oriented Analysis and Design

หาคาพนทตางๆ

• Flowchart• Algorithm

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

– End/Stop

OOAD : Object-Oriented Analysis and Design

หาคาพนทตางๆ

START

STOP

FLOWCHART

• SYSTEM FLOWCHART– ทงระบบ

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

OOAD : Object-Oriented Analysis and Design

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

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

The Cost of Change

OOAD : Object-Oriented Analysis and Design

60 - 100 x

1.5 - 6 x

1 x

design development maintenance

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

“What Techniques” Can Be Used?

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

OOAD : Object-Oriented Analysis and Design

11

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 บางภาษายงทางานแบบดงเดม หรอแบบโครงสราง

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

Complexity

OOAD : Object-Oriented Analysis and Design

ลกคา พนกงา

ผจดกา

ระบบ

ซอขาย

ระบบ

สนเชอ

ระบบ

ประกน

ระบบ

ฝาก-

ถอน

ระบบ

รายงาน

ระบบ

เครดตระบบ

สนเชอ

ซอบาน

ระบบ

สนเชอ

ซอรถ

ระบบ

สนเชอ

อนๆ

ระบบ

โอนเงน

ระบบ

โอนเงน

ใน

ประเทศระบบ

โอนเงน

ตางประเ

ทศ อนๆ กวา

รอย

ระบบ

ระบบ

บญช

ระบบ

การเงน

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

OOAD : Object-Oriented Analysis and Design

งาน

ใหม

OOAD : Object-Oriented Analysis and Design

รถยนต

รถสปอรต

4 ประต

มลอ

มเครองยนต

4 ประต

มลอ

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

เปดประทน

Inheritance

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

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

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

14

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

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

เชงวตถ

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

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

15

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

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

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

เชงวตถ

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

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

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

OOAD : Object-Oriented Analysis and Design

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

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

เชงวตถ

พนกงาน

ชอ รหส ทอย

เบอรโทร

แผนก

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

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

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

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 รปภ.

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 ได

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 salothon1@gmail.comsalothorn2@Hotmail.com

002 ชาลสา Male 0811

กทม D002 180

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

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

OOAD : Object-Oriented Analysis and Design

พนกงาน

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

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

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

Attribute และฟงกชน

Attribute

Function

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

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

}

OOAD : Object-Oriented Analysis and Design

PDT

ADT

Function / Method

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 เรยกใชได

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

ทางานรวมกน

OOAD : Object-Oriented Analysis and Design

คน รถยนต

ServerClient

driveสมชาย

สมหญ

ServerClient

ถามอาย

อาย 41

Message

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

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

ทางานรวมกน

OOAD : Object-Oriented Analysis and Design

ลกคาพนกงา

Server Client

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

สมชายสมหญ

Server Client

ถามอาย

อาย 41

Message

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

เสนอโปรโมชน

OOAD : Object-Oriented Analysis and Design

Attributes / Data MemberFunction/Behavior / Method Member

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

BaseHieght

setBased()calArea()t1.calArea()

T t1 = new T();

Object

class

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

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

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

OOAD : Object-Oriented Analysis and Design

class object

object

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

• วตถ (object)

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

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

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

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

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

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

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

?

ปากกา

• 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?

Functions/Behaviors/Methods/Actions

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

OOAD : Object-Oriented Analysis and Design

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

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

คณลกษณะ / attributes

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

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

OOAD : Object-Oriented Analysis and Design

หมก

ดาม

ฝาปากกา

ไส

ราคา

ยหอ

ปากกา

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

OOAD : Object-Oriented Analysis and Design

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

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

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

surfacesmartphone

mobile

• ทว

• ดนสอ

• รถยนต

• รถเมล

• รถไฟฟา

• รถไฟ

• คน

• แมว

• สนข

OOAD : Object-Oriented Analysis and Design

ดหนง ดละคร

จอแบบ จอนน

ปมกด

จอแบบ จอนน

ปมกด

จอ

ลาโพง

จอ

ลาโพง

ภาพ

เสยง

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

รโมท

ภาพ

เสยง

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

รโมท

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

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

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

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

• Function เขยนได

• 3.สธ รถยนต

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

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

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

Design

Identify Problem DomainOOAD : Object-Oriented Analysis and Design

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

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

Real World Computer World

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

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

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

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

Object/Class

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

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

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

คลาสเดยวกน

OOAD : Object-Oriented Analysis and Design

ส1

ส2

สามเหลยม

- มมมสามมม

สเหลยม

- มมมสมม

วงกลม

ไมมมม

สามเหลยม

- ฐ

- ส

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

- กวาง

- ยาว

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

รศม

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

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

OOAD : Object-Oriented Analysis and Design

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

Group of Objects

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

OOAD : Object-Oriented Analysis and Design

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

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

Defining Class

OOAD : Object-Oriented Analysis and Design

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

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

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

Class

Classes & InstancesOOAD : Object-Oriented Analysis and Design

Person

Tim Don

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

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

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

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

Classes & InstancesOOAD : Object-Oriented Analysis and Design

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

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

Message Passing (1) Message Passing

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

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

OOAD : Object-Oriented Analysis and Design

32

OOAD : Object-Oriented Analysis and Design

Tim

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

aCar

ขบรถ

Example of Message Passing (1)

33

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

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

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

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

OOAD : Object-Oriented Analysis and Design

34

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

Object-Oriented Software

OOAD : Object-Oriented Analysis and Design

m1

m2

m4m3

m5

Software

Environment

36

Characteristics of an Object

OOAD : Object-Oriented Analysis and Design

• Identity• Information Hiding • Encapsulation• Inheritance• Polymorphism

37

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

black box

Object

IncomingMessage Outgoing Message

39

OOAD : Object-Oriented Analysis and Design

นายดา

Example of Encapsulation

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

40

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

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

Advantages of Information Hiding and Encapsulation

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

43

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

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

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

OOAD : Object-Oriented Analysis and Design

Employee

Director Worker Driver

Superclass

Subclasses

44

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

Class Diagram

SHAPE

center

move

CIRCLE

radius

calculateArea

TRIANGLE

baseheight

calculateArea

SQUARE

side

calculateArea

45

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

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

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

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

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

top-down

OOAD : Object-Oriented Analysis and Design

47

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

generalization

Shape

Rectangle Circle Triangle

Sphere Cylinder

specialization

48

Multiple Inheritance

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

OOAD : Object-Oriented Analysis and Design

Person Employee

ManagingDirector

49

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

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

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

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

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

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

OOAD : Object-Oriented Analysis and Design

51

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

Advantages of Polymorphism

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

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

OOAD : Object-Oriented Analysis and Design

53

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

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

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

Recommended