Please enable JavaScript.
Coggle requires JavaScript to display documents.
การวิเคราะห์และออกแบบระบบเชิงวัตถุ, 6232040026 นางสาวสุดารัตน์ พงศ์ภา -…
การวิเคราะห์และออกแบบระบบเชิงวัตถุ
บทที่ 1 Object Orientation
Object Orientation คืออะไร ?
• ในชีวิตประจำวัน เราเห็นวัตถุ (Object) อยู่รอบตัว ทั้งที่จับต้องได้และไม่สามารถจับต้องได้
• พบว่ากิจกรรมต่าง ๆ ที่เกิดขึ้นในชีวิตประจำวัน เกิดจากการมีความสัมพันธ์ (Relationship) และการมีปฏิสัมพันธ์ (Interaction) ระหว่าง Object 2 ตัวขึ้นไป
• Interaction คือ ปฏิสัมพันธ์หรือการกระทำใด ๆ ที่เกิดขึ้นระหว่าง Object 2 ตัวขึ้นไป เช่น การสร้าง การเล่น เป็นต้น เป็นตัวที่ทำให้เกิดกิจกรรม (Activities) ต่าง ๆ ในโลกนี้
• Relationship คือ ความเกี่ยวข้องกันหรือความสัมพันธ์ระหว่าง Object 2 ตัวขึ้นไป เช่น เป็นแม่-ลูก ความเป็นเจ้าของ เป็นต้น
• Domain คือ การให้กรอบของสิ่งที่เราต้องการพิจารณาหรือสนใจ (เพราะเราไม่สามารถสนใจทุก ๆ วัตถุในเวลาเดียวกัน)
• Object Orientation คือ Object แปลว่า วัตถุ (จับต้องได้และจับต้องไม่ได้) Orient แปลว่า นำทางไป ดังนั้น หมายถึงการใช้ Object เป็นตัวหลักเพื่อการพิจารณาความจริงต่าง ๆที่เกิดขึ้นในโลก
• Object Oriented Analysis and Design : OOAD หมายถึงการนำ Object Orientation มาใช้เป็นแนวคิดและบรรทัดฐานในการวิเคราะห์และออกแบบระบบคอมพิวเตอร์
บทที่ 2 Abstractions
Class (เรียกอีกอย่างว่า Abstract Data Type) หมายถึง กลุ่มของ objects ที่มีความเหมือนหรือคล้ายคลึงกันในแง่ใดแง่หนึ่ง หรือในหลาย ๆ แง่ โดยสิ่งที่ใช้ในการกำหนดความเหมือนหรือคล้ายคลึงก็คือ concept นั่นเอง เราสามารถบอกได้ว่า object ใน class เดียวกัน ล้วนแต่มี concept เดียวกัน โดยขึ้นอยู่กับ domain ที่เรากำหนด
หมายถึง กระบวนการในการให้ concept กับ object ต่าง ๆ ใน real world เพื่อสร้าง class แบ่งออกเป็น 4 กระบวนการย่อย ๆ คือ
Classification Abstraction
Aggregation Abstraction
Generalization Abstraction
Association Abstraction
บทที่ 3 Abstraction
การกำหนด Problem Domain
• คือ การกำหนดขอบเขตของสิ่งที่กำลังจะพิจารณา กำหนดได้จากการสอบถามความต้องการ (Requirement) จากผู้ใช้ระบบงานนั้น ๆ
• Problem Domain ที่แน่ชัดมักจะยังไม่สามารถหาได้ในตอนต้นของการเริ่มวิเคราะห์ระบบ แต่การกำหนดโครงใหญ่ หรือภาพรวมของ Problem Domain ต้องแน่ชัด
การค้นหา Object ใน Problem Domain
• คำนาม ถือเป็นตัวบ่งชี้ที่ดีในการหา object ใน problem domain แต่อย่างไรก็ตาม คำนามบางคำอาจจะกลายเป็น attribute ของ object ก็ได้เช่นเดียวกัน ดังนั้นสิ่งที่ดีที่สุดในการทำงานในกระบวนการนี้ ก็คือ หาคำนามทั้งหมดที่มีใน problem domain แล้วจึงมาแยกแยกภายหลังว่าสิ่งใดคือ object หรือสิ่งใดคือ attribute ของ object
Classification Abstraction
• เป็นกระบวนการในการหาว่ามี object ใดบ้างใน problem domain และ object แต่ละตัวนั้นอยู่ใน class ใด
• การสร้าง class จาก object ด้วยการให้ concept กับสิ่งนั้น ๆ นั่นคือ การตอบคำถามว่า object ตัวใดตัวหนึ่งนั้นเป็นสมาชิก (…is member of…) ของกลุ่ม object หรือ class ใด
• แสดงด้วย สัญลักษณ์ ลูกศรเส้นประที่ลากจาก object ไปยัง class
Encapsulation
• แปลจากรากศัพท์ หมายถึง ทำให้อยู่ในแคปซูล
• เปรียบเสมือนการเอาเปลือก (ในทางนามธรรม) มาครอบ attribute และ function ของ class เอาไว้ โดยเปลือกบางส่วนจะเป็นเปลือก ใส ซึ่งสามารถมองเห็นจากภายนอก (เรียกว่า Outside view) แต่เปลือกบางส่วนเป็นเปลือกทึบ ทำให้ไม่สามารถมองเห็นได้จากภายนอกนั่นเอง
ประเภทของ Attribute และ Function
ไม่สามารถมองเห็นจากภายนอก เข้าถึงผ่าน attribute ที่ class ไม่สามารถถูกเรียกใช้โดยตรงจากภายนอก เช่น อายุ
• Protected Attribute and Function (เครื่องหมาย #)ไม่สามารถมองเห็นจากภายนอก สามารถส่งต่อให้ Inherited Classเท่านั้น เช่น การสืบทอดพันธุกรรม นามสกุล
บทที่ 4 Aggregation Abstraction
• Aggregate หมายถึง รวม นั่นคือ พิจารณาว่ามี class ใดเป็นส่วนประกอบ (is part of) ของ class อื่นหรือไม่ และที่สำคัญ “การประกอบกันของ class ต้องทำให้เกิด class ใหม่ ซึ่งมี concept ใหม่เสมอ”
• สัญลักษณ์ คือลูกศรซึ่งมีหัวลูกศรเป็นสี่เหลี่ยมขนมเปียกปูนจาก class ย่อยไปยัง class หลัก
• class หลาย ๆ class ที่มี concept แตกต่างกัน เมื่อนำมารวมกัน (Compose) ก็สามารถที่จะสร้าง class ใหม่ ซึ่งมี concept ใหม่ได้
• ในขณะเดียวกัน Class บาง class สามารถแยกหรือแบ่ง (Decompose) ออกเป็น class ย่อย ๆ ได้ และแต่ละ class ย่อย ๆ นั้น มี concept ที่แตกต่างกันออกไปได้หลาย ๆ class ได้เช่นกัน
Cardinality, Required Component, Optional Component
• Cardinality เป็นสิ่งที่ใช้ในการแสดงจำนวนความสัมพันธ์ (Relationship) ระหว่าง class หลักและ class ย่อย หรือหมายถึง จำนวนของสมาชิกในเซ็ตในทาง Object Orientation เรียก class ย่อย ว่า Component
• Required Component หรือ Mandatory Component หมายถึง ส่วนประกอบที่จำเป็นต้องมี
• Optional Component หมายถึง ส่วนประกอบที่ไม่จำเป็นต้องมีก็ได้
บทที่ 5 Generalization Abstraction
Generalization และ Specialization
• เป็น Abstraction ที่อธิบายความสัมพันธ์แบบ “จำแนกเป็น” is kind of
• Generalization Abstraction คือการที่สามารถพิจารณา หรือละเลยคุณสมบัติพิเศษที่มีอยู่ใน class ต่าง ๆ เพื่อให้เกิด concept ใหม่ หรือ class ใหม่ ซึ่งมี concept เปลี่ยนไปจากเดิม
• Generalize คือการให้ concept กับ class ใด class หนึ่งโดยละเลยหรือตัดคุณสมบัติพิเศษบางอย่างออกไป เพื่อทำให้ class ดังกล่าวมีลักษณะเป็นสามัญ (General)
• Specialize คือ การให้ concept ใหม่กับ class ใด class หนึ่งที่มีอยู่แล้ว โดยพิจารณาหรือเพิ่มเติมคุณสมบัติใหม่ ๆ ให้กับ class นั้นมีลักษณะพิเศษ (Special) เพิ่มขึ้นกว่าเดิม
Inheritance จาก Generalization Abs.
• Inherit หมายถึง การถ่ายทอด เช่น การถ่ายทอดทางพันธุกรรม
• Superclass คือ Class เดิม หรือ Seed Class (Class เมล็ดพันธุ์) หรือ Class เริ่มต้น นั่นเอง
• Subclass คือ class ที่เกิดจากการทำ Specialization (การเพิ่มคุณสมบัติ)
• Inheritance คือ กระบวนการ Specialization
• Subclass ที่ Inherit มาจาก Superclass นั้น จะต้องมีคุณสมบัติทุกอย่างของ Superclass (จะขาดคุณสมบัติ ซึ่งก็คือ attribute หรือ function ใดของ Superclass ไม่ได้) ผนวกกับคุณสมบัติพิเศษที่เพิ่มเข้าไปในแต่ละ Subclass เสมอ
• สัญลักษณ์ เป็นรูปลูกศรมีหัวลูกศรเป็นรูปสามเหลี่ยมใส ชี้จาก Subclass ไป Superclass
กฎเกณฑ์ของการทำ Inheritance
• Private Attribute/Function จะถ่ายทอดมาเป็น Private และไม่สามารถเข้าถึง attribute และ function ของ subclass โดยผ่าน Function ที่มีอยู่ใน subclass และไม่ได้มาจากการ Inherit
• Protect Attribute/Function ถ่ายทอดเป็น Protect สามารถเข้าถึง attribute และ function ของ subclass โดยผ่าน function ของ subclass นั้น โดยไม่ต้องสนใจว่า Function นั้นมาจากการ Inherit หรือไม่Public Attribute/Function จะถ่ายทอดเป็น Public เท่านั้น
• ใน Subclass ให้เขียนเฉพาะ Attribute และ function ที่ไม่ซ้ำกับ Superclass เท่านั้น
บทที่ 6 Association Abstraction
Relationship
• เป็นการแสดงความสัมพันธ์ของ class ที่อยู่ในระดับเดียวกัน 2 ชนิด ขึ้นไป (…is related to…)
• ความสัมพันธ์ที่เห็นบ่อย ๆ เช่น เป็นเจ้าของ มี รัก อยู่ใน ใส่ บริหาร
• ความสัมพันธ์แบบ Aggregation Abstraction เป็นความสัมพันธ์แบบ is relate to ได้เช่นกัน เพราะการเป็นส่วนประกอบ หรือการมีส่วนประกอบ ก็คือการเป็นเจ้าของนั่นเอง
• Cardinality หมายถึง จำนวนสมาชิกใน set ในที่นี้ หมายถึง ตัวเลขที่ใช้แสดงจำนวนของสมาชิกที่สามารถมีได้ใน class หนึ่ง ๆ ที่มีส่วนร่วมใน Association
บทที่ 7 Use Case Diagram
• ใช้ในการเล่าเรื่องของ Problem Domain ทั้งหมดว่า มีส่วนประกอบอะไรบ้าง และเกี่ยวพันกันจนกลายเป็นระบบได้อย่างไร
• การเขียน Use Case Diagram จะช่วยให้ผู้พัฒนาระบบสามารถแยกแยะได้ว่าจะมีกิจกรรมอะไรที่น่าจะเกิดขึ้นในระบบบ้าง
• ถือเป็น Diagram ที่เป็นพื้นฐาน ซึ่งมีขีดความสามารถในการอธิบายสิ่งต่าง ๆ ด้วยรูปภาพที่ไม่ซับซ้อน ผู้เขียน Diagram ไม่จำเป็นต้องมีความรู้ทางคอมพิวเตอร์อย่างลึกซึ้ง
• การทำงานของระบบใด ๆ สามารถจำลองได้โดยการแบ่งระบบใหญ่ทั้งระบบนั้นออกเป็นระบบย่อย ๆ (Subsystem) ซึ่งแต่ละระบบย่อยนั้น ต่างก็มีความสัมพันธ์ต่อกัน ในขณะเดียวกัน ระบบย่อย ๆ ดังกล่าวบางระบบก็มีความสัมพันธ์กับผู้ใช้งาน (User) ในรูปแบบที่ User เป็นผู้ใช้งาน Subsystem นั้นโดยตรง
• สัญลักษณ์ Extend คือ เส้นประพร้อมหัวลูกศร จาก Use Case ที่ Extend ไปยัง Use Case ที่ถูก Extends และมีคำว่า << extend>> กำกับบนเส้นลูกศร
บทที่ 8 Class Diagram
หลักในการสร้าง Class Diagram
กำหนดกรอบของ Problem Domain ให้ชัดเจน
พิจารณาหา Objects ที่สามารถจับต้องได้ เห็นได้ สัมผัสได้ เรียกว่า Tangible
ใช้ Classification Abstraction เพื่อแยกแยะและสร้าง Class จาก Object ที่มีอยู่
พิจารณาหา Objects ที่ไม่สามารถจับต้องได้
6232040026 นางสาวสุดารัตน์ พงศ์ภา