More Related Content
More from TaiMe Sakdisri (20)
Unit02
- 1. วัตถุประสงค
เพื่อใหนักศึกษาสามารถ
อธิบายความหมายของระบบเชิงวัตถุได
อธิบายหลักการเชิงวัตถุได
แยกแยะความแตกตางของหลักการเชิงวัตถุได
หนวยที่ 2: อธิบายความหมายของการวิเคราะหและออกแบบเชิง
แนวคิดเชิงวัตถุ วัตถุได
ระบุรายชื่อแผนภาพยูเอ็มแอลแบบได
(Object-Orientation)
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 1 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 2
แนวคิดเชิงวัตถุ
(Object-Orientation) การจําลองระบบในเชิงวัตถุ
แนวคิดเชิงวัตถุเปนเทคนิคในการจําลองระบบ
ของจริง
ระบบถูกจําลองในรูปของกลุมอ็อบเจกตที่
ปฏิสมพันธกน
ั ั บาน
ประโยชน ทิชา
รถยนต
เขาใจงาย - ลดชองวางระหวางระบบจริงและระบบที่
จําลองโดยคอมพิวเตอร อาศัยอยูใน
ขับ
งายตอการแกไข - เพราะขอมูลและการทํางานอยู บาน รถยนต
ภายในอ็อบเจกต แบบจําลอง
ทิชา
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 3 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 4
1
- 2. หลักการเชิงวัตถุ
ภาพตัวอยางของระบบเชิงวัตถุ
(Object-Oriented Principles)
Customer Order 563 Chair 213 อ็อบเจกต (Object)
Mary
คลาส (Class)
add new order
Customer
add to
order แอบสแตร็กชัน (Abstraction)
Button
Bill
create ความสัมพันธ (Association)
add to
get text Order 143 order เอ็นแค็ปซุเลชัน (Encapsulation) และ
Text Box Lamp 453
การซอนรายละเอียด (Information Hiding)
display
Order 721 การสืบทอดคุณสมบัติ (Inheritance)
Label Chair 654 โพลีมอรฟซึม (Polymorphism)
Customer
Joe
Lamp 856
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 5 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 6
อ็อบเจกต (Object) คลาส (Class)
อ็อบเจกต คือสรางขึ้นมาเพื่อเปนตัวแทนของสิ่งตางๆ ในส คลาส คือ ตนแบบ หรือแมพมพ (template)
ิ
ถาวะจริงของระบบในโลกของซอฟตแวร สําหรับสรางอ็อบเจกต
อ็อบเจกต มี คลาส เปนขอกําหนดลักษณะรวมกันของอ็อบเจกต
สถานะ (state) = ขอมูล (data) ที่อธิบายตัวอ็อบเจกต ประเภทเดียวกัน
พฤติกรรม (behavior) = การกระทําที่ตัวอ็อบเจกตแสดงได
คลาสกําหนดโครงสรางของอ็อบเจกต
อ็อบเจกต สามารถจดจําสถานะได
แอททริบวเก็บสถานะของอ็อบเจกต
ิ
แอททริบิว (attribute) คือขอมูลแตละดานของ
อ็อบเจกต โอเปอรเรชันสําหรับพฤติกรรมของอ็อบเจกต
โอเปอรเรชัน (operation) คือการกระทํา (action) แตละ อินสแตนซ (instance) คือ อ็อบเจกตที่สรางจาก
อยางที่อ็อบเจกตแสดงได คลาส
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 7 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 8
2
- 3. อ็อบเจกต และ แอบสแตร็ก
คลาส และ อ็อบเจกต
ชัน
คลาสกําหนดโครงสรางของกลุมอ็อบเจกตประเภท แอบสแตร็กชัน (abstraction)
เดียวกัน หมายถึง การจํากัดรายละเอียด
เปนกระบวนการในการละเวนรายละเอียดที่ไมเกี่ยวของ
อ็อบเจกตของคลาสเดียวกันมีลักษณะโครงสราง
และ เนนรายละเอียดที่จําเปน
ภายในเหมือนกัน แตจะขอมูลที่เก็บจะตางกันขึ้นอยู
กับสถานะของอ็อบเจกตแตละตัว ซึ่งถูกกําหนด อ็อบเจกต เปนแอบสแตรกชันของสิ่งตางๆ ที่สราง
ผานโอเปอรชันของอ็อบเจกต ขึ้นไวในระบบคอมพิวเตอร
อ็อบเจกต แตละตัวจะมีไอเด็นทิตี้ (identity) ไมซา
้ํ อ็อบเจกตแตละตัวจะมีพฤติกรรมและขอมูลของ
กัน สิ่งทีมันเปนตัวแทน และมีเฉพาะดานทีเกี่ยวของกับ
่ ่
ระบบเทานั้น
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 9 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 10
ตัวอยางของแอบสแตร็กชัน ความสัมพันธ (Association)
แสดงความเกี่ยวของระหวางอ็อบเจกตของคลาส
หนึ่งกับอีกคลาสหนึ่ง
เชน พนักงานมีความสัมพันธกับ
ผูจัดการ
งาน
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 11 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 12
3
- 4. เมสเสจ (Message) เมสเสจ (ตอ)
เมสเสจ คือขอมูลที่สงไปยังอ็อบเจกตเพื่อสั่งให การสงเมสเสจ = การเรียกใชโอเปอรชันของ
ทํางาน อ็อบเจกตอื่น
อ็อบเจกตแตละคลาสจะรับผิดชอบงานตางกันไป
ระบบเชิงวัตถุทํางานโดยอาศัยการปฏิสัมพันธ
ระหวางอ็อบเจกต หมายถึงการที่อ็อบเจกตสง
เมสเสจไปถึงกัน
โดยอ็อบเจกตที่ไดรบเมสเสจจะทํางานตามที่ไดรบ
ั ั
การรองขอ โดยการเรียกโอเปอรชันที่ตรงกับที่
เมสเสจสงมาทํางาน
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 13 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 14
เอ็นแคปซุเลชัน การซอนรายละเอียด
(Encapsulation) (Information Hiding)
หมายถึง การรวมกันของขอมูลและกระบวนการ หมายถึงการเปดเผยเฉพาะขอมูลที่จําเปนตอการใช
ทํางานไวในอ็อบเจกต ซอฟตแวรโมดูล (software module) เทานั้น
แยกระหวางกลไกการทํางานภายใน กับการเรียกใช
ทําใหออบเจกตสมบูรณในตัวเอง (self-
็
งานจากภายนอก
contained)
เอ็นแคปซุเลชัน ทําใหสามารถใชการซอน
ทําใหเกิดสภาพเปนสวนจําเพาะ (modularity) รายละเอียดในระดับของอ็อบเจกตได
เนื่องจากขอมูลและการกระทําทีเกียวของถูกเก็บ
่ ่ ทําใหอ็อบเจกตสามารถใชงานไดแบบ black box ซึ่ง
ไวในที่เดียว ไมกระจายไปทัวระบบ
่ ผูใชสามารถใชไดโดยไมรูโครงสรางภายใน
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 15 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 16
4
- 5. การสืบทอดคุณสมบัติ
การสืบทอดคุณสมบัติ (ตอ)
(Inheritance)
เปนวิธีการในการออกแบบสิ่งสองสิ่งหรือมากกวาที่ คุณสมบัติสามารถสืบทอดตอลงไปไดหลายลําดับชั้น
ตางกัน แตมีลักษณะบางอยางเหมือนกัน เนื่องจาก ซับคลาสสามารถเปนซุปเปอรคลาสของคลาส
โดยกําหนดลักษณะสวนที่เหมือนกันไวใน ซูเปอรคลาส อื่น
(superclass) หนึ่งคลาส แลวกําหนดใหคลาสอื่นๆ
เรียกวา ซับคลาส (subclasses) มารับนี้ลักษณะสืบทอด กอใหเกิดลําดับชั้นการสืบทอดคุณสมบัติ (inheritance
ตอไปเปนของตัวเอง hierarchy) หรือ ลําดับชั้นความสัมพันธแบบเจน
หมายความวา ซับคลาสมีแอททริบิวและโอเปอรชันที่ เนอรัลไลเซชัน (generalization hierarchy)
รับมาจากซุปเปอรคลาส
ความสัมพันธระหวางซับคลาสกับซูเปอรคลาสที่ติดกัน
เรียก generalization
ซับคลาสเรียกวา specialization
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 17 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 18
ตัวอยางลําดับชั้นการสืบทอด โพลีมอรฟซึม
คุณสมบัติ (Polymorphism)
แปลวาหลายรูปแบบ
ยานยนต ในเชิงวัตถุหมายถึงการทีอ็อบเจกตตางคลาสกัน
่
ทํางานตอบสนองตอเมสเสจทีเหมือนกันในรูปแบบ
่
ที่แตกตางกันอยางเหมาะสม
จักรยานยนต รถบรรทุก รถยนต
ทําใหสามารถใชงานอ็อบเจกตโดยไมตองทราบ
คลาสของอ็อบเจกต
รถยนตสวนบุคคล รถยนตโดยสาร
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 19 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 20
5
- 6. การพัฒนาซอฟตแวรเชิงวัตถุ การวิเคราะหเชิงวัตถุ
เนน 3 กิจกรรมหลัก OOA: object-oriented analysis
การวิเคราะหเชิงวัตถุ (object-oriented analysis) กระบวนการในการทําความเขาใจกับระบบ
การออกแบบเชิงวัตถุ (object-oriented design) พิจารณาขอมูลและพฤติกรรมของระบบรวมกันในรูป
การเขียนโปรแกรมเชิงวัตถุ (object-oriented กลุมของอ็อบเจกต
programming)
กิจกรรม
สรางแบบจําลองความตองการ (requirement model)
สรางแบบจําลองการวิเคราะห (analysis model)
ระบุอ็อบเจกตที่เกี่ยวของในระบบ ความสัมพันธของอ็อบเจกต
และการปฏิสัมพันธระหวางอ็อบเจกต
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 21 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 22
การออกแบบเชิงวัตถุ
ประโยชนของหลักการเชิงวัตถุ
OOD: object-oriented design หลักการ ประโยชน
กระบวนการในการกําหนดรูปแบบของระบบ คลาส ทําใหมมมองในการพัฒนา
ุ
กิจกรรม อ็อบเจกต ซอฟตแวรสอดคลองกับธรรมชาติ
สรางแบบจําลองการออกแบบ (design model) โอเปอรชัน และ อ็อบเจกตที่ใชซ้ําได
ปรับรูปแบบทีไดจากการวิเคราะหใหเหมาะกับสภาพแวดลอม
่ เมสเสจ
ของระบบ และขอกําหนดในดานตางๆ
เอ็นแคปซุเลชัน อ็อบเจกตที่ใชซ้ําได
และการซอน ชวยลดผลกระทบจากการ
รายละเอียด เปลี่ยนแปลง
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 23 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 24
6
- 7. ประโยชนของหลักการเชิงวัตถุ ยูเอ็มแอล (UML)
หลักการ ประโยชน
UML – Unified Modeling Language
การสืบทอด ลดความซ้าซอน
ํ
เปนภาษาภาพในการนําเสนอแนวคิดที่จาเปนใน
ํ
คุณสมบัติ ลดระยะเวลาในการสรางคลาสใหม การพัฒนาระบบเชิงวัตถุ
ชวยใหเกิดมาตรฐานและความ ผูพัฒนา
ตรงกันในโปรแกรม Grady Booch
โพลีมอรฟซม ชวยลดความซับซอนในการเขียน
ึ Ivar Jacobson
โปรแกรมเกียวกับเหตุการณ
่ James Rumbaugh
ชวยลดผลกระทบจากการ
เปลี่ยนแปลง
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 25 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 26
ยูเอ็มแอล (ตอ) ประเภทของแผนภาพยูเอ็มแอล
แผนภาพยูเอ็มแอล (UML diagram) มี มี 13 ประเภท
องคประกอบ 4 สวน แบงเปน 3 กลุม
สัญรูป (Icon)
Structure diagrams
สัญลักษณสองมิติ
แสดงโครงสรางของระบบ
เสนเชื่อม (paths)
Behavior diagrams
ขอความ
แสดงพฤติกรรมทัวไป
่
ขอกําหนดของยูเอ็มแอลกําหนดทั้งกฎเกณฑ Interaction diagrams
สําหรับโครงสรางและความหมายของ แสดงการปฏิสัมพันธของ
องคประกอบ
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 27 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 28
7
- 8. แผนภาพโครงสราง (Structure แผนภาพพฤติกรรม (Behavior
Diagrams) Diagrams)
คลาสไดอะแกรม (class diagram) ยูสเคสไดอะแกรม (use case diagram)
แสดงความสัมพันธระหวางคลาส
อ็อบเจกตไดอะแกรม (object diagram) แสดงความตองการในการใชงานระบบ ในเชิงการ
แสดงความสัมพันธระหวางอ็อบเจกต ปฏิสัมพันธระหวางระบบรับสิ่งแวดลอม
คอมโพเนนตไดอะแกรม (component diagram)
แสดงความสัมพันธเชิงกายภาพระหวาง components ของซอฟตแวร
แอคทิวิตี้ไดอะแกรม (activity diagram)
คอมโพซิทไดอะแกรม (composite structure diagram) แสดงการไหลของการทํางาน (workflow)
แสดงโครงสรางภายในของคลาส
แพ็คเกจไดอะแกรม (package diagram)
สเตทแมชีน ไดอะแกรม (state machine
แสดงการรวมกลุมของ UML element เปนโครงสรางระดับสูงขึ้น diagram)
ดีพลอยเมนตไดอะแกรม (deployment diagram) แสดงพฤติกรรมการเปลี่ยนสถานะของอ็อบเจ็คของ
แสดงสถาปตยกรรมเชิงกายภาพและองคประกอบ (components) ของ
ซอฟตแวรของระบบ คลาส
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 29 OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 30
แผนภาพการปฏิสัมพันธ
(Interaction Diagrams)
ซีเคว็นไดอะแกรม ( Sequence diagram)
แสดงพฤติกรรมการทํางานของกลุมอ็อบเจกตในยูสเคสเรียงลําดับ
ตามเวลา
คอมมิวนิเคชันไดอะแกรม ( Communication diagram)
แสดงพฤติกรรมการทํางานของกลุมอ็อบเจกตในยูสเคส ในรูปการ
สื่อสารระหวางอ็อบเจกต
ไทมิงไดอะแกรม ( Timing diagram)
แสดงการปฏิสัมพันธระหวางกลุมอ็อบเจกตและเปลี่ยนแปลง
สถานะของอ็อบเจกตตามแกนเวลา
อินเตอรแรคชันโอเวอรวิวไดอะแกรม ( Interaction
overview diagram)
แสดงการไหลของการควบคุมโพรเซส
OOAD 1/2551 ภาคปกติ ดร.สุขสถิต มีสถิตย 31
8