Lesson 10 Software Evolution www.ict.up.ac.th/uthais/ KANOKWATT SHIANGJEN
บทนำ ภายหลังจากที่มีการติดตั้งและใช้งานระบบแล้ว ย่อมต้องพลวัตในการพัฒนา ปรับปรุง ดูแลรักษาให้ระบบสามารถใช้งานได้อย่างมีประสิทธิภาพ และประสิทธิผล ต่อไป โดยที่ 90% ของค่าใช้จ่ายเกี่ยวกับซอฟต์แวร์ จะถูกใช้ไปกับการ ปรับปรุง ดูแลรักษาซอฟต์แวร์ School of Information and Communication Technology., University of Phayao
วัตถุประสงค์ เพื่อให้นิสิตเข้าใจเกี่ยวกับการเปลี่ยนแปลง ซึ่งเป็นสิ่งที่แน่นอน และต้องเกิดขึ้น การทำให้โปรแกรมมีวิวัฒนาการเหมือนมนุษย์ และสิ่งมีชีวิตอื่นๆ เพื่อให้นิสิตเข้าใจถึงวิธีการดูแลรักษาระบบ และปัจจัยที่มีผลกระทบต่อค่าใช้จ่ายในการดูแลรักษาระบบ เพื่อให้นิสิตสามารถประเมินว่าควรจะเลิกใช้, ดูแลรักษา หรือต้องมีการรื้อเพื่อปรับปรุงระบบ School of Information and Communication Technology., University of Phayao
เนื้อหา พลวัตวิวัฒนาการของโปรแกรม (Program Evolution Dynamics) การบำรุงรักษาซอฟต์แวร์ (Software Maintenance) กระบวนการวิวัฒนาการ (Evolution Processes) วิวัฒนาการระบบเดิม (Legacy System Evolution) School of Information and Communication Technology., University of Phayao
A Spiral Model of Development and Evolution School of Information and Communication Technology., University of Phayao
พลวัตวิวัฒนาการของโปรแกรม (Program Evolution Dynamics) (1/3) เป็นการศึกษาเกี่ยวกับความเปลี่ยนแปลงที่เกิดขึ้นกับระบบ โดย Lehman และ Belady ประกอบด้วยกฎ 5 ข้อ คือ ข้อที่ 1 กระบวนการดูแลรักษาระบบ (System Maintenance) เป็นสิ่งที่ต้องเกิดขึ้นอย่างแน่นอน สาเหตุเนื่องจาก สิ่งแวดล้อมของระบบเปลี่ยน ความต้องเปลี่ยน เป็นต้น ข้อที่ 2 เมื่อระบบเกิดการเปลี่ยนแปลง ทำให้โครงสร้างเปลี่ยนแปลง ซึ่งมีวิธีการป้องกันอย่างเดียว คือ ลงทุนในการดูแลรักษาระบบ โดยไม่ต้องเพิ่มฟังก์ชันใหม่เข้าไป School of Information and Communication Technology., University of Phayao
พลวัตวิวัฒนาการของโปรแกรม (Program Evolution Dynamics) (2/3) ข้อที่ 3 ในระบบขนาดใหญ่หากมี พลวัตในตัวเองตั้งแต่เริ่มสร้างแล้ว จะทำให้เห็นแนวทางในกระบวนการดูแลรักษาระบบได้ ข้อที่ 4 ในโครงการพัฒนาซอฟต์แวร์ขนาดใหญ่ การเปลี่ยนแปลง พนักงาน หรือทีมงาน จะมีผลกระทบ ที่มองไม่เห็นในระยะยาว เนื่องจากจะมี Overhead ในการติดต่อประสานระหว่างทีมงาน School of Information and Communication Technology., University of Phayao
พลวัตวิวัฒนาการของโปรแกรม (Program Evolution Dynamics) (3/3) ข้อที่ 5 การเปลี่ยนแปลงเกิดขึ้นตลอดเวลา ตั้งแต่เรามีการ Release ซอฟต์แวร์ออกไป เพื่อแก้ไขข้อผิดพลาด (Fault) โดยการเพิ่มฟังก์ชันใหม่เข้าไป ย่อมต้องส่งผลให้มีโอกาสเกิดข้อผิดพลาดเพิ่มขึ้นอีก ดังนั้น เราไม่ควรเตรียมงบประมาณเฉพาะ การเพิ่มฟังก์ชันใหม่เข้าไป แต่เราควรเตรียมไว้สำหรับข้อผิดพลาดที่จะเพิ่มขึ้นมาในอนาคตด้วย School of Information and Communication Technology., University of Phayao
การบำรุงรักษาซอฟต์แวร์ (Software Maintenance) การบำรุงรักษาซอฟต์แวร์ เป็นกระบวนการทั่วไปที่ต้องเกิดขึ้นภายหลังจากการส่งมอบซอฟต์แวร์ แบ่งได้ 3 ประเภท คือ เพื่อแก้ไขข้อบกพร่องของซอฟต์แวร์ (Corrective Maintenance) เมื่อสิ่งแวดล้อมในการดำเนินการเปลี่ยนแปลงไป (Adaptive Maintenance) เมื่อมีการเพิ่ม หรือแก้ไขฟังก์ชันการทำงานของระบบ (Perfective /Enhancement Maintenance) School of Information and Communication Technology., University of Phayao
Maintenance Cost COCOMO 2 Model of Cost Estimation สามารถใช้ในการประมาณการ แรงงานที่ต้องใช้ในการบำรุงรักษาซอฟต์แวร์ School of Information and Communication Technology., University of Phayao
กระบวนการวิวัฒนาการ (Evolution Processes) กระบวนการวิวัฒนาการซอฟต์แวร์ ขึ้นอยู่กับปัจจัยหลายด้าน เช่น ประเภทของซอฟต์แวร์ กระบวนการในการพัฒนาซอฟต์แวร์ กลุ่มบุคคลที่เกี่ยวข้องในการพัฒนาซอฟต์แวร์ School of Information and Communication Technology., University of Phayao
Evolution Processes School of Information and Communication Technology., University of Phayao
System Evolution Process School of Information and Communication Technology., University of Phayao
Change Implementation The Emergency Repair Process School of Information and Communication Technology., University of Phayao
Software Re-Engineering Forward Engineering Software Re-Engineering School of Information and Communication Technology., University of Phayao
The Re-Engineering Process School of Information and Communication Technology., University of Phayao
Re-Engineering Approaches School of Information and Communication Technology., University of Phayao
วิวัฒนาการระบบเดิม (Legacy System Evolution) ในองค์กรที่มีงบประมาณจำกัด สำหรับการดูแลรักษาระบบเดิมให้ทันสมัย มีทั้งหมด 4 กลยุทธ์ในการวิวัฒนาการ ทิ้งระบบเดิม ไม่เปลี่ยนแปลงระบบ แต่ดูแลรักษาอย่างต่อเนื่อง ปรับปรุงระบบ (Re-Engineering) แทนที่ด้วยระบบงานใหม่บางส่วน หรือทั้งหมด School of Information and Communication Technology., University of Phayao
System Quality VS. Business Value Low ต้นทุนสูง แต่ได้ผลตอบแทนต่ำ ควรยกเลิกใช้งาน High ต้นทุนสูง และผลตอบแทนสูง ควร Re-Engineering เพื่อเพิ่มคุณภาพให้สูงขึ้น ต้นทุนต่ำ และผลตอบแทนต่ำ อาจดูแลรักษาตามปกติ หรือถ้าไม่คุ้ม ก็ยกเลิกการใช้งาน ต้นทุนต่ำ แต่ผลตอบแทนสูง ควรทำการดูแลรักษาอย่างต่อเนื่อง School of Information and Communication Technology., University of Phayao
สรุป การดูแลรักษา ระบบ เกิดขึ้นภายหลังจากที่เราได้ทำการส่งมอบซอฟต์แวร์ให้กับลูกค้า สิ่งที่เกิดขึ้นก็คือ ความเปลี่ยนแปลง เนื่องจากเหตุผล 3 ประการ คือ แก้ไขข้อบกพร่อง (Corrective) ปรับให้เข้ากับสิ่งแวดล้อมใหม่ (Adaptive) การเพิ่ม/แก้ไขฟังก์ชันการทำงาน (Perfective/Enhancement) ค่าใช้จ่ายเกี่ยวกับวิวัฒนาการซอฟต์แวร์นั้น มีอัตราส่วนประมาณ 90% ของค่าใช้จ่ายทั้งหมด การพิจารณาว่าคุ้มค่าหรือไม่ในการดูแลรักษา คือ Business Value School of Information and Communication Technology., University of Phayao
References Ian Sommerville. Software Engineering 8th Edition. Addison Wesley Publishers., 2007 Watts S Humphrey. A Self Improvement Process for Software Engineers. Addison Wesley Professional., 2005 Software Engineering Institute | Carnegie Mellon. [online] http://www.sei.cmu.edu/., 2010 School of Information and Communication Technology., University of Phayao