บทที่ 2 การพัฒนาระบบสารสนเทศ A Development of an Information System
การพัฒนาระบบด้วย SDLC SDLC : System Development LIfe Cycle กระบวนการทางความคิด (Logical Process) ในการพัฒนาระบบสารสนเทศ เพื่อแก้ปัญหาทางธุรกิจและตอบสนองความต้องการของผู้ใช้ แบ่งออกเป็นระยะ (phases)
Phases of SDLC Planning Phase : ระยะการวางแผน Analysis Phase : ระยะการวิเคราะห์ Design Phase : ระยะการออกแบบ Implementation Phase : ระยะการพัฒนาและติดตั้ง Maintenence Phase : ระยะการบำรุงรักษา *** ตำราบางเล่ม อาจพบเป็น 3 หรือ 7 phases
SDLC Planning Analysis Maintenance Implementation Design
System Development Process Model แบบจำลองกระบวนการพัฒนาระบบ การจำลองภาพของกระบวนการพัฒนาระบบ ให้เห็นถึงการจัดโครงสร้างลำดับขั้นตอนของกระบวนการในรูปแบบที่แตกต่างกนออกไป
แบบจำลองกระบวนการ (Process Model) นำเสนอกระบวนการพัฒนาระบบในแบบนามธรรม รายละเอียดของกระบวนการพัฒนาจะแสดงเฉพาะบางส่วน ที่เป็นใจความสำคัญ
รูปแบบของแบบจำลอง Waterfall Model Spiral Model Incremental Model Rational Unified Process
Waterfall Model Planning Analysis Design Implementation Adaptive Model การปรับปรุง Maintenance
หากมี feed back จะเรียกว่าเป็น Adaptive Waterfall Model ข้อดี ข้อเสีย มีการสร้างเอกสารในทุกๆ ขั้นตอน หรือทุกระยะ ดำเนินงานทีละขั้นตอน ไม่มีการลัดขั้นตอน ทำให้ตรวจสอบการทำงานได้ง่าย ขอบเขตงานชัดเจน แน่นอน จัดการง่าย เหมาะกับระบบขนาดเล็ก ไม่ซับซ้อน ใช้เวลาในขั้นตอนวางแผน วิเคราะห์ และออกแบบนานเกินไป ผู้ใช้ได้เห็นระบบเมื่อผ่านขั้นตอนการพัฒนาไปแล้ว ทำให้แก้ไขระบบได้ไม่ทันตามความต้องการ ต้องมีการวางแผนการทำงานที่ดี ทีมงานต้องมีประสบการณ์สูง หากวางแผนไม่ดี อาจทำให้โครงการไม่ประสบความสำเร็จ หากมี feed back จะเรียกว่าเป็น Adaptive Waterfall Model
Spiral Model Development Analysis and Design Implementation Planning 1 st Plan Analysis and Design Implementation Planning
ข้อดี ข้อเสีย มีความยืดหยุ่นมาก แต่ละระยะจะใช้สั้นหรือยาวเท่าใดก็ได้ ข้อดี ข้อเสีย มีความยืดหยุ่นมาก แต่ละระยะจะใช้สั้นหรือยาวเท่าใดก็ได้ ข้ามบางขั้นตอนไปได้ หากไม่จำเป็น เหมาะกับระบบที่มีการเปลี่ยนแปลงความต้องการบ่อยๆ ความเสี่ยงสูง ต้องวิเคราะห์ความเสี่ยงทุกรอบ
Incremental Model Analysis Design Implement Analysis Design Implement Part3 Implement Part2 Analysis Part1 Design Part2 Implement Part1 Part1
ข้อดี ข้อเสีย ผู้ใช้ได้ใช้ระบบเร็ว ข้อดี ข้อเสีย ผู้ใช้ได้ใช้ระบบเร็ว ผู้ใช้ปรับตัวกับระบบใหม่แบบค่อยเป็นค่อยไป ทำให้ไม่รู้สึกต่อต้านระบบใหม่ ลดความเสี่ยง เนื่องจากแต่ละรอบของการพัฒนา ได้นำระบบก่อนหน้ามาทดสอบร่วมด้วย หากวางแผนการประสานระบบไม่ดี อาจทำให้เกิดข้อผิดพลาดได้
Rational Unified Process (RUP) แบบจำลองกระบวนการพัฒนาระบบ ผสมผสานแบบ Interation, Incremental รวมกิจกรรมการจัดการความต้องการของผู้ใช้ หลักการออกแบบระบบที่ดี การควบคุมคุณภาพ แบ่งออกเป็น 4 phase คือ Inception, Elaboration, Construction และ Transition
Dynamic Perspective 4 Phases Inception กำหนดขอบเขต หน้าที่การทำงานหลัก และวิสัยทัศน์ รวมถึงขีดความสามารถในการพัฒนาระบบของทีมงาน Elaboration ทำความเข้าใจในปัญหาของระบบ จัดทำกรอบการทำงานของสถาปัตยกรรมของระบบ จัดทำแผนงานโครงการและค้นหาความเสี่ยงของโครงการ Construction เป็นเฟสที่เกี่ยวข้องกับงานออกแบบ เขียนโปรแกรม และทดสอบโปรแกรม Transition เป็นการส่งมอบระบบให้กับลูกค้าและติดตั้งเพื่อใช้งานจริง
Static Perspective กิจกรรมที่ต้องดำเนิน Business Modelling สร้างแบบจำลองธุรกิจ Requirement เก็บรวบรวมความต้องการ Analysis and design วิเคราะห์และออกแบบระบบ Implementation สร้างระบบ Test ทดสอบระบบ Deployment นำระบบไปใช้
Practice Perspective หลักการดำเนินการ การจัดการโครงการและการเปลี่ยนแปลงของระบบ (Change and Configuration Management) การบริหารโครงการ (Project Management) คำนึงถึงสภาพแวดล้อม (Environment) RUP เหมาะกับองค์กรหรือระบบขนาดใหญ่ และซับซ้อน
Methodology ระเบียบวิธีปฏิบัติ วิธีการหรือกรรมวิธีที่จะนำกระบวนการทางความคิดของวงจรการพัฒนาระบบมาปฏิบัติจริง จนกลายเป็นระบบสารสนเทศที่ใช้งานได้ ระบุถึงขั้นตอนการปฏิบัติงาน ชนิดของแบบจำลอง เทคนิค และเครื่องมือที่ต้องใช้ในแต่ละขั้นตอน
Models : แบบจำลอง Flowchart Entity-Relationship Model (ER) Data Flow Diagram (DFD) UML Diagram ex. Class Diagram PERT Chart Gantt Chart Structure Chart Organization Hierarchy Chart
Techniques : เทคนิค Project Management Techniques User Interviewing Techniques Relational Database Design Techniques Structured Analysis Techniques Structured Design Techniques Software-Testing Techniques
Tools : เครื่องมือ Project Management Application Drawing/Graphics Application Word Processor/Text Editor Database Management Application Computer-Aided System Engineering (CASE) Tools Integrated Development Environment (IDE) Reverse-Engineering Tools Code Generator Tools
Methodology : วิธีการ ขั้นตอน Structured System Analysis and design Methodology (SSAD) Rapid Application Development-based Methodology (RAD) Object-oriented Analysis and design Methodology (OOSAD) Agile Methodogy eXtreme Programming (XP)
CASE Tools Computer-aided Software Engineering SW ที่เป็นเครื่องมือทีมีส่วนช่วยสนับสนุนการทำงานในกิจกรรมต่างๆ ของนักวิเคราะห์ระบบ Design Editor Data Dictionary Compiler Debugger
ความสามารถของ CASE Tools เครื่องมือสร้างแผนภาพ แบบจำลองในการวิเคราะห์ระบบ (Diagramming Tools) เช่น VISIO, Rational Rose, SmartDraw, Visible Analyst, PowerDesinger เครื่องมือสร้างส่วนประสานกับผู้ใช้และรายงาน (User Interface and Report Generator) เช่น VISIO, Visual Basic เครื่องมือวิเคราะห์ (Analysis Tools) เช่น Eclipse, Rational Rose, Visible Analyst, Data Architecture
ฐานข้อมูลของ CASE Tools (Repository) เก็บรายละเอียดของแบบจำลอง พจนานุกรมข้อมูล source code เครื่องมือสร้างเอกสาร (Documentation Generator) เช่น JSDoc, Doxygen เครื่องมือสร้างโค้ด (Code Generator) เช่น Rational Rose, Eclipse
CASE Tools
SDLC ที่ใช้ในวิชาการศึกษาเอกเทศ / โครงการนักศึกษา Project Initiating and Planning Analysis Design Implementation Maintenance Project Identification and Selection
Project Identification and Selection ค้นหาโครงการพัฒนาระบบที่เห็นสมควรได้รับการพัฒนา จำแนกและจัดลำดับโครงการ เลือกโครงการที่เหมาะสม
Project Initiating and Planning เริ่มต้นโครงการ เสนอแนวทางเลือกในการนำระบบใหม่มาใช้งาน วางแผนโครงการ
System Analysis ศึกษาขั้นตอนการทำงานของระบบเดิม กำหนดความต้องการในระบบใหม่จากผู้ใช้ระบบ แบบจำลองระบบ จำลองขั้นตอนการทำงาน จำลองข้อมูลของระบบ
System Design ออกแบบแบบฟอร์ม รายงาน และส่วนประสานกับผู้ใช้ ออกแบบฐานข้อมูล ออกแบบสถาปัตยกรรมแอปพลิเคชั่น
System Implementation เขียนโปรแกรม (Coding) ทดสอบโปรแกรม (Testing) ติดตั้งระบบ (Installation) จัดทำเอกสาร (Documentation) ฝึกอบรบ (Traning) บริการให้ความช่วยเหลือหลังการติดตั้ง (Support)
System Maintenence เก็บรวบรวมคำร้องขอให้ปรับปรุงระบบ วิเคราะห์ข้อมูลคำร้องขอเพื่อการปรับปรุง ออกแบบการทำงานที่ต้องการปรับปรุง ปรับปรุงระบบ