2 การพัฒนาระบบสารสนเทศ (Information System Development) Systems Analysis & Design
Project Planning Phase Analysis Phase Project Planning Phase Maintenance Phase Implementation Phase Design Phase SDLC 1 2 3 4 5 Systems Analysis & Design
Phase 1 Project Planning Phase การวางแผนโครงการ จัดเป็นกระบวนการพื้นฐานว่าทำไม (Why) ต้องสร้างระบบใหม่ ทีมงานต้องพิจารณาดำเนินงาน ขั้นตอนแรก คือ จุดกำเนิดโครงการ มักเกิดจากผู้ใช้ระบบ ต้องการให้พัฒนาระบบใหม่ขึ้นมา กาวางแผนโครงการจะมีระยะเวลาค่อนข้างสั้น - กำหนดปัญหา (Problem Definition) - ศึกษาความเป็นไปได้ของโครงการ (Feasibility Study) - จัดทำตารางกำหนดเวลาโครงการ (Project scheduling) - จัดตั้งทีมงานโครงการ (Staff the project) - ดำเนินการโครงการ (Launch the project) Systems Analysis & Design
Phase 2 การวิเคราะห์ (Analysis Phase) การวิเคราะห์ (Analysis Phase) มุ่งเน้นการแก้ปัญหาอะไร : What วัตถุประสงค์หลักของระยะการวิเคราะห์ คือ การรวบรวมความต้องการ ต่าง ๆ ที่ได้รวบรวมมา (Requirements Gathering) * การรวบรวมข้อมูลหรือความต้องการในด้านต่างๆ เพื่อสรุปเป็นข้อกำหนด Systems Analysis & Design
การนำข้อกำหนดเหล่านั้นไปพัฒนาเป็นความต้องการของ ระบบใหม่ โดยใช้การพัฒนาแบบจำลองกระบวนการ ซึ่งเป็น แผนภาพที่ใช้อธิบายถึงกระบวนการที่ต้องทำในระบบว่ามี อะไรบ้าง และพัฒนาแบบจำลองข้อมูล (Data Model) Analysis ……………………
การวิเคราะห์ (Analysis Phase) - วิเคราะห์ระบบงานปัจจุบัน - รวบรวมความต้องการในด้านต่างๆ และนำมาวิเคราะห์เพื่อสรุป เป็นข้อกำหนดที่ชัดเจน - นำข้อกำหนดมาพัฒนาออกมาเป็นความต้องการของระบบใหม่ - สร้างแบบจำลองกระบวนการของระบบใหม่ด้วยการวาด แผนภาพกระแสข้อมูล (Data Flow Diagram : DFD) - สร้างแบบจำลองข้อมูล ด้วยการวาดอีอาร์ไดอะแกรม (Entity Relationship Diagram : ERD)
Phase 3 Design Phase การออกแบบ (Design Phase) (มุ่งเน้นการแก้ปัญหาอย่างไร : How) จะพัฒนาระบบใหม่ด้วยแนวทางใด เช่น พัฒนาขึ้นเอง ซื้อโปรแกรมสำเร็จรูป หรือว่าจ้างบริษัทพัมนาระบบให้ การออกแบบสถาปัตยกรรมระบบ ที่เกี่ยวข้องกับอุปกรณ์ฮาร์ดแวร์ ซอฟต์แวร์ และเครือข่าย การออกแบบรายงาน (Output Design) การออกแบบส่วนติดต่อกับผู้ใช้ (User Interface) การออกแบบผังงานระบบ (System Flowchart) รายละเอียดของโปรแกรม (specific Programs) ฐานข้อมูล (Dtatbases) Systems Analysis & Design
Design Logical Model Physical Model ขั้นตอนการนำแบบจำลอง Logical มาผ่านการออกแบบเพื่อพัฒนาเป็นแบบจำลอง Physical
Phase 4 Implementation Phase - สร้างระบบขึ้นมาด้วยการเขียนโปรแกรม - ตรวจสอบความถูกต้องทั้งทางด้านตรวจสอบความถูกต้องและดำเนินการทดสอบระบบ - แปลงข้อมูล (Convert Data) - ติดตั้งระบบ (System Installation) และจัดทำคู่มือเอกสาร - ฝึกอบรมผู้ใช้ และประเมินผลระบบใหม่ Coding/Testing Implement Physical Model Implement Model
Phase 5 Maintenance Phase ระยะการบำรุงรักษา จะไม่รวมอยู่ในส่วนของ SDLC ระยะนี้จะยาวนานที่สุด เนื่องจากระบบต้องได้รับการบำรุงรักษาตลอดระยะเวลาที่มีการใช้ระบบ และสามารถเพิ่มเติมคุณสมบัติใหม่ ๆ เข้าไปในระบบได้ ในระยะนี้จะมีค่าใช้จ่ายค่อนข้างสูง Systems Analysis & Design
กรรมวิธีการพัฒนาระบบ (System Development Methodology) Techniques Models Tools Systems Analysis & Design
เทคนิค (Techniques) เทคนิค คือวิธีการแนะนำที่ช่วยนักวิเคราะห์ระบบในกระบวนการพัฒนาระบบให้เกิดความสมบูรณ์ยิ่งขึ้น เช่น เทคนิคการบริหารโครงการ เทคนิคการสัมภาษณ์ เทคนิคการสร้างแบบจำลอง ฯลฯ Systems Analysis & Design
วิธีการพัฒนาระบบ (System Development) ประกอบด้วย 2 วิธี ดังนี้ เป็นพื้นฐานการพัฒนาระบบสารสนเทศ ด้วยวิธีโครงสร้าง และการโปรแกรมข้อมูลแบบโมดูล เรียกวิธีนี้ว่า การพัฒนาระบบเชิงโครงสร้าง (Structured System Development) วิธีการพัฒนาระบบแบบดั้งเดิม (The Traditional Approach) Systems Analysis & Design
วิธีการพัฒนาระบบเชิงวัตถุ (The Object-Oriented Approach) การวิเคราะห์และออกแบบระบบเชิงวัตถุ (Object-Oriented Analysis And Design : OOAD) จัดเป็นวิธีใหม่ของการพัฒนาระบบ ประกอบไปด้วย 3 แนวทาง คือ การวิเคราะห์ระบบด้วยวิธีเชิงวัตถุ (Object-Oriented Analysis : OOA) เป็นการกำหนดวัตถุต่าง ๆ ที่ต้องมีในระบบ และแสดงถึงวัตถุแต่ละตัวจะโต้ตอบกันอย่างไรเพื่อให้งานใดงานหนึ่งสมบูรณ์ การออกแบบระบบด้วยวิธีเชิงวัตถุ (Object-Oriented Design : OOD) เป็นการดำเนินการกำหนดชนิดของวัตถุเพิ่มเติมที่มีส่วนสำคัญในการสื่อสารกับมนุษย์และอุปกรณ์ในระบบและแก้ไขปรับปรุงให้ดีขึ้น การโปรแกรมเชิงวัตถุ (Object-Oriented Programming : OOP) เป็นการเขียนชุดคำสั่งให้วัตถุทำงานร่วมกัน Systems Analysis & Design
วิศวกรรมซอฟต์แวร์ (Software Engineering) มีการนำหลักการนี้มาใช้ในราวปี ค.ศ.1968 เพื่อให้การพัฒนาซอฟต์แวร์มีมาตรฐาน และเป็นวิทยาศาสตร์มากขึ้น โดย Sommerville ได้ระบุกิจกรรมพื้นฐานของกระบวนการวิศวกรรมซอฟต์แวร์ 4 ส่วนหลัก ๆ คือ 1. ข้อกำหนดซอฟต์แวร์ (Software Specification) เป็นข้อกำหนดด้วยการกำหนดฟังก์ชันหน้าที่ของซอฟต์แวร์ กิจกรรมดังกล่าวปัจจุบันเรียกว่า วิศวกรรมความต้องการ (Requirements Engineering) 2. การพัฒนาซอฟต์แวร์ (Software Development) คือ การพัฒนาหรือสร้างผลิตภัณฑ์ให้ตรงตามข้อกำหนด ด้วยการนำกรรมวิธีการพัฒนาซอฟต์แวร์ (Methodology) มาใช้ Systems Analysis & Design
วิศวกรรมซอฟต์แวร์ (Software Engineering) 3. การตรวจสอบความถูกต้องของซอฟต์แวร์ (Software Validation) ซอฟต์แวร์จะต้องได้รับการตรวจสอบความถูกต้อง เพื่อให้แน่ใจว่าตรงตามความต้องการของผู้ใช้งาน 4. วิวัฒนาการของซอฟต์แวร์ (Software Evolution) ซอฟต์แวร์อาจมีความเปลี่ยนแปลงไปตามความต้องการของผู้ใช้งาน ดังนั้นซอฟต์แวร์ควรออกแบบไว้เพื่อรองรับวิวัฒนาการที่สามารถเปลี่ยนแปลงไปตามความต้องการของผู้ใช้งานด้วย Systems Analysis & Design
คุณสมบัติของซอฟต์แวร์ที่มีคุณภาพ ประกอบด้วย คุณสมบัติของซอฟต์แวร์ที่มีคุณภาพ ประกอบด้วย 1. มีความถูกต้อง (Correctness) คือ ตรงตามความต้องการของผู้ใช้งาน 2. มีความน่าเชื่อถือ (Reliability) คือ ความน่าเชื่อถือในผลลัพธ์ และข้อมูล 3. ใช้งานง่าย (User friendliness) คือ ใช้งานง่าย เรียนรู้ง่าย มีข้อความช่วยเหลือและคำอธิบายครบถ้วน 4. บำรุงรักษาง่าย (Maintainability) คือ มีความเป็นไปได้ในกรณีที่ต้องมีการปรับปรุงซอฟต์แวร์ตามความต้องการของลูกค้าในอนาคต 5. สามารถนำกลับมาใช้งานใหม่ได้ (Reusability) คือ ซึ่งมีผลต่อต้นทุนและเวลาลดค่าใช้จ่ายและเวลาในการพัฒนา Systems Analysis & Design
คุณสมบัติของซอฟต์แวร์ที่มีคุณภาพ ประกอบด้วย คุณสมบัติของซอฟต์แวร์ที่มีคุณภาพ ประกอบด้วย 6. มีความคงทน (Robustness) คือ สามารถทำงานได้เป็นปกติแม้ว่าจะเกิดเหตุการณ์หรือปัญหา 7. มีประสิทธิภาพ (Efficiency) คือ ความน่าเชื่อถือในผลลัพธ์ และข้อมูล 8. มีความสะดวกในการเคลื่อนย้าย (Portability) คือ สามารถเคลื่อนย้ายเพื่อใช้งานบนสภาวะใหม่ หรือสะดวกต่อการถ่ายโอนข้อมูล 9. มีความปลอดภัย (Security/Safety) คือ ความปลอดภัยของข้อมูลที่ถูกจัดเก็บ Systems Analysis & Design
โมเดลการพัฒนาซอฟต์แวร์ (Software Development Process Models) คือ แบบจำลองที่ใช้สำหรับเป็นตัวชี้นำกิจกรรมหลักในการพัฒนา ซอฟต์แวร์ โดยการกำหนดรายละเอียดหรือข้อบัญญัติไว้ในแต่ละกิจกรรม ในแต่ละขั้นตอน ที่มีลำดับไว้ชัดเจน โมเดลการพัฒนาซอฟต์แวร์จัดเป็น “กรรมวิธีการพัฒนาซอฟต์แวร์ (Methodology)” หนึ่งที่สามารถนำมาประยุกต์ ใช้เพื่อเป็นแนวทางการพัฒนาซอฟต์แวร์ตั้งแต่เริ่มต้นจนกระทั่งสำเร็จ Systems Analysis & Design
โมเดลซอฟต์แวร์ ที่สำคัญ Built-and-Fix Model Water Fall Model Incremental Model Spiral Model Rapid Application Development (RAD) Joint Application Development (JAD) Rational Unified Process (RUP) Systems Analysis & Design
โมเดลซอฟต์แวร์ ที่สำคัญ Built-and-Fix Model จัดเป็นโมเดลที่เก่าแก่ที่สุด เป็นการเขียนโปรแกรม และแก้ไขปรับปรุง โปรแกรมไปเรื่อย ๆ ลองผิดลองถูกไปจนคิดว่าพอใจ หรือตรงตามความ ต้องการ ทำให้เสียเวลาไปกับการดีบั๊กโปรแกรม และการบำรุงรักษา เหมาะ กับโปรแกรมขนาดเล็กที่ไม่มีความซับซ้อน Systems Analysis & Design
โมเดลซอฟต์แวร์ ที่สำคัญ Water Fall Model หรือเรียกว่า โมเดลน้ำตก เป็นโมเดลที่ง่ายต่อการนำไปประยุกต์ใช้ มี ความคล้ายคลึงกับวงจรการพัฒนาระบบ SDLC ข้อเสียของโมเดลน้ำตก คือ จะมีกระบวนการทดสอบอยู่ในตอนท้าย ๆ หากมีการจัดการที่ไม่ดีพอ มีโอกาส ที่จะต้องวนกลับไปยังเฟสต้น ๆ ไปเรื่อย ๆ Systems Analysis & Design
Water Fall Model Systems Analysis & Design
Incremental Model เป็นโมเดลที่นำหลักการของ Water Fall Model มาปรับปรุง ประสิทธิภาพให้ดียิ่งขึ้น ดังนั้น Incremental Model จึงได้ลดข้อเสีย ด้วยการ เพิ่มส่วนของการออกแบบ และพัฒนาในรูปแบบของส่วนงานย่อยในลักษณะ แบบก้าวหน้า (Increment) โดยแต่ละส่วนงานย่อยจะมีการทวนซ้ำเป็นรอบ ในลักษณะ Iteration พร้อมกับมีระบบตรวจสอบ จะมีการตรวจสอบความ ถูกต้อง 2 ด้านคือ 1. Verification เป็นการตรวจสอบความถูกต้องตามข้อกำหนด หรือ ความพยายามหาข้อผิดพลาดจากการประมวลผลโปรแกรม 2. Validation เป็นการตรวจสอบรายละเอียดของผลิตภัณฑ์ว่าตรง ตามความต้องการของผู้ใช้หรือไม่ Systems Analysis & Design
โมเดลซอฟต์แวร์ ที่สำคัญ Spiral Model คือ Software Development Process ที่ถูก พัฒนาขึ้นโดยเอาจุดแข็งของ Development Model อื่นที่ดีอยู่แล้วมาประยุกต์ (waterfall model) และเพิ่มเติมส่วนของการวิเคราะห์ และตีค่าความเสี่ยงที่ เกิดเพื่อจะได้ทราบว่าจุดใดมีความเสี่ยงมากน้อยขนาดไหน จะได้หาวิธีลดความเสี่ยง รวมถึงวิธีการแก้ไขเมื่อเกิดเหตุการที่ไม่คาดคิดเกิดขึ้น ถ้าความเสี่ยงน้อยลง ก็ทำให้ Cost หรือ ต้นทุนที่ใช้ก็จะลดลงตามไปด้วย แบบจำลองแบบนี้เหมาะกับระบบงาน ที่มีโอกาสเปลี่ยนแปลงบ่อย เนื่องจากในแต่ละเฟสจะมีการวิเคราะห์ความต้องการ ใหม่ และวิเคราะห์ความเสี่ยงว่าจะทำการพัฒนาต่อไปหรือไม่ หรือจะเพียงพอกับ เฟสนี้เท่านั้น Systems Analysis & Design
โมเดลซอฟต์แวร์ ที่สำคัญ Rapid Application Development (RAD) คือ Rapid Application Development หรือเรียนกสั้นๆว่า (RAD) หมายถึง เป็นกระบวนการที่ใช้พัฒนาระบบในที่นี้หมายถึงระบบซอฟต์แวร์ ด้วยความรวดเร็วและตรงตามความต้องการของลูกค้า ซึ่งจะนำพวกเครื่องมือ มาใช้ อย่างมีประสิทธิภาพ บวกกับลดขั้นตอนบางขั้นตอนลง เน้นการนำโปรแกรมที่สร้างขึ้นหรือเป็นโปรแกรมสำเร็จรูป เน้นการสื่อสารกับลูกค้ามากขึ้นเพื่อที่จะไม่ทำให้ความต้องการ ผิดพลาดได้ ผลเสีย ก็คือ ไม่สามารถรองรับการเปลี่ยนแปลง ในอนาคต ทดสอบระบบ การวิเคราะห์ การออกแบบระบบ การสร้างระบบ Systems Analysis & Design
โมเดลซอฟต์แวร์ ที่สำคัญ Joint Application Development (JAD) คือ การพัฒนาระบบร่วมกัน เป็นอีกวิธีหนึ่งของการพัฒนาระบบอย่างรวดเร็ว ระหว่างผู้ใช้ระบบและผู้พัฒนา โดยมีส่วนร่วมในการกำหนดความต้องการของระบบ ร่วมกัน (Joint requirement planning – JRP) และออกแบบระบบร่วมกัน (joint application design – JAD) เพื่อลดเวลา ค่าใช้จ่าย และขั้นตอนการรวบรวมข้อมูล เป็นวิธีที่บริษัท ไอบีเอ็มพัฒนาขึ้นในช่วงปลายทศวรรษ 1970 และเป็นที่นิยมใช้เป็นเทคนิคในการรวบรวม ข้อมูลขององค์การด้านธุรกิจ ในการรวบรวมข้อมูลร่วมกันผู้ที่เกี่ยวข้องจะต้องมีการ วางแผนดำเนินการที่ดีเพราะเป็นกระบวนการที่ต้องใช้เวลา และค่าใช้จ่าย แต่ผลที่ได้ก็จะ คุ้มค่าผู้เชี่ยวชาญทางเทคโนโลยีสารสนเทศร่วมประชุมเชิงปฏิบัติการ (Workshop) จุดประสงค์หลักของ JAD คือ การพัฒนาระบบงานที่ใช้เวลาอันสั้นและมีความสมบูรณ์ ในโครงการ
โมเดลซอฟต์แวร์ ที่สำคัญ Rational Unified Process (RUP) เป้าหมายของ Rational Unified process เป็นการทำให้ กระบวนการในขั้นตอนนั้นๆสมบูรณ์ที่สุด มีการวนและทำซ้ำเรื่อยๆ จนขั้นตอนสมบูณ์ โดยจะมีเป้าหมายในแต่ละขั้นตอนว่าควรจะได้ผลอะไร ออกมาบ้าง เป็นกระบวนการที่ได้พัฒนาขึ้นโดยบริษัท Rational Software จุดประสงค์ของ RUP คือ ต้องการให้ทีมงานพัฒนาซอฟต์แวร์ที่มีคุณภาพสูงตรง ตามความต้องการของผู้ใช้ภายใต้งบประมาณและระยะเวลาที่ได้กำหนดไว้ โดย พื้นฐานสำคัญ คือการสร้างโมเดล และจัดการโมเดลด้วยภาษา UML โดย กำหนดไว้ 4 ระยะ Systems Analysis & Design
เครื่องมือที่ใช้สนับสนุนการพัฒนาระบบ Tools to Support System Development เครื่องมือจะช่วยให้การพัฒนาระบบสารสนเทศมีความรวดเร็วและมี คุณภาพหนึ่งในเครื่องมือนี้ คือ เคสทูลส์ (Computer-Aided Software Engineering: Case Tools) แบ่งออกเป็น 2 ประเภท คือ 1. Upper CASE Tools เป็นเครื่องมือสนับสนุนด้านการวิเคราะห์และออกแบบระบบ ในการสร้าง และปรับปรุงการออกแบบระบบข้อมูลทั้งหมดที่เกี่ยวกับงานนั้นจะถูกบันทึกไว้ประกอบด้วย ไดอะแกรม หน้าจอ รายงาน และข้อมูลอื่น Systems Analysis & Design
เครื่องมือที่ใช้สนับสนุนการพัฒนาระบบ Tools to Support System Development Lower CASE Tools เป็นเครื่องมือที่สนับสนุนด้านการนำไปใช้ (Implementation) จะใช้สำหรับการสร้างโปรแกรม (Source Code) ซึ่งทำให้ระบบนี้ ไม่จำเป็นต้องมีโปรแกรมเมอร์ ซึ่งมีผลดีคือ 1. สามารถพัฒนาระบบได้อย่างรวดเร็ว 2. ลดเวลาที่จะเสียไปสำหรับการบำรุงรักษาระบบในส่วนของการเขียนโปรแกรม 3. ลดค่าใช้จ่ายเมื่อต้องการเปลี่ยนซอฟต์แวร์ 4. ลดความผิดพลาดในการเขียนโปรแกรม
Upper CASE – สนับสนุนการทำงานขั้นตอน ประเภทของ CASE Tools Upper CASE – สนับสนุนการทำงานขั้นตอน กำหนดและเลือกโครงการ เริ่มต้นและวางแผนโครงการ การวิเคราะห์ระบบ การออกแบบระบบ Lower CASE – สนับสนุนการทำงานขั้นตอน พัฒนาและติดตั้ง บำรุงรักษา
ตัวอย่างโปรแกรมประเภท CASE Tools Microsoft Visio Visible Analysis Rational Rose Power Designer