Lecture 2 แก้ไขปัญหาด้วย OOP (Solving problems using OOP in Java)
Object-Oriented Software Engineering OOSE คือ การพัฒนาระบบคอมพิวเตอร์ด้วยหลักการ Object Orientation ประกอบด้วย 3 ขั้นตอนใหญ่คือ Object-Oriented Analysis : OOA Object-Oriented Design : OOD Object-Oriented Implementation หรือ Object-Oriented Programming : OOP
Object-Oriented Analysis : OOA เป็นขั้นตอนการวิเคราะห์เพื่อให้ทราบว่า Problem Domain คืออะไร เพื่อทำความเข้าใจในรายละเอียดของปัญหาเหล่านั้น เป็นการหาคำตอบให้กับคำถามWhat is the problem to be solved ?
Object-Oriented Design : OOD เป็นขั้นตอนการออกแบบหรือจำลอง (Model) วิธีการเพื่อแก้ปัญหาใน Problem Domain เป็นการหาคำตอบให้กับคำถาม How to solve the problem?
Object-Oriented Programming : OOP เป็นขั้นตอนการสร้างหนทางแก้ปัญหาในรายละเอียดให้เกิดขึ้นและใช้งานได้จริง เป็นการหาคำตอบให้กับคำถาม How to implement the solution?
หลักการ ก่อนการเขียนโปรแกรมควรออกแบบให้ดีก่อน Analysis Design Implement Test Maintain
การพัฒนาโปรแกรมแบบที่ไม่ออกแบบ วางแผนคร่าวๆ เขียนโปรแกรม เมื่อเขียนไปเรื่อยๆเกิด Spaghetti เมื่อจะพัฒนาเพิ่มเติม ทำได้ยาก เพราะหาจุดเพิ่มไม่พบ เมื่อจะซ่อมแซมทำได้ยาก ออกแบบในแบบ Homogeneous (รวมเป็นก้อนเดียว) Spaghetti
การพัฒนาโปรแกรมแบบใหม่ ออกแบบแยกเป็นส่วนๆ Modularization แก้ไขง่าย รู้จุด เพิ่มเติมง่าย
โปรแกรมแบบ Procedural และ OOP Procedural -> ดั้งเดิม , C, Pascal OOP -> แบบใหม่ , C++, Java Procedural เขียนโปรแกรมโดยยึด “ขั้นตอน” เป็นหลัก การแก้ไขทำได้ยาก ? printf scanf sum printf
การเขียนโปรแกรมแบบ OOP ใช้ Object ให้ทำงานให้เรา แก้ไขได้ง่าย print getVal Cooperative (ร่วมมือ) sum
OOD ต้องรู้อะไรบ้าง Object Class Generalization Decompose Inheritance Polymorphism Analysis etc.
Problem Domain Problem Domain คือขอบเขตของการพัฒนาโปรแกรม ก่อนการพัฒนาจะต้องรู้ขอบเขตก่อน คำกล่าว “คงไม่ต้องวาดรูปป่าทั้งป่า หากเราสนใจแค่ต้นไม้เพียงต้นเดียว” Universe Problem Domain
Object สิ่งที่สามารถจำแนกตัวตนได้ (Identification) ตัวอย่าง จับต้องได้ จับต้องไม่ได้ ตัวอย่าง คอมพิวเตอร์หมายเลข 234FH7 นายสมชาย ใจดี รหัสประจำตัว 3489934 สุนัขชื่อ จิ๋ว ที่บ้านเลขที่ 33/6 นนทบุรี ตัวตรวจจับเหตุการณ์ในเกม Sim2
แบบฝึกหัด 2.1 กำหนดสถานที่ดังนี้ ให้น.ศ. ลองหา Object ให้มากที่สุด (ทั้งจับต้องได้และไม่ได้) ห้อง คอมพิวเตอร์ U302
องค์ประกอบของ Object Object ทุกอันมีองค์ประกอบดังนี้ ตัวอย่าง คุณสมบัติ (Attributes) การกระทำ (Methods) ตัวอย่าง นายสมชาย สูง, ขาว, หนัก 60 ก.ก., (att.) เดิน , นั่ง, วิ่ง (method) ฮาร์ดดิสก์ ความเร็ว, ความจุ, ยี่ห้อ (att.) หมุน,อ่านข้อมูล, เขียนข้อมูล (method)
แบบฝึกหัด 2.2 จากวัตถุต่อไปนี้ จงหา Attributes และ Methods ของมัน CD ROM แก้วน้ำ ลิปสติก หมอก กล่องเครื่องมือช่าง
ปัญหาที่เกิดขึ้น ขอบเขตของ Object ไม่ชัดเจน Object ไม่ใช่ Atomic ดังนั้น จะต้องแยกแยะให้ดี (สิ่งนี้ไม่ใช่ Error เช่น Java Applet ก็เป็นลักษณะของ Container ที่บรรจุ Object อื่นๆอยู่ภายใน) object object
ความสัมพันธ์ระหว่าง Object ตัวอย่าง สมชายส่งของให้สมควร CD-ROM ส่งข้อมูลไปให้ RAM บัญชีธนาคารถูกถอนเงิน เราใช้หลักการของการเรียก Method ของ Object ตัวอื่น Account Customer Call method Deposit
แบบฝึกหัด 2.3 ให้ น.ศ. ลองเลือกระบบของบางสิ่ง 1 ระบบ แล้ววาดเป็น Object และ มีการเรียก Method ของ Object ต่างๆ เช่น การทำงานของคอมพิวเตอร์ ระบบงานในสำนักงาน ระบบการทำงานของร่างกาย ระบบการเงิน ระบบการทำงานของสิ่งมีชีวิต
Thank you……