บทที่ 2 การพัฒนาระบบสารสนเทศ Information System Development
วัตถุประสงค์ อธิบายขั้นตอนการพัฒนาระบบได้ อธิบายวิธีการนำวิศวกรรมซอฟต์แวร์มาปรับปรุงคุณภาพการพัฒนาระบบได้ บอกข้อดีข้อจำกัดของกลยุทธ์ในการพัฒนาระบบแต่ละวิธีได้
วงจรการพัฒนาระบบ (System Development Life Cycle : SDLC) การวางแผนโครงการ (Planning) การวิเคราะห์ระบบ (Analysis) การออกแบบระบบ (Design) การพัฒนาระบบ (Implementation) การบำรุงรักษาระบบ (Maintenance)
การวางแผนโครงการ (Project Planning Phase) เป็นขั้นตอนในการพิจารณาว่าเหตุใดต้องสร้างระบบงานใหม่ (Project Initiate) และทำการศึกษาปัญหา และหาแนวทางในการแก้ปัญหา โดยศึกษาถึงความคุ้มค่าต่อการลงทุน และความเป็นไปได้ด้านต่าง ๆ แล้วจึงเลือกหนทางในการแก้ปัญหา และวางแผนการดำเนินโครงการ สรุปกิจกรรมในขั้นตอนการวางแผนโครงการ กำหนดปัญหา (Problem definition) ศึกษาความเป็นไปได้ของโครงการ (Feasibility analysis) จัดทำตารางกำหนดเวลาโครงการ (Project scheduling) จัดตั้งทีมงานโครงการ (Staff the project) ดำเนินโครงการ (Launch the project)
การวิเคราะห์ระบบ (Analysis Phase) เป็นการศึกษาให้เข้าใจถึงระบบงานปัจจุบัน และนำมาพัฒนาเป็นระบบงานใหม่ โดยเก็บรวบรวมความต้องการ (Requirement Gathering) ของผู้ใช้ระบบ เช่นจากการสังเกต สัมภาษณ์ แบบสอบถาม เอกสารการปฏิบัติงาน ระเบียบข้อบังคับ แล้วสรุปเป็นข้อกำหนดของระบบ (Requirement Specification) จากนั้นนำมาพัฒนาเป็นระบบใหม่ โดยแสดงแบบจำลองกระบวนการทำงาน (Process Model) และแบบจำลองข้อมูล (Data Model)
กิจกรรมในขั้นตอนการวิเคราะห์ระบบ รวบรวมความต้องการระบบ ออกแบบระบบงานใหม่ สร้างแบบจำลองกระบวนการทำงานด้วยการวาดแผนภาพกระแสข้อมูล (Data Flow Diagram) สร้างแบบจำลองข้อมูล (ER Diagram)
การรวบรวมความต้องการระบบ Business Process Business Information Business Rules …………... ………….. …………. Requirements Specification
ภาพการวิเคราะห์เพื่อสร้างแบบจำลองกระบวนการทำงาน …………... ………….. …………. Analysis Requirements Specification Logical Model
การออกแบบ (Design Phase) เกี่ยวข้องกับการออกแบบ ฐานข้อมูล (Database) ผลลัพธ์ (Output design) การนำข้อมูลเข้า (Input design) ส่วนติดต่อกับผู้ใช้ (User Interface) สถาปัตยกรรมระบบ (Architecture design) ออกแบบโปรแกรม (Software design)
การวิเคราะห์และออกแบบระบบ การวิเคราะห์ มุ่งเน้นการแก้ปัญหาอะไร (What) การออกแบบ มุ่งเน้นการแก้ปัญหาอย่างไร (How)
การพัฒนาระบบ (Implementation Phase) ประกอบด้วยกิจกรรม การเขียนโปรแกรม การทดสอบโปรแกรม การแปลงข้อมูล การติดตั้งระบบ การจัดทำเอกสารคู่มือ การฝึกอบรม และประเมินผลระบบ
การบำรุงรักษาระบบ (Maintenance Phase) ประกอบด้วยกิจกรรม การบำรุงรักษาระบบ การเพิ่มเติมคุณสมบัติใหม่ๆ การสนับสนุนการใช้งานของผู้ใช้
กรรมวิธีการพัฒนาระบบ (System Development Methodology)
โมเดล (Model) โมเดล หมายถึงแบบจำลองอธิบายกระบวนการทำงานของระบบ โดยนำเสนอในรูปแผนภาพ ต่าง ๆ เช่น Flow Chart Data Flow Diagram ER-Diagram Structure Chart ฯลฯ
เครื่องมือ หมายถึง โปรแกรมที่ใช้สนับสนุนการพัฒนาระบบ เช่น เครื่องมือ (Tools) เครื่องมือ หมายถึง โปรแกรมที่ใช้สนับสนุนการพัฒนาระบบ เช่น โปรแกรมการจัดการโครงการ โปรแกรมวาด Diagram โปรแกรมประมวลผลคำ CASE TOOLS โปรแกรมจัดการฐานข้อมูล ฯลฯ
เทคนิค (Techniques) เทคนิค คือวิธีการแนะนำที่ช่วยนักวิเคราะห์ระบบในกระบวนการพัฒนาระบบให้เกิดความสมบูรณ์ยิ่งขึ้น เช่น เทคนิคการบริหารโครงการ เทคนิคการสัมภาษณ์ เทคนิคการสร้างแบบจำลอง ฯลฯ
ประกอบด้วย 2 วิธี คือ วิธีการพัฒนาระบบ วิธีการพัฒนาระบบแบบดั้งเดิม (The Traditional Approach) วิธีการพัฒนาระบบเชิงวัตถุ (The Object-Oriented Approach)
วิธีการพัฒนาระบบแบบดั้งเดิม (The Traditional Approach) มักเรียกว่า การพัฒนาระบบเชิงโครงสร้าง (Structure System Development) ประกอบด้วย การวิเคราะห์เชิงโครงสร้าง (Structure Analysis) การออกแบบเชิงโครงสร้าง (Structure Design) การโปรแกรมเชิงโครงสร้าง (Structure Programming)
วิธีการพัฒนาระบบเชิงวัตถุ (The Object-Oriented Approach) ประกอบด้วย การวิเคราะห์เชิงวัตถุ (Object-Oriented Analysis: OOA) การออกแบบเชิงวัตถุ (Object-Oriented Design: OOD) การโปรแกรมเชิงวัตถุ (Object-Oriented Programming: OOP)
วิศวกรรมซอฟต์แวร์ (Software Engineering) การนำหลักวิทยาศาสตร์มาประยุกต์ใช้เพื่อให้การพัฒนาซอฟต์แวร์มีมาตรฐาน และมีคุณภาพ
กิจกรรมพื้นฐานของกระบวนการทางวิศวกรรมซอฟต์แวร์ ข้อกำหนดซอฟต์แวร์ (Software Specification) มีกิจกรรมหลัก คือ ศึกษาความเป็นไปได้ วิเคราะห์ความต้องการ สรุปเป็นข้อกำหนด ตรวจสอบความต้องการ การพัฒนาซอฟต์แวร์ (Software Development) การตรวจสอบความถูกต้อง (Software Validation) วิวัฒนาการของซอฟต์แวร์ (Software Evolution)
คุณสมบัติซอฟต์แวร์ที่มีประสิทธิภาพ มีความถูกต้องตรงตามความต้องการ (Correctness) ผลลัพธ์มีความน่าเชื่อถือ (Reliability) ใช้งานง่าย (User Friendliness) ปรับเปลี่ยนง่าย (Adaptability) สามารถนำกลับมาใช้ใหม่ได้ (Reusability) เข้ากันได้กับระบบอื่นๆ (Interoperability) มีประสิทธิภาพ (Efficiency) เคลื่อนย้ายสะดวก (Portability) มีความปลอดภัย (Security)
โมเดลการพัฒนาซอฟต์แวร์ Water Fall Model Incremental Model Spiral Model Rapid Application Development Joint Application Development (JAD) Ration Unified Process
Water Fall Model
เครื่องมือที่ใช้สนับสนุนการพัฒนาระบบ (CASE Tools) Computer-aided Software Engineering (CASE TOOS) เครื่องมืออัตโนมัติที่นักวิเคราะห์ระบบนำมาใช้เพื่อพัฒนาระบบสารสนเทศ วัตถุประสงค์ คือ ช่วยเพิ่มความสามารถในการผลิตและปรับปรุงคุณภาพของระบบโดยรวม
เครื่องมือของโปรแกรมเคส เครื่องมือในการสร้างแผนภาพ เครื่องมือจัดทำคำอธิบาย เครื่องมือสร้างหรือจัดทำต้นฉบับ เครื่องมือจัดการด้านคุณภาพ เครื่องมือจัดทำเอกสาร เครื่องมือออกแบบและแปลงรหัส
Upper CASE – สนับสนุนการทำงานขั้นตอน ประเภทของ CASE Tools Upper CASE – สนับสนุนการทำงานขั้นตอน กำหนดและเลือกโครงการ เริ่มต้นและวางแผนโครงการ การวิเคราะห์ระบบ การออกแบบระบบ Lower CASE – สนับสนุนการทำงานขั้นตอน พัฒนาและติดตั้ง บำรุงรักษา
ตัวอย่างโปรแกรมประเภท CASE Tools Microsoft Visio Visible Analysis Rational Rose Power Designer