Object Oriented Analysis And Design

Download Report

Transcript Object Oriented Analysis And Design

8311302 การวิเคราะห์และออกแบบเชิงวัตถุ
Introduction to Object-Oriented
Systems Analysis and Design
1
Department of Informatics
Faculty of Science and Technology
Phuket Rajabhat University
1/2553
หัวข้อที่จะกล่าวถึง
• Introduction to Systems Analysis and
Design
• Introduction to Object-Oriented Systems
Analysis and Design
2
Introduction to Systems Analysis and Design
Information System Development Models (ISD Models)
• มีแนวทางในการพัฒนาระบบหลากหลายแนวทาง แต่ไม่วา่ จะเป็ นทางใด
ก็ใช้วงจรการพัฒนาระบบ (System Development Life Cycle: SDLC)
ในการวิเคราะห์และออกแบบ
• SDLC
พัฒ นาขึ้ น บนรากฐานของการแก้ปั ญ หาเชิ ง วิ ท ยาศาสตร์
(Scientific Management) มี 7 ขั้นตอน
3
Adapted Waterfall SDLC
1. ค้นหาและเลือกสรรโครงการ
1
2
2. เริ่ มต้นและวางแผนโครงการ
3. วิเคราะห์ระบบ
3
4
5. ออกแบบเชิงกายภาพ
4. ออกแบบเชิงตรรกะ
5
6
6. พัฒนาและติดตั้งระบบ
4
7
7. ซ่อมบารุ งระบบ
วงจรการพัฒนาระบบ (SDLC)
• วงจรการพัฒนาระบบ คือ กระบวนการทางความคิด (Logical Process) ใน
การพัฒ นาระบบสารสนเทศ เพื่ อ แก้ปั ญ หาทางธุ ร กิ จ และตอบสนองความ
ต้องการของผูใ้ ช้ได้ โดยภายในวงจรนั้นจะแบ่งกระบวนการพัฒนาออกเป็ น
ระยะ (Phase) ประเภทของวงจรการพัฒนาระบบในรู ปแบบต่าง ๆ มีดงั นี้
–
–
–
–
–
5
Waterfall SDLC
Adapted Waterfall SDLC
Evolutionary SDLC
Incremental SDLC
Spiral SDLC
Waterfall SDLC
Feasibility Study
1
System Investigation
2
3
System Analysis
4
ใช้ในการพัฒนาระบบที่ตายตัวอยูแ่ ล้ว
ทั้งนี้เพราะไม่สามารถกลับมาแก้ไข ข้อผิดพลาดได้
6
System Design
5
Review and
Maintenance
Implementation
6
Adapted Waterfall SDLC
1
Project Identification
And Selection
2
Project Initiating
And Planning
3
Analysis
4
ปรับปรุ งมาจาก Waterfall SDLC
ให้สามารถกลับมาแก้ไขข้อผิดพลาดใน
แต่ละ Phase ได้
Logical Design
Physical Design
5
Implementation
6
Maintenance
7
7
Evolutionary SDLC
Analysis
Analysis
Design
Implementation
Product 1
Analysis
Design
Design
Implementation
Implementation
Product 2
Product 3
ระบบพัฒนาขึ้นจากข้อดี – ข้อเสี ยที่พบของ แต่ละรอบของการพัฒนา
8
Incremental SDLC
Analysis
Analysis
Analysis
Design
Design
Design
Implementation
Implementation
Implementation
Part 3
Part 1
Part 2
Part 1
9
Part 2
Part 1
Spiral SDLC
ออกแบบ
สร้างต้นแบบรอบที่ 4
1
0
สร้างต้นแบบรอบที่ 2
สร้างต้นแบบรอบที่ 1
Plan first iteration
วางแผน
ทดสอบและประเมินผล
วิเคราะห์ และออกแบบระบบ
สร้างต้นแบบรอบที่ 3
แนวทางปฏิบตั ิ (Methodologies)
• Methodology คือ วิธีการหรื อแนวทางที่จะนากระบวนการทาง
ความคิดของวงจรการพัฒนาระบบสารสนเทศทาปฏิบตั ิจริ ง จน
กลายเป็ นระบบสารสนเทศที่สามาระใช้งานได้ สิ่ งจาเป็ นสาหรับ
Methodology ได้แก่
– แบบจาลอง (Model)
– เครื่ องมือในการพัฒนาระบบ (Tools)
– เทคนิค (Techniques)
1
1
ตัวอย่างของ Methodology
• Structured System Analysis and Design Methodology
(SSADM)
– เหมาะกับการทางานที่มีรูปแบบการทางานที่เป็ นขั้นตอน *
• Rapid Application Development-based Methodology
(RAD)
– เหมาะกับงานที่ตอ้ งการความรวดเร็ ว ใช้ CASE และ JAD
• Object-Oriented Analysis and Design Methodology
– เหมาะกับงานออกแบบที่อา้ งอิงกับ Process-Centered Approach*
1
2
หลักการในการพัฒนาระบบ
•
•
•
•
•
•
•
•
1
3
คานึงถึงเจ้าของระบบและผูใ้ ช้ระบบ
พยายามเข้าถึงปัญหาให้ตรงจุด
กาหนดขั้นตอนหรื อกิจกรรมในการทางาน
กาหนดมาตรฐานในระหว่างการพัฒนาระบบและจัดทาเอกสารประกอบ
ในทุกขั้นตอน
การพัฒนาระบบคือการลงทุน
เตรี ยมความพร้อมหากแผนงานหรื อโครงการต้องถูกยกเลิกหรื อต้อง
ทบทวนใหม่
แตกระบบใหญ่ให้เป็ นระบบย่อย
ออกแบบระบบเพื่อรองรับการเติบโตและการเปลี่ยนแปลงในอนาคต
Introduction to Object-Oriented
Systems Analysis and Design
Object Oriented คืออะไร?
Object คือหน่วยสนใจของระบบที่ทาให้เกิดเหตุการณ์บางอย่าง
สาหรับออบเจ็กต์ในโลกของเทคโนโลยีเชิงวัตถุ จะเน้นที่ตวั ปฏิบตั ิการมากกว่าการปฏิบตั ิ
Click (Icon MS-Word)
Window
MS-Word
Object
Object แบ่งได้ 2 ประเภท คือ สิ่ งที่เป็ นรู ปธรรม และนามธรรม
-สิ่ งที่มีลกั ษณะเป็ นรู ปธรรม (จับต้องได้) เช่น จักรยาน รถ สุ นขั องค์กร ใบรายการสิ นค้า เป็ น
ต้น
-สิ่ งที่มีลกั ษณะเป็ นนามธรรม (จับต้องไม่ได้) เช่น ความเป็ นเจ้าของ เที่ยวบิน การวิง่ แสง
เป็ นต้น
Object จะประกอบด้วย 2 ส่ วนปฎิบตั ิการคือ Attribute และ Method โดย Attribute เรี ยกอีก
อย่างว่า Data และ Method เรี ยกอีกอย่างว่า Behavior
Object
Object Data : จะเป็ นส่ วนข้อมูลลับของ Object ที่จะทราบเฉพาะภายใน Object เท่านั้น เช่น
Object คน จะมี attribute คือ หมายเลขบัตรประชาชน, วันเกิด, เพศ, ที่อยู่ เป็ นต้น
Object สุ นขั จะมี attribute คือ ชื่อ, สี , พันธุ์, เป็ นต้น
Object จักรยาน จะมี attribute คือ gear, คันเร่ ง, ล้อ เป็ นต้น
ฉะนั้นจะเห็นคาว่า Attribute และ Data มีความหมายใกล้เคียงกัน เช่นถ้า สี
Attribute คือ สี
Data คือ แดง, ดา, เขียว เป็ นต้น
Object
Object Behavior : สิ่ งที่ Object นั้นๆ สามารถทาได้ ในทาง Procedural language จะเรี ยก
behavior เป็ น procedure, function หรื อ subroutine ส่ วนในทาง o-o programming จะเรี ยก
behavior เป็ น method เช่น
Object คน จะมี methods คือ การเดิน, ยืน, มีรถ เป็ นต้น
Object สุ นขั จะมี methods คือ การเห่า, การหายใจ, การกระดิกหาง เป็ นต้น
Object จักรยาน จะมี methods คือ การเบรค, การเร่ ง, การชลอ เป็ นต้น
ฉะนั้นจะเห็นคาว่า method และ behavior มีความหมายเหมือนกัน
Object
Object แปลว่าวัตถุท้ งั ที่จบั ต้องได้ และจับต้องไม่ได้
Orientation ซึ่ งมาจากคาว่า Orient แปลว่า นาทาง นาไป
Object Orientation หมายถึง การใช้ Object เป็ นตัวหลักเพื่อการพิจารณาความเป็ นจริ งต่างๆ
ที่เกิดขึ้นในโลก
การสื่ อสารระหว่าง Object ดังรู ป
Attribute
Attribute
Message
Method
Sender
Return Value
Method
Receiver
Class
Object ทุกตัวจะต้องอยูใ่ น class ซึ่ ง class กับ object เป็ นสิ่ งที่คู่กนั เสมอ สามารถทราบ
รายละเอียดและคุณสมบัติ ของ Object ได้ดว้ ยการดูที่ Class
Class คือ กลุ่มของ Object ที่มีโครงสร้างพื้นฐานพฤติกรรมเดียวกัน นัน่ คือ class คือต้นแบบ
ข้อมูลที่มีไว้เพื่อสร้าง object นัน่ เอง ฉะนั้นก่อนที่จะทาการสร้าง object จะต้องสร้าง class
ขึ้นมาก่อน ดังรู ป
Object 1
Template
Class
Object 2
Object 3
Class
Class นอกจากจะมีชื่อ Class ที่บอกคุณสมบัติของ Class นั้น ยังมี Attribute และ Operation
ต่างๆ ซึ่ งเป็ นตัวอธิ บายรายละเอียด และหน้าที่ต่างๆ โดยแสดงในลักษณะ Template ดังนี้
Name
Attributes
Opertaions
Resposibilities
Class
ตัวอย่าง Class ของ Student
Student
{abstract}
StudentIDNumber
FirstName
LastName
Address
City
State
RegisterForCourse
DropCourse
ChangeAddress
Encapsulation(Protection)
Encapsulation : คือรากฐานอย่างหนึ่งของแนวคิดในเชิง Object-Oriented ซึ่ งข้อดีของ
Encapsulation คือการป้ องกัน Attribute ของ Object จากความเสี ยหาย
Encapsulation คือการห่อหุ ม้ Attribute และ Methods เข้าไว้ดว้ ยกัน
Encapsulation จะทาหน้าที่ป้องกันมิให้ Object อื่นที่อยูภ่ ายนอก เข้าถึง Object หนึ่งๆ ได้
อย่างอิสระจะมีเฉพาะ Methods ที่อยูใ่ น Object เท่านั้นจะสามารถติดต่อกับ Attribute ที่อยูใ่ น
Object เดียวกันได้
Inheritance การสื บทอดคุณสมบัติ
Inheritance : คือ คุณสมบัติที่ Class ๆ หนึ่งสามารถสื บลักษณะของ Attribute และ Method
ของอีก Class หนึ่งได้การทาเช่นนี้ทาให้คุณสามารถ Create Class ใหม่ข้ ึนโดยนาสาระสาคัญ
ที่เหมือนกันของ Attribute และ Behavior (Method) จาก Class อื่นมาใช้ได้
Animal
Cat
Dog
Person
การสื บทอดคุณสมบัติ (Inheritance)
การสื บทอดคุณสมบัติ (Inheritance) มีข้อดีดงั นี้
1. ทาให้ มีโครงสร้ างทีเ่ ป็ นระบบ ระเบียบ ปรับเปลีย่ นได้ ง่าย
2. ลดเวลาในการพัฒนาระบบ
3. ลดค่ าใช้ จ่ายในการพัฒนา
การสื บทอดโดยอาศัยคุณสมบัติของออบเจ็กต์ที่มีอยูแ่ ล้วใส่ ลงในออบเจ็กต์ตวั
ใหม่ หลักของการสื บทอดคุณสมบัติเป็ นลาดับชั้น จะทาให้ความสัมพันธ์ระหว่าง
ออบเจ็กต์มีความชัดเจนยิง่ ขึ้น
โพลิมอร์ ฟิสซึม (Polymorphism)
หมายถึง การบอกแบบเดียว แต่ได้รับการตอบสนองหลายรู ปแบบ
(Poly = “many”, morph = “form”) ซึ่ งเป็ นไปตามหลักการของ
เทคโนโลยีเชิงวัตถุ เช่น ฟังก์ชนั การวาด DrawChart( )
DrawChart( )
2a:=cal()
PaySlip
2b:=cal()
2c:=cal()
:HourlyPaidEmployee
:WeeklyPaidEmployee
:MonthlyPaidEmployee
Composition
Composition คือ Object ที่ไม่ได้เป็ น Object หน่วยย่อยที่สุด หรื อเป็ น Object ที่
ประกอบขึ้นจาก Object อื่นหลายๆ Object อยูภ่ ายใน เช่น
Object Computer ประกอบไปด้วย Object video card, object keyboards, object drive,
object power supply เป็ นต้น
ข้ อดีของ Composition มีดงั นี้
1. ทาให้ระบบมีความซับซ้อนน้อยที่สุด
2. Composition มีส่วนช่วยในการ reuse
3. การแบ่งระบบออกเป็ นส่ วนการทางานย่อยๆนั้น ส่ วนต่างๆ จะสามารถทางานได้
เป็ นอิสระต่อกันส่ งผลให้การทดสอบและปรับปรุ งแก้ไขแต่ละส่ วนสามารถทาได้
อย่างอิสระ
Composition
ชนิดของ Composition สามารถแบ่ งออกได้ เป็ น 2 ประเภทดังนี้
1. Aggregation
2. Association
Aggregation : การนาส่ วนประกอบย่อยๆ หลายๆอย่างมาประกอบเป็ นหนึ่ ง Object ที่
สามารถใช้งานได้อย่างสมบูรณ์ ถ้าขาดส่ วนหนึ่งส่ วนใดจะเกิดการผิดพลาดได้
Association : จะแสดงส่ วนของ Object ทั้งหมดที่เป็ นอิสระต่อกัน ที่มีการทางานไม่
ขึ้นกับส่ วนของ Object อื่นๆ
Composition
ความเหมือนและต่ างกันระหว่ าง Association และ Aggregation
ความเหมือนระหว่ าง Association และ Aggregation :
แต่ละส่ วนจะได้รับการสร้างเป็ น Object ทาให้ง่ายในการ reuse
จะมีการทางานของแต่ละ Object เป็ นลักษณะเฉพาะที่สามารถปรับเปลี่ยน หรื อแก้ไข
โครงสร้างภายใน Object นั้นได้โดยสะดวก ไม่กระทบต่อการทางานของ Object อื่น
ความแตกต่ างกันระหว่ าง Association และ Aggregation :
ความสัมพันธ์ระหว่าง Object ส่ วนของ Aggregation นั้นวัตถุแต่ละชิ้นจะทาโดยพึ่งพาอาศัยกัน
ซึ่งถ้าวัตถุชิ้นใดขาดหายไปจะทาให้การทางานทั้งหมดกระทบกระเทือนไปด้วย
ส่ วนของ Association วัตถุแต่ละส่ วนจะทางานในแบบขอบริ การซึ่งกันและกัน ดังนั้นถ้าขาด
วัตถุชิ้นใด อาจทาให้ไม่สมบูรณ์แต่ไม่ถึงกับการทางานทั้งหมดหยุดชะงัก
ซึ่งจะเลือกวิธีใดขึ้นอยูก่ บั ระบบที่จะทาการออกแบบและการวิเคราะห์ของการออกแบบวิธีใด
เหมาะสมมากกว่ากัน
แบบฝึ กหัด
• ให้แยกแยะว่าสิ่ งต่อไปนี้ คือ Class สิ่ งใด คือ Object
• หนังสื อ ชุดว่ายน้ า คอมพิวเตอร์คอมแพ็ค รถยนต์ยหี่ อ้
Toyota
• แว่นตา นาย ก ดินสอสี ดาที่อยูใ่ นกระเป๋ าของเด็กชาย ข
แบบฝึ กหัด
• จากสถานการณ์ต่อไปนี้ ให้แยกแยะว่ามี Object อะไรบ้าง
และ Function ที่ Object แต่ละตัวต้องมีคืออะไร
1.
2.
3.
4.
นาย ง อ่านหนังสื อการ์ ตนู ขายหัวเราะ
นาย ป ชวนนางสาว ข เต้นรา
นาย ช ถอนเงินจากตู้ ATM ธนาคารทหารไทย
นาย ต เติมน้ ามันให้กบั รถยนต์ยหี่ อ้ Nisson
แบบฝึ กหัด
1. ถ้ า นั ก ศึ ก ษาเป็ นนั ก วิ เ คราะห์ ระบบแล้ ว เมื่ อ ต้ อ งการ
ออกแบบที่มกี ารคานวณด้ วยสู ตร (-b+ b2-4ac)/2a
คือสู ตรคณิตศาสตร์ หารากที่สองของเลขจานวนจริงเมื่อ
ต้ องการนามาสร้ างเป็ นโปรแกรมในการหารากที่สองจะ
เลือกใช้ วิธีใดระหว่ างAggregation หรื อ Association
เพราะเหตุใดจึงเลือกวิธีดังกล่ าว
2. แนวความคิดการพัฒนาระบบงานเชิ งโครงสร้ างและวัถตุ
มีความแตกต่ างกันอย่ างไร