บทที่ 13
การพัฒนาโปรแกรมและการบำรุงรักษา
วัตถุประสงค์เชิงพฤติกรรม (Behavioral Objectives)
หลังจากศึกษาจบบทเรียนนี้แล้ว นักศึกษาจะมีความสามารถดังนี้
(After studying this chapter, you will be able to)
1.บอกกิจกรรมในขั้นตอนการพัฒนาโปรแกรมและการบำรุงรักษา
2.ยกตัวอย่างการสร้างโปรแกรมและการประกันคุณภาพ
3.เข้าใจการบำรุงรักษาและปรับปรุงระบบ
4.สรุปการปรับปรุงในด้านเวลาการทำงานของระบบ
5.จัดบอร์ดเชิงปฏิบัติการ “การพัฒนาโปรแกรมและการบำรุงรักษา”
6.สนทนาเชิงปฏิบัติการ “การสร้างโปรแกรมและการประกันคุณภาพ”
7.สนทนาเชิงปฏิบัติการ “การบำรุงรักษาและปรับปรุงระบบ”
8.อธิบายคำศัพท์ได้ 8 คำ
บทที่ 13
การพัฒนาโปรแกรมและการบำรุงรักษา
หลักการวิเคราะห์และออกแบบอย่างเดียวยังมิได้รับประกันความสำเร็จของระบบ เมื่อเสร็จสิ้นขั้นตอนการวิเคราะห์และออกแบบแล้ว เราต้องเริ่มพัฒนาโปรแกรมสำหรับระบบใหม่นี้การพัฒนาโปรแกรมในขั้นนี้จะรวมถึง การเขียนโปรแกรม การทดสอบและปรับปรุง เพื่อให้ได้ระบบที่มีประสิทธิภาพสูงสุด ในขณะเดียวกันเราจะเริ่มอบรมผู้ใช้และเตรียมสถานที่ให้พร้อมสำหรับคอมพิวเตอร์ (ในกรณีที่ซื้อใหม่หรือโยกย้าย) เมื่อเริ่มนำโปรแกรมที่เขียนได้มาใช้งานจะต้องถ่ายข้อมูลเดิมเข้าสู่ระบบใหม่นี้ แล้วจึงเริ่มต้นใช้งานระบบใหม่ การบำรุงรักษาในขั้นตอนการพัฒนาระบบจะรวมถึงการบำรุงรักษาประจำวัน คือ ทดสอบว่าระบบทำงานปกติหรือไม่ถ้าหากพบว่ายังมีข้อบกพร่องที่จุดใด ระบบจะต้องได้รับการแก้ไข
นักวิเคราะห์ระบบจะต้องคอยเป็นพี่เลี้ยงอยู่ตลอดเวลาในขั้นตอนนี้ โดยการช่วยดูแลการเขียนโปรแกรม การทดสอบ และเตรียมสถานที่ รวมถึงมีส่วนช่วยในการอบรมผู้ใช้และเตรียมคู่มือสำหรับผู้ใช้ด้วย ระหว่างการบำรุงรักษา นักวิเคราะห์ระบบอาจจะต้องรับฟังความคิดเห็นจากผู้ใช้และพร้อมที่จะแก้ไขให้เป็นไปตามความต้องการของผู้ใช้ ถ้าได้รับการอนุมัติจากผู้บริหารรายละเอียดของกิจกรรมในขั้นตอนนี้ มีดังต่อไปนี้
การสร้างโปรแกรมและการประกันคุณภาพ
(Construction and Quality Assurance)
โปรแกรมเมอร์จะทำหน้าที่เขียนโปรแกรมสำหรับระบบใหม่ทั้งหมด หรือแก้ไขโปรแกรมสำเร็จรูปถ้าซื้อโปรแกรมมา ตัวนักวิเคราะห์ระบบจะต้องกำหนดมาตรฐานของโปรแกรม โดยเขียนเป็น “คู่มือสำหรับโปรแกรมเมอร์” ซึ่งจะกำหนดมาตรฐานของโปรแกรมและเอกสารไว้ในคู่มือนี้ มาตรฐานของโปรแกรม ได้แก่ การเขียนโปรแกรมจะต้องเป็นแบบโปรแกรมโครงสร้างการตั้งชื่อข้อมูลก็ควรให้อยู่ในรูปแบบเดียวกัน คือ โปรแกรมเมอร์ทุกคนใช้ชื่อเดียวกันทั้งหมดสำหรับชื่อโปรแกรมควรจะตั้งให้มีรูปแบบเหมือนกัน เช่น ใช้ตัวอักษร 6 ตัว โดยสามตัวแรกเป็นตัวอักษรและสามตัวหลังเป็นตัวเลข เช่น (APYOOO) เป็นต้น
การประกันคุณภาพ (Quality Assurance) นักวิเคราะห์ระบบจะต้องรับประกันว่าโปรแกรมที่ได้มานั้นจะต้องมีข้อบกพร่องน้อยที่สุด ระหว่างแต่ละขั้นตอนของการทำงานจะต้องหาข้อบกพร่องที่อาจเกิดขึ้นได้ และกำจัดออกไปก่อนที่จะก้าวสู้ขั้นตอนถัดไป เพราะข้อบกพร่องมีอยู่ในระบบมากเท่าใด ก็จะทำให้ค่าใช้จ่าย ในการแก้ข้อบกพร่องมีมากขึ้นเท่านั้น และขึ้นอยู่กับระยะเวลาของการพัฒนาระบบด้วย ว่ามีข้อบกพร่องเกิดขึ้นนานเท่าไรแล้ว ค่าใช้จ่ายในการแก้ไขระบบจะเพิ่มขั้นตามอัตราแบบ “Exponential” ตัวอย่างเช่น พบว่าลืมตรวจสอบอินพุตที่สำคัญตัวหนึ่ง ถ้าอยู่ในขั้นวิเคราะห์ระบบและถ้าแก้ไขจุดบกพร่องนี้จะเสียค่าใช้จ่ายประมาณ 20 บาท และอาจจะเพิ่มเป็น 200 บาท ถ้าพบข้อบกพร่องนี้ในการออกแบบ และเพิ่มเป็น 2,000 บาท ถ้าพบในขั้นตอนการเขียนโปรแกรมและการทดสอบระบบและอาจจะสูงขึ้นถึง 20,000 บาท ถ้าพบหลังจากนำโปรแกรมไปใช้งานแล้ว
ทบทวน (Structured Walkthrough) การทบทวนจะช่วยให้หาข้อบกพร่องได้ในขั้นตอนแรก ๆ ของการพัฒนาระบบ ปกติการทบทวนจะทำงานกันเป็นทีม โดยแต่ละคนจะทำหน้าที่ต่างๆ กัน ทีมทบทวนประกอบด้วย ผู้นำเสนอ ผู้ประสานงาน เลขาฯ ผู้ดูแลการบำรุงรักษา ผู้กำหนดมาตรฐาน และตัวแทนจากผู้ใช้ ผู้นำเสนอมักจะเป็นผู้เริ่มโครงการนั้นๆ ผู้ประสานงานทำหน้าที่จัดการเกี่ยวกับกิจกรรมต่างๆ ก่อนการทบทวน เช่น ส่งรายงานให้ทุกคนที่ร่วมทีม และเป็นทีมผู้ประสานงานระหว่างที่ทบทวนระบบด้วย เลขาฯ ทำหน้าที่จดบันทึกและส่งรายงานให้ผู้บริหารหลังจากการทบทวน ผู้ดูแลการบำรุงรักษาจะต้องตรวจสอบโปรแกรมและคาดคะเนว่าในอนาคตจะมีปัญหาอะไรเกิดขึ้นบ้าง ผู้กำหนดมาตรฐานจะทำหน้าที่ตรวจสอบว่าโปรแกรมที่เขียนเป็นไปตามมาตรฐานหรือไม่ ผู้แทนจากผู้ใช้จะตรวจสอบว่าโปรแกรมทำงานตามที่ต้องการหรือไม่ การทบทวนควรจะทำในทุกๆ ขั้นตอนของการวิเคราะห์และออกแบบระบบ การเขียนโปรแกรมและเขียนคู่มือผู้ใช้ การทบทวนจะช่วยลดข้อบกพร่องลงจาก 3-5 จุดใน100 บรรทัดของโปรแกรม เหลือเพียง 3-5 จุดใน 1,000 บรรทัดของโปรแกรม
การทดสอบระบบ (Testing) ถึงแม้ว่าเราจะทบทวนระบบแล้วก็ไม่ได้หมายความว่าระบบจะไม่มีข้อบกพร่องอีกแล้วดังนั้น เราจะต้องทดสอบระบบให้ถี่ถ้วนอีกทีหนึ่ง ปกติแล้วนักวิเคราะห์ระบบจะไม่ทดสอบระบบด้วยตัวเอง แต่จะเป็นคนวางแผนและควบคุมการทดสอบ
ทดสอบระบบรวม หลังจากระบบเสร็จสมบูรณ์แล้ว เราจะต้องทดสอบระบบรวมทั้งหมดอีกครั้งหนึ่ง ซึ่งจะช่วยให้เราหาข้อผิดพลาดที่อาจเกิดขึ้น และต้องทำการแก้ไขแล้วทดสอบระบบใหม่อีกครั้งหนึ่ง หลังจากนั้นทำการทดสอบระบบเพื่อส่งมอบงาน (Acceptance Test) ให้ลูกค้าหรือผู้ใช้ได้เห็นระบบการทำงานตามที่ต้องการ ส่วนการทดสอบสำดับสุดท้าย คือ การทดสอบแบบขนาน (Parallel Operation) ซึ่งหมายความว่าระบบใหม่จะทำงานไปพร้อมๆ ระบบเดิม โดยการใช้ข้อมูลจริงที่เหมือนกัน แล้วเปรียบเทียบผลลัพธ์ที่ได้จากระบบทั้งสอง ถ้าผลลัพธ์แตกต่างกันในเวลาหนึ่งเวลาใด เราจะต้องตรวจสอบว่าระบบใหม่มีปัญหาอะไร แล้วทำการแก้ไขให้ถูกต้อง และทำการเตรียมสถานที่ (Site Preparation) ที่เหมาะสมกับการใช้งานต่อไป
นำมาใช้งานจริง การนำระบบใหม่มาใช้งานจริงจะต้องถ่ายข้อมูลจริงเข้าสู่ระบบใหม่ให้หมด แล้วจึงเริ่มให้ระบบใหม่ปฏิบัติงาน นักวิเคราะห์ระบบจะต้องคอยดูแลอยู่ตลอดเวลาเพื่อป้องกันไม่ให้ระบบที่ใช้อยู่ปัจจุบันกระทบกระเทือน
การถ่ายเทข้อมูล วิธีการถ่ายเทข้อมูลจากไฟล์ที่มีอยู่แล้วจากระบบเก่าเข้าสู่ระบบใหม่วิธีหนึ่ง คือ ใช้พนักงานป้อนข้อมูลเข้าไปในระบบใหม่ วิธีนี้แน่นอนที่สุดจะต้องเสียเวลามากและเปลืองค่าใช้จ่าย แต่ถ้าเป็นการเปลี่ยนจากระบบที่ไม่ได้ใช้คอมพิวเตอร์เป็นแบบที่ใช้คอมพิวเตอร์วิธีนี้เป็นวิธีที่หลีกเลี่ยงไม่ได้ระหว่างการถ่ายเทข้อมูล ควรจะต้องมีการควบคุมการถ่ายเทข้อมูลนี้ด้วยเช่น จำนวนข้อมูลเดิมมีอยู่เท่าไร เมื่อถ่ายเทเข้าระบบใหม่จำนวนข้อมูลควรจะมีเท่ากัน เป็นต้น ถ้าไม่ตรงกันจะต้องพิมพ์ออกมาแล้วหาด้วยมืออีกครั้งหนึ่ง
เริ่มใช้ระบบใหม่ วิธีที่ถูกต้องที่สุดในการนำระบบใหม่มาใช้งานจริง คือ ยกเลิกระบบเก่าในทันทีแล้วใช้ระบบใหม่เข้าแทนที่ วิธีนี้เสี่ยงในกรณีที่ระบบใหม่มีปัญหา จะไม่มีระบบเก่ามาเปรียบเทียบเพื่อหาข้อผิดพลาด อีกวิธีหนึ่งในการนำมาใช้งานจริง คือ การทำงานแบบขนาน (Parallel Operation) ซึ่งได้กล่าวมาแล้ว ซึ่งเป็นวิธีที่ปลอดภัยที่สุด แต่ก็เสียค่าใช้จ่ายมากที่สุดด้วยเมื่อทำงานขนาน ไปสักพักจนครบวงจรธุรกิจ จึงตัดระบบเก่าออกไปได้
การบำรุงรักษาและปรับปรุงระบบ
เมื่อนำระบบใหม่มาใช้งานจริงแล้ว ก็ต้องเผชิญหน้ากับการเปลี่ยนแปลงอยู่เรื่อยๆ เพราะโลกไม่เคยหยุดนิ่ง เมื่อใช้ไปสักระยะหนึ่ง ผู้ใช้อาจจะขอให้มีการเพิ่มส่วนนั้นส่วนนี้ขึ้นมาอีกหรือหน่วยงานมีการเปลี่ยนแปลงนโยบายหรือต้องการรายงานบางอย่างเพิ่มเติม หรือมีคอมพิวเตอร์ฮาร์ดแวร์และซอฟต์แวร์ใหม่ๆ ออกสู่ตลาด แต่ไม่ว่าจะเป็นด้วยสาเหตุอะไร ระบบต้องได้รับการเปลี่ยนแปลง ซึ่งนักวิเคราะห์ระบบจะต้องเตรียมระบบที่สามารถเปลี่ยนแปลงเพิ่มเติมขึ้นได้ เมื่อรวมโปรแกรมที่เพิ่มเติมเข้ามาในระบบแล้ว ส่วนอื่นๆ ที่เกี่ยวข้องจะต้องแก้ไขตามไปด้วย ดังนั้น การบำรุงรักษาระบบเป็นขั้นตอนในการปรับปรุงทุกสิ่งทุกอย่างที่ได้ทำการออกแบบเอาไว้เรียบร้อยแล้ว และพัฒนาให้เหมาะสมกับการใช้งานของผู้ใช้มากที่สุด การบำรุงรักษาและปรับปรุงระบบ แบ่งออกได้ดังนี้
1.แก้ไขความผิดพลาดของโปรแกรมที่ได้ทำการเขียนขึ้น เนื่องจากในการทดสอบโปรแกรมอาจจะยังทำได้ไม่สมบูรณ์เพียงพอ ไม่ครบทุกจุดที่จะต้องทำการตรวจสอบสาเหตุที่เกิดเหตุการณ์นี้เนื่องมาจาก
1.1 ข้อมูลที่จัดทำขึ้นมาเพื่อเป็นการทดสอบไม่ครอบคลุมทุกเงื่อนไขของปัญหา
1.2 ปัจจัยต่างๆ ในขณะทดสอบโปรแกรมไม่เหมือนกับขณะปฏิบัติงานจริง
1.3 ตัวโปรแกรมเองมีข้อผิดพลาดหรือจุดปิดพลาด
1.4 เกิดจากสิ่งที่ไม่คาดคิดหรือไม่ได้คาดการณ์มาก่อน ในขณะที่ทำการออกแบบและพัฒนา
2.การปรับปรุงระบบหรือโปรแกรม ให้เหมาะสมกับสิ่งแวดล้อมของระบบ เช่น
2.1 การปรับ Job Control Language ให้เหมาะสมกับลักษณะของฮาร์ดแวร์
2.2 การปรับเปลี่ยนชนิดของเครื่อง อาจมีผลทำให้ต้องเปลี่ยนแปลงโปรแกรมให้เข้ากับเครื่องรุ่นใหม่
2.3 เทคโนโลยีทางด้านการสื่อสารเปลี่ยนแปลงไป ทำให้ต้องมีการเปลี่ยนแปลงตาม
การปรับปรุงในด้านเวลาการทำงานของระบบ
การปรับปรุงเวลาทำงานของระบบ เช่น การปรับปรุงซอฟต์แวร์ให้ทำงานได้รวดเร็วยิ่งขึ้นเมื่อรวมโปรแกรมแล้ว จะต้องทดสอบอีกครั้งว่า ระบบทำงานต่อไปนี้ได้อย่างถูกต้องหรือไม่ โดยทำการทดสอบดังนี้
1.ทดสอบการทำงานตามหน้าที่ (Functional Testing) เป็นการทดสอบว่าโมดูลทำงานตามที่ออกแบบไว้หรือไม่ เช่น โมดูลแยกสถานะใบทวงหนี้จะต้องแยกสถานะได้ถูกต้องตามเงื่อนไขในโปรแกรม เป็นต้น
2.ทดสอบการกู้ข้อมูล (Recovery Testing) เป็นการทดสอบว่าระบบสามารถดึงข้อมูลทั้งเก่าและใหม่กลับคืนมาได้ เมื่อมีปัญหาเกิดขึ้น เช่น ไฟล์ระหว่างที่ใช้โปรแกรมอยู่ การทดสอบนี้สำคัญมากสำหรับระบบ
On-line ใหญ่ ๆ เช่น ธนาคาร เป็นต้น
3.ทดสอบสมรรถภาพ (Performance Testing) เป็นการทดสอบว่าระบบสามารถทำงานและให้คำตอบในเวลาที่รวดเร็วตามที่ออกแบบไว้
การบำรุงรักษาและปรับปรุงระบบที่กล่าวมา เป็นสิ่งที่จะต้องทำตลอดอายุการใช้งานของระบบ นักวิเคราะห์ระบบจะต้องเป็นผู้คิดหาวิธีการที่จะทำให้ลดค่าใช้จ่ายในการบำรุงรักษาและปรับปรุงระบบที่เกิดขึ้น
คำศัพท์ บทที่ 13
การพัฒนาโปรแกรมและการบำรุงรักษา
Acceptance Test |
การทดสอบระบบเพื่อส่งมอบงาน |
Parallel Operation |
การทดสอบแบบขนาน |
Site Preparation |
การเตรียมสถานที่ |
Functional Testing |
ทดสอบการทำงานตามหน้าที่ |
Recovery Testing |
ทดสอบการกู้ข้อมูล |
Performance Testing |
ทดสอบสมรรถภาพ |
Construction and Quality Assurance |
การสร้างโปรแกรมและการประกันคุณภาพ |
Structured Walkthrough |
ทบทวน |
Testing |
การทดสอบระบบ |