ที่ใช้ใน Object-Oriented Design Chapter 12 หลักการและ Diagram ที่ใช้ใน Object-Oriented Design
จุดประสงค์ 1. เพื่อปูพื้นฐานความเข้าใจเกี่ยวกับการทำ Object-Oriented Design (OOD) 2. เพื่อให้นักศึกษาได้ทำความเข้าใจเบื้องต้นเกี่ยวกับ วิธีการ และเครื่องมือในการทำ Object-Oriented Design (OOD)
12.1 จาก OOA สู่ OOD การวิเคราะห์ คือ การหาว่าปัญหาที่เราต้องการแก้ไขนั้นคืออะไร (What is the problem to be solved?) หากแต่ว่าเพียงแค่รู้ว่าปัญหาที่ต้องการแก้ไขคืออะไรนั้นคงไม่พอเพียง เราจำเป็นที่จะต้องหาหนทางแก้ไขปัญหาหรือตอบคำถามให้ได้ว่า ปัญหานั้นจะถูกแก้ไขได้ด้วยวิธีใด (How to solve the problem?) ซึ่งในทาง Object Oriented Analysis and Design (OOAD) เรียกขั้นตอนนี้ว่า Object-Oriented Design (OOD)
เนื่องจากว่า ปัญหาหรือระบบที่เราสนใจนั้น จะถูกแก้ไขในเครื่องคอมพิวเตอร์ ดังนั้นหนทางแก้ไขปัญหาก็ย่อมถูกทำขึ้นเพื่อให้สามารถนำไปใช้งานในคอมพิวเตอร์ได้จริงๆ ซึ่ง ณ จุดนี้ทำให้เกิดข้อแตกต่างระหว่าง OOA กับ OOD ขึ้น เพราะในขั้นตอน OOA นั้น ไม่ได้คำนึงถึงเครื่องคอมพิวเตอร์เลย เพียงแต่วิเคราะห์หรือค้นหาปัญหาที่มีอยู่เท่านั้น แต่สิ่งที่ต้องทำใน OOD คือการนำเอาผลลัพธ์ที่ได้จาก OOA (Diagrams ต่างๆ) นั้นมาปรับปรุง (Refine) เพื่อให้สามารถนำมาใช้ในเครื่องคอมพิวเตอร์ได้ง่ายขึ้น และเพิ่มเติม Diagrams อื่นๆ เพื่อจำลองและอธิบายภาพของแนวทางการแก้ปัญหาในคอมพิวเตอร์
Object-Oriented Design จะประกอบด้วย 4 ขั้นตอน คือ 1. การปรับปรุง Diagram ต่างๆ ที่ได้จาก Object-Oriented Analysis ให้ดีขึ้น มีประสิทธิภาพมากยิ่งขึ้น เรียกขั้นตอนนี้ว่าการทำ Refinement 2. การออกแบบโครงสร้างของ Software หรือ Application Architecture Design 3. การออกแบบโครงสร้างของ Hardware หรือ System Architecture Design 4. การออกแบบฐานข้อมูล หรือ Persistent Data Design
12.2 Refinement Refinement (Refine = กรอง, ทำให้สะอาด, ทำให้ชัดขึ้น) คือการปรับปรุง Diagrams ต่างๆ ที่ได้จากขั้นตอน Object-Oriented Analysis (OOA) ให้ละเอียดขึ้น สื่อความได้ดีขึ้น มีส่วนที่เกี่ยวข้องกับการแก้ไขปัญหาด้วยคอมพิวเตอร์เพิ่มขึ้น และสามารถนำไปเป็นต้นแบบในการพัฒนาระบบงานให้เกิดขึ้นจริงๆ ในเครื่องคอมพิวเตอร์ได้ การทำ Refinement ทำได้กับทุกๆ Diagram ที่สร้างขึ้นจาก OOA ไม่ว่าจะเป็น Use Case Diagram, Class Diagram, Sequence Diagram และ State Diagram
12.3 Application Architecture Design Application Architecture Design คือหลักการในการออกแบบ Software หรือ Application ที่จะสร้างขึ้นในคอมพิวเตอร์ โดย Diagram ที่จะใช้เพื่อการนี้เรียกว่า Component diagram ข้อดีของการใช้ Component Diagram คือ ด้วย Component Diagram เราจะสามารถแบ่งระบบงานทั้งหมดออกเป็น Components หรือ modules ย่อยๆ ซึ่งจะทำให้สามารถพัฒนางานในแต่ละ Component ได้โดยอิสระ และสามารแบ่งงานให้แต่ละคนทำได้โดยไม่ยุ่งยากแก่หัวหน้าโครงการ
12.4 System Architecture Design ข้อดีของ OOAD คือ สามารถออกแบบ Hardware พร้อมๆ กับการออกแบบ Software และส่วนประกอบอื่นๆ ได้ ซึ่งการออกแบบระบบในส่วนของ Hardware ของระบบคอมพิวเตอร์ จะทำในช่วงของ System Architecture Design Diagram ที่ใช้ใน System Architecture Design เรียกว่า Deployment Diagram การใช้งาน Deployment Diagram นั้นจะมีประโยชน์ต่อการออกแบบระบบหลายประการ เช่น ช่วยให้สามารถระบุได้ว่าจะใช้ Hardware ประเภทใด เพื่อการพัฒนาระบบในแต่ละส่วน จะใช้หลักการสื่อสารข้อมูลแบบใด (LAN, Internet) ในการส่งผ่านหรือสื่อสารข้อมูล หรือรูปแบบของ Hardware (Platform) โดยรวม ในการพัฒนาระบบจะเป็นแบบใด จะใช้การเชื่อมต่อระบบคอมพิวเตอร์อย่างไร หรือแม้แต่ระบบจัดการฐานข้อมูล (Database Management System-DBMS) ที่จะใช้ควรเป็นตัวใด เป็นต้น
อย่างไรก็ตามการทำ System Architecture Design นั้นต้องสอดคล้องกับ Application Architecture Design เนื่องจากการปรับแก้ในขั้นตอนใดขั้นตอนหนึ่ง มักจะมีผลกระทบกับอีกขั้นตอนหนึ่งเสมอ 12.5 Persistent Data Design Persistent Data Design หรือเรียกอีกอย่างหนึ่งว่า Conceptual Database Design คือหลักการในการออกแบบ Database เพื่อใช้จัดเก็บข้อมูลต่างๆ (ซึ่งส่วนใหญ่ก็คือ Attributes ของ Class ต่างๆ ในระบบนั่นเอง) ไว้ในฐานข้อมูล (Database) ใน OOD ไม่มี Diagram ใดที่ใช้เพื่อการนี้โดยเฉพาะ แต่มีเครื่องมือหลายตัวที่มีประสิทธิภาพดีอยู่แล้ว เช่น E-R Diagram ซึ่งใช้เพื่อการออกแบบ Relational Database เป็นต้น