Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Lec01Overview of Object-Oriented Technology
Basic Concepts of Object-Orientation Object-Oriented Software Development
ByDr. Nattapong Songneamhttp://www.siam2dev.com
[email protected]@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://[email protected]@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 หรอ แผนธรกจ ของ บ. กลม
• ภาย ใน ศกร 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 ได
• 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
ใน หลกการเชงวตถ จะมองพนกงานเปน 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