200 likes | 529 Views
Chapter 7 หลักการและ Diagrams ที่ใช้ใน Object Oriented Analysis. จุดประสงค์ 1. เพื่อให้นักศึกษามีความเข้าใจเบื้องต้นเกี่ยวกับ วงจรการพัฒนาระบบงาน คอมพิวเตอร์ (System Development Life Cycle) 2. เพื่อปูพื้นฐานความรู้สำหรับการทำ Object-Oriented Analysis (OOA).
E N D
Chapter 7 หลักการและ Diagrams ที่ใช้ใน Object Oriented Analysis
จุดประสงค์ 1. เพื่อให้นักศึกษามีความเข้าใจเบื้องต้นเกี่ยวกับ วงจรการพัฒนาระบบงาน คอมพิวเตอร์ (System Development Life Cycle) 2. เพื่อปูพื้นฐานความรู้สำหรับการทำ Object-Oriented Analysis (OOA)
7.1 วงรอบการพัฒนาระบบงานคอมพิวเตอร์ (System Development Life Cycle - SDLC) จากบทที่ผ่านมา ได้รู้จักกับการให้ Concept กับ Real-World Objects และ Abstractions แบบต่างๆ มาแล้ว ซึ่งถือเป็นแก่นของ Object Orientation ในบทนี้ จะกล่าวถึงการนำเอาหลักการต่างๆ มาใช้ให้เกิดประโยชน์ต่อการพัฒนาระบบงานในคอมพิวเตอร์ ซึ่งการพัฒนาระบบงานคอมพิวเตอร์นั้นสามารถแบ่งออกเป็นขั้นตอน (Phase) ใหญ่ๆ ได้ดังนี้
หมายถึง การวิเคราะห์ปัญหา หรือ Problem Domain (หรือบางทีอาจใช้คำว่า Requirement Analysis ซึ่งในทาง Object Oriented Analysis คำว่า Requirements จะหมายถึง Problem Domain Analysis หมายถึง การออกแบบเพื่อหาแนวทาง (Solutions) หรือ แบบแผน (Blue Print) เพื่อการแก้ไขปัญหาโดยคอมพิวเตอร์ แต่อย่างไรก็ตามสิ่งที่เกิดขึ้นจากขั้นตอนนี้ ก็ยังไม่ได้เกิดขึ้นจริงหรือมีตัวตนขึ้นจริงในคอมพิวเตอร์ Design หมายถึง การทำให้หนทางการแก้ปัญหา (Solutions) ที่ได้จากขั้นตอน Design เกิดขึ้นจริงหรือมีตัวตนขึ้นจริงในคอมพิวเตอร์ และที่สำคัญต้องสามารถที่จะใช้งานได้จริงด้วย Implementation
ในบางครั้งการวิเคราะห์และออกแบบระบบงานทางคอมพิวเตอร์นั้น มีความใกล้เคียงกันมาก จนบางครั้งผู้วิเคราะห์และออกแบบระบบอาจทำงานใน 2 ส่วนนี้ เกือบจะคู่ขนานกันไป หรือในบางครั้งผู้วิเคราะห์และออกแบบระบบอาจจะเกิดความสับสนก็ได้ว่า สิ่งที่ตนทำอยู่นั้นเรียกว่าการวิเคราะห์ หรือออกแบบกันแน่ แต่ด้วย OOAD จะช่วยให้ผู้วิเคราะห์และออกแบบระบบแยกความแตกต่างระหว่าง 2 ส่วนนี้ได้ชัดเจนยิ่งขึ้น
ข้อแตกต่างระหว่าง OOAD กับการวิเคราะห์และออกแบบระบบในแบบเดิมๆ ซึ่งเรียกว่า System Analysis and Design (SA&D) ก็คือ SA&D จะใช้กิจกรรมของระบบ (Functional Approach) หรือการประมวลผล (Processing Approach) เป็นวัตถุดิบหลักในการวิเคราะห์และออกแบบ ในขณะที่วัตถุดิบของ OOAD คือ Object ที่มีทั้ง Attributes และ Functions ตารางต่อไปนี้จะเป็นตารางเปรียบเทียบในมุมมองต่างๆ ของ SA&D และ OOAD
รูปแบบหรือแนวคิด (Methodology) ในการพัฒนาระบบงานในคอมพิวเตอร์ เรียกว่า Process Model หรือ Development Model ซึ่งหมายถึง แนวทางในการนำเอาขั้นตอนต่างๆ ของการพัฒนาระบบงานมาใช้ต่อเนื่องกันเพื่อให้เกิดระบบงานที่มีประสิทธิภาพ Process Model มีด้วยกันหลายแนวคิด ได้แก่ Waterfall Process Model Adapted Waterfall Process Model Evolutionary Process Model Incremental Process Model Spiral Process Model etc.
7.2 หลักการและเครื่องมือที่ใช้ใน Object Oriented Analysis หลักการที่ใช้ใน Object-Oriented Analysis คือ Abstraction ชนิดต่างๆ เพื่อการพิจารณาหา Object Class ความสัมพันธ์ และกิจกรรมของ Object แต่ละตัวใน Problem Domain ที่เรากำหนด เครื่องมือที่ใช้ใน Object-Oriented Analysis คือ แผนภาพ หรือ Diagram ต่างๆ โดย Diagram ใน Object-Oriented Analysis and Design นั้น แบ่งออกเป็น 2 ประเภทคือ Static Object-Oriented Diagram (เรียกย่อๆ ว่า Static Diagram) และ Dynamic Object-Oriented Diagram (เรียกย่อๆ ว่า Dynamic Diagram) Diagram ที่ใช้ในการนี้ ใช้เพื่อการสื่อแนวคิดหรือสื่อถึงการให้ Concept กับ Object ต่างๆ Diagram จะช่วยถ่ายทอดแนวคิดดังกล่าวออกมาเป็นภาพที่เรา และผู้อื่นสามารถเข้าใจได้ และเพื่อใช้เป็นภาพที่เราจะใช้ต่อไปได้ในขั้นตอน Object-Oriented Design ด้วย
Static Diagram คือ Diagram ที่แสดงภาพในเชิงสถิต (Static) ของ Problem Domain นั่นคือ การแสดงการมีอยู่ของ Class ต่างๆ และความสัมพันธ์ของ Class เหล่านั้น ในระบบ โดยไม่แสดงถึงกิจกรรมที่เกิดขึ้นแต่อย่างใด ซึ่ง Static Diagram ที่ใช้สำหรับ Object-Oriented Analysis ในที่นี้ได้แก่ Use Case Diagram Class Diagram
Use Case Diagram ซึ่งแสดงถึงส่วนประกอบต่างๆ ของ Problem Domain และความสัมพันธ์ของส่วนประกอบต่างๆ เหล่านั้น ซึ่งจะเรียกส่วนประกอบเหล่านั้นว่า Use Case ซึ่งเปรียบเสมือนเป็น Class หนึ่ง Class เช่นกัน รายละเอียดของ Use Case Diagram จะอธิบายในบทต่อไป Class Diagram เป็น Diagram ที่แสดงถึง Class ที่มีทั้งหมดใน Problem Domain หรือ Use Case หนึ่งๆ โดยแต่ละ Class จะมีความสัมพันธ์ในเชิง Abstraction (Aggregation, Generalization, Association) กับ Class อื่นๆ อย่างน้อย 1 ความสัมพันธ์เสมอ ซึ่งจะกล่าวถึง Class Diagram ในบทต่อไป
Dynamic Diagram คือ Diagram ที่แสดงภาพในเชิงกิจกรรม (Dynamic) ของ Problem Domain นั่นคือการแสดงถึงสิ่งที่เกิดขึ้นจากกิจกรรมของ Class ต่างๆ ที่มีใน Problem Domain (ซึ่งแสดงโดย Class Diagram) จนทำให้เกิดเป็นกิจกรรมของ Problem Domain ที่ใช้เพื่อ Object-Oriented Analysis มีอยู่ด้วยกัน 2 Diagram คือ Sequence Diagram State Diagram
Sequence Diagram เป็น Diagram ที่แสดงถึงกิจกรรมรวมของระบบ โดยกิจกรรมดังกล่าวนั้นเกิดจากการเรียกใช้งาน Function ที่มีอยู่ใน Class ต่างๆ นั่นเอง จะกล่าวเกี่ยวกับ Sequence Diagram ในบทต่อไป State Diagram เป็น Diagram ที่แสดงถึงกิจกรรมในภาพที่เจาะจงลงไปที่ Function ต่างๆ ของ Class แต่ละตัว State Diagram จะอธิบายว่าในแต่ละ Function ของ Class หนึ่งๆ นั้นจะทำให้ Class มีสถานะ (State) ใดบ้าง และจะเปลี่ยนสถานะของ Class ได้เมื่อใดและอย่างไร จะอธิบาย State Diagram ในบทต่อไป
การวัดว่าการวิเคราะห์ระบบคอมพิวเตอร์ด้วย Object-Oriented Analysis (OOA) นั้นมีประสิทธิภาพ หรือสัมฤทธิ์ผลเพียงใดนั้น คือการวัดว่า Diagram ต่างๆ ที่ได้จากขั้นตอนนี้ สามารถเล่าเรื่องราวของ Problem Domain ทั้งในเชิง Static และ Dynamic ได้ครอบคลุมและชัดเจนเพียงใด ในขณะเดียวกันก็ต้องวัดว่า Diagram ที่ได้สามารถสื่อความได้ง่ายหรือยาก ใช้คำอธิบายเพิ่มเติมมากน้อยเพียงใด ประสิทธิภาพที่กล่าวมาทั้งหมดมีความจำเป็นอย่างยิ่ง เพราะในบางครั้งผู้วิเคราะห์ ผู้ออกแบบ และผู้พัฒนาอาจจะเป็นคนละกลุ่มกัน (เป็นไปได้มากในโครงการใหญ่ๆ) หาก Diagram ที่ได้ไม่ครอบคลุม เข้าใจยาก และไม่ชัดเจน ผู้ที่นำเอา Diagram ไปใช้ ย่อมเกิดปัญหาแน่นอน
ด้วยเครื่องมือที่มี จะเห็นว่า สามารถจำลอง (Model)Problem Domain หรือเล่าเรื่องราวที่มีใน Problem Domain ได้ และด้วยสิ่งที่ได้จากขั้นตอนนี้เองจะเป็นวัตถุดิบเพื่อนำมาใช้ในการออกแบบ เพื่อแก้ปัญหาใน Problem Domain ด้วย Computer ได้ต่อไป
คำถามท้ายบท 1. จงพิจารณาว่าจะต้องใช้ Diagram จึงจะเหมาะสมในการ แสดงภาพที่กล่าวไว้ในข้อความต่อไปนี้ ก. การพิจารณาว่าในระบบของโรงงานแห่งหนึ่งมีระบบย่อยอะไรบ้าง ข. การพิจารณามีกิจกรรมอะไรที่น่าจะเกิดขึ้นบ้างในการจองตั๋วล่วงหน้า เพื่อชมภาพยนตร์ ค. ใน Function ของ Class หนึ่งจะมีกิจกรรมโดยละเอียดอย่างไร ง. ในแต่ละ Use Case จะมี Class ใดอยู่บ้าง