Abstract:
การพัฒนาซอฟต์แวร์เป็นกิจกรรมหลักซึ่งมีค่าใช้จ่ายสูงมากในเกือบทุกองค์กรและมีการดำเนินการในหลากหลายบริบท งานวิจัยนี้ได้นำเสนอวิธีการประเมินมูลค่าของซอฟต์แวร์ ซึ่งหมายถึงกระบวนการที่ใช้ในการพยาการณ์ความพยายามที่ต้องใช้ในการพัฒนาซอฟต์แวร์ ได้มีงานวิจัยด้านการประเมินมูลค่าซอฟต์แวร์ ซึ่งแบางออกเป็น 2 กลุ่มหลัก คือ กลุ่มวิธีการแบบพาราเมติก (Parametric Models) และกลุ่มวิธีการแบบแมชชีนเลินนิ่ง (Machine Learning) มาแล้วไม่น้อยกว่า 30 ปี แต่ ปรากฎว่าผลที่ได้รับนั้นยังไม่มีประสิทธิภาพเท่าที่ควร ในงานวิจัยนี้ได้นำเสนอวิธีการแบบเอนเซมเบิ้ลนิวรอนเน็ตเวอร์ค (Ensemble Neural Network) ซึ่งหมายถึง การใช้การผสมผสานวิธีที่เหมาะสมจากกลุ่มของวิธีการแมชชีนเลินนิ่ง (Machine Learning) เข้าด้วยกัน เพื่อแก้ข้อบกพร่องของวิธีการแบบพาราเมตรก (Parametric Models) ในประเด็นที่ไม่สามารถจัดการกับเงื่อนไขพิเศษ เช่น บุคลากร ทีมงาน และการจับคู่ระหว่างความชำนาญกับงาน นอกจากนั้นในวิธีการที่มีอยู่เดิม ถ้าหากมีความจำเป็นในการปรับแต่งค่าในภายหลังก็ต้องจัดการด้วยตนเอง
สำหรับขั้นตอนในการประเมินมูลค่าซอฟต์แวร์นั้นประกอบก้วยกระบวนการหลัก 3 ขั้นตอน กล่าวคือ 1. การวัดขนาดซอฟต์แวร์ (Software Size) ซึ่งโดยทั่วไปดำเนินการด้วย 2 วิธีการ คือวัดจากจำนวนชุดคำสั่ง (Code Size Metrics) และวัดจากจำนวนฟังก์ชั่น (Functionality Metrics) 2.การวัดระดับค่าความพยายาม (Software Effort) ซึ่งทั่วไปจะวัดอยู่ในรูปของระยะเวลาที่ต้องใช้ต่อคน เช่น วัดเป็นหน่วยของจำนวนคนต่อหน่วยของเวลา ซึ่งต้องพิจารณประเด็นของภาษาที่ใช้ในการพัฒนา เครื่องมือที่ใช้ในการพัฒนา ปริมาณองค์ประกอบที่ได้จากระบบเดิม เวลาที่สามารถใช้ในการทำงานได้ ผลผลิตต่อบุคคล ความยากง่ายของงาน เป็นต้น 3. การคิดค่าใช้จ่าย (Software Cost) ซึ่งเป็นขั้นตอนที่นำผลที่ได้จากขั้นตอนที่ 1 และ 2 มาคำนวณกับค่าแรงงานมาตรฐานตามความชำนาญเฉพาะทางของบุคลากรในทีม
ในงานวิจัยนี้ ได้นำเสนอการพยากรณ์ราคาซอฟต์แวร์ โดยได้นำเสนอกระบวนการลูกผสมนิวรอนเน็ตเวร์ค ซึ่งเป็นการนำขั้นตอนวิธีการรู้จำแบบแพร่ย้อนกลับจำนวน 4 ตัวแบบที่มีสถาปัตยกรรมและพารามิเตอร์แตกต่างกันมาเรียนรู้เพื่อหาผลลัพธ์ของการพยากรณ์ราคาซอฟต์แวร์ของฐานข้อมูลมาตรฐานของ NASA จากนั้นรวมผลลัพธ์ที่ได้ด้วยฟังก์ชันการพยากรณ์ที่ใช้กลยุทธ์เชิงวิวัฒนาการในการช่วยหาค่าสัมประสิทธิ์ที่เหมาะสม ในการทดลองแสดงให้เห็นว่าวิธีการที่นำเสนอมีค่าความคลาดเคลื่อนเฉลี่ยสัมพัทธ์ (MMRE) ดีกว่าวิธีการของ COCOMO ทั้ง 2 ชุดข้อมูลทดสอบในภาพรวม โดยวิธีการนำเสนอให้ค่าความคลาดเคลื่อนที่ตำกว่าค่าความคลาดเคลื่อนเฉลี่ยของวิธีCOCOMO ประมาณ 0.1
Software Development is a crucial activity and a high cost one in any type of organization which has different context. Software cost estimation is a process to forecast effort needed for any software development. There are two main approaches in software cost estimation. The first one is Parametric Models and the second on is Machine Learning Models. For the last 30 years, there is a great number of researches that try to come-up with a more and more eddicient method. Inthis research report, we have proposed "Ensemble Neural Network" as an alternative approach to estimate software cost. The proposed method will help to deal with facts on human resource skill, team work, skill matching and those automatic adjustments that Parametric Methods seem to have some difficulty. Inestimating software cost, thesr are three steps: 1. Measuering size; in terms of code size metrics or functionality metrics 2. Forecasting effort need; in terms of time needed for each staff in performing their tasks and 3. Estimating software cost; in terms of amount of money. According to these steps, we proposed an alternative approach that will select more proper features in steps one and two. So that the software cost estimation in step no.3 will be improved. In this research, ensemble learning using neural networks is proposed. BPNNs based on 4 different structures are used for predicting software cost. The proposed networks are evaluated with standard benchmark, normally used in software cost prediction problem, released by NASA. After the prediction with 4 BPNNs, evolutionary strategiies are used for improving the predicting performance. It can be seen that the performance of the proposed method is better the predicting performance obtained from the COCOMO method for all data set used in the experiments. In other word, the MMRe of the proposed methods is approximately lower than the COCOMO methods about 0.1.