การวิเคราะห์ระบบ(3)

การวิเคราะห์ความต้องการ (Requirements Analysis)

          การวิเคราะห์ความต้องการเป็นกระบวนการของการสร้างแผนงาน (plan) เพื่อแสดงให้เห็นถึงโครงร่าง กระบวนการทำงานของระบบว่าทำงานอย่างไร (how) สอดคล้องกับจุดประสงค์และความต้องการหรือไม่  จึงสรุปได้ว่าการวิเคราะห์ความต้องการ คือ การรวบรวมรายละเอียดต่าง ๆ เพื่อจุดประสงค์ในการหาข้อสรุปที่ชัดเจนในด้านของความต้องการ (Requirements) ระหว่างผู้พัฒนากับผู้ใช้งาน เพื่อใช้ในขั้นตอนของกระบวนการวิเคราะห์และออกแบบระบบ

  • การรวบรวมความต้องการ (Requirements Gathering)

          การรวบรวมความต้องการก่อนที่นักวิเคราะห์ระบบจะเข้าไปค้นหาความต้องการจากผู้ใช้ตามหน่วยงานต่าง ๆ นักวิเคราะห์ระบบจำเป็นต้องศึกษารูปแบบองค์กรของหน่วยงานที่จะเข้าไปหาข้อมูลเสียก่อน รวมถึงการพิจารณาในส่วนของผู้บริหารระดับสูงว่าให้ความสำคัญต่อการพัฒนาระบบใหม่มากน้อยเพียงไร นักวิเคราะห์ระบบจะต้องสามารถชี้แจงเหตุผลแก่ผู้ใช้ให้ทราบว่า ความต้องการเหล่านี้จะเป็นข้อมูลสำคัญต่อการนำไปกำหนดเป็นการทำงานของระบบใหม่

ศึกษากิจกรรมหลัก 3 กิจกรรมในการวิเคราะห์ระบบ คือ
ทำความเข้าใจระบบงานเดิม นักวิเคราะห์ระบบจะต้องศึกษาเพื่อทำความเข้าใจถึงจุดอ่อน และจุดแข็งของระบบ
กำหนดสิ่งที่ต้องการปรับปรุงเพิ่มเติม จะทำการกำหนดแนวทางในการปรับปรุงระบบให้เป็นไปในทิศทางที่ดีขึ้น ทำให้ทีมงานได้เข้าใจถึงระบบ และรับรู้ถึงแนวทางในการปรับปรุงระบบให้ดีขึ้นอย่างไร
พัฒนาแนวความคิดสำหรับระบบงานใหม่ นักวิเคราะห์ระบบก็จะดำเนินการพัฒนาแนวคิดของระบบใหม่ด้วยการสร้างแบบจำลองกระบวนการ และแบบจำลองข้อมูล

  • ชนิดของความต้องการ (Type of Requirements)

ความต้องการที่เป็นฟังก์ชันการทำงาน (Functional Requirement)

           ความต้องการที่เป็นฟังก์ชันการทำงานเป็นกิจกรรมที่ระบบต้องปฏิบัติงาน เป็นขั้นตอนการทำงานที่ประกอบไปด้วยกิจกรรมต่าง ๆ เกี่ยวข้องกับผู้ปฏิบัตาน โดยแต่ละกิจกรรมจะก่อให้เกิดผลการดำเนินงานออกมา และโดยปกติ ความต้องการที่เป็นฟังก์ชันการทำงานมักเขียนอยู่ในรูปแบบของกริยา สรุปคือเกี่ยวข้องกับขั้นตอนการทำงานที่ประกอบไปด้วยกิจกรรมต่าง ๆ ที่เกี่ยวข้องกับผู้ปฏิบัติงาน
   
ความต้องการที่ไม่ได้เป็นฟังก์ชัน (Non- Functional Requirement)

          ความต้องการที่ไม่ได้เป็นฟังก์ชันเป็นความต้องการที่เกี่ยวข้องกับการกำหนดคุณภาพในการทำงานของซอฟต์แวร์ โดยเป็นการปฏิบัติการเพื่อให้บรรลุจุดประสงค์ในทุก ๆ ด้านที่เกี่ยวข้องกับสภาพแวดล้อม ฮาร์ดแวร์ และซอฟต์แวร์ขององค์กร สรุปคือเกี่ยวข้องกับการกำหนดคุณภาพการทำงานของซอฟต์แวร์ เช่น ระบบสามารถรองรับการใช้งานบนเครือข่ายสูงสุดกี่ยูสเซอร์ /เวลาตอบสนองการใช้งาน เป็นต้น

  • ปัญหาที่มีต่อความต้องการของผู้ใช้ (User requirement) มีอะไรบ้าง

• ยากต่อการทำความเข้าใจ
• มีความสับสน
• ความต้องการผสมรวมกัน

  • การวิเคราะห์ความต้องการ (Requirement Analysis) ต้องทำยังไง

• วิเคราะห์ข้อเท็จจริงในข้อมูล
• กำหนดสาระสำคัญของความต้องการ
• คัดเลือกความต้องการที่ตรงกับวัตถุประสงค์

  • หลักในการค้นหาความต้องการที่ดี

          การหาความต้องการที่ดีต้องตรงกับวัตถุประสงค์และหาข้อมูลกับบุคคลที่เกี่ยวข้องกันโดยตรง ควรระบุความต้องการต่าง ๆ ลงในรูปของเอกสารและเข้าใจทั้งสองฝ่าย และต้องตกลงร่วมกัน (อย่าคิด วิเคราะห์ หรือออกแบบด้วยตนเองทั้งหมด) มีกระบวนการดังนี้

• ค้นหาความต้องการกับบุคคลที่เกี่ยวข้องโดยตรง
• ระบุความต้องการในรูปแบบเอกสาร มีการทำความตกลงทั้งสองฝ่าย
• เขียนคำจำกัดความบนเอกสาร
• ค้นหาแหล่งทรัพยากรของความต้องการะบบและค้นหาผู้ที่เกี่ยวข้องกับโครงการ (Stakeholders) ได้แก่• เจ้าของ • ผู้ใช้ระบบ • นักออกแบบระบบ • นักพัฒนาระบบ • นักวิเคราะห์ระบบ • Vendor and Consultant

หลักการในการค้นหาความต้องการคำนึงถึง (5W + 1H)

Who มีใครเกี่ยวของบ้าง? บทบาทของแต่ละคนนั้น  คืออะไร? ใครเป็นบุคคลแท้จริงที่ร้องขอเพื่อพัฒนาระบบใหม่
What อะไรคือสิ่งที่ทาให้เกิดปัญหา? ระบบที่ต้องการหรือระบบที่อยากได้คือ ระบบอะไร? มีฟังก์ชั่นการทำงานอะไรบ้าง? 
When ระบบติดตั้งได้เมื่อไร? ผู้สนับสนุนเงินทุนพร้อมที่จะสนับสนุนเมื่อไร? ทดสอบระบบใหม่เมื่อไร? 
Where บริเวณสถานที่ใด ที่ระบบใหม่สามารถดำเนินการได้อย่างเหมาะสม
Why ทำไมต้องแสวงหาระบบใหม่? ทำไมผู้ใช้จึงเชื่อว่าระบบใหม่สามารถแก้ไขปัญหาได้?
How ระบบใหม่จะทำงานได้อย่างไร มีข้อจำกัดหรือไม่อย่างไร

  • เทคนิคการรวบรวมความต้องการ

• แบบดั้งเดิม • สัมภาษณ์ • แบบสอบถาม • สังเกตุ • ศึกษาและรวบรวมเอกสาร

• แบบสมัยใหม่ • การออกแบบแบบมีส่วนร่วม (Joint Application Design : JAD) • การใช้ระบบต้นแบบเพื่อกำหนดความต้องการของระบบ (Prototyping) • การสัมภาษณ์และสนทนากับผู้ใช้

  • คำถามแบ่งได้กี่แบบ

                    มีรูปแบบพื้นฐานอยู่เพียง ๒ แบบ ได้แก่ คำถามประเภทปลายเปิดซึ่งไม่ชี้แนะ และคำถามปลายปิด ซึ่งชี้แนะ

  • คำถามปลายเปิด คำถามปลายเปิด เป็นคำถามที่ใช้เพื่อจูงให้มีการตอบสนองกระจายในวงกว้างสำหรับข้อปัญหาใหญ่ ๆ คำถามประเภทนี้ ถามได้ในหลายรูปแบบ

                                        กรณีใช้แบบสอบถาม แบบสอบถามแบบปลายเปิด (Open-ended Form) แบบสอบถามแบบนี้ไม่ได้กำหนดคำตอบไว้ ผู้ตอบสามารถเขียนตอบหรือแสดงความคิดเห็นได้อย่างอิสระด้วยคำพูดของตนเองคล้ายกับข้อสอบแบบอัตนัย

  • คำถามประเภทปลายปิด คำถามปลายปิดต้องการคำตอบแคบ ๆ ต่อปัญหาเฉพาะเจาะจง คำตอบต่อคำถามเหล่านี้ส่วนใหญ่คือ “ใช่, ไม่ใช่” หรืออาจจะเป็นคำตอบอื่น ๆ ที่สรุปสั้น ๆ

                                         กรณีใช้แบบสอบถามแบบสอบถามแบบปลายปิด (Closed-ended Form) แบบสอบถามแบบนี้ประกอบด้วยข้อคำถามและตัวเลือก ( คำตอบ ) ซึ่งตัวเลือกนี้สร้างขึ้นโดยคาดว่าผู้ตอบแบบสอบถามสามารถเลือกตอบได้ตามต้องการ และมีอย่างเพียงพอเหมาะสม แบบสอบถามแบบนี้สร้างยาก ใช้เวลาในการสร้างมากกว่าแบบสอบถามแบบปลายเปิด แต่ผู้ตอบตอบง่าย สะดวก รวดเร็ว นอกจากนี้ข้อมูลที่ได้สามารถนำไปวิเคราะห์ สรุปผลได้ง่ายอีกด้วย

  • แบบสอบถาม ( Questionnaires) หมายถึงอะไร

                    แบบสอบถาม หมายถึง รูปแบบของคำถามเป็นชุดๆ ที่ได้ถูกรวบรวมไว้อย่างมีหลักเกณฑ์และเป็นระบบ เป็นเครื่องมือชนิดหนึ่งที่สร้างขึ้นเพื่อวัดความคิดเห็นต่างๆ หรือวัดความจริงที่ไม่ทราบ เพื่อใช้วัดสิ่งที่ต้องการจะวัดจากกลุ่มตัวอย่างหรือเป้าหมายให้ได้มาซึ่งข้อเท็จจริงทั้งในอดีตปัจจุบันและอนาคต สรุปแบบสอบถามคือประกอบด้วยชุดคำถามเพื่อจุดประสงค์ในการรวบรวมข้อมูลจากผู้ตอบ และสามารถรวบรวมข้อมูลมาใช้ในการวิเคราะห์เชิงสถิติ

  • โครงสร้างของแบบสอบถามมีอะไรบ้าง

                    แบบสอบถามมีหลายชนิดแต่ไม่ว่าจะเป็นแบบสอบถามชนิดใดจะมีโครงสร้างหรือ ส่วนประกอบที่สำคัญ 3 ส่วน ดังนี้ คำชี้แจงในการตอบแบบสอบถาม สถานภาพทั่วไป ในส่วนนี้เป็นรายละเอียดส่วนตัวของผู้ตอบ และข้อคำถามเกี่ยวกับพฤติกรรมที่จะวัด จะถามเกี่ยวกับสิ่งที่ต้องการจะวัด

  • การสัมภาษณ์ (Interview) คืออะไร

การสัมภาษณ์ เป็นการสนทนาที่มีวัตถุประสงค์เฉพาะ โดยใช้การสนทนาที่มีรูปแบบคำถามและคำตอบ เพื่อเก็บข้อมูล

  • สิ่งที่ได้จากการสัมภาษณ์มีอะไรบ้าง
              ข้อเท็จจริง - ความคิดเห็น - ความคาดหวัง - ท่าทาง อารมณ์ บุคลิก

 

  • การออกแบบระบบงานร่วมกัน(Joint Application Design) คืออะไร

                    การออกแบบระบบงานร่วมกันเป็นการประชุมร่วมกันของผู้ที่เกี่ยวข้องกับการพัฒนาระบบ อาทิ ผู้ใช้ระบบ นักวิเคราะห์ระบบ ผู้บริการขององค์การ และทีมงานด้านสารนเทศ รวมถึงผู้ดำเนินการประชุม(JAD Session Leader) ผู้จดบันทึกและสรุปรายละเอียดในการประชุม และผู้ที่ให้การสนับสนุนในการพัฒนาระบบ(Sponsor) โดยทั่วไประหว่างการประชุม JAD อาจจะมีการใช้เครื่องมือต่างๆ เพื่อช่วยให้การประชุมดำเนินไปได้อย่างรวดเร็ว

  • การสร้างต้นแบบ (Prototyping) คืออะไร

การสร้างต้นแบบเป็นการสร้างระบบต้นแบบขึ้นมาเพื่อให้ผู้ใช้ทดลองใช้งานซึ่งนอกจากผู้ใช้จะได้แนวคิดเกี่ยวกับสารสนเทศที่ต้องการแล้วยังช่วยให้มองเห็นภาพของระบบที่จะพัฒนาได้ชัดเจนขึ้น 

          หมายเหตุ กิจกรรมการค้นหาความต้องการ และการจดบันทึกความต้องการนั้น มีหลักการสำคัญคือ จะต้องค้นหาความจริงให้ได้ว่าผู้ใช้ต้องการสิ่งใดเป็นสำคัญ และการรวบรวมความต้องการนั้น จะต้องได้รับความร่วมมือร่วมใจระหว่างตัวนักวิเคราะห์ระบบกับผู้ใช้ บทบาทหน้าที่ของผู้ใช้ในการให้ข้อมูลความต้องการต่าง ๆ แก่นักวิเคราะห์ระบบ จึงถือว่าเป็นสิ่งสำคัญต่อการพัฒนาระบบใหม่เป็นอย่างมาก


  • วัฏจักรของการพัฒนาระบบ (System Development Life Cycle : SDLC) มีอะไรบ้าง?

                    กระบวนการพัฒนาระบบด้วยวงจรการพัฒนาระบบ โอภาส เอี่ยมสิริวงศ์ (2544) ผู้เขียนหนังสือการวิเคราะห์และออกแบบระบบ (2544) กล่าวไว้ว่า วงจรการพัฒนาระบบ (System Development Life Cycle: SDLC) เป็นวงจรที่แสดงถึงกิจกรรมต่าง ๆ ในแต่ละขั้นตอน ตั้งแต่เริ่มจนกระทั้งสำเร็จ วงจรการพัฒนาระบบจะทำให้เข้าใจถึงกิจกรรมพื้นฐานและรายละเอียดต่าง ๆ ในการพัฒนาระบบ โดยมีอยู่ 7 ขั้นตอน

  1. กำหนดปัญหาและศึกษาความเป็นไปได้ หมายถึง การตรวจสอบเบื้องต้น (Preliminary Investigation) ขั้นที่ 1 กำหนดปัญหา (Problem Definition) เป็นขั้นตอนของการกำหนดขอบเขตของปัญหา สาเหตุของปัญหาจากการดำเนินงานในปัจจุบัน ความเป็นไปได้กับการสร้างระบบใหม่ การกำหนดความต้องการระหว่างผู้วิเคราะห์กับผู้ใช้งาน โดยข้อมูลเหล่านี้ได้จากการรวบรวมข้อมูลจากการดำเนินงานต่างๆ เพื่อทำการสรุปเป็นข้อกำหนดที่ชัดเจน
  2. การวิเคราะห์ความต้องการ (Requirements Analysis) ขั้นที่ 2 วิเคราะห์ (Analysis) เป็นขั้นตอนของการวิเคราะห์การดำเนินงานของระบบปัจจุบัน โดยการนำความต้องการที่ได้มาจากขั้นตอนแรกมาวิเคราะห์ในรายละเอียด เพื่อทำการพัฒนาเป็นแบบจำลองซึ่งประกอบด้วย แผนภาพข้อมูล คำอธิบายการประมวลผลข้อมูล ทำให้ทราบถึงรายละเอียดขั้นตอนการดำเนินงานในระบบว่าประกอบด้วยอะไรบ้าง มีความเกี่ยวข้องหรือสัมพันธ์กับสิ่งใด
  3. การออกแบบระบบ (System Design) ขั้นที่ 3 ออกแบบ (Design) เป็นขั้นตอนการหาผลลัพธ์ที่ได้จากการวิเคราะห์ มาพัฒนาให้สอดคล้อง โดยการออกแบบจะเริ่มจากส่วนของอุปกรณ์และเทคโนโลยีต่างๆ และโปรแกรมคอมพิวเตอร์ที่นำมาพัฒนา การออกแบบจำลองข้อมูล การออกแบบรายงาน และการออกแบบจอภาพในการติดต่อกับผู้ใช้งาน
  4. การจัดหาระบบ (System Acquistion) หรือ พัฒนาระบบ ขั้นที่ 4 พัฒนา (Development) เป็นขั้นตอนของการพัฒนาโปรแกรมด้วยการสร้างชุดคำสั่งหรือเขียนโปรแกรมเพื่อการสร้างระบบงาน โดยโปรแกรมที่ใช้ในการพัฒนาจะต้องพิจารณาถึงความเหมาะสมกับเทคโนโลยีที่ใช้งานอยู่ ซึ่งในปัจจุบันภาษาระดับสูงได้มีการพัฒนาในรูปแบบของ 4GL ซึ่งช่วยอำนวยความสะดวกต่อการพัฒนา รวมทั้งการมี CASE (Computer Aided Software Engineering) ต่างๆ มากมายให้เลือกใช้ตามความเหมาะสม
  5. ทดสอบและจัดเตรียมคู่มือการใช้งาน ขั้นที่ 5 ทดสอบ (Testing) เป็นขั้นตอนของการทดสอบระบบก่อนที่จะนำไปปฏิบัติการใช้งานจริง โดยจะทำการทดสอบข้อมูลเบื้องต้นก่อน ด้วยการสร้างข้อมูลจำลองเพื่อตรวจสอบการทำงานของระบบ หากมีข้อผิดพลาดเกิดขึ้นก็ย้อนกลับไปในขั้นตอนการพัฒนาโปรแกรมใหม่ โดยการทดสอบระบบนี้จะมีการตรวจสอบอยู่ 2 ส่วนด้วยกัน คือ การตรวจสอบรูปแบบภาษาเขียน และการตรวจสอบวัตถุประสงค์งานตรงกับความต้องการหรือไม่
  6. การติดตั้งเพื่อใช้งาน (System Implementation) ขั้นที่ 6 ติดตั้ง (Implementation) ขั้นตอนหลังจากที่ได้ทำการทดสอบจนมีความมั่นใจแล้วว่าระบบสามารถทำงานได้จริง และตรงกับความต้องการของผู้ใช้ระบบ จากนั้นจึงดำเนินการติดตั้งระบบเพื่อใช้งานจริงต่อไป
  7. การบำรุงรักษา (System Maintenance) ขั้นที่ 7 บำรุงรักษา (Maintenance) เป็นขั้นตอนของการปรับปรุงแก้ไขระบบหลังจากที่ได้มีการติดตั้งและใช้งานแล้ว ในขั้นตอนนี้อาจเกิดปัญหาของโปรแกรม ซึ่งโปรแกรมเมอร์จะต้องรีบแก้ไขให้ถูกต้อง หรือเกิดจากความต้องการของผู้ใช้งานที่ต้องการเพิ่มการทำงานอื่นๆ ซึ่งทั้งนี้ก็จะเกี่ยวข้องกับความต้องการของผู้ใช้ที่เคยตกลงกันก่อนหน้า