บทที่ 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 การพัฒนาโปรแกรมและการบำรุงรักษา
ตอนที่ 1 อธิบาย
1.อธิบายการสร้างโปรแกรมและการประกันคุณภาพ
ตอบ
การสร้างโปรแกรม โปรแกรมเมอร์จะทำหน้าที่เขียนโปรแกรมสำหรับระบบใหม่ทั้งหมด หรือแก้ไขโปรแกรมสำเร็จรูปถ้าซื้อโปรแกรมมา ตัวนักวิเคราะห์ระบบจะต้องกำหนดมาตรฐานของโปรแกรม โดยเขียนเป็น
คู่มือสำหรับโปรแกรมเมอร์
การประกันคุณภาพ นักวิเคราะห์ระบบจะต้องรับประกันว่าโปรแกรมที่ได้มานั้นจะต้องมีข้อบกพร่องน้อยที่สุด ระหว่างแต่ละขั้นตอนของการทำงานจะต้องหาข้อบกพร่องที่อาจจะเกิดขึ้นได้

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

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

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

5.อธิบายถึงลักษณะของการทดสอบการกู้ข้อมูล
ตอบ
เป็นการทดสอบว่าระบบสามารถดึงข้อมูลทั้งเก่าและใหม่กลับคืนมาได้ เมื่อมีปัญหาเกิดขึ้น เช่น ไฟล์ระหว่างที่ใช้โปรแกรมอยู่ การทดสอบนี้สำคัญมากสำหรับระบบ On-line ใหญ่ๆ

 

คำศัพท์  บทที่ 13
การพัฒนาโปรแกรมและการบำรุงรักษา

Acceptance Test

การทดสอบระบบเพื่อส่งมอบงาน

Parallel Operation

การทดสอบแบบขนาน

Site Preparation

การเตรียมสถานที่

Functional Testing

ทดสอบการทำงานตามหน้าที่

Recovery Testing

ทดสอบการกู้ข้อมูล

Performance Testing

ทดสอบสมรรถภาพ

Construction and Quality Assurance

การสร้างโปรแกรมและการประกันคุณภาพ

Structured Walkthrough

ทบทวน

Testing

การทดสอบระบบ