การวิเคราะห์ซอฟต์แวร์ บทที่ 6 การวิเคราะห์ซอฟต์แวร์
วัตถุประสงค์ เพื่อทำความรู้จักกับการวิเคราะห์ซอฟต์แวร์ เพื่อศึกษาแบบจำลองความต้องการในรูปแบบต่าง ๆ
บทนำ การวิเคราะห์ซอฟต์แวร์ นักวิเคราะห์ระบบจะสร้างแบบจำลอง เพื่อให้ทีมนักพัฒนาซอฟต์แวร์มีความเข้าใจตรงกันกับลูกค้าหรือผู้ใช้ แบบจำลอง คือ สัญลักษณ์ที่ใช้จำลองข้อเท็จจริงต่าง ๆ ที่เกิดขึ้นในระบบ ประกอบด้วย แผนภาพต่าง ๆ แบบจำลองเป็นเครื่อง แบบจำลองสะท้อนให้เห็นถึงความต้องการระบบอย่างชัดเจนว่าทำหน้าที่อะไร
การวิเคราะห์ซอฟต์แวร์ จุดประสงค์หลักของการวิเคราะห์ซอฟต์แวร์ คือ เพื่อให้นักพัฒนาซอฟต์แวร์เข้าใจความต้องการของลูกค้าหรือผู้ใช้ตรงกัน และ เป็นพื้นฐานสำคัญสำหรับการออกแบบซอฟต์แวร์
แบบจำลองความต้องการ (Requirements Model) แบบจำลองการวิเคราะห์ (Analysis Model) คือ แบบจำลองที่เขียนขึ้นมาจากข้อกำหนดความต้องการซอฟต์แวร์หรือคำอธิบายระบบ สะท้อนให้เห็นถึงฟังก์ชันการทำงานของซอฟต์แวร์และจะนำไปสร้างแบบจำลองการออกแบบ
แบบจำลองความต้องการ (Requirements Model) ความสัมพันธ์ระหว่างคำอธิบายระบบ แบบจำลองการวิเคราะห์และแบบจำลองการออกแบบ System Description Analysis Model Design Model
แบบจำลองเชิงโครงสร้าง คือ แบบจำลองที่ใช้อธิบายข้อมูลและฟังก์ชันการทำงาน ประกอบด้วย แบบจำลองข้อมูล (Data Model) แบบจำลองกระบวนการ (Process Model)
แบบจำลองการวิเคราะห์เชิงวัตถุ (Object-Oriented Analysis Model) คือ การมองปัญหาในลักษณะโครงสร้างข้อมูลตามลำดับชั้น มุ่งเน้นการนิยมคลาส และการทำงานร่วมกันของคลาส Flow Model e.g., Data Flow Diagram Behavioral Model e.g., State Diagram Sequence Diagram Collaboration Diagram Data and Class Model e.g., ER Diagram Class Diagram Scenario-Based Model e.g., Use Case Diagram Activity Diagram Swimlane Diagram Software Requirement
แบบจำลองเชิงฉากบรรยาย Scenario-Based Model แผนภาพที่อธิบายฟังก์ชันและขั้นตอนการทำงานของซอฟต์แวร์ เช่น แผนภาพยูสเคส (Use Case Diagram) แผนภาพกิจกรรม (Activity Diagram) แผนภาพสวิมเลน (Swimlane Diagram)
แบบจำลองข้อมูล (Data Model) แบบจำลองที่ใช้สำหรับอธิบายข้อมูลและโดเมนของปัญหาเพื่อนำเสนอรายละเอียดเกี่ยวกับโครงสร้างและความสัมพันธ์ระหว่างข้อมูลให้อยู่ในรูปที่เป็นมาตรฐานแบบจำลองข้อมูล แบ่งเป็น 3 ส่วน วัตถุข้อมูล ลักษณะประจำ ความสัมพันธ์ระหว่างวัตถุข้อมูล
แบบจำลองคลาส (Class Model) เป็นแผนภาพที่อธิบายข้อมูลต่าง ๆ ประกอบด้วย ชื่อคลาส ลักษณะประจำ และการดำเนินการ (Operation) รวมถึงความสัมพันธ์ระหว่างคลาสต่าง ๆ ที่ประกอบขึ้นเป็นระบบ Class Name Attributes Operations Attributes Operations
ความสัมพันธ์ระหว่างคลาส 5 ประเภท ความสัมพันธ์แบบ Association ความสัมพันธ์แบบ Composition ความสัมพันธ์แบบ Aggregation ความสัมพันธ์แบบ Dependency ความสัมพันธ์แบบ Generalization
แบบจำลองการไหล แบ่งเป็น 2 ประเภท แผนภาพการไหลของข้อมูลเชิงตรรกะ (Logical DFD) ใช้แสดงกระบวนการของระบบในระดับแนวคิด (Conceptual Level) ไม่ลงลึกในรายละเอียดและไม่ใช้ศัพท์ทางเทคนิคมากนัก แผนภาพการไหลของข้อมูลเชิงตรรกะใช้ในขั้นตอนของการวิเคราะห์ความต้องการ แผนภาพการไหลของข้อมูลเชิงกายภาพ (Physical DFD) ใช้แสดงรายละเอียดภายในกระบวนการ ได้แก่ ชื่อกระบวนการ วิธีการทำงาน ต้นทางและปลายทาง แผนภาพการไหลของข้อมูลเชิงกายภาพใช้ในขั้นตอนของการออกแบบซอฟต์แวร์
สัญลักษณ์ของแผนภาพการไหลข้อมูล
ตัวอย่างการไหลของข้อมูลนำเข้าและข้อมูลส่งออก
แผนภาพการไหลของข้อมูลระดับ 0 หรือ แผนภาพบริบท (Context Diagram)
แบบจำลองพฤติกรรม (Behavioral Model) แผนภาพที่แสดงให้เห็นถึงกิจกรรมและพฤติกรรมของระบบที่มีการเปลี่ยนแปลง เมื่อมีเหตุการณ์เกิดขึ้น รวมทั้งแสดงให้เห็นความสามารถของระบบที่ดำเนินการในบางหน้าที่ได้ แผนภาพสถานะ แผนภาพลำดับ แผนภาพ Collaboration
แผนภาพสถานะ (State Diagram) State Name State Variables State Activities Initial State Event Trigger/Action State Name State Variables State Activities Initial State Self Transition Final State
แผนภาพลำดับ (Sequence Diagram) แสดงลำดับการทำงานของระบบ โดยมีออบเจ็กต์และเวลาเป็นตัวกำหนดลำดับก่อนหลังของงาน
แผนภาพ Collaboration แสดงลำดับการทำงานของวัตถุ ผู้เกี่ยวข้อง และกิจกรรม โดยลำดับการทำงานไม่ขึ้นกับเวลา แต่สามารถแสดงลำดับก่อนหลังได้ รวมทั้งแสดงความสัมพันธ์ระหว่างแอกเตอร์หรือออบเจ็กต์ ซึ่งสามารถส่งข่าวสารระหว่างออบเจ็กต์ต่าง ๆ ได้
แผนภาพ Collaboration แอกเตอร์ (Actor) เป็นผู้กำหนดสถานะเริ่มต้นการทำงาน ออบเจ็กต์หรือคลาส (Object: Class) เป็นการระบุชื่อออบเจ็กต์หรือชื่อคลาส ข่าวสาร (Message) เป็นข้อมูลที่ใช้สื่อสารระหว่างออบเจ็กต์หรือคลาส Association เป็นการแสดงความสัมพันธ์ระหว่างออบเจ็กต์หรือคลาส
แผนภาพ Collaboration สำหรับฟังก์ชันการสั่งซื้อสินค้า
คำถามท้ายบท การวิเคราะห์ซอฟต์แวร์คืออะไร และมีความสำคัญอย่างไร อธิบายความแตกต่างระหว่างแบบจำลองข้อมูลและแบบจำลองกระบวนการ แผนภาพยูสเคสคืออะไร สำคัญอย่างไร แบบจำลองข้อมูลคืออะไร และมีความสำคัญอย่างไร