25 แบบฝึกหัด 1. ระบบหมายถึงอะไร และภาพรวมของระบบประกอบด้วยสิ่งใดบ้าง จงอธิบาย 2. ทำไมระบบธุรกิจ จึงเป็นระบบเปิด จงอธิบาย 3. ระบบงานของสถาบันการศึกษา สามารถแตกเป็นระบบย่อยต่างๆ อะไรได้บ้าง 4. ส่วนประกอบของระบบสารสนเทศ ประกอบด้วยส่วนใดบ้าง จงอธิบาย 5. ชนิดของระบบสารสนเทศ มีอะไรบ้าง จงสรุปมาให้เข้าใจพอสังเขป 6. นักวิเคราะห์ระบบคือใคร มีบทบาทสำคัญต่อธุรกิจอย่างไร 7. นักวิเคราะห์ระบบควรมีความรู้และทักษะด้านใดบ้าง 8. จงยกตัวอย่างปัญหาทางธุรกิจมา 1 ตัวอย่าง พร้อมกำหนดขั้นตอนหลักๆ ที่จะนำมาใช้เพื่อ แก้ไขปัญหากับกรณีดังกล่าว 9. ความจำเป็นต่อการร้องขอให้มีการนำระบบใหม่มาใช้แทนระบบงานเดิม มาจากสาเหตุใดบ้าง 10. จรรยาบรรณในวิชาชีพของตำแหน่งนักวิเคราะห์ระบบ ท่านคิดว่ามีความสำคัญอย่างไร
26 เฉลยแบบฝึกหัด 1. ระบบ (System) คือกลุ่มขององค์ประตอบต่างๆ ที่มีความสัมพันธ์กัน แต่ละองค์ประกอบจะ ประสานการทำงานร่วมกัน เพื่อบรรลุสู่เป้าหมายเดียวกัน 2. เนื่องจาก ธุรกิจจะประกอบด้วยระบบย่อยต่างๆ ที่ต้องทำงานร่วมกัน เพื่อไปสู่เป้าหมาย เดียวกัน นั่นก็คือ การสร้างผลกำไรให้แก่องค์กรนั่งเอง 3. ระบบลงทะเบียน ระบบการเรียนการสอน ระบบตรวจสอบเกรด ระบบตรวจสอบจบ เป็นต้น 4. - ฮาร์ดแวร์ (Hardware) คืออุปกรณ์ที่เราสามารถมองเห็น ละสัมผัสได้ เช่น อุปกรณ์ คอมพิวเตอร์ อุปกรณ์รอบข้าง และอุปกรณ์เครือข่าย เป็นต้น - ซอฟต์แวร์ (Software) คือกลุ่มของคำสั่ง หรือโปรแกรมที่นำมาใช้ควบคุมการทำงานอุปกรณ์ ฮาร์ดแวร์ - ข้อมูล (Data) คือข้อมูลดับ (Raw Data) ที่ประกอบด้วยตัวอักษร ตัวเลข รูปภาพ วีดีโอ และ เสียง ข้อมูลเหล่านี้อาจถูกจัดเก็บไว้ในลักษณะของรายละเอียด เช่น เรคอร์ด แฟ้มข้อมูล หรือ ฐานข้อมูล ซึ่งถือว่าเป็นข้อมูลที่ยังไม่สามารถนำไปใช้ประโยชน์ได้ทันที แต่จะเตรียมไว้เพื่อรอการ ประมวลผล - กระบวนการ (Processes) หรือขั้นตอนการทำงาน (Procedure) จะอธิบายถึงงานและฟัง ชันการทำงานทางธุรกิจ (Business Functions) ที่พนักงานในองค์กรจะต้องยืดถือและปฏิบัติตาม - บุคลากร (People) เป็นผู้ที่มีส่วนได้ส่วนเสียในระบบสารสนเทศ (Stakeholders) ซึ่ง เกี่ยวข้องกับผู้คนหลายกลุ่มด้วยกัน ไม่ว่าจะเป็น เจ้าของระบบ ผู้ใช้ระบบ นักวิเคราะห์ระบบ นัก ออกแบบระบบ โปรแกรมเมอร์และร้านจำหน่ายอุปกรณ์ไอที ซึ่งกลุ่มบุคคลเหล่านี้ ล้วนเกี่ยวข้องกับ งานระบบสารสนเทศทั้งสิ้น 5. - ระบบประมวลผลรายการประจำวัน (Transaction Processing Systems : TPS) - ระบบสารสนเทศเพื่อการจัดการ (Management Information Systems: MIS ) - ระบบสำนักงานอัตโนมัติ (Office Automation System: OAS) - ระบบสนับสนุนการตัดสินใจ (Decision Support Systems :DSS) - ระบบสารสนเทศสำหรับผู้บริหารระดับสูง (Executive Information Systems : EIS - ระบบผู้เชี่ยวชาญ (Expert Systems :ES) 6. นักวิเคราะห์ระบบ (System Analyst: SA) มีหน้าที่ประสานงานและติดต่อบุคคลต่างๆ เพื่อ รวบรวมข้อมูล รวบรวมความต้องการในองค์กรที่ประสบปัญหาด้านดำเนินงานทางธุรกิจเพื่อ ปรับปรุงหรือสร้างระบบใหม่ งานหลักคือการวางแผน การวิเคราะห์ความต้องการด้านสารสนเทศ และการประมวลผลของหน่วยงาน การเขียนข้อกำหนดของระบบใหม่ว่าควรทำอย่างไร ต้องใช้
27 อุปกรณ์ฮาร์ดแวร์ใดที่เหมาะสม การตรวจสอบพิจารณาเห็นสมควรที่จะนำระบบสารสนเทศมาใช้ หรือไม่ หรือควรดำเนินการปรับปรุงระบบเดิมเท่านั้น 7. ทักษะและความรู้ทางเทคนิค (Technical Knowledge and Skills) ทักษะและความรู้ทาง ธุรกิจ (Business Knowledge and Skills) ทักษะและความรู้เกี่ยวกับคน (People Knowledge and Skills) ความซื่อสัตย์และจรรยาบรรณในวิชาชีพ (Personal integrity and Ethics) 8. ลูกค้าต้องการสั่งซื้อสินค้าได้ทุกเวลา ไม่ว่าเป็นเวลาทำการปกติหรือเวลากลางคืนก็ตาม ดังนั้น ปัญหาก็คือ จะต้องมีกระบวนการสั่งซื้ออย่างไรที่อนุญาตให้ลูกค้าสามารถสั่งซื้อสินค้าจากบริษัทได้ ถึงแม้จะเป็นการสั่งซื้อสินค้านอกเหนือเวลาทำการก็ตาม โดยไม่ส่งผลต่อการเพิ่มต้นทุนด้านการขาย สินค้า 9. ต้องการปรับปรุงงานบริการให้ดียิ่งขึ้น เพื่อสนับสนุนสินค้าและบริการใหม่ๆ สินค้าและ บริการใหม่ๆ เพิ่มประสิทธิภาพในการทำงาน เป็นต้น 10. ด้วยภาระหน้าที่ของนักวิเคราะห์ระบบที่ต้องเข้าไปศึกษาถึงปัญหาต่างๆ ภายในองค์กร จึงทำให้ รู้ข้อมูลจากส่วนงานต่างๆ ขององค์กรเป็นจำนวนมาก ข้อมูลและสารสนเทศบางอย่างค่อนข้างเป็น ส่วนตัวและเป็นความลับ ไม่ว่าจะเป็นเรื่องเงินเดือน สุขภาพของพนักงาน หรือผลประเมินพนักงาน ซึ่งตัวนักวิเคราะห์ระบบจะต้องเก็บรักษาไว้เป็นความลับตามจรรยาบรรณในวิชาชีพ เพื่อไม่ให้ล่วงรู้ กับคู่แข่งหรือบุคคลภายนอก
28 1.2 การพัฒนาระบบสารสนเทศ ในการพัฒนาระบบสารสนเทศในองค์กรจะต้องมีการวิเคราะห์กระบวนการทำงานขององค์กร ผู้ ที่มีความสำคัญในกระบวนการพัฒนาระบบสารสนเทศ คือนักวิเคราะห์ระบบที่จะต้องทำการติดต่อ กับหน่วยงานที่ต้องการพัฒนาระบบสารสนเทศ ว่าการทำงานมีองค์ประกอบอะไรบ้าง เช่นขนาด ขององค์กร รายละเอียดการทำงาน ถ้าเป็นบริษัทขนาดใหญ่นักวิเคราะห์จะต้องเข้าใจให้ชัดเจน เกี่ยวกับมาตรฐาน การทำงาน กระบวนการทำงาน งานของนักวิเคราะห์ระบบเป็นงานที่ท้าทาย เนื่องจากนักวิเคราะห์ระบบจะต้องพบกับผู้คนมากมาย ทำให้สามารถเรียนรู้วิธีดำเนินธุรกิจต่างๆ ทำ ให้นักวิเคราะห์ระบบได้รับประสบการณ์ที่หลากหลายและเกิดทักษะในการออกแบบและพัฒนา ระบบต่างๆ ที่สามารถสร้างผลกระทบทางธุรกิจให้เกิดขึ้น วัตถุประสงค์หลักของการวิเคราะห์ระบบไม่ได้อยู่ที่การสร้างระบบให้เป็นระบบที่ดีที่สุด แต่อยู่ที่ การสร้างคุณค่าให้กับองค์กร ส่วนใหญ่มักจะหมายถึงผลกำไรที่เพิ่มขึ้น หลายระบบที่ล้มเหลวมี สาเหตุจากการที่นักวิเคราะห์ระบบพยายามที่จะสร้างระบบที่ดีที่สุด โดยที่ผู้พัฒนาระบบเองยังไม่มี ความชัดเจนในเรื่องของระบบที่เหมาะสมกับความต้องการขององค์กรหรือกระบวนการทางธุรกิจที่ เป็นอยู่ในปัจจุบัน สำหรับการพัฒนาระบบสารสนเทศ จำเป็นต้องอาศัยกระบวนการที่มีกรอบการทำงานที่ชัดเจน เพื่อที่จะทำให้ระบบสารสนเทศที่พัฒนาขึ้นมานั้นมีคุณภาพและตรงกับความต้องการของผู้ใช้มาก ที่สุด 1.2.1 วงจรการพัฒนาระบบ วงจรการพัฒนาระบบ (Systems Development Life Cycle: SDLC) ถือเป็นขั้นตอนหรือ กระบวนการในการพัฒนาระบบงาน ที่มีจุดเริ่มต้นและจุดสิ้นสุดของการปฏิบัติงาน เป็นวิธีการ พัฒนาระบบที่มีกรอบการทำงานที่เป็นโครงสร้างชัดเจนมีลำดับกิจกรรมในแต่ละระยะที่แน่นอน มัก ถูกนำไปใช้ในหลายๆ องค์กร ซึ่งโดยทั่วไป การพัฒนาซอฟต์แวร์ มักจะประกอบไปด้วยกลุ่ม กิจกรรม 3 ส่วนหลักๆ ด้วยกัน คือ การวิเคราะห์ การออกแบบ และการนำใช้ โดยกิจกรรมทั้งสาม เหล่านี้ สามารถนำมาใช้งานได้ดีกับโครงการซอฟต์แวร์ขนาดเล็ก ในขณะที่โครงการซอฟต์แวร์ขนาด ใหญ่ มักจำเป็นต้องใช้แบบแผนการพัฒนาซอฟต์แวร์ตามแนวทางของ SDLC จนครบทุกกิจกรรม ใน วงจรการพัฒนาระบบ มีขั้นตอน 5 ขั้นตอน ดังนี้1) การวางแผนระบบ (system planning) 2) การ วิเคราะห์ระบบ (system analysis) 3) การออกแบบระบบ (system design) 4) การพัฒนาระบบ (system implement) และ 5) การบำรุงรักษาระบบ (system maintenance)
29 ภาพที่ 2.1 วงจรการพัฒนาระบบ ในโครงการที่ต่างกันอาจเน้นวิธีการในวงจรการพันาระบบแตกต่างกันบ้างแต่ทุกโครงการ จะต้องมีขั้นตอนหลัก 5 ขั้นตอนข้างต้น โดยในแต่ละขั้นตอนจะใช้เทคนิคในการสร้างระบบและส่ง มอบระบบตามที่กำหนดไว้ในเอกสารเพื่อให้เกิดความเข้าใจที่ตรงกันระหว่างเจ้าของโครงการและ ผู้พัฒนาระบบ โครงการส่วนใหญ่จะใช้ขั้นตอนของวงจรการพัฒนาระบบในการดำเนินการตั้งแต่ เริ่มต้นจนจบโครงการ ทีมงานในโครงการจะเปลี่ยนไปในขั้นตอนต่างๆ ของวงจรการพัฒนาระบบ รวมทั้งมีการใช้เทคนิคต่างๆ ในแต่ละขั้นตอน ประเด็นสำคัญในเรื่องของวงจรการพัฒนาระบบที่ต้องทำความเข้าใจคือ ประเด็นเกี่ยวกับ ความรู้ทั่วไปเกี่ยวกับขั้นตอนและเทคนิคที่ใช้ในการพัฒนาระบบสารสนเทศ และประเด็นที่เกี่ยวกับ การทำความเข้าใจว่าวงจรการพัฒนาระบบเป็นกระบวนการของการพัฒนาและปรับปรุงอย่างค่อย เป็นค่อยไป เมื่อทำการวิเคราะห์ระบบจนได้แนวคิดของระบบใหม่แล้ว จึงส่งมอบแนวคิดเหล่านั้น เพื่อใช้เป็นข้อมูลในขั้นตอนของการออกแบบระบบ และเมื่อได้รายละเอียดวิธีการของระบบใหม่ที่จะ สร้างขึ้นแล้วจึงส่งมอบรายละเอียดที่ได้จากการออกแบบระบบ เพื่อนำไปใช้ในขั้นตอนการพัฒนา ระบบให้เกิดขึ้นจริง และเมื่อระบบเกิดขึ้นจริงและสามารถนำไปใช้ได้จริงแล้ว จึงนำไปสู่ขั้นตอนการ บำรุงรักษาเพื่อทำให้ระบบสารสนเทศมีประสิทธิภาพมากยิ่งขึ้น การวางแผนโครงการ การวางแผนโครงการ จัดเป็นกระบวนการพื้นฐานของความเข้าใจว่า ทำไม (Why) ระบบ สารสนเทศจึงสมควรที่จะสร้างขึ้นมา และจะต้องกำหนดทีมงานขึ้นมาดำเนินการสร้างระบบนี้ได้ อย่างไร โดยในช่วงของ การริเริ่มโครงการ (Project Initiate) จะต้องมีการกำหนดคุณค่าทางธุรกิจ ของระบบที่มีต่อองค์กร เช่น ระบบใหม่จะช่วยลดต้นทุนหรือเพิ่มรายได้ให้แก่องค์กรมากขึ้นอย่างไร
30 โดยคำเรียกร้องให้พัฒนาระบบใหม่อาจมาจากนอกเขตพื้นที่ของแผนกพัฒนาระบบก็ได้ เช่น มาจาก หน่วยธุรกิจต่างๆ ในองค์กร (เช่น แผนกการตลาด แผนกบัญชี และแผนกการเงิน ฯลฯ) หรือมา จากแบบฟอร์ม คำร้องของระบบ (System Request) ซึ่งคำร้องขอระบบจะนำเสนอถึงความ ต้องการทางธุรกิจที่เป็นบทสรุปอย่างย่อๆ พร้อมทั้งคำอธิบายเกี่ยวกับระบบใหม่ที่จะสนับสนุนงาน ในหน้าที่ให้ดียิ่งขึ้น หรือเพิ่มคุณค่าทางธุรกิจให้แก่องค์กรได้อย่างไร จากนั้นแผนกพัฒนาระบบก็จะ ทำงานร่วมกับเจ้าของระบบ เพื่อศึกษาและวิเคราะห์ความเป็นไปได้ ทั้งนี้โครงการจะได้รับการ สนับสนุนหรือไม่นั้นก็ขึ้นอยู่กับความเห็นชอบของผู้บริหาร สรุปกิจกรรมในระยะการวางแผน โครงการ ประกอบด้วย - กำหนดปัญหา (Problem Definition) - ศึกษาความเป็นไปได้ของโครงการ (Feasibility Study) - จัดทำตารางกำหนดเวลาโครงการ (Project Scheduling) - จัดตั้งทีมงานโครงการ (Staff the project) - ดำเนินการโครงการ (Launch the project) การวิเคราะห์ระบบ ระยะการวิเคราะห์จะตอบคำถามเกี่ยวกับสิ่งต่อไปนี้คือ ใคร (Who) เป็นผู้ใช้ระบบ มี อะไรบ้าง (What) ที่จะต้องทำ และทำที่ไหน (Where) เมื่อไร (When) โดยในระยะนี้ ทีมงานจะ ทำการศึกษาระบบงานปัจจุบันพร้อมระบุแนวทางในการปรับปรุงกระบวนการที่ดีขึ้น เพื่อพัฒนา เป็นแนวคิดสำหรับระบบใหม่ขึ้นมาสิ่งสำคัญของระยะนี้ก็คือ การรวบรวมความต้องการ (Requirements Gathering) ซึ่งนักวิเคราะห์ระบบสามารถรวบรวมความต้องการต่างๆ ได้จากการ สังเกตการณ์ทำงานของผู้ใช้ การสัมภาษณ์ การจัดทำแบบสอบถาม การอ่านเอกสารเกี่ยวกับการ ปฏิบัติงานของระบบงานปัจจุบันและระเบียบกฎเกณฑ์ต่างๆ ของบริษัท ซึ่งตลอดระยะเวลาของการ รวบรวมความต้องการ ก็จะได้พบปะกับผู้ใช้ในระดับต่างๆ ที่ทำให้ทราบถึงกระบวนการทำงาน ปัญหาที่เกิดขึ้น และแนวทางการแก้ไขปัญหาที่แนะนำโดยผู้ใช้ ดังนั้น การรวบรวมความต้องการ จึง เป็นกิจกรรมสำคัญเพื่อค้นหาความจริงและต้องทำความเข้าใจซึ่งกันและกัน เพื่อสรุปออกมาเป็น ข้อกำหนด (Requirements Specification) ที่ชัดเจน โดยข้อกำหนดเหล่านี้ เมื่อผู้ที่เกี่ยวข้องได้ อ่านแล้วจะต้องสามารถตีความหมายได้ตรงกัน
31 ภาพที่ 2.2 การรวบรวมความต้องการต่างๆ เพื่อนำมาสรุปเป็นข้อกำหนด ภายหลังจากการนำความต้องการต่างๆ มาสรุปเป็นข้อกำหนดที่ชัดเจนแล้ว ขั้นตอนต่อไป คือนำแนวคิดเกี่ยวกับระบบและแบบจำลองมารวมเข้าด้วยกันเป็นเอกสารที่เรียกว่า ข้อเสนอระบบ (System Proposal) เพื่อนำเสนอแก่ผู้สนับสนุนโครงการ หรือผู้มีอำนาจในการตัดสินใจโครงการว่า จะให้เดินหน้าต่อไปหรือไม่ โดยเอกสารข้อเสนอระบบ จะประกอบด้วยรายละเอียดความต้องการ ของระบบใหม่ ที่ถูกนำเสนอผ่าน แบบจำลองกระบวนการ ซึ่งเป็นแผนภาพแสดงการไหลของข้อมูล ไปยังโปรเซสหรือกระบวนการต่างๆ และ แบบจำลองข้อมูล ที่ใช้อธิบายความสัมพันธ์ระหว่างข้อมูล ที่มีอยู่ในระบบ ภาพที่ 2.3 การนำความต้องการมาวิเคราะห์เพื่อสร้างแบบจำลองเชิงแนวคิด สรุปกิจกรรมในระยะการวิเคราะห์ ประกอบด้วย - วิเคราะห์ระบบงานปัจจุบัน - รวบรวมข้อมูลและความต้องการในด้านต่างๆ จากนั้นนำมาวิเคราะห์เพื่อสรุปเป็นข้อ กำหนดให้มีความถูกต้องและชัดเจน - นำข้อกำหนดมาพัฒนาออกมาเป็นความต้องการของระบบใหม่ - สร้างแบบจำลองกระบวนการ (Data Flow Diagram : DFD)
32 - สร้างแบบจำลองแบบข้อมูลจำลองข้อมูล (Entity Relationship Diagram : ERD) - รวบรวมเอกสารที่สร้างขึ้นมาจัดทำเป็นข้อเสนอระบบ (System Proposal) เพื่อยื่นต่อ คณะกรรมการหรือผู้มีอำนาจการตัดสินใจ ให้รับรองโครงการ การออกแบบระบบ การออกแบบระบบ (system design) เป็นขั้นตอนการตัดสินใจว่า ระบบจะดำเนินการไป ได้อย่างไร (How) ในด้านของการจัดหาอุปกรณ์ฮาร์ดแวร์ ซอฟต์แวร์ โครงสร้างเครือข่ายที่จะ นำมาใช้ การปฏิสัมพันธ์ระหว่างผู้ใช้กับระบบ รวมถึงแบบฟอร์มและรายงานต่างๆ ที่จะต้องถูก นำมาใช้ นอกจากนี้ ยังรวมถึงโปรแกรม ฐานข้อมูล และแฟ้มข้อมูลที่จำเป็น อย่างไรก็ตาม ขั้นตอน ในระหว่างการออกแบบนั้น จะมุ่งประเด็นเกี่ยวกับวิธีการดำเนินงานระบบด้วยการนำแบบจำลอง เชิงตรรก (Logical Model) ที่ได้จากระยะการวิเคราะห์มาพัฒนาเป็นแบบจำลองเชิงกายภาพ (Physical Model) มาใช้งานให้เกิดผล โดยที่ การวิเคราะห์ มุ่งเน้นการแก้ปัญหาอะไร (What) ส่วนการออกแบบ มุ่งเน้นการแก้ปัญหาอย่างไร (How) ภาพที่ 2.4 การนำแบบจำลองเชิงแนวคิดมาออกแบบเป็นแบบจำลองเชิงกายภาพ สำหรับระยะนี้ กลยุทธ์การจัดหาระบบ จะต้องได้รับการพัฒนาขึ้นมาเป็นอันดับแรก เพื่อจะ ได้สร้างความกระจ่างเกี่ยวกับแนวทางในการพัฒนาระบบว่าจะเลือกตัดสินใจพัฒนาเอง หรือจะซื้อ โปรแกรมสำเร็จที่มีอยู่ตามท้องตลาดมาใช้ หรือว่าจ้างหน่วยงานภายนอกมาพัฒนาระบบให้ ต่อมาก็ จะทำการออกแบบสถาปัตยกรรมของระบบ ที่อธิบายถึงฮาร์ดแวร์ ซอฟต์แวร์ และโครงสร้าง พื้นฐานด้านเครือข่ายที่ถูกนำมาใช้งาน ซึ่งโดยส่วนใหญ่ มักจะเพิ่มเติมหรือปรับปรุงเปลี่ยนแปลง ระบบจากโครงสร้างพื้นฐานเดิมที่มีอยู่ในองค์กรนั้นๆ ในขณะที่ การออกแบบส่วนประสานผู้ใช้ (User Interface) จะเกี่ยวข้องกับการปฏิสัมพันธ์ระหว่างผู้ใช้กับระบบ ไม่ว่าจะเป็นการโต้ตอบกัน ผ่านเมนูปุ่มต่างๆ บนหน้าจอภาพ รวมถึงแบบฟอร์มและรายงานที่ระบบต้องใช้ ส่วนการออกแบบ ฐานข้อมูล ก็จะถูกพัฒนาขึ้นมา เพื่อให้รู้ว่าต้องมีข้อมูลอะไรบ้าง ที่ต้องจัดเก็บไว้ในฐานข้อมูล และ
33 ลำดับสุดท้ายคือ การออกแบบโปรแกรม เพื่อนำไปใช้กับการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ในระยะการนำไปใช้ต่อไป สรุปกิจกรรมในระยะการออกแบบ ประกอบด้วย - การจัดหาระบบ - ออกแบบสถาปัตยกรรมของระบบ (Architecture Design) - ออกแบบเอาร์พุตและยูสเซอร์อินเตอร์เฟซ - การออกแบบฐานข้อมูล - การสร้างต้นแบบ - ออกแบบโปรแกรม การพัฒนาระบบ การพัฒนาระบบ (system implementation) เป็นขั้นตอนการดำเนินการให้เกิดระบบจริง กิจกรรมต่างๆ ในระยะการนำไปใช้จะเกี่ยวข้องกับการสร้างระบบ การทดสอบและติดตั้งระบบ โดย มีจุดประสงค์หลักที่ไม่ใช่มีแค่เพียงการสร้างผลิตภัณฑ์ให้มีความน่าเชื่อถือ และตอบสนองฟังก์ชั่น การทำงานทางธุรกิจตามหน่วยงานต่างๆ ได้อย่างสมบูรณ์เท่านั้น แต่จะต้องรวมถึงความมั่นใจว่าผู้ใช้ ระบบทุกๆ คนได้ผ่านการฝึกอบรมใช้งาน เพื่อเตรียมความพร้อมต่อการใช้ระบบสารสนเทศให้เกิด ประโยชน์ต่อองค์กรดังที่ได้คาดหวัง โดยกิจกรรมก่อนๆ ที่ได้ดำเนินการมาแล้วนั้น จะถูกนำมา รวมเข้าด้วยกันเพื่อนำไปสู่ระบบการปฏิบัติงานในที่สุด ภาพที่ 2.5 การนำแบบจำลองเชิงกายภาพมาทำการพัฒนาเป็นโปรแกรม การสร้างระบบ จัดเป็นขั้นตอนแรกของระยะนี้ โดยระบบที่สร้างขึ้นจะได้รับการทดสอบ เพื่อให้เกิดความมั่นใจว่าสามารถดำเนินงานตรงตามที่ออกแบบไว้หรือไม่ นอกจากนี้ยังมีกิจกรรม การแปลงข้อมูล ด้วยการแปลงข้อมูลจากระบบเก่ามาสู่ระบบใหม่ เมื่อระบบได้รับการติดตั้ง (Installation) เพื่อใช้งานแทนระบบเดิม ก็ต้องตัดสินใจว่าจะใช้วิธีการปรับเปลี่ยนระบบด้วยวิธีด้วย
34 ใด เช่น จะปรับเปลี่ยนด้วยวิธีการนำระบบใหม่มาใช้ทดแทนระบบเดิมโดยทันที หรือจะเลือกวิธีการ ปรับเปลี่ยนแบบคู่ขนาน ที่ยังคงรันระบบงานเดิมและระบบงานใหม่ควบคู่กันไปสักระยะหนึ่ง จนกระทั่งมั่นใจว่าระบบใหม่มีความน่าจะเชื่อถือ จึงยกเลิกระบบงานเดิมไป แล้วหันมาใช้ระบบใหม่ แทน ซึ่งวิธีนี้จะมีความปลอดภัยสูงกว่า แต่ก็ต้องแลกกับการใช้เวลาและกำลังคนที่มากกว่าเช่นกัน เมื่อระบบใหม่ถูกใช้งานมาระยะเวลาหนึ่ง ก็จะต้องทำ การประเมินผลระบบภายหลังการ ติดตั้ง เพื่อประเมินการทำงานของระบบใหม่ว่าเป็นไปตามเป้าหมายที่กำหนดไว้หรือไม่ ผู้ใช้มีความ พึงพอใจน้อยเพียงใด เป็นไปตามคาดหวังหรือไม่ อย่างไร และมีส่วนใดจำเป็นต้องได้รับการปรับแต่ง เพิ่มเติม สรุปกิจกรรมในระยะการนำไปใช้ ประกอบด้วย - สร้างระบบ - ตรวจสอบความถูกต้องและทดสอบระบบ - แปลงข้อมูล - ติดตั้งระบบ - จัดทำเอกสารระบบ - ฝึกอบรมและสนับสนุนผู้ใช้ - ประเมินผลระบบ การบำรุงรักษาระบบ การบำรุงรักษาระบบ (system maintenance) โดยปกติแล้ว ระยะการบำรุงรักษา จะไม่ ถูกนำเข้าไปรวมไว้ขั้นตอนของวงจรการพัฒนาระบบ จนกระทั่งภายหลังจากระบบได้มีการติดตั้ง เพื่อใช้งานแล้วเท่านั้น ระยะนี้จะใช้เวลายาวนานที่สุดเมื่อเทียบกับระยะอื่นๆ ที่ผ่านมาเนื่องจาก ระบบจะตอบได้รับการบำรุงรักษาตลอดระยะเวลาที่มีการใช้งาน โดยสิ่งที่คาดหวังขององค์กรก็คือ ระบบจะสามารถใช้งานได้ยาวนานหลายปี และรองรับเทคโนโลยีใหม่ๆ ในอนาคตได้ ดังนั้น ในช่วง ระยะของการบำรุงรักษา จึงสามารถเพิ่มเติมคุณสมบัติใหม่ๆ เข้าไปเพื่อเพิ่มประสิทธิภาพในการ ทำงานให้กับระบบได้ ซึ่งคุณสมบัติใหม่ๆ เหล่านี้ อาจมาจากความต้องการของผู้ใช้เอง เช่น ผู้ใช้งาน เพิ่งค้นพบข้อผิดพลาดจากระบบ ซึ่งจะต้องได้รับการแก้ไขให้ถูกต้อง รวมถึงการร้องขอให้เขียนโมดูล โปรแกรมใหม่ๆ เพิ่มเติม เพื่อการสนับสนุนกระบวนการทางธุรกิจใหม่ๆ เป็นต้น นอกจากนี้ แรง กดดันที่มาจากสภาพแวดล้อมและเทคโนโลยี ก็จัดเป็นสิ่งหนึ่งที่ทำให้องค์กรต้องหันมาปรับปรุง ระบบ ให้สามารถรองรับคุณสมบัติใหม่ๆ มากขึ้น เพื่อสร้างความได้เปรียบในเชิงแข่งขัน สรุปกิจกรรมในระยะการบำรุงรักษา ประกอบด้วย - การบำรุงรักษาระบบ - การเพิ่มเติมคุณสมบัติใหม่ๆ เข้าไปในระบบ
35 - การสนับสนุนงานผู้ใช้ 1.2.2 แนวคิดการออกแบบระบบเชิงโครงสร้าง กระบวนการพัฒนาระบบเชิงโครงสร้าง เป็นวิธีที่เป็นทางการในการพัฒนาระบบสารสนเทศ ตามวงจรการพัฒนาระบบ อาจมีหลายองค์กรที่ใช้วิธีการพัฒนาระบบแตกต่างกันไปบ้าง แต่ทุก ระบบต่างมุ่งเน้นขั้นตอนตามวงจรการพัฒนาระบบเช่นเดียวกัน วิธีการที่เป็นทางการเป็นวิธี มาตรฐานที่ใช้กันในหน่วยงานภาครัฐในขณะที่หน่วยงานอื่นๆ อาจได้รับการพัฒนาโดยบริษัทที่ ปรึกษา หลายองค์กรจึงมีวิธีการพัฒนาระบบที่ใช้กันเป็นการภายใน เป็นขั้นตอนของวงจรการพัฒนา ระบบขององค์กรหรือบริษัทนั้นๆ มีหลายวิธีที่ใช้จำแนกวิธีการพัฒนาระบบ คือ การพัฒนาระบบ อาจใช้วิธีมุ่งเน้นไปที่กระบวนการทางธุรกิจหรือข้อมูลที่รองรับการทำธุรกิจ หรือเป็นระเบียบวิธีที่มี ขั้นตอนกระบวนการเป็นศูนย์กลาง หรือเป็นวิธีการที่เน้นแนวคิดการกำหนดขั้นตอนกระบวนการ หรือวิธีการใช้ข้อมูลเป็นศูนย์กลางซึ่งเป็นวิธีที่เน้นรูปแบบข้อมูลเป็นหลัก โดยเน้นการกำหนดพื้นที่ที่ ใช้จัดเก็บข้อมูล การออกแบบระบบเชิงโครงสร้าง 1) การพัฒนาระบบแบบน้ำตก (Water fall model) เป็นวิธีการออกแบบแบบดั้งเดิมที่มีแบบแผนและยังคงใช้กันจนถึงปัจจุบัน นักวิเคราะห์ ระบบและผู้ใช้จะดำเนินการอย่างเป็นลำดับขั้นตอน จากขั้นตอนแรกไปยังขั้นตอนต่อๆ ไป เอกสารที่ ต้องส่งมอบในแต่ละขั้นตอน จะนำเสนอให้กับผู้สนับสนุนโครงการเพื่อขออนุมัติเป็นระยะๆ เมื่อ โครงการได้รับการอนุมัติในขั้นตอนใดแล้ว จึงจะดำเนินงานขั้นตอนต่อไปจนสิ้นสุดขั้นตอนสุดท้าย จึงเรียกวิธีการนี้ว่า การพัฒนาระบบแบบน้ำตก เพราะการพัฒนาจะขยับเดินหน้าไปทีละขั้นตอนใน ลักษณะคล้ายน้ำตก แต่ก็อาจขยับย้อนกลับได้ เช่น จากการออกแบบระบบย้อนกลับไปที่การ วิเคราะห์ระบบ เป็นต้น ภาพที่ 2.6 เปรียบเทียบ Water Fall Model แบบดั้งเดิม กับ แบบทวนซ้ำ (Iteration)
36 การพัฒนาระบบแบบน้ำตก ในรูปแบบเดิม จะมีความคล้ายคลึงกับวงจรการพัฒนาระบบ โดยเมื่อได้เข้าสู่ขั้นตอนใดแล้วจะไม่มีการย้อนกลับมาทำขั้นตอนก่อนหน้าอีก เช่น เมื่อเข้าสู่การ เขียนโปรแกรม นั่นหมายถึงพร้อมที่จะนำโปรแกรมไปทดสอบและใช้งานจริงต่อไป ไม่สามารถ กลับไปแก้ไขได้ ซึ่งหากว่ากันตามความเป็นจริงแล้วเหตุการณ์การย้อนกลับไปทำขั้นตอนก่อนหน้า ย่อมเกิดขึ้นได้เสมอ เช่น นักวิเคราะห์อาจมองเห็นปัญหาหรือพบข้อผิดพลาดที่เกิดขึ้นในภายหลัง หรือมีอะไรบางอย่างจำเป็นต้องได้รับการเปลี่ยนแปลงอย่างเร่งด่วน จำเป็นต้องกลับไปแก้ไขใน ขั้นตอนก่อนหน้า ดังนั้น จึงมีการปรับปรุงโมเดลนี้ใหม่ด้วยการผนวกคุณสมบัติแบบทวนซ้ำ (Iteration) ดังภาพที่ 2.6 (b) ข้อเสียของการพัฒนาระบบแบบน้ำตกคือ ระบบที่จะได้รับการพัฒนา จะต้องรอให้การ ออกแบบระบบเสร็จสมบูรณ์ทั้งหมดก่อน จึงจะดำเนินการเขียนโปรแกรม ซึ่งในโลกแห่งความเป็น จริง คงเป็นเรื่องที่ยากทีเดียว กับการออกแบบระบบโดยรวมทั้งหมด ให้มีความสมบูรณ์ในคราวเดียว อีกทั้งกระบวนการทดสอบ ก็จะอยู่ลำดับท้ายๆ ด้วย ดังนั้น หากระบบงานได้รับการทดสอบแล้ว พบว่ามีข้อผิดพลาดมากมาย ไม่ตรงตามความต้องการของผู้ใช้ ซึ่งหากเหตุการณ์นี้เกิดขึ้นจริง ย่อม หมายถึงปัญหาที่เกิดขึ้นได้รุมเร้าและส่งผลกระทบต่อโครงการค่อนข้างมากแล้ว จึงมีโอกาสที่จะต้อง วนกลับไปยังระยะก่อนหน้าไปเรื่อย ๆ จนกระทั่งกรณีเลวร้ายสุด คือการย้อนกลับไปยังระยะแรกที่ ต้องรวบรวมความต้องการใหม่ ทำให้สูญเสียทั้งเวลาและค่าใช้จ่าย เนื่องจากเหมือนกับต้องเริ่มต้น ทำใหม่อีกครั้ง 2) การพัฒนาระบบแบบรวดเร็ว (Rapid Application Development: RAD) เป็นวิธีการที่นำมาแก้ปัญหาเรื่องความล่าช้าในการพัฒนาระบบสารสนเทศ วิธีนี้ยังคงใช้ หลักการของวงจรการพัฒนาระบบ แต่พยายามที่จะแก้จุดอ่อนของการออกแบบเชิงโครงสร้าง โดย การปรับขั้นตอนในวงจรการพัฒนาระบบบางส่วนให้สามารถพัฒนาได้อย่างรวดเร็ว ลดเวลา ใช้ เทคโนโลยีที่มีมาใหม่และเครื่องมือช่วยสร้างต่างๆ เพื่อช่วนในการพัฒนาระบบสารสนเทศ โดยให้ ผู้ใช้เข้ามามีส่วนร่วมทำให้ผู้ใช้สามารถเข้าใจระบบและสามารถให้คำแนะนำในการแก้ไขระบบให้ ตรงกับความต้องการของผู้ใช้ ส่วนใหญ่วิธีนี้จะแนะนำให้นักวิเคราะห์ระบบใช้เทคนิคพิเศษและใช้ คอมพิวเตอร์เป็นเครื่องมือในการวิเคราะห์ ออกแบบ และพัฒนาระบบให้รวดเร็วยิ่งขึ้น เช่น การใช้ เครื่องมือวิศวกรรมซอฟต์แวร์ช่วยงานคอมพิวเตอร์ (Computer-Aided Software Engineering tool: CASE tool) และการใช้ภาษาโปรแกรมรุ่นที่ 4 (fourth-generation programming language: 4GL) ซึ่งสามารถลดความซับซ้อนและช่วยเพิ่มความเร็วในการเขียนโปรแกรม วิธีการ พัฒนาระบบอย่างรวดเร็วยังสามารถจัดการระบบตามที่ผู้ใช้คาดหวัง เนื่องจากการใช้เครื่องมือและ เทคนิคจะสามารถเพิ่มความเร็วในการพัฒนาระบบตามความต้องการของผู้ใช้อย่างรวดเร็ว ผู้ใช้ที่ เข้าใจเทคโนโลยีสารสนเทศในปัจจุบันมีจำนวนมากขึ้นจึงช่วยลดปัญหาเมื่อใช้วิธีการดังกล่าว แต่
37 วิธารนี้ยังต้องใช้เวลามากกับเรื่องของเอกสารข้อกำหนด วิธีการใช้กระบวนการเป็นศูนย์กลาง วิธีการใช้ข้อมูลเป็นศูนย์กลาง และวิธีการเชิงวัตถุ ทั้ง 3 วิธีนี้จึงจัดเป็นวิธีการพื้นฐานของวิธีการ พัฒนาระบบแบบรวดเร็ว วิธีการพัฒนาระบบแบบรวดเร็วสามารถลดขั้นตอนของวงจรการพัฒนา ระบบลงเหลือ 4 ขั้นตอนดังตารางเปรียบเทียบต่อไปนี้ ตารางที่ 2.1 เปรียบเทียบขั้นตอนของวงจรการพัฒนาระบบและการพัฒนาระบบแบบรวดเร็ว ขั้นตอนของวงจรการพัฒนาระบบ การพัฒนาระบบแบบรวดเร็ว 1. การวางแผน 2. การศึกษาความเป็นไปได้ 3. การวิเคราะห์ระบบ 4. การออกแบบระบบ 5. การพัฒนาระบบ 6. การทดสอบระบบ 7. การบำรุงรักษาระบบ 1. การวางแผนกำหนดความต้องการ 2. การออกแบบโดยผู้ใช้มีส่วนร่วม 3. การสร้างระบบ 4. การเปลี่ยนผ่านระบบ จะเห็นได้ว่าการพัฒนาระบบแบบรวดเร็วจะมองข้ามขั้นตอนการออกแบบระบบโดย นักวิเคราะห์ระบบ และจะไม่คำนึงถึงการทำงานกับข้อมูลจำนวนมาก ซึ่งเมื่อนำไปใช้ในงานจริงอาจ พบปัญหาในด้านประสิทธิภาพการทำงานของระบบตามมาได้ 3) การสร้างต้นแบบ (prototyping) ในการพัฒนาระบบเมื่อเราเก็บความต้องการของระบบเรียบร้อยแล้ว ก่อนที่เราจะเริ่มต้น การพัฒนาระบบ เราควรจัดทำต้นแบบ (prototype) สำหรับนำเสนอให้ผู้ใช้งานเห็นกระบวนการ และรูปแบบของการใช้งานระบบก่อน จากประสบการณ์ที่ผ่านมา เมื่อผู้ใช้งานได้เห็นต้นแบบที่เราได้ นำเสนอทำให้ผู้ใช้งาน คิดเงื่อนไข หรือความต้องการได้มากขึ้น และยังทำให้ผู้ใช้งานกับผู้พัฒนา ระบบเข้าใจขั้นตอนการทำงานที่ตรงกัน ซึ่งการจัดทำต้นแบบนั้น อาจจะไม่ได้นำมาใช้ในการพัฒนา ระบบจริงก็ได้ เนื่องจากเมื่อผู้ใช้งานเห็นหน้าจอ หรือ กระบวนการที่เราได้นำเสนอต้นแบบไปนั้น มี การแก้ไขหรือเพิ่มเติม หรือ เมื่อเราได้เริ่มพัฒนาไปแล้วผู้พัฒนาระบบเห็นว่า หน้าจอที่ได้ทำเป็น ต้นแบบไว้นั้น ใช้งานยากเกินไป หรือ มีแนวทางที่จะทำให้การใช้งานง่ายขึ้น หรือ ไม่สามารถจัดเก็บ ข้อมูลได้ตามที่ออกแบบไว้ เป็นต้น ก็สามารถปรับเปลี่ยนได้ การสร้างต้นแบบของการวิเคราะห์และการออกแบบและการดำเนินงานให้เกิดระบบควบคู่ กันไป โดยมีการดำเนินการทั้ง 3 ขั้นตอน เป็นวงจรไปจนกว่าระบบจะเสร็จสมบูรณ์ วิธีการนี้พื้นฐาน ของการวิเคราะห์และออกแบบระบบจะดำเนินการทันทีที่เริ่มต้นสร้างต้นแบบระบบ ต้นแบบจะเป็น
38 ส่วนแรกของระบบที่ผู้ใช้จะได้ใช้ จึงแสดงให้ทั้งผู้ใช้และผู้สนับสนุนโครงการได้มองเห็นระบบ ซึ่งจะ ใช้การวิเคราะห์ ออกแบบ และการดำเนินงานให้เกิดระบบจริง การทำต้นแบบซ้ำในบาง กระบวนการซึ่งก็จัดว่ายังอยู่ในวงจรการพัฒนาระบบ จนกระทั่งนักวิเคราะห์ ผู้ใช้ และผู้ให้การ สนับสนุนยอมรับว่าเป็นต้นแบบที่สามารถทำงานได้ตามที่ต้องการ พอที่จะติดตั้งใช้งานในองค์กร หลังจากที่ต้นแบบได้รับการยอมรับ ต้นแบบนี้จะถูกเรียกว่า “ระบบ” หลังจากนี้จะมีการติดตั้งและ ปรับแต่งจนกว่าจะมีการยอมรับว่าเป็นระบบใหม่ ประโยชน์ของวิธีการสร้างต้นแบบคือ การได้ระบบ อย่างรวดเร็วให้ผู้ใช้โต้ตอบกับระบบ แม้จะยังไม่สมบูรณ์พร้อมใช้งาน ในตอนแรกการทำต้นแบบจะ ทำให้ผู้ใช้มั่นใจทีมงานในโครงการว่าจะสามารถพัฒนาระบบได้โดยไม่มีความล่าช้า เนื่องจากผู้ใช้จะ มองเห็นความคืบหน้า และการสร้างต้นแบบจะช่วยให้การปรับแต่งทำได้รวดเร็วยิ่งขึ้นตามความ ต้องการที่แท้จริงของผู้ใช้ แทนที่จะพยายามทำความเข้าใจรายละเอียดของระบบบนกระดาษ ซึ่ง ผู้ใช้ไม่สามารถโต้ตอบกับต้นแบบให้เข้าใจถึงสิ่งที่ระบบจะสามารถทำได้ ปัญหาสำคัญในการสร้างต้นแบบคือ การที่ระบบได้รับการเผยแพร่อย่างรวดเร็ว ดังนั้น การ วิเคราะห์จึงต้องทำอย่างรอบคอบ บ่อยครั้งที่ต้นแบบได้รับการยอมรับจนกระทั่งนักวิเคราะห์ ตัดสินใจเริ่มต้นออกแบบระบบ แต่กลับต้องประสบความยุ่งยาก เกิดปัญหา เนื่องจากเป็นการพัฒนา ระบบที่มีความซับซ้อน ปัญหาพื้นฐานและปัญหาต่างๆ ที่เกิดขึ้นไม่ได้รับการยอมรับ จนมาถึง ขั้นตอนในการพัฒนา 4) การสร้างต้นแบบใช้แล้วทิ้ง (throwaway prototyping) การสร้างต้นแบบใช้แล้วทิ้ง คล้ายคลึงกับการสร้างต้นแบบแบบที่ใช้กันในการพัฒนา ต้นแบบทั่วไป วิธีการสร้างต้นแบบแบบใช้แล้วทิ้ง มีขั้นตอนการวิเคราะห์และการรวบรวมข้อมูล ค่อนข้างละเอียด การพัฒนาแนวคิดของระบบมีได้หลายลักษณะตามความต้อบการของผู้ใช้ บางครั้ง จึงอาจเข้าใจยากและอาจจะมีปัญหาด้านเทคนิค ปัญหาต่างๆ เหล่านี้จะได้รับการวิเคราะห์ ออกแบบ และสร้างต้นแบบ ต้นแบบไม่ได้เป็นระบบการทำงานจริง แต่เป็นเพียงแบบจำลองที่แสดง ตัวอย่างส่วนหนึ่งของระบบที่ยังต้องปรับแต่ง เพิ่มเติม แต่จะมีรายละเอียดที่เพียงพอให้ผู้ใช้สามารถ เข้าใจได้ เช่น ในระบบการสั่งซื้อ ผู้ใช้อาจไม่เห็นภาพชัดเจนในวิธีการป้อนข้อมูลการสั่งซื้อ นักวิเคราะห์และออกแบบจึงอาจสร้างหน้าเว็บการสั่งซื้อด้วยภาษาเอชทีเอ็มแอล (HTML) เพื่อช่วย ให้ผู้ใช้เห็นภาพระบบมากขึ้น กรณีนี้จึงเป็นการจำลองหน้าจอขึ้นเป็นระบบ ซึ่งโดยแท้จริงยังไม่ได้มี การทำงานใดๆ เลย
39 ภาพที่ 2.7 การสร้างต้นแบบแบบใช้แล้วทิ้ง ระบบที่พัฒนาขึ้นโดยใช้ต้นแบบแบบนี้จึงอาจต้องอาศัยการออกแบบต้นแบบหลายๆ ชิ้น ระหว่างการวิเคราะห์และการออกแบบ ต้นแบบจึงถูกนำมาใช้เพื่อลดความเสี่ยงในเรื่องของความ เข้าใจของผู้ใช้ในส่วนที่เกี่ยวข้องกับระบบที่จะพัฒนา เพื่อยืนยันว่านักวิเคราะห์และออกแบบมีความ เข้าใจที่ตรงกันกับผู้ใช้ก่อนที่ระบบจริงจะถูกสร้างขึ้น และเมื่อปัญหาได้รับการแก้ไข โครงการจะเข้า สู่ขั้นตอนการออกแบบและการดำเนินงานจนเกิดระบบจริง ณ จุดนี้ต้นแบบที่ออกแบบไว้จะถูกวาง ทิ้งไม่ได้ถูกนำมาใช้งานต่อ วิธีการสร้างต้นแบบแบบใช้แล้วทิ้งอาจทำให้เสียประโยชน์จากการที่ต้องใช้เวลาในการ วิเคราะห์และออกแบบ แต่ข้อดีของการใช้ต้นแบบแบบนี้คือ ทำให้สามารถปรับแต่งประเด็นสำคัญ ได้ก่อนที่ระบบจริงจะถูกสร้างขึ้น จึงอาจเป็นวิธีที่ต้องใช้เวลานานก่อนที่จะมีการส่งมอบระบบ แต่ วิธีการนี้มักจะได้ระบบที่มีความเสถียรและน่าเชื่อถือ 5) การพัฒนาแบบอะไจล์ (Agile development) เนื่องจากปัจจุบันมีการพัฒนาระบบสารสนเทศมากมายที่ประสบปัญหาการส่งมอบระบบไม่ ทันเวลา สาเหตุส่วนหนึ่งมาจากการที่ผู้ใช้ไม่ได้มีส่วนร่วมในการพัฒนาระบบตั้งแต่เริ่มแรก หรืออาจ เกิดจากผู้ใช้มีความต้องการที่เปลี่ยนแปลงอยู่บ่อยๆ ทำให้การพัฒนาระบบเกิดปัญหางานไม่เสร็จ ตามเวลา การพัฒนาแบบอะไจล์อาจแก้ปัญหาเหล่านี้ได้ เนื่องจากเป็นวิธีที่ตรงกันข้ามกับวิธีการ พัฒนาระบบที่ต้องมีการวางแผนอย่างเป็นขั้นตอน วิธีนี้ไม่มีข้อจำกัดตายตัว จะเน้นที่ความรวดเร็ว ยืดหยุ่น พร้อมที่จะรับความเปลี่ยนแปลง จึงอาจมองแล้วตรงกันข้ามกับวิธีการพัฒนาระบบที่มีการ วางแผน โดยวิธีการพัฒนาแบบอะไจล์จะเน้นที่การปรับปรุงระบบได้อย่างรวดเร็ว หรือนัยหนึ่งวิธีนี้ จะเน้นการพัฒนาเพื่อรองรับการเปลี่ยนแปลงในอนาคต ทั้งนี้มิได้หมายความว่าการพัฒนาแบบอะ ไจล์จะไม่ได้มีการวางแผนใดๆ แต่โดยหลักการการพัฒนาแบบอะไจล์จะมีการแบ่งงานออกเป็นงาน
40 เล็กๆ มีการวางแผนการทำงานออกเป็นช่วงเวลาสั้นๆ ในแต่ละช่วงของการทำงานยังคงใช้รูปแบบ วงจรการพัฒนาระบบเหมือนเดิม ซึ่งรวมทั้งการวางแผน การวิเคราะห์ การรวบรวมความต้องการ การออกแบบ การพัฒนาระบบ และการทดสอบระบบ ซึ่งเมื่อการพัฒนาระบบส่วนใดเสร็จสิ้นลง ทีมงานพัฒนาระบบจะนำเสนองานส่วนที่พัฒนาเสร็จแล้วให้ผู้ใช้ได้ทราบ และการพัฒนาระบบส่วน อื่นๆ ที่เหลือจะดำเนินการอย่างต่อเนื่องต่อไป เพื่อสร้างความพึงพอใจแก่ลูกค้า ซึ่งนับเป็นหัวใจ สำคัญของการพัฒนาแบบอะไจล์ Manifesto for Agile Software Development เป็นแถลงการณ์ที่ได้กำหนดคุณค่า พื้นฐาน 4 ประการขึ้นมา ในหัวข้อ “ปรัชญาและคุณค่าของการพัฒนาระบบตามแนวทางของ Agile” อันประกอบด้วย 1) มุ่งตอบสนองการเปลี่ยนแปลงมากกว่าการดำเนินงานตามแผน หมายความว่า Agile ได้มองเห็นความเป็นจริงว่า แผนการต่างๆ ที่กำหนดไว้ในโครงการ เมื่อนำมาปฏิบัติงานจริง แล้ว อาจไม่สามารถดำเนินงานตามแผนได้ทุกครั้งไป ดังนั้น ตารางกำหนดเวลาโครงการของ Agile จึงมีความยืดหยุ่นสูง โดยทีมงานในโครงการจะช่วยกันวางแผนและดำเนินงานใดๆ เพื่อตอบสนอง การเปลี่ยนแปลงที่เกิดขึ้นได้ทุกเมื่อ ทั้งนี้ก็เพื่อให้โครงการมีความคืบหน้า 2) มุ่งความสำคัญที่ตัวบุคคลและการปฏิสัมพันธ์มากกว่ากระบวนการและเครื่องมือ เทคนิค Agile จะเน้นการปฏิสัมพันธ์ด้วยสื่อสารระหว่างทีมงานกับผู้ใช้ เพื่อให้ได้มาซึ่งสิ่งที่ต้องการ จริงๆ มากกว่าการมุ่งเน้นที่ทฤษฎี กระบวนการ และเครื่องมือมากมาย 3) เน้นผลผลิตของซอฟต์แวร์มากกว่าเอกสาร Agile จะเน้นชิ้นงานหรือผลผลลิต ซอฟต์แวร์ที่สามารถนำไปใช้งานได้จริง ซึ่งปกติ Agile จะส่งมอบชิ้นงานทางซอฟต์แวร์เป็นระยะๆ เพื่อให้ลูกค้าเห็นความคืบหน้าของชิ้นงานและเกิดความพึงพอใจ มากกว่าการจัดทำเอกสารที่มีอย่าง ครบครัน ซึ่งเอกสารดังกล่าว อาจไม่มีประโยชน์ในเชิงปฏิบัติเลย อีกทั้งเอกสารเหล่านี้ยังต้องใช้เวลา ในการจัดทำมาก ดังนั้น Agile จึงมุ่งเน้นผลผลิตซอฟต์แวร์ที่มีความคืบหน้าเป็นหลัก 4) เน้นการทำงานร่วมกันกับลูกค้า มากกว่าการต่อรองเจราเรื่องสัญญา Agile จะ มุ่งเน้นให้ลูกค้าเข้ามามีส่วนร่วมในการกำหนดความต้องการกับทีมงานอย่างต่อเนื่อง (ลูกค้าถือเป็น ส่วนหนึ่งในทีมงานทางเทคนิคจริงๆ มิใช่แค่เพียงเข้ามานั่งประชุมเพื่อพัฒนาข้อกำหนดร่วมกับ ทีมงาน เสร็จแล้วก็ต่างคนต่างไป) รวมถึงการทดสอบส่วนประกอบต่างๆ ร่วมกัน แทนที่จะมุ่งเจรจา งานต่างๆ ที่ระบุในสัญญา ไม่ว่าจะเป็นรายละเอียดหรือ ราคาซอฟต์แวร์ โดยเฉพาะวันส่งมอบระบบ ที่ระบุไว้อย่างแน่นอนนั้น Agile จะมองเป็นเรื่องไร้สาระ ซึ่งปกติสัญญามักจะมีเงื่อนไขที่ลูกค้า สามารถยกเลิกการว่าจ้างหากโครงการไม่คืบหน้า แต่การส่งมอบระบบในโครงการของ Agile จะ เป็นการส่งมอบระบบแบบก้าวหน้า เช่น การส่งมอบงานที่ใช้งานได้จริงอย่างต่อเนื่อง เช่น การส่ง มอบซอฟต์แวร์ทุกๆ สัปดาห์ เพื่อให้ลูกค้าเห็นความคืบหน้าในชิ้นงาน โดยชิ้นงานของระบบใหม่ก็
41 คือผลผลิตทางซอฟต์แวร์ที่เป็นตัวชี้วัดถึงความก้าวหน้าของโครงการ ที่มิใช่เป็นแค่เพียงเอกสารหรือ ข้อกำหนด ทีมงานสำหรับการพัฒนาแบบอะไจล์ อาจประกอบด้วยทีมงานขนาดเล็ก ที่มีความพร้อม ต่อการตอบสนองการเปลี่ยนแปลงที่รวดเร็ว มีการทำงานที่คล่องตัวและมีความคิดสร้างสรรค์ โดย ทีมงานจะช่วยกันบริการให้กับลูกค้า ทั้งนี้ Agile ก็ไม่สามารถนำไปประยุกต์ใช้ได้กับทุกโครงการได้ เสมอไป และต่อไปนี้เป็นกฎ 12 ประการ ตามระเบียบวิธีของ Agile ซึ่งประกอบด้วย 1) มุ่งเน้นให้ลูกค้ามีความพึงพอใจ ด้วยการส่งมอบซอฟต์แวร์อย่างต่อเนื่อง 2) ยินดีต้อนรับกับความเปลี่ยนแปลงที่เกิดขึ้น แม้ว่าโครงการจะดำเนินการไปมาก แล้วก็ตาม ทั้งนี้กระบวนการควบคุมการเปลี่ยนแปลงของ Agile ถือเป็นผลประโยชน์ที่มีต่อลูกค้า 3) ส่งมอบชิ้นงานซอฟต์แวร์ที่ใช้งานได้จริง โดยจะส่งมอบบ่อยๆ ทุก 1-2 สัปดาห์ 4) นักธุรกิจและนักพัฒนาจะทำงานร่วมกันทุกวันตลอดโครงการ 5) สร้างแรงจูงใจให้กับแต่ละบุคคลที่มีส่วนร่วมในโครงการ ด้วยการจัดเตรียม สภาพแวดล้อมเพื่อสนับสนุนงานตามที่พวกเขาต้องการ รวมถึงความเชื่อมั่นว่าเขาจะสามารถทำงาน สำเร็จตามที่ได้รับมอบหมาย 6) วิธีสื่อสารที่มีประสิทธิภาพและมีประสิทธิผลที่สุดในเรื่องของการส่งผ่านข่าวสาร ก็ คือการสื่อสารแบบซึ่งหน้าโดยให้พยายามหลีกเลี่ยงการใช้โทรศัพท์หรืออีเมลในการสื่อสาร 7) ผลผลิตหรือชิ้นงานซอฟต์แวร์ที่ใช้งานได้จริง ก็คือเกณฑ์วัดความก้าวหน้าของ โครงการ 8) เน้นกระบวนการพัฒนาแบบค่อยเป็นค่อยไป แต่ไม่ลดละ โดยผู้สนับสนุนโครงการ นักพัฒนาและผู้ใช้งานจะร่วมกันทำงานเพื่อให้งานมีความก้าวหน้าขึ้นเรื่อยๆ 9) ความสนใจของทีมงาน ในการติดตามเทคโนโลยีที่ทันสมัยอย่างสม่ำเสมอ ย่อมช่วย ให้การออกแบบมีความคล่องตัวดีขึ้น 10) เน้นความเรียบง่าย สิ่งสำคัญก็คือ ศิลปะแห่งการเพิ่มภาระงานโดยไม่จำเป็น ไม่ ควรท 11) สถาปัตยกรรม ความต้องการ และงานออกแบบที่ดี เกิดขึ้นจากทีมงานบริหาร กันเอง 12) ทีมงานจะต้องสะท้อนภาพตัวเอง ว่าจะนำไปสู่การปฏิบัติงานอย่างไรเพื่อให้เกิด ประสิทธิภาพสูงยิ่งขึ้น แล้วต้องปรับพฤติกรรมของตนอย่างไรเพื่อสอดคล้องกับเหตุการณ์ที่ เปลี่ยนไป 2.2 แนวทางเลือกวิธีการที่เหมาะสมในการพัฒนาระบบเชิงโครงสร้าง
42 การเลือกวิธีการที่เหมาะสมในการพัฒนาระบบนับเป็นงานที่ท้าทาย ไม่ใช่เรื่องง่ายในการที่ จะเลือกวิธีการในการพัฒนาระบบ เนื่องจากไม่มีวิธีการใดที่ดีที่สุดเสมอไป หลายองค์กรมีการ กำหนดมาตรฐานและนโยบายเพื่อเป็นแนวทางในการเลือกวิธีการพัฒนาระบบดังนี้ 1) ความต้องการของผู้ใช้ยังไม่ชัดเจน เมื่อความต้องการของผู้ใช้ไม่ชัดเจน จึงเป็นเรื่องยาก ที่นักวิเคราะห์จะเข้าใจความต้องการของผู้ใช้ ซึ่งอาจจะต้องใช้วิธีการต่างๆ เช่น การพูดคุยกับผู้ใช้ หรือเขียนรายงานอธิบาย ปกติผู้ใช้ที่จะใช้งานได้ต้องมีปฏิสัมพันธ์กับเทคโนโลยี เข้าใจจริงในสิ่งที่ ระบบใหม่สามารถทำได้ และวิธีการที่จะนำไปใช้กับความต้องการของตน ต้นแบบแบบใช้แล้วทิ้ง เหมาะจะใช้กับวิธีการพัฒนาระบบแบบรวดเร็ว ซึ่งหากผู้ใช้มีความต้องการที่ชัดเจน การให้ผู้ใช้ได้ใช้ ต้นแบบทำการโต้ตอบกับระบบจะเป็นวิธีที่เหมาะสมมากขึ้น 2) ผู้ใช้ไม่คุ้นเคยกับเทคโนโลยีระบบที่จะมีการใช้เทคโนโลยีใหม่ ซึ่งนักวิเคราะห์และ นักเขียนโปรแกรมไม่คุ้นเคย แอปพลิเคชันแรกกับการใช้เทคโนโลยีใหม่ที่ยังไม่มีความคุ้นเคยจึงมี โอกาสที่ระบบจะพัฒนาไม่เสร็จตามกำหนดเวลา มีความเสี่ยงเพิ่มขึ้น เนื่องจากเครื่องมือใหม่อาจจะ ไม่สามารถทำสิ่งที่จำเป็นในระบบที่กำลังจะพัฒนา กรณีเช่นนี้วิธีการสร้างต้นแบบแบบที่ใช้แล้วทิ้ง จะเป็นวิธีที่เหมาะสมกว่า เพราะมีโอกาสในการตรวจสอบด้านเทคโนโลยีบางอย่างก่อนที่จะ ออกแบบเสร็จสมบูรณ์ และนักพัฒนาระบบอาจพบจุดอ่อนหรือปัญหาที่เกิดขึ้นในเทคโนโลยีใหม่ก็ เป็นได้ 3) ความซับซ้อนของระบบ การออกแบบระบบที่มีความซับซ้อนมีรายละเอียดมาก นัก ออกแบบจำเป็นต้องมีความระมัดระวังอย่างมาก และวิธีการสร้างต้นแบบที่ใช้แล้วทิ้งจะเหมาะอย่าง ยิ่ง วิธีการออกแบบเชิงโครงสร้างแบบดั้งเดิมจะสามารถจัดการกับระบบที่ซับซ้อน แต่บางประเด็นที่ สำคัญอาจถูกมองข้ามแม้ว่าจะค่อยๆ พัฒนาวิธีการเพื่อให้ผู้ใช้สามารถโต้ตอบกับระบบได้ 4) ความน่าเชื่อถือของระบบ เป็นปัจจัยสำคัญในการพัฒนาระบบ ขั้นตอนการวิเคราะห์ และการออกแบบมีความสำคัญสำหรับทีมงานโครงการ ด้วยวิธีการทดสอบต่างๆ ผ่านทางต้นแบบ 5) โครงการที่มีระยะเวลาสั้น เหมาะจะใช้วิธีการพัฒนาระบบแบบรวดเร็ว เนื่องจากวิธีการ นี้ถูกออกแบบมาเพื่อเพิ่มความเร็วในการพัฒนา ควรใช้วิธีการพัฒนาต้นแบบและวิธีแบ่งการพัฒนา เมื่อโครงการมีระยะเวลาสั้น ทีมงานโครงการจะปรับการทำงานในระบบโดยคำนึงถึงกำหนดวันส่ง มอบที่ระบุไว้ ทั้งนี้วิธีการแบบน้ำตกจะเป็นวิธีที่ไม่เหมาะสม เพราะไม่อนุญาตให้มีการเปลี่ยนแปลง กำหนดการ 6) โครงการที่สามารถเกิดได้โครงการที่กำหนดอยู่ในตารางเวลาที่จะสามารถเกิดขึ้นจริงได้ ด้วยวิธีการออกแบบเชิงโครงสร้างตั้งแต่การออกแบบและการดำเนินงานจนเกิดระบบ วิธีการพัฒนา ระบบแบบรวดเร็ว สามารถปรับเปลี่ยนการออกแบบ ซึ่งจะช่วยให้ผู้จัดการโครงการยอมรับระบบ และทราบถึงปัจจัยเสี่ยง ตลอดจนตรวจสอบสิ่งที่คาดหวังให้เกิดในระบบ
43 สรุปได้ว่า เกณฑ์การเลือกวิธีการพัฒนาระบบที่เหมาะสมที่สุด ดังตารางที่ 2.2 เกณฑ์สำคัญ อย่างหนึ่งที่ต้องพิจารณาคือ ประสบการณ์ของทีมงานนักวิเคราะห์ เช่น วิธีการพัฒนาระบบแบบ รวดเร็วเป็นวิธีที่ต้องใช้เครื่องมือแบบใหม่และต้องเรียนรู้เทคนิคอย่างมาก บางครั้งเครื่องมือและ เทคนิคเหล่านี้กลับกลายเป็นการเพิ่มความซับซ้อนให้กับโครงการ จนต้องใช้เวลาเพิ่มมากขึ้นในการ เรียนรู้ แต่เมื่อทีมงานได้ใช้วิธีการนี้จนชำนาญ กลายเป็นประสบการณ์ในการใช้เครื่องมือและเทคนิค ทำให้สามารถพัฒนาระบบได้เร็วมากขึ้น การส่งมอบระบบจะเร็วขึ้นตามไปด้วย ตารางที่ 2.2 เกณฑ์การเลือกวิธีการพัฒนาระบบที่เหมาะสม ความสามารถในการพัฒนาระบบ แบบน้ำตก การสร้าง ต้นแบบ ต้นแบบแบบ ใช้แล้วทิ้ง การพัฒนา แบบอะไจล์ 1.ความต้องการของผู้ใช้ไม่ชัดเจน 2.ผู้ใช้ไม่คุ้นเคยเทคโนโลยี 3.ความซับซ้อนของระบบ 4.ความน่าเชื่อถือของระบบ 5.โครงการมีระยะเวลาสั้น 6.โครงการที่สามารถเกิดได้ X X ✓ ✓ X X * X X X * * * * * * ✓ ✓ * X X ✓ * ✓ หมายเหตุ X = ไม่เหมาะสม ✓ = เหมาะสม * = เหมาะสมที่สุด เครื่องมือสำหรับการออกแบบระบบเชิงโครงสร้าง เครื่องมือที่ใช้ในการออกแบบ มีอยู่หลายเครื่องมือ สำหรับเครื่องมือของการออกแบบ ระบบเชิงโครงสร้างในที่นี้จะกล่าวเฉพาะเรื่องของผังงาน และแผนภาพกระแสข้อมูล 1) ผังงาน (flowchart) เป็นเครื่องมือในการวางแผนเพื่อพัฒนาโปรแกรม ใช้สำหรับอธิบาย ลำดับขั้นตอนการทำงานในรูปแบบของแผนภาพ โดยการใช้สัญลักษณ์ต่างๆ ที่มีความหมายแทน การทำงานในลักษณะต่างๆ ผังงานยังใช้แสดงความสัมพันธ์ระหว่างขั้นตอนการทำงานต่างๆ โดย สามารถแบ่งลักษณะการทำงานได้เป็น 3 รูปแบบ ได้แก่ การทำงานแบบเป็นลำดับ การทำงานแบบ มีเงื่อนไข และการทำงานแบบทำซ้ำภายใต้เงื่อนไข ผังงานที่ออกแบบไว้จะถูกนำไปเขียนเป็น โปรแกรมคอมพิวเตอร์ ดังนั้นผังงานจึงเป็นเครื่องมือที่ช่วยให้ผู้เขียนโปรแกรมและผู้ใช้สามารถ มองเห็นขั้นตอนการทำงานของโปรแกรมที่กำลังจะพัฒนาได้ง่ายขึ้น ผังงานแบ่งได้เป็น 2 ประเภท คือ ผังงานระบบและผังงานโปรแกรม 2) ผังงานระบบ (system flowchart) เป็นผังงานที่แสดงขั้นตอนการทำงานภายใน ระบบงานหนึ่งๆ เพื่อให้เห็นภาพการทำงานของระบบ โดยผังงานระบบจะแสดงถึงความเกี่ยวข้อง
44 ของส่วนต่างๆ ในระบบ เช่น มีการประมวลผลข้อมูลอะไรเกิดขึ้นบ้าง สื่อบันทึกข้อมูลที่ใช้ เป็นต้น ผังงานระบบจะเกี่ยวข้องการนำเข้าข้อมูล วิธีการประมวลผล และการแสดงผลลัพธ์ ตัวอย่างผังงาน การคำนวณหาพื้นที่สามเหลี่ยมดังแสดงในภาพที่ 2.8 ภาพที่ 2.8 ตัวอย่างผังงานการคำนวณหาพื้นที่สามเหลี่ยม 3) ผังงานโปรแกรม (program flowchart) แสดงถึงขั้นตอนของคำสั่งที่ใช้ในโปรแกรม ผัง งานโปรแกรมนี้อาจสร้างจากผังงานระบบ โดยผู้เขียนผังงานจะดึงเอาการทำงานแต่ละขั้นตอนในผัง งานระบบมาเขียนเป็นผังงานโปรแกรม เพื่อแสดงให้ทราบว่าเมื่อใช้คอมพิวเตอร์ทำงานจะต้องมี ขั้นตอนคำสั่งให้ทำงานอย่างไรเพื่อให้ได้ผลลัพธ์ที่ต้องการ หลังจากนั้นจะนำผังงานโปรแกรมมาเขียน เป็นโปรแกรมคอมพิวเตอร์ต่อไป ผังงานโปรแกรมไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดๆ สามารถใช้ เป็นเครื่องมือสื่อสารได้กับทุกภาษาคอมพิวเตอร์ ดังนั้น การเขียนผังงานจึงมีประโยชน์กับผู้บริหาร นักวิเคราะห์ระบบ โปรแกรมเมอร์ และผู้ใช้ที่เกี่ยวข้อง ทำให้ทราบถึงความสัมพันธ์ของระบบตั้งแต่ เริ่มต้น ว่ามีขั้นตอนการทำงานอย่างไร ใช้วิธีการอะไรบ้าง สุดท้ายจะได้ผลลัพธ์อะไรบ้าง ตัวอย่างผัง งานโปรแกรมคำนวณหาพื้นที่สามเหลี่ยม ดังแสดงในภาพที่ 2.9
45 ภาพที่ 2.9 ตัวอย่างผังงานโปรแกรมคำนวณหาพื้นที่สามเหลี่ยม กฎการเขียนผังงาน ในการเขียนผังงานมีกฎต่างๆ ที่ควรคำนึงถึง ดังนี้ 1) ผังงานจะต้องมีจุดเริ่มต้นและจุดสิ้นสุด 2) ใช้สัญลักษณ์มาตรฐานตามที่กำหนดไว้เท่านั้น 3) ใช้หัวลูกศรแสดงทิศทางการทำงาน โดยเน้นการทำงานจากบนลงล่างหรือจากซ้าย ไปขวา 4) ทุกแผนภาพต้องมีลูกศรแสดงทิศทางเข้า 1 เส้น และออก 1 เส้น ยกเว้นสัญลักษณ์ เงื่อนไขหรือการตัดสินใจที่มีทางออกได้มากกว่า 1 ทาง 5) เขียนแสดงการทำงานในแต่ละขั้นตอนด้วยข้อความที่กระชับ เข้าใจง่าย 6) หลีกเลี่ยงการลากเส้นเชื่อมโยงการทำงานไปมาจนทำให้เกิดเส้นตัดมาก เพราะจำ ทำให้เกิดข้อผิดพลาดง่าย ควรใช้สัญลักษณ์จุดเชื่อมต่อการทำงานแทน 7) ควรเขียนผังงานให้เป็นระเบียบเรียบร้อย ชัดเจน เข้าใจง่าย 8) ควรมีการทดสอบความถูกต้องของการทำงานในผังงานก่อนนำไปเขียนโปรแกรม
46 สัญลักษณ์ ความหมาย กำหนดจุดเริ่มต้น (start) และจุดสิ้นสุดการ ทำงาน (stop) ลูกศรแสดงทิศทางการทำงาน กำหนดค่าเริ่มต้นให้กับตัวแปร และการ คำนวณ การนำเข้าข้อมูล การนำเข้าข้อมูลทางแป้นพิมพ์ การแสดงผลข้อมูลออกทางอุปกรณ์ใดๆ การตรวจสอบเงื่อนไข ผลลัพธ์จากการ ตรวจสอบจะเป็น “จริง” หรือ “เท็จ” อย่าง ใดอย่างหนึ่งเท่านั้น การแสดงผลข้อมูลทางเครื่องพิมพ์ จุดเชื่อมต่อการทำงาน
47 สัญลักษณ์ ความหมาย จุดเชื่อมต่อหน้า การเขียนผังงานบางครั้งมี ลำดับการทำงานหลายขั้นตอน จึงอาจต้อง เขียนผังงานในกระดาษมากกว่า 1 แผ่น จึง ต้องมีการใช้สัญลักษณ์จุดต่อหน้า ตัวอย่าง ผังงานตัดสินผลการสอบจากคะแนนรวมของการสอบ 2 วิชา ได้แก่ คณิตศาสตร์ ใช้ตัวแปรชื่อ M และวิทยาศาสตร์ใช้ตัวแปรชื่อ S ภาพที่ 2.10 ผังงานแสดงการตัดสินผลการสอบจากคะแนนรวมของการสอบ 2 วิชา 4) แผนภาพกระแสข้อมูล (Data Flow Diagram: DFD) เป็นแบบจําลองกระบวนการที่ นำมาใช้กับการวิเคราะห์และออกแบบระบบเชิงโครงสร้าง แผนภาพจะแสดงความสัมพันธ์ระหว่าง กระบวนการ (Process) กับข้อมูล เพื่อให้รับทราบว่าข้อมูลมาจากไหน ข้อมูลไปที่ใด ข้อมูลเก็บไว้ที่ ไหน มีกระบวนการอะไรบ้างที่เกิดขึ้นในระบบ นอกจากนี้ยังเป็นการแสดงให้ผู้ใช้ที่เป็นเจ้าของระบบ ได้เห็นรายละเอียดของระบบงานว่าตรงกับความต้องการที่กำหนดไว้หรือไม่ สัญลักษณ์ที่ใช้ในการ เขียนแผนภาพกระแสข้อมูลประกอบด้วยสัญลักษณ์ 4 อย่าง ได้แก่ สัญลักษณ์แสดงสิ่งที่อยู่นอก
48 ระบบ สัญลักษณ์แสดงการไหลของข้อมูล สัญลักษณ์แสดงการประมวลผล และสัญลักษณ์แสดง แหล่งเก็บข้อมูล โดยมีสัญลักษณ์ที่ใช้เป็นมาตรฐานอยู่ 2 กลุ่ม คือ กลุ่มสัญลักษณ์ที่คิดค้นโดยเกน และซาร์ซัน (Gane and Sarson) และกลุ่มสัญลักษณ์ที่คิดค้นโดยเดอมาร์โคและยอร์ดอน (DeMarco and Yourdon) แม้ว่าสัญลักษณ์ 2 กลุ่มนี้จะแตกต่างกันบ้าง แต่หลักการในการเขียน แผนภาพจะเหมือนกัน ตารางที่ 2.3 สัญลักษณ์ที่ใช้ในการเขียนแผนภาพกระแสข้อมูล ชื่อสัญลักษณ์ สัญลักษณ์ของ DeMarco and Yourdon สัญลักษณ์ของ Gane and Sarson สิ่งที่อยู่ภายนอก (external entity) การประมวลผล (process) แหล่งเก็บข้อมูล (data store) กระแสข้อมูล (data flow) การอธิบายต่อไปนี้จะใช้สัญลักษณ์การเขียนแผนภาพกระแสข้อมูลตามแนวคิดของ Gane and Sarson โดยมีสัญลักษณ์ที่ใช้ในการเขียนแผนภาพกระแสข้อมูลดังนี้ 1. สัญลักษณ์สิ่งที่อยู่ภายนอกระบบ (External Entities) เป็นส่วนที่ใช้แทนคน หน่วยงาน ทั้งภายในและภายนอกองค์กร และระบบสารสนเทศอื่นที่จะเป็นผู้ให้ข้อมูลหรือผู้รับข้อมูล สิ่งที่อยู่ นอกระบบจะแสดงให้ทราบว่าระบบนี้จะติดต่อกับสิ่งที่อยู่ภายนอกระบบในลักษณะของการนำ ข้อมูลเข้าหรือได้รับข้อมูลออกไปใช้ต่อ ตัวอย่างการใช้สัญลักษณ์นี้ ดังแสดงในภาพที่ 2.11 ภาพที่ 2.11 ตัวอย่างการใช้สัญลักษณ์สิ่งที่อยู่ภายนอกระบบ การใช้สัญลักษณ์สิ่งที่อยู่ภายนอกระบบ ใช้บอกชื่อบุคคลหรือหน่วยงานภายนอก จึงใช้เป็น คำนามในการบอกชื่อบุคคลหรือชื่อหน่วยงาน สัญลักษณ์สิ่งที่อยู่ภายนอกจะใช้ควบคู่กับสัญลักษณ์
49 กระแสข้อมูลเสมอ โดยถ้าลูกศรชี้ออกจากสัญลักษณ์สิ่งที่อยู่ภายนอกจะหมายถึง การนำเข้าข้อมูล จากบุคคลหรือหน่วยงานภายนอก และถ้าลูกศรชี้เข้าสัญลักษณ์สิ่งที่อยู่ภายนอกจะหมายถึง การส่ง ข้อมูลจากระบบไปให้บุคคลหรือหน่วยงานภายนอก 2. สัญลักษณ์กระแสข้อมูล (Data Flows) แสดงเส้นทางการไหลของข้อมูล โดยใช้ลูกศร แสดงถึงการไหลของข้อมูลจากปลายลูกศรไปยังหัวลูกศร ข้อมูลที่ปรากฏบนเส้นลูกศรสามารถ เป็นได้ทั้งข้อความ ตัวเลข รายการข้อมูล ตัวอย่างการใช้สัญลักษณ์นี้ แสดงในภาพที่ 2.12 ภาพที่ 2.12 ตัวอย่างการใช้สัญลักษณ์กระแสข้อมูล การใช้สัญลักษณ์กระแสข้อมูล จะใช้บอกชื่อข้อมูลเพียงชื่อเดียวบนเส้นลูกศร จึงใช้เป็น คำนามในการบอกชื่อข้อมูล สัญลักษณ์กระแสข้อมูลจะใช้ควบคู่สัญลักษณ์สิ่งที่อยู่ภายนอก หรือ สัญลักษณ์การประมวลผล หรือสัญลักษณ์แหล่งเก็บข้อมูล ขึ้นอยู่กับว่าจะนำข้อมูลนั้นออกจากส่วน ใด หรือจะนำข้อมูลนั้นส่งไปที่ส่วนใด โดยชื่อของข้อมูลอาจเปลี่ยนไปได้หลังจากผ่านการประมวลผล แล้ว 3. สัญลักษณ์การประมวลผลหรือโปรเซส (Processes) เป็นสัญลักษณ์แทนกิจกรรมที่ เกิดขึ้นในระบบ หรือกระบวนการที่ต้องทำใหนระบบ เช่น การสร้างใบแสดงผลการลงทะเบียน ประกอบด้วยข้อมูลนำเข้า คือ “รายการลงทะเบียน” นำไปผ่านการประมวลผล คือ “สร้างใบ รายการลงทะเบียน” แล้วจะได้ผลลัพธ์คือ “ใบแสดงผลการลงทะเบียน” ตัวอย่างการใช้สัญลักษณ์นี้ ดังแสดงในภาพที่ 2.13 ภาพที่ 2.13 ตัวอย่างการใช้สัญลักษณ์การประมวลผล
50 การใช้สัญลักษณ์การประมวลผล ใช้เพื่ออธิบายการทำงานเพียงอย่างใดอย่างหนึ่ง จึงใช้ คำกริยาในการอธิบายการทำงาน สัญลักษณ์การประมวลผลจะใช้ควบคู่กับสัญลักษณ์กระแสข้อมูล โดยถ้าลูกศรชี้เข้า หมายถึง การนำข้อมูลเข้าสู่การประมวลผล และถ้าลูกศรชี้ออก หมายถึง การนำ ข้อมูลออกจากการประมวลผล ซึ่งใน 1 การประมวลผลสามารถมีสัญลักษณ์กระแสข้อมูลนำเข้าได้ มากกว่า 1 ลูกศร หรือมีสัญลักษณ์กระแสข้อมูลออกได้มากกว่า 1 ลูกศร แต่จะมีสัญลักษณ์กระแส ข้อมูลเข้าหรือมีสัญลักษณ์กระแสข้อมูลออกเพียงอย่างใดอย่างหนึ่งไม่ได้ 4. สัญลักษณ์แหล่งเก็บข้อมูล (Data Stores) เป็นส่วนที่ใช้แสดงแฟ้มเก็บข้อมูล มีการ ประมวลผลหลายอย่าง มีการเก็บข้อมูลไว้เพื่อนำไปใช้อีกในภายหลัง แหล่งเก็บข้อมูลจึงมีได้ทั้ง ข้อมูลเข้าและข้อมูลออก โดยข้อมูลที่ไหลเข้าสู่แหล่งเก็บข้อมูลจะอยู่ในลักษณะของการเพิ่ม การลบ และการแก้ไข ส่วนข้อมูลที่ไหลออกจากแหล่งเก็บข้อมูลจะอยู่ในลักษณะที่ถูกอ่านขึ้นมา ตัวอย่าง การใช้สัญลักษณ์ แสดงดังภาพที่ 2.14 ภาพที่ 2.14 ตัวอย่างการใช้สัญลักษณ์แหล่งเก็บข้อมูล การใช้สัญลักษณ์แหล่งเก็บข้อมูล ใช้เพื่อบอกชื่อแฟ้มที่ใช้เก็บข้อมูล จึงใช้เป็นคำนามในการ บอกชื่อแฟ้ม สัญลักษณ์แหล่งเก็บข้อมูลใช้ควบคู่กับสัญลักษณ์กระแสข้อมูล โดยใช้อักษรย่อ D1, D2 เป็นต้น เขียนทางด้านซ้ายของสัญลักษณ์ เพื่อแสดงว่าเป็นแหล่งเก็บข้อมูลที่เท่าใด ถ้ากระแสข้อมูลชี้ เข้าสัญลักษณ์แหล่งเก็บข้อมูล หมายถึง การนำข้อมูลเข้าไปเก็บในแหล่งเก็บข้อมูล และถ้ากระแส ข้อมูลชี้ออกจากสัญลักษณ์แหล่งเก็บข้อมูล หมายถึง การอ่านข้อมูลจากแหล่งเก็บข้อมูลไปใช้ในการ ประมวลผล ขั้นตอนการเขียนแผนภาพกระแสข้อมูล มีดังนี้ 1. นำความต้องการที่รวบรวมมาทำการวิเคราะห์ และกำหนดขอบเขตของระบบ ด้วยการ ระบุเอ็กซ์เทอร์นัลเอ็นทิตี้ที่เกี่ยวข้อง (ไม่ว่าจะเป็นบุคคล หน่วยงาน หรือระบบงาน) รวมถึงกระแส ข้อมูลที่เข้าออกภายในระบบ 2. สร้างแผนภาพบริบท (Context Diagram) เพื่อแสดงภาพรวมและขอบเขตของระบบที่ จะพัฒนา แผนภาพนี้จะทำให้เรารู้ว่า มีกระแสข้อมูลอะไรจากเอ็กซ์เทอร์นัลเอ็นทิตี้ที่ส่งเข้ามายัง ระบบ ในขณะเดียวกัน ตัวระบบได้ส่งกระแสข้อมูลอะไรออกไปยังเอ็กเทอร์นัลเอ็นทิตี้ 3. วิเคราะห์ว่า ควรมีข้อมูลอะไรบ้างที่ต้องจัดเก็บในระบบ (ได้มาจากแผนภาพ ER) 4. สร้างไดอะแกรม 0 เพื่อแสดงถึงการประมวลผล (Processes) หลักๆ ในระบบ
51 5. เขียนไดอะแกรมระดับต่ำลงมา โดยไดอะแกรมระดับล่างสุดจะเป็นการประมวลผล (Processes) ที่ไม่สามารถแตกย่อยต่อไปได้อีกแล้ว ซึ่งจะประกอบด้วยรายละเอียดการทำงานของ กระบวนการต่างๆ ที่สนับสนุนโปรเซสแม่ให้ทำงานจนบรรลุผล อย่างไรก็ตาม ไดอะแกรมลูกที่ได้รับ การแตกระดับเหล่านี้ จะต้องมีความสมดุลกับแผนภาพระดับบนหรือโปรเซสแม่ด้วย ในขั้นตอนนี้ จำเป็นต้องได้รับการปรับแก้และเขียนแผนภาพใหม่อยู่หลายครั้ง จนกว่าจะได้แผนภาพกระแสข้อมูล ที่สมบูรณ์และถูกต้อง 6. ในการสร้างแผนภาพกระแสข้อมูล สามารถนำเครื่องมือช่วยวาดภาพอย่างโปรแกรม MS-Visio หรือโปรแกรมเคสทูลล์ของ Visible Analysis หรือ draw.io มาช่วยสร้างและตรวจสอบ แผนภาพเพื่อให้แผนภาพมีคุณภาพมากขึ้น ตัวอย่างการเขียนแผนภาพกระแสข้อมูลระบบการลงทะเบียน ภาพที่ 2.15 แผนภาพบริบท ระบบการลงทะเบียนเรียน ภาพที่ 2.16 ไดอะแกรม 0 ของระบบการลงทะเบียนเรียน
52 ภาพที่ 2.17 ไดอะแกรม 1 ของโปรเซสที่ 1 รับ-ส่งรายการลงทะเบียน 1.2.3 แนวคิดการพัฒนาระบบเชิงวัตถุ กระบวนการพัฒนาระบบเชิงวัตถุ จะมองระบบสารสนเทศเป็นแหล่งรวมของการโต้ตอบ ระหว่างวัตถุ (Objects) เพื่อทำงานร่วมกันจนกระทั่งงานสำเร็จ ซึ่งวัตถุก็คือสิ่งๆ หนึ่งในระบบ คอมพิวเตอร์ที่มีความสามารถในการตอบสนองต่อข่าวสาร (Message) และในตัววัตถุก็จะเป็นแหล่ง รวมของข้อมูลและวิธีการ โดยมีคลาสเป็นตัวกำหนดคุณสมบัติให้กับวัตถุดังนั้น มุมมองของการ พัฒนาระบบเชิงวัตถุจึงมีความแตกต่างจากวิธีเชิงโครงสร้างอย่างสิ้นเชิง ทั้งในด้านวิธีการวิเคราะห์ ระบบ การออกแบบระบบ และการเขียนโปรแกรม การวิเคราะห์และออกแบบระบบสารสนเทศด้วยวิธีการเชิงวัตถุ (Object-Oriented Systems Analysis and Design: (OOSAD) ทางเทคนิคสามารถใช้วิธีการแบบเดิม ได้แก่ การ พัฒนาแบบน้ำตก การพัฒนาแบบคู่ขนาน แบบเป็นระยะค่อยเป็นค่อยไป การพัฒนาต้นแบบและ สร้างต้นแบบแบบใช้แล้วทิ้ง วิธีการเชิงวัตถุจะเกี่ยวข้องกับวิธีแบบค่อยเป็นค่อยไปมากที่สุด ความ แตกต่างระหว่างการออกแบบเชิงโครงสร้างกับวิธีการเชิงวัตถุจะอยู่ที่การแก้ปัญหา ด้วยวิธีการ แบบเดิมการแก้ปัญหาจะใช้ทั้งแบบการประมวลผลเป็นศูนย์กลางหรือแบบข้อมูลเป็นศูนย์กลาง แต่ ในความเป็นจริงเมื่อจำลองระบบงานขึ้นมาแล้วทั้งการประมวลผลและข้อมูลล้วนมีความเกี่ยวข้อง กันอย่างใกล้ชิด จนเป็นเรื่องยากที่จะเลือกอย่างใดอย่างหนึ่งเป็นเป้าหมายหลัก วิธีการเชิงวัตถุ พยายามเน้นทั้งการประมวลผลและข้อมูลเพื่อแก้ปัญหาที่เกิดขึ้น วิธีการออกแบบเชิงวัตถุ เป็นวิธีที่ทันสมัยในการพัฒนาระบบสารสนเทศ โดยมีลักษณะดังนี้คือ มีการใช้ยูสเคสในการ ขับเคลื่อน มีการใช้สถาปัตยกรรมเป็นศูนย์กลาง และมีการใช้ซ้ำและการทำเพิ่มขึ้น 1) การใช้ยูสเคสในการขับเคลื่อน
53 การใช้ยูสเคสในการขับเคลื่อน (use-case driven) เป็นการใช้ยูสเคสเพื่อเป็นเครื่องมือ สำหรับสร้างแบบจำลองกำหนดพฤติกรรมของระบบ โดยใช้ยูสเคสอธิบายถึงวิธีการที่ผู้ใช้จะโต้ตอบ กับระบบเพื่อดำเนินกิจกรรมบางอย่าง เช่น การสำรองห้องพัก การค้นหาข้อมูล ใช้ยูสเคสในการ กำหนดความต้องการและสื่อสารความต้องการเพื่อให้ผู้เขียนโปรแกรมเขียนโปรแกรมตามที่ต้องการ ยูสเคสจะเน้นที่กิจกรรมเดียวในช่วงเวลาหนึ่งซึ่งแตกต่างจากการพัฒนาระบบเชิงโครงสร้าง ยูสเคส จะเน้นที่กิจกรรมในช่วงเวลาหนึ่ง 2) การใช้สถาปัตยกรรมเป็นศูนย์กลาง การใช้สถาปัตยกรรมเป็นศูนย์กลาง (architecture centric) เป็นวิธีวิเคราะห์และออกแบบ ระบบโดยใช้สถาปัตยกรรมเป็นศูนยกลางการออกแบบ สถาปัตยกรรมในที่นี้หมายถึง สถาปัตยกรรม ซอฟต์แวร์ การระบุข้อกำหนดของระบบ การสร้างระบบ การทำเอกสารของระบบ การวิเคราะห์ และออกแบบเชิงวัตถุควรรองรับการทำงานร่วมกันในระบบ สถาปัตยกรรมของระบบเหล่านี้ ได้แก่ ฟังก์ชันการทำงาน การทำงานแบบคงที่ และการทำงานแบบพลวัต 3) การใช้ซ้ำและการทำเพิ่มขึ้น การวิเคราะห์และออกแบบเชิงวัตถุในแนวใหม่จะเน้นการนำมาใช้ซ้ำและการพัฒนาเพิ่มขึ้น (iterative and incremental) จากเดิม โดยมีการทดสอบอย่างต่อเนื่องและมีการปรับแต่งตลอด อายุของโครงการ การนำมาใช้ซ้ำจะทำให้เกิดความคุ้นเคยกับความต้องการของผู้ใช้ จากที่กล่าวถึงแนวคิดของการพัฒนาระบบเชิงวัตถุที่ผ่านมา จึงพอจะเห็นถึงประโยชน์ของ การวิเคราะห์และออกแบบระบบเชิงวัตถุ กล่าวได้ว่าการวิเคราะห์และออกแบบโดยใช้แนวคิดวิธีการ เชิงวัตถุทำให้สามารถแยกระบบที่มีความซับซ้อนออกเป็นโมดูลย่อยที่มีขนาดเล็กลง ทำให้สามารถ จัดการแต่ละโมดูลได้ง่ายขึ้น ก่อนที่จะนำโมดูลย่อยเหล่านั้นทั้งหมดมารวมกัน เพื่อสร้างเป็นระบบ สารสนเทศทั้งระบบ วิธีการนี้ทำให้การพัฒนาระบบง่ายต่อการเข้าใจ สามารถแบ่งงานให้สมาชิกใน ทีมงานของโครงการง่ายขึ้นและยังง่ายต่อการสื่อสารกับผู้ใช้ กรณีที่มีความจำเป็นต้องการให้ผู้ใช้ ยืนยันว่าระบบที่พัฒนาขึ้นตรงตามความต้องการของผู้ใช้แล้วหรือไม่ ในการพัฒนาระบบด้วยวิธีการเชิงวัตถุ ทีมงานของโครงการจะสร้างโมดูลย่อยๆ ที่ใช้งานได้ ตามความต้องการของผู้ใช้ จากนั้นจะสามารถนำโมดูลเหล่านั้นมาใช้กับระบบงานใหม่อื่นๆ โดยการ นำโมดูลที่ใช้งานเข้ากันได้แล้วเหล่านั้นเพิ่มเข้าไป จึงเท่ากับเป็นการประหยัดเวลาในการพัฒนา ระบบงานใหม่อีกด้วย ต่อไปนี้เป็นการเปรียบเทียบการวิเคราะห์และออกแบบระบบแบบวิธิเชิงโครงสร้างกับวิธีเชิง วัตถุ
54 ตารางที่ 2.4 เปรียบเทียบการวิเคราะห์และออกแบบระบบแบบวิธิเชิงโครงสร้างกับวิธีเชิงวัตถุ วิธีพัฒนาระบบเชิงโครงสร้าง วิธีพัฒนาระบบเชิงวัตถุ วิเคราะห์ข้อมูลจากเอกสาร รายงาน และ ขั้นตอนการทำงานของระบบงานเดิม วิเคราะห์จากวัตถุ (object) ที่เกี่ยวข้อง แตกกระบวนการทำงานออกเป็นโมดูลย่อย จัดกลุ่ม จัดประเภทของออบเจ็กต์ที่เป็นไปตาม คุณลักษณะ โปรแกรมต่างๆ ในระบบจะมีความเกี่ยวข้องกัน ซึ่งการเปลี่ยนแปลงที่เกิดขึ้น อาจส่งผลกระทบ ต่อโปรแกรมอื่นๆ ที่เกี่ยวข้อง วัตถุแต่ละตัวจะมีความเป็นอิสระกันในการ เปลี่ยนแปลงรายละเอียดใดๆ จะไม่มี ผลกระทบซึ่งกันและกัน กรณีปรับปรุงหรือเปลี่ยนแปลงระบบ จะทำได้ ด้วยการแก้ไขชุดคำสั่งหรือซอร์สโค้ด การปรับปรุงหรือเปลี่ยนแปลงระบบ จะทำได้ ด้วยการเปลี่ยนรายละเอียดด้านคุณสมบัติ และ ฟังก์ชันการทำงานของวัตถุนั้นๆ เครื่องมือที่นำมาสนับสนุนระบบ ปัจจุบันเริ่มมี น้อยลง เครื่องมือที่นำมาสนับสนุนระบบ มีมากขึ้นเรื่อย เทคนิคการวิเคราะห์และออกแบบระบบเชิงโครงสร้างได้ใช้แนวคิดการแบ่งส่วนข้อมูลและ กระบวนการการออกจากกัน กล่าวคือ แบบจำลองกระบวนการและข้อมูล ต่างก็แยกกันอยู่ต่างหาก ซึ่งในโลกแห่งความเป็นจริงสิ่งเหล่านี้ควรจะเกิดขึ้นในเวลาเดียวกัน (Synchronized) มากกว่า ซึ่ง เป็นไปตามแนวคิดการพัฒนาระบบเชิงวัตถุ ดังนั้น เทคนิควิธีการพัฒนาระบบเชิงวัตถุจึงได้ทลาย หลายข้อจำกัดเหล่านี้ออกไป โดยหน่วยสนใจของระบบจะถูกมองเป็นวัตถุ และในตัววัตถุก็จะเป็น แหล่งรวมของข้อมูลและวิธีการ โดยมีคลาสเป็นตัวกำหนดคุณสมบัติให้กับวัตถุ และจากตารางที่ 2.4 ได้เปรียบเทียบวีการของทั้งสอง เครื่องมือของการออกแบบระบบเชิงวัตถุ เครื่องมือที่ใช้ในการออกแบบระบบเชิงวัตถุ (object-oriented design) ตามแนวทางใน การพัฒนาโปรแกรมมีอยู่ 2 วิธี คือ วิธีการเชิงฟังก์ชัน (functional design) และวิธีการเชิงวัตถุ (Object Oriented Design: OOD) โดยมีลักษณะของแต่ละวิธีการดังนี้ 1) วิธีการเชิงฟังก์ชัน เป็นการมองปัญหาของกระบวนการทำงาน ซึ่งสามารถแตก กระบวกนการทำงานเป็นส่วนย่อย ๆ ที่เรียกว่า ฟังก์ชัน (function) จากนั้นจะนำฟังก์ชันทั้งหลาย มาเชื่อมโยงกัน ภาษาที่ใช้ในการพัฒนาซอฟต์แวร์ด้วยวิธีนี้ เช่น ภาษาซี ภาษาปาสคาล ซึ่งเป็นภาษา โปรแกรมเชิงโครงสร้าง
55 2) วิธีการเชิงวัตถุ เป็นการมองปัญหาของระบบงานบนความคิดในโลกของความเป็นจริง โดยมองสิ่งต่างๆ เป็นวัตถุ (object) ที่มีความเป็นอิสระไม่ขึ้นต่อกัน แต่สามารถทำงานร่วมกันได้ ภาษาที่ใช้ในการพัฒนาซอฟต์แวร์ด้วยวิธีนี้ เช่น ภาษา C# ภาษาจาวา และ วิธีการเชิงวัตถุ เป็นการ มองปัญหาของระบบงานบนความคิดในโลกของความเป็นจริง โดยมองสิ่งต่างๆ เป็นวัตถุ (object) ที่มีความเป็นอิสระไม่ขึ้นต่อกัน แต่สามารถทำงานร่วมกันได้ ภาษาที่ใช้ในการพัฒนาซอฟต์แวร์ด้วย วิธีนี้ เช่น ภาษา C# ภาษาจาวา ในที่นี้จะขอกล่าวในส่วนของวิธีการเชิงวัตถุ วัตถุ (object) มีความเป็นอิสระในตัวเอง มีสถานะการทำงาน (state) ซ่อนอยู่ในตัว การ ทำงานของระบบเป็นผลที่เกิดจากการทำงานของวัตถุ และการใช้ข้อมูลร่วมกันจะใช้วิธีส่งข้อความ (message) ถึงกัน ระหว่างวัตถุโดยไม่มีการใช้พื้นที่หน่วยความจำร่วมกัน พอจะสรุปลักษณะของ วิธีการเชิงวัตถุได้ดังนี้ ลักษณะทั่วไป: เป็นการพิจารณาสิ่งต่างๆ ในรูปของวัตถุ ซึ่งมีความเป็นอิสระต่อกัน แต่ สามารถทำงานร่วมกันได การจำแนกงาน: เป็นการจำแนกวัตถุตามคุณสมบัติของแต่ละวัตถุ การขึ้นต่อกัน: เป็นการมองว่าวัตถุแต่ละวัตถุมีความเป็นอิสระต่อกัน การติดต่อกันทำโดย การส่งข้อความถึงกัน การทำงาน: ใช้การกำหนดคุณสมบัติและพฤติกรรมของแต่ละวัตถุ แล้วจึงสร้างปฏิสัมพันธ์ ระหว่างวัตถุในภายหลัง ซึ่งปฏิสัมพันธ์ระหว่างวัตถุไม่จำเป็นต้องเรียงลำดับสถานการณ์การทำงาน เนื่องจากแต่ละการทำงานจะเป็นอิสระจากกัน 3) การพัฒนาเชิงวัตถุการพัฒนาเชิงวัตถุมีขั้นตอนที่เกี่ยวข้อง ได้แก่ การวิเคราะห์เชิงวัตถุ (Object Oriented Analysis: OOA) การออกแบบเชิงวัตถุ (Object Oriented Design: OOD) และการโปรแกรมเชิงวัตถุ (Object Oriented Programming: OOP) ซึ่งหากต้องการพัฒนา ซอฟต์แวร์โดยใช้โปรแกรมเชิงวัตถุ จะต้องทำการวิเคราะห์และออกแบบเป็นเชิงวัตถุด้วย จึงควร ทราบความหมายโดยสังเขปของคำว่า “วัตถุ” และ “คลาสของวัตถุ” ดังนี้ วัตถุ (object) มีเอกลักษณ์เฉพาะตัวในแต่ละระบบ ประกอบด้วย ชื่อของวัตถุ/คลาส (object/class name) คุณสมบัติ (attribute) และหน้าที่การทำงาน (operation) คลาสของวัตถุ (object class) เป็นแม่แบบของวัตถุ ใช้สร้างวัตถุต่างๆ เพื่อการทำงานของ ระบบ คลาสของวัตถุสามารถรับการถ่ายทอดคุณสมบัติและหน้าที่การทำงานจากคลาสของวัตถุอื่น ได้
56 ภาพที่ 2.18 ตัวอย่างคลาส Student การถ่ายทอดคุณสมบัติ (inheritance) วัตถุจัดเป็นสมาชิกของคลาส ซึ่งได้มีการกำหนด คุณสมบัติและหน้าที่การทำงานไว้เรียบร้อยแล้ว คลาสถูกกำหนดไว้ในลำดับชั้นของคลาส (class hierarchy) คลาสที่อยู่สูงกว่าเรียกว่า ซูเปอร์คลาส (superclass) ประกอบด้วยคลาสที่อยู่ต่ำกว่า เรียกว่า ซับคลาส (subclass) ซับคลาสจะได้รับการถ่ายทอดคุณสมบัติและหน้าที่การทำงานมาจาก ซูเปอร์คลาส และอาจมีการเพิ่มคุณสมบัติหรือการทำงานลงในซับคลาสได้อีก ตัวอย่างการถ่ายทอด คุณสมบัติและลำดับชั้นของคลาสดังแสดงในภาพที่ 2.19 ภาพที่ 2.19 ตัวอย่างการถ่ายทอดคุณสมบัติและลำดับชั้นของคลาส
57 จากภาพที่ 2.19 มีการถ่ายทอดคุณสมบัติจากคลาสบุคคล (Personal) ไปยังคลาสคณบดี (Dean) และคลาสอาจารย์ (Teacher) ส่วนคลาสคณบดี (Dean) มีการถ่ายทอดคุณสมบัติไปยัง คลาสรองคณบดีฝ่ายวางแผน (AssocDeanPlanning) และคลาสของคณบดีฝ่ายบริหาร (AssocDeanAdministrative) ซึ่งเป็นซับคลาสอีกระดับได้ด้วย การถ่ายทอดคุณสมบัติมีประโยชน์ในการแยกแยะหรือจัดกลุ่มวัตถุ เช่น กลุ่มบุคลากร (Personal) ประกอบด้วย คณบดี(Dean) ซึ่งมีหลายคน และอาจารย์ (Teacher) ซึ่งล้วนมี คุณสมบัติเหมือนกันคือ เป็นบุคลากร ต่างกันที่หน้าที่การทำงาน นอกจากนี้ การถ่ายทอดคุณสมบัติ ยังช่วยในเรื่องการนำไปใช้ใหม่ได้อีก ในขั้นตอนของการออกแบบและการเขียนโปรแกรม ซึ่งหากมี การเปลี่ยนแปลงคุณสมบัติในซูเปอร์คลาส จะมีผลให้ซับคลาสรับรู้การเปลี่ยนแปลงเหล่านั้นด้วย ดังนั้น การถ่ายทอดคุณสมบัติจึงทำให้เห็นความสัมพันธ์ระหว่างวัตถุชัดเจนมากขึ้น ส่งผลให้การ ออกแบบระบบงานง่ายขึ้น และยังช่วยลดเวลาและค่าใช้จ่ายในการพัฒนาระบบต่อไปอีกด้วย การวิเคราะห์และออกแบบเชิงวัตถุเป็นการกำหนดแนวทางการทำงานโดยใช้สัญลักษณ์ใน การวิเคราะห์และออกแบบตามหลักการเชิงวัตถุ ซึ่งเป็นการรวมเอาคุณสมบัติ (attribute) และ หน้าที่การทำงาน (operation) เข้าไว้ด้วยกัน จึงมีการกำหนดขั้นตอนการวิเคราะห์และออกแบบเชิง วัตถุ และกำหนดคำที่ใช้เพื่อให้เกิดความเข้าใจที่ตรงกัน เป็นมาตรฐานโมเดลและสัญลักษณ์ที่ใช้ใน การวิเคราะห์และออกแบบเชิงวัตถุ โมเดลที่ใช้ในการวิเคราะห์และออกแบบเชิงวัตถุ มี 3 โมเดล ได้แก่ ฟังก์ชันนอลโมเดล (functional model) อ็อบเจ็กต์โมเดล (object model) และไดนามิกโมเดล (dynamic model) 1) ฟังก์ชันนอลโมเดล (Functional Model) เป็นโมเดลที่ใช้แสดงความต้องการทั้งหมด ของระบบโดยใช้เครื่องมือที่เรียกว่า แผนภาพยูสเคส (use case diagram) ช่วยในการอธิบาย รายละเอียดหลักในแต่ละวัตถุ รวมทั้งมีการแสดงการไหลของข้อมูลในแต่ละการทำงาน โมเดลนี้ แสดงให้ทราบว่ามีงานอะไรบ้างที่ต้องทำ แต่จะไม่แสดงรายละเอียดว่าแต่ละงานนั้นต้องทำอย่างไร จึงเป็นเครื่องมือที่ช่วยให้ผู้ใช้สามารถเข้าใจงานได้ง่ายขึ้น และแผนภาพยูสเคสได้ถูกนำไปใช้ใน ขั้นตอนต่างๆ ของการวิเคราะห์และออกแบบต่อไป ตัวอย่างแผนภาพยูสเคสแสดงดังภาพต่อไปนี้
58 ภาพที่ 2.20 แผนภาพยูสเคสของระบบลงทะเบียน 2) อ็อบเจ็กต์โมเดล (object model) เป็นโมเดลที่ใช้แสดงโครงสร้างของระบบในรูปของ คลาส ซึ่งมาจากความต้องการทั้งหมดของระบบ แสดงไว้ในฟังก์ชันนอลโมเดล โครงสร้างของระบบ ในที่นี้ประกอบด้วย แผนภาพคลาส และแผนภาพคอมโพเน้นต์ (component diagram) โดยที่ แผนภาพคลาสจะแสดงคุณสมบัติ ซึ่งได้แก่ ข้อมูลหรือตัวแปร และแสดงหน้าที่การทำงานซึ่งเป็นเมธ อด (method) ในคลาส รวมทั้งแสดงความสัมพันธ์ระหว่างคลาส ส่วนแผนภาพคอมโพเน้นต์จะ แสดงความสัมพันธ์ของคอมโพเน้นต์ในระบบ 3) ไดนามิกโมเดล (dynamic model) เป็นโมเดลที่ใช้แสดงการทำงานระหว่างวัตถุตามที่ ได้มีการส่งข้อความไปมาระหว่างวัตถุ และเป็นวัตถุที่สร้างขึ้นจากคลาสที่ได้ออกแบบไว้ในอ็อบเจ็กต์ โมเดลโดยมีคุณสมบัติและหน้าที่การทำงานเช่นเดียวกับคลาสต้นแบบ เครื่องมือใช้งานในไดนามิก โมเดลประกอบด้วยแผนภาพ 2 ลักษณะ คือ แผนภาพลำดับหรือซีเควนซ์และแผนภาพเสตท (sequence diagram และ state diagram) โดยแผนภาพลำดับหรือซีเควนซ์ (sequence diagram) ใช้แสดงลำดับการทำงาน เพื่อแสดงให้เห็นว่าเมื่อเกิดเหตุการณ์ขึ้นแล้ว วัตถุต่างๆ จะ ทำงานต่อไปอย่างไร ส่วนแผนภาพเสตท (state diagram) ใช้แสดงสถานการณ์ทำงานที่เป็นไปได้ รวมทั้งแสดงถึงเหตุการณ์ที่ทำให้เกิดการเปลี่ยนสถานการณ์ทำงานของแต่ละวัตถุ
59 ใบงาน ให้นักศึกษาแบ่งกลุ่มๆ ละ 3 คน และคิดหัวข้อโครงงาน (Proposal) ที่เกี่ยวกับการพัฒนาระบบ สารสนเทศ โดยประกอบด้วยรายละเอียดดังนี้ กำหนดส่งภายในสัปดาห์ที่ 2 หลังเปิดเรียน โดยให้ ตัวแทนกลุ่มเป็นผู้ส่งแต่เพียงผู้เดียว 1. ชื่อหัวข้อโครงงาน 2. ชื่อผู้ดําเนินโครงงาน 3. ความเป็นมาของโครงงาน 4. ความสำคัญของปัญหา 5. วัตถุประสงค์ของโครงงาน 6. ขอบเขตของโครงงาน 7. เครื่องมือที่ใช้พัฒนาโครงงาน 8. วิธีการดําเนินโครงงาน 9. ทฤษฎี โครงงาน หรืองานวิจัยที่เกี่ยวข้อง 10. นิยามศัพท์เฉพาะ (ถ้ามี) 11. ประโยชน์ที่คาดว่าจะได้รับ
60 แบบฝึกหัด 1. จงบอกความหมายของวงจรการพัฒนาระบบ 2. จงบอกขั้นตอนในวงจรการพัฒนาระบบว่ามีกี่ขั้นตอน อะไรบ้าง 3. จงอธิบายแนวคิดการออกแบบระบบเชิงโครงสร้าง 4. แนวคิดของการออกแบบระบบเชิงโครงสร้างมีรูปแบบอะไรบ้าง 5. แนวทางเลือกวิธีการที่เหมาะสมในการพัฒนาระบบเชิงโครงสร้าง สามารถพิจารณาจาก อะไรบ้าง 6. ยกตัวอย่างเครื่องมือสำหรับการออกแบบระบบเชิงโครงสร้าง 7. จงอธิบายวิธีการพัฒนาระบบแบบน้ำตก (Water fall model) 8. จงอธิบายแนวคิดการออกแบบระบบเชิงวัตถุ 9. จงอธิบายวิธีการออกแบบระบบเชิงวัตถุ 10. โมเดลที่ใช้ในการวิเคราะห์และออกแบบเชิงวัตถุ มี 3 โมเดล ได้แก่โมเดลอะไรบ้าง
61 เฉลยแบบฝึกหัด 1. เป็นขั้นตอนหรือกระบวนการในการพัฒนาระบบงาน ที่มีจุดเริ่มต้นและจุดสิ้นสุดของการ ปฏิบัติงาน เป็นวิธีการพัฒนาระบบที่มีกรอบการทำงานที่เป็นโครงสร้างชัดเจนมีลำดับกิจกรรมในแต่ ละระยะที่แน่นอน 2. มี 5 ขั้นตอน ดังนี้1) การวางแผนระบบ (system planning) 2) การวิเคราะห์ระบบ (system analysis) 3) การออกแบบระบบ (system design) 4) การพัฒนาระบบ (system implement) และ 5) การบำรุงรักษาระบบ (system maintenance) 3. กระบวนการพัฒนาระบบเชิงโครงสร้าง เป็นวิธีที่เป็นทางการในการพัฒนาระบบสารสนเทศ ตามวงจรการพัฒนาระบบ โดยอาจใช้วิธีการออกแบบระบบที่เป็นเชิงโครงสร้างมาเป็นแนวทางการ พัฒนาระบบเช่น การพัฒนาระบบแบบน้ำตก (Water fall model) การพัฒนาระบบแบบรวดเร็ว (Rapid Application Development: RAD) เป็นต้น 4. การพัฒนาระบบแบบน้ำตก (Water fall model) การพัฒนาระบบแบบรวดเร็ว (Rapid Application Development: RAD) การสร้างต้นแบบ (prototyping) การสร้างต้นแบบใช้แล้วทิ้ง (throwaway prototyping) การพัฒนาแบบอะไจล์(Agile development) 5. ความต้องการของผู้ใช้ เทคโนโลยี ความซับซ้อนของระบบ ความน่าเชื่อถือของระบบ ระยะเวลาโครงการ 6. ผังงาน (flowchart) ผังงานระบบ (system flowchart) ผังงานโปรแกรม (program flowchart) แผนภาพกระแสข้อมูล (Data Flow Diagram: DFD) 7. เป็นวิธีการออกแบบแบบดั้งเดิมที่มีแบบแผนและยังคงใช้กันจนถึงปัจจุบัน นักวิเคราะห์ ระบบและผู้ใช้จะดำเนินการอย่างเป็นลำดับขั้นตอน จากขั้นตอนแรกไปยังขั้นตอนต่อๆ ไป เอกสารที่ ต้องส่งมอบในแต่ละขั้นตอน จะนำเสนอให้กับผู้สนับสนุนโครงการเพื่อขออนุมัติเป็นระยะๆ เมื่อ โครงการได้รับการอนุมัติในขั้นตอนใดแล้ว จึงจะดำเนินงานขั้นตอนต่อไปจนสิ้นสุดขั้นตอนสุดท้าย จึงเรียกวิธีการนี้ว่า การพัฒนาระบบแบบน้ำตก เพราะการพัฒนาจะขยับเดินหน้าไปทีละขั้นตอนใน ลักษณะคล้ายน้ำตก แต่ก็อาจขยับย้อนกลับได้ เช่น จากการออกแบบระบบย้อนกลับไปที่การ วิเคราะห์ระบบ เป็นต้น 8. กระบวนการพัฒนาระบบเชิงวัตถุ จะมองระบบสารสนเทศเป็นแหล่งรวมของการโต้ตอบ ระหว่างวัตถุ (Objects) เพื่อทำงานร่วมกันจนกระทั่งงานสำเร็จ ซึ่งวัตถุก็คือสิ่งๆ หนึ่งในระบบ คอมพิวเตอร์ที่มีความสามารถในการตอบสนองต่อข่าวสาร (Message) และในตัววัตถุก็จะเป็นแหล่ง รวมของข้อมูลและวิธีการ โดยมีคลาสเป็นตัวกำหนดคุณสมบัติให้กับวัตถุดังนั้น มุมมองของการ
62 พัฒนาระบบเชิงวัตถุจึงมีความแตกต่างจากวิธีเชิงโครงสร้างอย่างสิ้นเชิง ทั้งในด้านวิธีการวิเคราะห์ ระบบ การออกแบบระบบ และการเขียนโปรแกรม 9. เป็นวิธีที่ทันสมัยในการพัฒนาระบบสารสนเทศ โดยมีลักษณะคือ มีการใช้ยูสเคสในการ ขับเคลื่อน มีการใช้สถาปัตยกรรมเป็นศูนย์กลาง และมีการใช้ซ้ำและการทำเพิ่มขึ้น 10. ฟังก์ชันนอลโมเดล (functional model) อ็อบเจ็กต์โมเดล (object model) และไดนามิก โมเดล (dynamic model)
หน่วยที่ 2 การวางแผนโครงการพัฒนาระบบสารสนเทศ 2.1 การกำหนดปัญหาและการศึกษาความเป็นไปได้ การกำหนดปัญหาและการศึกษาความเป็นไปได้จัดเป็นกิจกรรมที่อยู่ในระยะการวางแผน โครงการในวงจรการพัฒนาระบบ การวางแผนโครงการ จัดเป็นระยะแรกที่สำคัญต่อระบบงาน โดย ระยะเวลาของการวางแผนโครงการนั้นจะมีช่วงเวลาที่ค่อนข้างสั้นเมื่อเทียบกับระยะอื่นๆ โดยระยะ นี้นักวิเคราะห์ระบบจะกำหนดปัญหา และศึกษาความเป็นไปได้ของโครงการในแง่มุมต่างๆ จากนั้น จึงจัดทำรายงานข้อเสนอ (Proposal) เสนอต่อผู้บริหารเพื่อลงนามยืนยันในโครงการว่าเห็นสมควร สนับสนุนเงินลงทุนเพื่อโครงการนี้หรือไม่ และด้วยระยะของการวางแผนโครงการที่ปกติมักจะมี ระยะเวลาค่อนข้างสั้นอยู่แล้ว ดังนั้นกิจกรรมต่างๆ ที่ต้องดำเนินการในระยะนี้จึงมักประกอบด้วย ทีมงานนักวิเคราะห์ระบบที่มีประสบการณ์สูงประมาณ 2-3 คน โดยนักวิเคราะห์ระบบคนแรกจะ รับผิดชอบเป็นผู้จัดการโครงการ (Project Manager) ส่วนนักวิเคราะห์ระบบที่เหลือจะทำหน้าที่ จัดตั้งทีมงานโครงการขึ้นมาซึ่งประกอบด้วยบุคลากรที่มีประสบการณ์ มีทักษะด้านการวิเคราะห์ และการพัฒนา พร้อมกับประประสบการณ์ในด้านการควบคุมและการจัดการโครงการ ทั้งนี้สมาชิก ทีมงานทีมแรก ส่วนใหญ่แล้วมักจะถูกกำหนดให้เป็นผู้นำทีมหลักๆ ให้แก่ทีมพัฒนาอื่นๆ ที่เหลือ ตารางต่อไปนี้เป็นตารางแสดงถึงคำถามหลักๆ ที่ต้องได้รับคำตอบชัดเจนเกี่ยวกับกิจกรรมการ วางแผนโครงการ ตารางที่ 3.1 คำถามที่ต้องได้รับคำตอบชัดเจนเกี่ยวกับกิจกรรมการวางแผนโครงการ กิจกรรมการวางแผนโครงการ คำถาม กำหนดปัญหา ได้ทำความเข้าใจเกี่ยวกับปัญหาที่เกิดขึ้นแล้วหรือยัง? แล้วรู้ หรือยังว่า…สิ่งที่ควรทำมีอะไรบ้าง กำหนดเวลาโครงการ เราสามารถดำเนินงานตามตารางที่กำหนดไว้ในโครงการให้ เสร็จสมบูรณ์ ภายใต้กรอบเวลาและทรัพยากรที่มีอยู่อย่าง จำกัดได้หรือไม่ ยืนยันความเป็นไปได้ของโครงการ ภายหลังจากการศึกษาความเป็นไปได้แล้ว เชื่อว่าการ ดำเนินงานเกี่ยวกับโครงการนี้มีความเป็นไปได้หรือไม่ จัดตั้งทีมงานโครงการ ทรัพยากรที่มีอยู่ บุคลากรที่ผ่านการฝึกอบรม ทีมงานที่ได้รับ การจัดตั้ง มีความพร้อมแล้วหรือยัง ดำเนินโครงการ เราพร้อมที่จะเริ่มดำเนินโครงการนี้แล้วใช่หรือไม่?
64 2.1.1 ปัจจัยที่ส่งผลต่อโครงการพัฒนาระบบ ปัจจัยหรือแรงผลักดันที่ส่งผลต่อความต้องการเพื่อให้เกิดโครงการพัฒนาระบบนั้น อาจมา จากแรงกดดันหรือจากปัจจัยรอบด้านต่างๆ หลายประการด้วยกัน ซึ่งมีทั้งปัจจัยจากภายในและ ภายนอก ปัจจัยภายใน (Internal Factors) ปัจจัยภายในที่ส่งผลต่อโครงการพัฒนาระบบ ประกอบด้วย 1) แผนกลยุทธ์ (Strategic Plan) แผนกลยุทธ์ของบริษัทจะถูกนำมาใช้เพื่อกำหนดทิศทาง ในภาพรวมของบริษัท และแผนดังกล่าวก็มีความสำคัญเพียงพอที่จะส่งผลกระทบต่อโครงการระบบ ไอทีเช่นกัน เนื่องจากอิทธิพลด้านเทคโนโลยีหรือระบบไอทีจะช่วยสนับสนุนการขับเคลื่อนการ ดำเนินงานทางธุรกิจต่างๆ ขององค์กรให้บรรลุตรงตามวัตถุประสงค์และเป้าหมายได้ ประกอบกับ แผนกลยุทธ์ที่นำเทคโนโลยีมาปรับใช้ ล้วนมีแนวโน้มในการพัฒนาโครงการไอทีให้ขยายครอบคลุม ทั่วทั้งองค์กร 2) ผู้บริหารระดับสูง (Top Managers) ทิศทางหรือคำสั่งที่มาจากผู้บริหารระดับสูง ถือเป็น แหล่งสำคัญที่มีผลต่อโครงการพัฒนาระบบ เพราะคำสั่งเหล่านี้ส่วนใหญ่เป็นผลมาจากการตัดสินใจ เชิงกลยุทธ์ของผู้บริหารที่จำเป็นต้องนำระบบไอทีใหม่ๆ มาใช้เพื่อให้ได้มาซึ่งสารสนเทศเพิ่มเติมและ มีประโยชน์ต่อการตัดสินใจรวมถึงการนำระบบสารสนเทศมาขับเคลื่อนภารกิจสำคัญๆ ให้ดีมาก ยิ่งขึ้น เพื่อให้บรรลุเป้าหมายตามพันธกิจ 3) คำร้องขอจากผู้ใช้ (User Requests) เนื่องจากผู้ใช้ระบบเป็นผู้ปฏิบัติงานกับระบบเป็น ประจำทุกวันจึงรับรู้ถึงปัญหาต่างๆ ที่เกิดขึ้นจากการปฏิบัติงานจริง ส่งผลต่อความต้องการงาน บริการด้านไอทีเพิ่มมากขึ้น เพื่อสนับสนุนงานที่ปฏิบัติอยู่ ตัวอย่างเช่น ฝ่ายขายได้จัดทำใบคำร้องขอ ระบบเพื่อให้ปรับปรุงเว็บไซต์ของบริษัทให้มีความสามารถในการแสดงรายงานวิเคราะห์การขายที่มี ประสิทธิภาพยิ่งขึ้น การเชื่อมโยงเครือข่ายไปยังหน่วยขายตามแหล่งที่ตั้งต่างๆ ให้เข้าถึงกันได้ ทั้งหมด หรือเตรียมระบบออนไลน์ที่อนุญาตให้ลูกค้าเข้าถึงเพื่อตรวจสอบสถานะการสั่งซื้อและการ จัดส่งสินค้าซึ่งโดยปกติ คำร้องขอเหล่านี้มักมาจากความไม่พึงพอใจในระบบปัจจุบัน ไม่ว่าจะเป็น ระบบใช้งานยาก ไม่ยืดหยุ่น รวมถึงความต้องการใหม่ๆ ทางธุรกิจซึ่งหาไม่ได้จากระบบปัจจุบันที่ ดำเนินอยู่ จึงต้องมีการร้องขอเพื่อพัฒนาระบบใหม่ รูปที่ 3.1 เป็นตัวอย่างคำร้องขอระบบจากแผนก การตลาดที่ร้องขอให้พัฒนาระบบการองรถผ่านอินเทอร์เน็ตบนเว็บไซต์ของบริษัท
65 System Request Date: 9 มิถุนายน 2563 ชื่อโครงการ (Project Name): การจองรถผ่านอินเทอร์เน็ต ผู้ร้องขอ (Requested By): คุณอารีรัตน์รองผู้จัดการ แผนก (Department): การตลาด โทรศัพท์ (Phone): 109 อีเมล (e-mail): [email protected] ความต้องการทางธุรกิจ (Business Requirements): เพื่อทำกำไรและเพิ่มช่องทางการบริการลูกค้าผ่านเครือข่ายอินเทอร์เน็ต ความต้องการด้านฟังก์ชันการทำงาน (Functionality): เมื่อมีเว็บไซต์ ลูกค้าจะสามารถจองรถผ่านทางเว็บไซต์ ซึ่งรองรับได้ทั้งลูกค้าภายในประเทศและลูกค้า ต่างประเทศ โดยลูกค้าสามารถ - ค้นหารถที่ต้องการเช่า ผ่านทางเว็บไซต์ได้ - สามารถจองรถล่วงหน้าและจองได้หลายคัน - บริการสมัครสมาชิก - บริการรับชำระเงินค่าจองรถผ่านบัตรเครดิต - เมื่อได้รับการยืนยัน ทางบริษัทจะจัดเตรียมรถที่จองเพื่อส่งมอบรถให้เช่าตามวันเวลาที่แจ้ง - ระบบสามารถรับข้อมูลการจองรถจากลูกค้าเพื่อดำเนินรายการได้อย่างรวดเร็ว คุณค่าทางธุรกิจ (Business Value): Tangible: - เพิ่มกำไร 1-3 ล้านบาทต่อปี ภายหลังจากธุรกิจได้ดำเนินการไปแล้วประมาณ 2-3 ปี Intangible: - ลูกค้ามีความพึงพอใจมากขึ้น - บริษัทจะเป็นที่รู้จักกว้างขวางยิ่งขึ้น ส่งผลให้มีลูกค้ามากยิ่งขึ้น ประเด็นพิเศษหรือข้อจำกัดอื่นๆ (Special Issues or Constraints): - แผนกการตลาดได้วางแผนกลยุทธ์ ด้วยการศึกษาจากรายงานผู้ประกอบการรายต่างๆ ที่ล้วนแต่นำ เทคโนโลยีอินเทอร์เน็ตมาใช้เพื่อเพิ่มช่องทางการตลาดซึ่งเติบโตรวดเร็วมาก ดังนั้น หากองค์กรไม่มี ขีดความสามารถในการให้บริการผ่านอินเทอร์เน็ต อนาคตจะทำให้เราไม่สามารถแข่งขันกับคู่แข่งราย อื่นๆ ในตลาดได้ - ระบบจะต้องถูกจัดทำขึ้นให้แล้วเสร็จ ก่อนเทศกาลสงกรานต์ที่จะถึงปีนี้ เนื่องจากทางรัฐบาลได้ กำหนดให้ปีนี้เป็นปีท่องเที่ยวซึ่งจะมีนักท่องเที่ยวต่างชาติเดินทางเข้ามาเป็นจำนวนมาก ภาพที่ 3.1 ตัวอย่างคำร้องขอระบบจากแผนกการตลาดที่ร้องขอให้พัฒนาระบบการองรถผ่าน อินเทอร์เน็ตบนเว็บไซต์ของบริษัท
66 4) แผนกเทคโนโลยีสารสนเทศ (IT Department) ทีมงานเทคโนโลยีสารสนเทศอาจเห็นถึง ความก้าวหน้าและทันสมัยของเทคโนโลยีซึ่งสามารถนำมาพัฒนาต่อยอดให้ระบบงานปัจจุบันมี ประสิทธิภาพและตรงกับสิ่งที่ผู้ใช้ต้องการเพิ่มมากขึ้น หรืออาจจะให้คำแนะนำเกี่ยวกับแนวโน้มด้าน เทคโนโลยีที่สามารถนำมาใช้กับขั้นตอนการปฏิบัติงานทางธุรกิจสมัยใหม่ และสร้างเป็นระบบงานที่ ทันสมัยมีประโยชน์ต่อองค์กรมากยิ่งขึ้น ยกตัวอย่างเช่น อาจจะมีการนำเสนอการแทนที่อุปกรณ์ เครือข่ายใหม่ๆ การแนะนำอุปกรณ์ทดแทนที่ทันสมัยกว่า ดีกว่า มีราคาถูกกว่า เพื่อนำมาใช้กับการ ปฏิบัติงานทางธุรกิจ รวมถึงการเสนอรายงานใหม่ๆ และแนะนำระบบการเก็บรวบรวมข้อมูลด้วย เทคโนโลยีสมัยใหม่ ซึ่งมีประสิทธิภาพสูงกว่า เป็นต้น 5) ระบบงานเดิม (Existing Systems and Data) อาจจะเกิดข้อผิดพลาดหรือปัญหากับ ระบบงานเดิม ทำให้เกิดการร้องขอให้พัฒนาระบบใหม่ขึ้นมา ซึ่งอาจจะเกิดจากระบบเดิมเป็นระบบ เก่าที่ล้าสมัย ไม่สามารถตอบสนองความต้องการใหม่ๆ แก่ผู้ใช้ จนกลายเป็นแรงกดดันให้มีการ พัฒนาระบบใหม่ขึ้น ยกตัวอย่างเช่น ระบบงานเดิมมีระบบจัดการฐานข้อมูลที่มีการจัดการและ จัดเก็บข้อมูลในปริมาณที่จำกัด ซึ่งเมื่อระยะเวลาผ่านมาเป็นเวลาหลายปีปริมาณข้อมูลเพิ่มขึ้นเป็น จำนวนมากจนทำให้ระบบจัดการฐานข้อมูลเดิมไม่สามารถรองรับได้ จึงต้องมีการพัฒนาระบบ จัดการฐานข้อมูลใหม่ขึ้นมารองรับ เป็นต้น ปัจจัยภายนอก (External Factors) ปัจจัยภายนอกที่ส่งผลต่อโครงการพัฒนาระบบ ประกอบด้วย 1) เทคโนโลยี (Technology) เทคโนโลยีถือเป็นแรงกดดันหลักที่ส่งผลต่อธุรกิจและ สังคมโดยทั่วไป ตัวอย่างเช่น การเติบโตอย่างรวดเร็วของระบบการสื่อสารโทรคมนาคม ได้สร้าง อุตสาหกรรมและเทคโนโลยีใหม่ๆ เกิดขึ้นอย่างมากมาย เทคโนโลยีเหล่านี้ช่วยอำนวยความสะดวก และยังส่งผลต่อความสำเร็จของธุรกิจไม่ทางตรงก็ทางอ้อม ดังนั้น ภาคธุรกิจจึงต้องปรับตัวขนาน ใหญ่ด้วยการนำนวัตกรรมทางเทคโนโลยีใหม่ๆ มาใช้เพื่อให้การดำเนินงานทางธุรกิจเป็นไปอย่างมี ประสิทธิภาพและได้เปรียบคู่แข่งขัน เช่น ธุรกิจทั่วไปส่วนใหญ่ใช้ระบบบาร์โค้ดในการจัดการกับ สินค้าหรือผลิตภัณฑ์ แต่ปัจจุบันเทคโนโลยีบาร์โค้ดได้เข้าสู่ยุคอิ่มตัวและมีการนำระบบ RFID มาใช้ ซึ่งสามารถอ่านและยังบันทึกข้อมูลลงบนแผ่นป้ายอิเล็กทรอนิกส์ได้ ด้วยการส่งคลื่นแม่เหล็กไฟฟ้าที่ ครอบคลุมอาณาบริเวณกว้าง ไม่ต้องสัมผัสหรือนำเครื่องอ่านจ่อใกล้ๆ กับป้ายสินค้าเหมือนกับระบบ บาร์โค้ด ทำให้ RFID มีประสิทธิภาพเหนือกว่าระบบบาร์โค้ดเป็นอย่างมาก โดยเฉพาะการนำ RFID มาใช้เพื่อติดตามสินค้าหรือพัสดุภัณฑ์ งานควบคุมคงคลัง งานขนส่งโลจิสติกส์ และงานที่เกี่ยวข้อง กับระบบโซ่อุปทานขององค์กร 2) ผู้ขายปัจจัยการผลิต (Suppliers) จากการเติบโตของเครือข่ายอินเทอร์เน็ต ก่อให้เกิด ระบบการแลกเปลี่ยนข้อมูลทางอิเล็กทรอนิกส์ (Electronic Data Interchange) หรือ
67 ระบบ EDI โดยเฉพาะกลุ่มผู้ขายปัจจัยการผลิตหรือซัพพลายเออร์ที่เป็นคู่ค้าทางธุรกิจร่วมกัน ทั้งใน และต่างประเทศ ได้หันมาใช้ระบบ EDI เพื่อส่งข้อมูลผ่านเครือข่ายเอ็กซ์ทราเน็ตที่เชื่อมโยงเข้ากับ ระบบของบริษัทคู่ค้ารายต่างๆ เข้าด้วยกันบนพื้นฐานโครงข่ายอินเทอร์เน็ต ส่งผลให้บริษัทคู่ค้า สามารถดำเนินธุรกรรมเพื่อสื่อสารแลกเปลี่ยนข้อมูลได้อัตโนมัติ มีความรวดเร็ว ปลอดภัย น่าเชื่อถือ ตัวอย่างเช่น โรงงานประกอบรถยนต์ขนาดใหญ่ ซึ่งปกติมักมีการสั่งวัตถุดิบจากผู้ขายรายต่างๆ เป็น จำนวนมาก อีกทั้งยังมีการเตรียมระบบสารสนเทศให้สามารถเชื่อมโยงเข้ากับคู่ค้าหรือผู้ขายราย ต่างๆ เพื่อแลกเปลี่ยนข้อมูลและดำเนินธุรกรรมผ่านระบบ EDI ดังนั้น ผู้ขายรายใดที่ต้องการเข้าร่วม เป็นคู่ค้าก็ต้องปรับตัวและพัฒนาระบบของตนให้สามารถเชื่อมโยงเข้ากับระบบดังกล่าวได้ 3) ลูกค้า (Customers) ลูกค้าถือว่าเป็นสิ่งสำคัญมากที่สุดในการประกอบธุรกิจ ดังนั้นองค์กรต่างๆ จึงพยายามนำเทคโนโลยีมาประยุกต์ใช้เพื่อตอบสนองความต้องการของลูกค้า เพื่อให้ลูกค้ามีความพึงพอใจ จงรักภักดี ไม่เปลี่ยนไปใช้สินค้าหรือบริการจากคู่แข่ง ซึ่งจะเห็นได้จาก ภาคธุรกิจพยายามพัฒนา ระบบจัดการลูกค้าสัมพันธ์ (Customer Relationship Management) หรือระบบ CRM เพื่อบริการแก่ลูกค้าในด้านต่างๆ เพื่อให้ลูกค้าเกิดความพึงพอใจ เช่น การบริการ หลังการขาย การแก้ไขปัญหาจากการใช้สินค้าหรือบริการ การอำนวยความสะดวกด้วยการเพิ่มช่อง ทางการชำระเงินผ่านเว็บไซต์ และการติดตามสินค้าที่ลูกค้าสามารถตรวจสอบสถานะการขนส่ง สินค้าแบบออนไลน์ได้ทันที ซึ่งระบบจัดการตามที่กล่าวมาส่วนใหญ่ล้วนดำเนินงานอยู่บนพื้นฐาน ของเทคโนโลยีอินเทอร์เน็ตทั้งสิ้น 4) คู่แข่งขัน (Competitors) การแข่งขันทางธุรกิจเป็นตัวขับเคลื่อนให้เกิดการ ตัดสินใจพัฒนาระบบสารสนเทศมากยิ่งขึ้น โดยเฉพาะหากคู่แข่งขันได้คิดค้นหรือนำเทคโนโลยีใหม่ๆ มาใช้ องค์กรก็คงอยู่นิ่งไม่ได้ แรงกดดันเหล่านี้ทำให้องค์กรต้องหันมาใช้เทคโนโลยีเพื่อปรับปรุง ผลิตภัณฑ์และงานบริการอย่างเร่งด่วนเพื่อพร้อมแข่งขันและรักษาส่วนแบ่งทางการตลาดของตนมิ ให้ถูกแย่งชิงไป 5) เศรษฐกิจ (Economy) การเคลื่อนไหวและการเปลี่ยนแปลงของเศรษฐกิจโลกมี อิทธิพลต่การจัดการสารสนเทศในองค์กรอย่างหลีกเลี่ยงไม่ได้ ปัจจัยเหล่านี้ อาจส่งผลต่อองค์กรต้อง เร่งปรับปรุงระบบงานเพื่อเพิ่มขีดความสามารถในการรองรับการขยายตัวของเศรษฐกิจโลก 6) รัฐบาล (Government) ระเบียบข้อบังคับจากรัฐบาลส่งผลกระทบต่อการ ออกแบบและปรับปรุงระบบสารสนเทศในองค์กรไม่มากก็น้อย ตัวอย่างเช่น โปรแกรมระบบบัญชีที่ งานตามภาคธุรกิจ จะต้องออกแบบกระบวนการภายในให้เป็นไปตามกฎระเบียบของกรมสรรพากร ที่บัญญัติไว้ หรือการดำเนินธุรกิจซื้อขายผ่านอินเทอร์เน็ตที่ภาครัฐออกกฎให้มีการบันทึกประวัติการ ซื้อขาย เพื่อนำไปใช้ประกอบการชำระภาษีตามกฎหมายการค้าอิเล็กทรอนิกส์ สิ่งเหล่านี้ ล้วนทำให้ องค์กรต้องนำระบบสารสนเทศมาใช้เพื่อรองรับกับมาตรการดังกล่าว
68 2.1.2 การกำหนดปัญหา การกำหนดปัญหา (Problem Definition) เป็นการค้นหาเพื่อระบุปัญหาที่เกิดขึ้นในระบบซึ่ง ทำให้ต้องปรับปรุงหรือพัฒนาระบบขึ้นมาใหม่เพื่อใช้แก้ปัญหานั้น ปัญหาที่เกิดขึ้นจากการ ดำเนินงานทางธุรกิจถือว่าเป็นเรื่องราวปกติ และถึงแม้ว่าปัญหาที่เกิดขึ้นจะเล็กน้อย ก็สมควรได้รับ การแก้ไขปรับปรุง เพราะอาจส่งผลให้ธุรกิจติดขัด ได้รับความเสียหาย และถ้าปัญหาถูกยกระดับ จนถึงขั้นวิกฤต ธุรกิจย่อมล่มสลายได้ในที่สุด ในขณะเดียวกัน หากธุรกิจใดสามารถจัดการและแก้ไข ปัญหาต่าง ๆให้ลุล่วงได้ทันท่วงที นั่นแสดงให้เห็นว่าองค์กรนั้นมีขีดความสามารถในการปรับตัวเพื่อ ธำรงความอยู่รอด และพร้อมที่จะก้าวไปสู่ความสำเร็จตามเป้าหมายได้ต่อไป ดังคำกล่าวที่ว่า “ที่ใด ไม่มีปัญหา ที่นั่น..ย่อมไม่มีการพัฒนา” จุดเริ่มต้นของงานวิเคราะห์และออกแบบระบบ อาจเกิดจากบุคลากรในองค์กรได้พบปัญหา ต่างๆ จากงานที่ดำเนินการอยู่เป็นประจำ และปัญหาเหล่านั้นได้ส่งผลกระทบต่อกระบวนการทำงาน ของพวกเขา ดังนั้น จึงเกิดความต้องการให้สร้างระบบใหม่เพื่อแก้ไขปัญหาดังกล่าวให้ลุล่วง และ สร้างคุณค่าให้กับธุรกิจ ซึ่งโดยปกติแล้วการตรวจสอบปัญหาสามารถดำเนินการได้ด้วยวิธีพื้นฐาน ง่ายๆ 2 ประการด้วยกันคือ 1) การตรวจสอบปัญหาจากการปฏิบัติงาน เป็นการตรวจสอบปัญหาที่เกิดขึ้นจากการ ปฏิบัติงานประจำวัน เช่น - ขั้นตอนการทำงานมีจุดติดขัดและชะงัก ทำให้การดำเนินการล่าช้า ใช้เวลามาก - ขั้นตอนการทำงานมีความซ้ำซ้อน ใช้กำลังคนมากเกินความจำเป็น - งานดังกล่าว มีค่าใช้จ่ายสูงเกินไป - ลักษณะของงาน มีการเคลื่อนไหวมาก - งานนั้นๆ ต้องอาศัยความชำนาญและใช้เวลาฝึกฝน 2) การสังเกตพฤติกรรมของพนักงาน เป็นการสังเกตพฤติกรรมของพนักงานเกี่ยวกับ การปฏิบัติงานว่าเป็นอย่างไร ตัวอย่างเช่น - พนักงานมีอัตราการเจ็บป่วยสูง - พนักงานไม่พึงพอใจกับงานที่ปฏิบัติอยู่ - ไม่มีความกระตือรือร้นในการทำงาน - อัตราการลาออกของพนักงานมีสูง ความคาดหวังเมื่อมีการปรับปรุงระบบงานแล้ว จะต้องช่วยให้สิ่งเหล่านี้ดีขึ้น ตัวอย่างเช่น - ลดค่าใช้จ่ายในการดำเนินทำงาน - เพิ่มประสิทธิภาพในการทำงาน
69 - เปลี่ยนสภาพแวดล้อมการทำงานให้ดียิ่งขึ้น สะดวก ปลอดภัย - เพิ่มผลผลิตให้แก่องค์กรในทุกภาคส่วน เทคนิคการปรับปรุงระบบงานจะมีหลักใหญ่ๆ คือ - ขจัดงานบางส่วนที่ไม่จำเป็นหรือไม่มีประโยชน์ออกไป - รวมขั้นตอนต่างๆ ที่เกี่ยวข้องเข้าด้วยกัน - สลับขั้นตอนการทำงานใหม่ โดยคำนึงถึงความเหมาะสม - ปรับปรุงขั้นตอนการทำงานให้ดียิ่งขึ้นกว่าเดิม หลักการแก้ไขปัญหาที่ดี ที่นักวิเคราะห์ระบบสามารถนำมาใช้ มีดังนี้ - ใช้หลักเหตุผลในการตอบคำถามเพื่อหาสาเหตุไปเรื่อย ๆ ว่า “ทำไม” และ “อย่างไร” - พิจารณาหาสาเหตุของปัญหา โดยพยายามค้นหาต้นตอที่ก่อให้เกิดปัญหาดังกล่าว - ใช้ประสบการณ์ของตน ในการวิเคราะห์หาสาเหตุของปัญหาที่เกิดขึ้น - รับฟังความคิดเห็นและข้อเสนอจากบุคคลอื่นๆ เพื่อนำไปสู่การสังเคราะห์ความคิด ใหม่ๆ - วิเคราะห์หาสาเหตุของปัญหาด้วยการระดมสมอง หรือการจัดทำแผนภูมิก้างปลา สำหรับแนวทางหนึ่งที่สามารถนำมาประยุกต์ใช้กับการค้นหาสาเหตุของปัญหาได้เป็นอย่าง ดีก็คือ การเขียนแผนภูมิก้างปลา หรือ Fishbone Diagram หรือ Cause-and-Effect Diagram หรือ Ishikawa Diagram โดยหลักการเขียนแผนภูมิก้างปลา มีรูปแบบการเขียนดังภาพที่ 3.2 ภาพที่ 3.2 รูปแบบการเขียนแผนภูมิก้างปลา (Fishbone Diagram)
70 ต่อไปนี้เป็นตัวอย่างกรณีศึกษาของบริษัทที่ดำเนินธุรกิจเกี่ยวกับการบริการรถเช่า เพื่อที่จะ ได้ทำการศึกษาถึงการกำหนดปัญหาและทราบถึงสาเหตุของปัญหา บริษัทดำเนินธุรกิจเกี่ยวกับการบริการรถเช่ารถแก่ลูกค้าที่เป็นนักท่องเที่ยวและบุคคลทั่วไป บริษัทตั้งอยู่ที่อำเภอเมือง จังหวัดเชียงใหม่ บริษัทได้ก่อตั้งมาเป็นเวลามากกว่า 10 ปี มีรถยนต์ ประมาณ 100 คัน ที่เตรียมไว้คอยบริการแก่ลูกค้า นอกจากนี้ ทางบริษัทยังมีช่างซ่อมบำรุงของ บริษัทเองที่ทำหน้าที่บำรุงรักษารถทุกคันให้อยู่ในสภาพดี พร้อมใช้งาน สำหรับลูกค้าส่วนใหญ่มัก เป็นนักท่องเที่ยวจากต่างประเทศ รองลงมาก็คือนักท่องเที่ยวภายในประเทศ โดยผลการดำเนินงาน ที่ผ่านมา มีรายได้จากการทำธุรกิจด้วยดีมาโดยตลอด แต่ปัญหาที่กำลังเผชิญอยู่คือ ระบบงานเดิมที่ ดำเนินการอยู่ตั้งแต่อดีตจนถึงปัจจุบัน ได้เริ่มก่อปัญหาสะสมอย่างต่อเนื่อง โดยระบบงานมักจะ ประมวลผลด้วยมือเป็นส่วนใหญ่ มีการจัดเก็บข้อมูลลงในคอมพิวเตอร์บ้าง แต่ก็ไม่เป็นระบบ เนื่องจากข้อมูลที่บันทึกไม่ได้จัดเก็บอยู่ในรูปแบบของฐานข้อมูล แต่บันทึกอยู่ในรูปแบบของไฟล์ เอกสารด้วยโปรแกรม MS-Word หรือโปรแกรม MS-Excel เป็นส่วนใหญ่ อีกทั้งเอกสารข้อมูลและ หนังสือสัญญาเกี่ยวกับลูกค้าก็มีจำนวนมากเพิ่มขึ้นเรื่อย ๆ เอกสารที่เกี่ยวกับการบำรุงรักษารถยนต์ ก็จัดเก็บอย่างไม่เป็นระบบทำให้ไม่สามารถดูรายละเอียดประวัติการซ่อมบำรุงรถย้อนหลัง เพื่อใช้ ประกอบการพิจารณาว่ารถยนต์ดังกล่าวสมควรที่จะดำเนินการซ่อมบำรุงต่อไปหรือไม่ เป็นต้น ดังนั้นผู้จัดการบริษัทจึงตัดสินใจที่จะนำระบบคอมพิวเตอร์มาใช้แทนระบบงานเดิมทั้งหมด และได้ ว่าจ้างนักวิเคราะห์ระบบทำการศึกษาและรวบรวมปัญหาต่างๆ ซึ่งพอสรุปได้ดังนี้ - ระบบการจัดเก็บข้อมูลของลูกค้ายังมีการจัดการที่ไม่ดีพอ ข้อมูลจัดเก็บซ้ำซ้อน ไม่เป็น ระบบ - การขอดูรายการรถที่ถูกปล่อยเช่าไปหรือรถคงเหลือที่พร้อมปล่อยเช่าในแต่ละวันจะมี การตรวจสอบกันหลายรอบเนื่องจากรถมีการเคลื่อนไหวเข้าออกเป็นประจำ ทำให้พนักงาน จำเป็นต้องรวบรวมเอกสารในแต่ละวัน และต้องตรวจสอบซ้ำทุกครั้งเมื่อต้องการ - ปัญหาเกี่ยวกับการคำนวณค่าเช่ารถ รวมถึงค่าปรับที่เกิดจากการส่งคืนรถเกินกำหนด และการหักส่วนลด มักมีการคำนวณผิดพลาดอยู่บ่อยครั้ง ทำให้ลูกค้าเกิดทัศนคติที่ไม่ดี - เอกสารสัญญาต่างๆ ที่จัดเก็บไว้ บางฉบับสูญหาย ทำให้ไม่สามารถตรวจสอบประวัติ การเช่ารถของลูกค้า - ลูกค้าบางรายเป็นลูกค้าที่อยู่ในกลุ่มเสี่ยง มีประวัติการลักขโมยรถเพื่อนำไปส่งขายต่อยัง ประเทศเพื่อนบ้าน ซึ่งการตรวจสอบประวัติลูกค้าในบางครั้งไม่สามารถตรวจสอบได้อย่างถี่ถ้วน เพราะต้องใช้เวลามาก เนื่องจากประวัติลูกค้าถูกจัดเก็บอยู่ในรูปแบบของเอกสารเป็นส่วนใหญ่ ทำ ให้ต้องใช้เวลาในการค้นหา และหากลูกค้ามีการเปลี่ยนชื่อ ก็เป็นเงื่อนไขให้การค้นหายุ่งยากมากขึ้น ทำให้พนักงานมักข้ามขั้นตอนสำคัญนี้ไป ส่งผลให้บริษัทต้องแบกรับความเสี่ยงมากขึ้น
71 - ไม่มีระบบบริการสมาชิก โดยเฉพาะกรณีนักท่องเที่ยวที่เป็นลูกค้าประจำที่เทศกาล สำคัญต่างๆ มักเดินทางเข้ามาใช้บริการอยู่บ่อยๆ - รายงานสารสนเทศต่างๆ เช่น รายงานทางการเงิน รายงานรถคงเหลือ รายงานรถปล่อย เช่า ต้องใช้เวลาในการจัดทำมากเกินความจำเป็น อีกทั้งยังมีข้อผิดพลาดบ่อยครั้ง - พนักงานมีความเบื่อหน่ายต่องานที่ทำ เพราะเป็นปัญหาแบบเดิม ๆ - ไม่สามารถอำนวยความสะดวกแก่ลูกค้าได้เท่าที่ควรจะเป็น จากการศึกษาปัญหาของระบบเดิมที่ดำเนินอยู่ในปัจจุบัน ได้ค้นพบถึงสาเหตุและ ข้อบกพร่องมากมาย ส่งผลให้การดำเนินงานทางธุรกิจไม่มีประสิทธิภาพเพียงพอ จนต้องมีการ พัฒนาระบบใหม่ โดยปัญหาต่างๆ ที่เกิดขึ้น สามารถสรุปได้ดังนี้ - ระบบเดิมไม่สามารถตอบสนองความต้องการที่แท้จริงของผู้ใช้ และผู้ใช้ที่ปฏิบัติงานอยู่ เป็นประจำไม่มีความพึงพอใจต่อระบบงานเดิม - ระบบเดิมมีองค์ประกอบของเทคโนโลยีที่ไม่เหมาะสมค่อนข้างล้าสมัย - ระบบเดิมไม่สนับสนุนการดำเนินงานในอนาคต เช่น การจองรถผ่านเว็บไซต์ - ระบบเดิมมีขั้นตอนในการปฏิบัติงานค่อนข้างยุ่งยาก ซ้ำซ้อน ไม่เป็นระบบระเบียบ - ระบบเดิมนำเสนอรายงานผิดพลาดอยู่บ่อยครั้ง ทำให้รายงานทางสารสนเทศที่นำเสนอ แก่ผู้บริหารมีความน่าเชื่อถือต่ำ - ระบบเดิมมักเก็บข้อมูลในรูปแบบของเอกสารเป็นส่วนใหญ่ ทำให้มีเอกสารจำนวนมาก และในการค้นหาข้อมูล หรือจัดทำรายงานทางสารสนเทศก็เป็นไปด้วยความล่าช้าไม่ทันการ จากปัญหาด้านการดำเนินงานของระบบเดิมนี้เอง จึงนำมาสรุปผลให้อยู่ในรูปของแผนภูมิ ก้างปลา เพื่อแสดงให้เห็นถึงต้นตอสาเหตุของปัญหาในระบบศูนย์บริการรถเช่า ดังภาพที่ 3.3 ภาพที่ 3.3 แผนภูมิก้างปลาแสดงปัญหาและสาเหตุของปัญหาของระบบศูนย์บริการรถเช่า
72 เมื่อได้ทราบถึงสาเหตุของปัญหาแล้ว ลำดับถัดไป นักวิเคราะห์ระบบจะจัดทำ เอกสาร แสดงขอบเขตระบบ (System Scope Document) ขึ้นมา เพื่อนำมาใช้กำหนดขอบเขตของระบบ ใหม่ โดยภายในเอกสารจะประกอบด้วย รายละเอียดปัญหา วัตถุประสงค์ ขอบเขตของระบบ ประโยชน์ทางธุรกิจและความสามารถของระบบ โดยความสำคัญก็คือ วัตถุประสงค์ที่ระบุไว้ใน เอกสารดังกล่าว จะต้องสอดคล้องกับสาเหตุของปัญหาในแผนภูมิก้างปลาเพื่อนำไปสู่การแก้ปัญหา ได้ตรงจุดและบรรลุผลได้ในที่สุด ต่อไปนี้เป็นตัวอย่างเอกสารแสดงขอบเขตระบบ (System Scope Document) ของระบบ ศูนย์บริการรถเช่า System Scope Document ระบบศูนย์บริการรถเช่า รายละเอียดปัญหา (Problem Statement) เนื่องจากกระบวนการทำงานที่ดำเนินงานอยู่ในปัจจุบันของระบบศูนย์บริการรถเช่า ยังคง เป็นระบบการประมวลผลด้วยมือเป็นส่วนใหญ่ แม้ว่าจะมีการนำคอมพิวเตอร์มาช่วยจัดเก็บข้อมล บ้างก็ตามแต่ก็ยังไม่เป็นระบบ งานบางส่วนก็ทำซ้ำซ้อน สำหรับงานบริการลูกค้าโดยเฉพาะช่วงที่ ลูกค้าเข้ามาใช้บริการพร้อมๆ กัน พนักงานจะไม่สามารถบริการได้อย่างทั่วถึง การจัดทำสัญญาเช่า ของลูกค้าแต่ละรายใช้เวลามากเกินความจำเป็น รวมถึงการค้นหาข้อมูลเก่าของลูกค้าก็ต้องใช้เวลา ในการค้นหาจากแฟ้มเอกสาร ส่งผลให้ลูกค้าไม่พึงพอใจในงานบริการ นอกจากนี้ การคำนวณค่าเช่ารถและค่าปรับ มักมีข้อผิดพลาดอยู่บ่อยครั้ง ระบบการ บำรุงรักษารถที่ไม่สามารถแจ้งเตือนการเข้ารับบริการเมื่อถึงระยะเวลาบำรุงรักษา รวมถึงรายงาน ทางสารสนเทศที่จัดทำขึ้น ก็มีข้อบกพร่องอยู่มากมาย มีความน่าเชื่อถือต่ำ ไม่สามารถนำเสนอ สารสนเทศแก่ผู้บริหารได้อย่างทันท่วงที ดังนั้นจึงเห็นสมควรแก่การพัฒนาระบบใหม่ เพื่อเพิ่ม ประสิทธิภาพในการทำงาน เพิ่มโอกาสในการทำกำไร เพิ่มขีดความสามารถในการแข่งขันที่นับวันจะ มีเพิ่มมากขึ้น วัตถุประสงค์ (Objectives) - เพื่อพัฒนาระบบสารสนเทศการเช่ารถผ่านเครือข่ายอินเทอร์เน็ต - เพิ่มประสิทธิภาพในการทำงาน ลดความซ้ำซ้อน และมีระบบควบคุมที่ดี - เพื่อให้ระบบสามารถค้นหาและตรวจสอบข้อมูลได้อย่างรวดเร็ว - เพื่อให้ระบบสามารถพิมพ์รายงานต่างๆ ให้เป็นไปแบบอัตโนมัติ สามารถนำเสนอต่อ ผู้บริหารได้ทันเวลา
73 ขอบเขตของระบบ (System Scope) - วิเคราะห์และออกแบบระบบศูนย์บริการรถเช่า โดยมีการเชื่อมโยงแผนกต่างๆ เข้าด้วยกัน ในรูปแบบเครือข่ายท้องถิ่น (LAN) มีฐานข้อมูลศูนย์กลงที่พนักงานสามารถเข้าถึงและใช้งานร่วมกัน ได้รวมถึงการเชื่อมโยงเครือข่ายภายในเข้ากับเครือข่ายภายนอก - ระบบสารสนเทศที่พัฒนาครอบคลุมงานเกี่ยวกับ การเช่ารถ การจองรถ การคืนรถ การ ซ่อมบำรุงรถ และรายงานสารสนเทศต่างๆ ที่เกี่ยวข้อง ประโยชน์ทางธุรกิจ (Business Benefits) - บริษัทมีช่องทางในการให้บริการเช่ารถผ่านทางเว็บไซต์ - ข้อมูลมีความน่าเชื่อถือมากขึ้น - ช่วยให้ค้นหาข้อมูลเพื่อใช้ในการตรวจสอบได้อย่างมีประสิทธิภาพ - ผู้บริหารสามารถนำรายงานสารสนเทศไปประกอบการตัดสินใจได้ทันต่อเหตุการณ์ - ช่วยทำให้ลดต้นทุนการใช้กระดาษเอกสารต่างๆ - สร้างภาพพจน์ที่ดีแก่ลูกค้าที่เข้ามาใช้บริการ ด้วยงานบริการที่สะดวกรวดเร็ว ความสามารถของระบบ (System Capabilities) - ระบบจะต้องสนับสนุนกระบวนการธุรกิจหลักๆ ได้เป็นอย่างดี ได้แก่ การเช่ารถ การจองรถ การคืนรถ การคำนวณค่าเช่า และการบำรุงรักษารถ - ระบบต้องสนับสนุนการจองรถทั้งแบบดั้งเดิมด้วยโทรศัพท์ รวมถึงการจองผ่านทางเว็บไซต์ - ข้อมูลต่างๆ ที่อยู่ในฐานข้อมูล ต้องสนับสนุนการนำมาใช้เพื่อวิเคราะห์ทางการตลาดได้ - ระบบสามารถตรวจสอบประวัติลูกค้าได้อย่างรวดเร็ว รวมถึงการตรวจสอบประวัติลูกค้าที่ เข้าข่าย Black List - ระบบสามารถตรวจสอบและติดตามประวัติรถยนต์คันต่างๆ เพื่อแจ้งเตือนถึงเวลาที่ต้องเข้า รับการบำรุงรักษา - ระบบสามารถรองรับการชำระเงินจากลูกค้าได้ทั้งแบบเงินสดและบัตรเครดิต ปัญหาต่างๆ ที่เกิดจากการดำเนินงาน นักวิเคราะห์ระบบจะรับรู้ได้จากการรวบรวมข้อมูลและ ปรึกษาร่วมกันกับผู้ใช้ จากนั้นเอกสารที่จัดทำขึ้น ก็จะถูกรวบรวมเพื่อยื่นเสนอแก่ฝ่ายบริหารหรือ เจ้าของธุรกิจเพื่อพิจารณา ซึ่งจะต้องตอบข้อคำถามเหล่านี้ได้ - ปัญหาที่มีอยู่และความเป็นไปได้ในการพัฒนาระบบงานใหม่ - ขนาดของระบบ และระยะเวลาในการพัฒนาระบบ - ทางเลือกที่เป็นไปได้สำหรับการแก้ไขปัญหา - ต้นทุนและผลประโยชน์ที่ได้รับของแต่ละทางเลือก
74 2.1.3 การกำหนดเวลาโครงการ การกำหนดเวลาโครงการ (Project Schedule) เป็นการกำหนดว่าโครงการจะต้องมีกิจกรรม อะไรที่ต้องทำบ้าง แต่ละกิจกรรมต้องใช้ทรัพยากรอะไร และใช้ระยะเวลาเท่าไร นอกจากนี้การ กำหนดเวลาโครงการยังเกี่ยวข้องกับการจัดลำดับความสัมพันธ์ของแต่ละกิจกรรม โดยจะพิจารณา ว่า กิจกรรมใดควรทำก่อน กิจกรรมใดควรทำหลัง กิจกรรมใดจะทำได้ต่อเมื่อกิจกรรมก่อนหน้าต้อง ทำเสร็จก่อน และมีกิจกรรมใดบ้างที่สามารถทำไปพร้อมๆ กันได้โดยเครื่องมือจัดทำแผน กำหนดเวลาโครงการที่นักวิเคราะห์ระบบมักนิยมนำมาใช้ก็คือ แผนภูมิแกนต์ (Gantt Chart) และ เพิร์ต (PERT) ภาพที่ 3.4 ตัวอย่างแผนภูมิแกนท์ หลังจากนักวิเคราะห์ระบบได้กำหนดเวลาโครงการขึ้นมาแล้ว จะทำให้รู้ว่า โครงการนี้ จะต้องใช้ทรัพยากรอะไรบ้าง ใช้งบประมาณเท่าไร และใช้ระยะเวลาในการพัฒนายาวนานแค่ไหน สิ่งเหล่านี้ล้วนเป็นข้อมูลสำคัญที่จะถูกนำไปสู่กระบวนการศึกษาความเป็นไปได้ของโครงการในด้าน ต่างๆ ต่อไป เพื่อพิจารณาว่าโครงการซอฟต์แวร์ที่จะพัฒนานั้น มีความเป็นไปได้หรือไม่ อย่างไร 2.1.4 การศึกษาความเป็นไปได้ การศึกษาความเป็นไปได้ (Feasibility Study) เป็นกิจกรรมเกี่ยวกับการศึกษาและตรวจสอบ โครงการว่าจะสามารถเริ่มต้นและสามารถดำเนินการให้ประสบผลสำเร็จได้อย่างสมบูรณ์หรือไม่ โดย จะพิจารณาถึงความพร้อมในด้านต่างๆ และความเสี่ยงที่อาจส่งผลกระทบต่อความล้มเหลวของ โครงการ โดยจะทำการศึกษาความเป็นไปได้ในด้านต่างๆ ดังนี้ 1) ความเป็นไปได้ทางเทคนิค (Technical Feasibility) 2) ความเป็นไปได้ทางเศรษฐศาสตร์ (Economic Feasibility) 3) ความเป็นไปได้ทางการปฏิบัติงาน (Operational Feasibility)