บทที่ 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 |
การทดสอบระบบ |