Abstract:
การพัฒนาซอฟต์แวร์เป็นกิจกรรมหลักซึ่งมีค่าใช้จ่ายสูงมากในเกือบทุกองค์กรและมีการประเมินค่าซอฟต์แวร์ ซึ่งหมายถึงกระบวนการที่ใช้ในการพยากรณ์ความพยายามที่ต้องใช้ในการพัฒนาซอฟต์แวร์ ได้มีการวิจัยด้านการประเมินมูลค่าซอฟต์แวร์ซึ่งแบ่งออกเป็น 2กลุ่มหลัก คือ กลุ่มวิธีการแบบพาราเมติก (Parametric Learning) และกลุ่มวิธีการแบบแมชชีนเลินนิ่ง (Machine Learning) มาแล้วไม่น้อยกว่า 30 ปี แต่ปรากฎว่าผลที่ได้รับนั้นยังไม่มีประสิทธิภาพเท่าที่ควร ในงานวิจัยนี้ได้นำเสนอวิธีการนำเสนอวิธีการแบบเอนเซมเบิ้ลนิวรอนเน็ตเวอร์ค (Ensemble Neural Network) ซึ่งหมายถึงการใช้การผสมผสานวิธีการที่เหมาะสมจากกลุ่มของวิธีการแมชชีนเลินนิ่ง (Machine Learning) เข้าด้วยกัน เพื่อแก้ข้อพกพร่องของวิธีการแบบพาราเมตริก (Parametric Learning) ในประเด็นที่ไม่สามารถจัดการกับเงื่อนไขพิเศษ เช่น บุคลากร ทีมงาน และ การจับคู่ระดับความชำนาญกับงาน นอกจากนั้นในวิธีการที่มีอยู่เดิม ถ้าหากมีความจำเป็นอยู่เดิม ถ้าหากมีความจำเป็นในการปรับแต่งค่าในภายหลังก็ต้องจัดการด้วยตนเอง
สำหรับขั้นตอนในการประเมินค่าซอฟต์แวร์นั้นประกอบด้วยกระบวนการ 3 ขั้นตอนกล่าวคือ 1. การวัดขนาดซอฟต์แวร์ (Software Size) ซึ่งโดยทั่วไปดำเนินการด้วย 2 วิธีการ คือ วัดจากจำนวนชุดคำสั่ง (Code size metrics) และ วัดจากจำนวนฟังก์ชัน (Functionality metrics) 2. การวัดระดับความพยายาม (Software Effort) ซึ่งทั่วไปจะวัดอยู่ในรูปของระยะเวลาที่ต้องใช้ต่อคน เช่น วัดต่อหน่วยจำนวนคนต่อหน่วยเวลา ซึ่งพิจารณาประเด็นของภาษาที่ใช้ในการพัฒนา เครื่องมือที่ใช้ในการพัฒา ปริมาณขององค์ประกอบที่ได้จากระบบเดิม เวลาที่สามารถที่ใช้ในการทำงานได้ ผลผลิตต่อบุคคล ความยากง่ายของงาน เป็นต้น 3. การคิดค่าใช้จ่าย (Software Cost) ซึ่งเป็นขั้นตอนที่นำผลที่ได้จากขั้นตอนที่ 1 และ 2 มาคำนวนจากค่าแรงมาตรฐานตามความชำนาญเฉพาะทางของบุคลากรในทีม
จากขั้นตอนการประเมินค่าซอฟต์แวร์ที่กล่าวมาข้างต้น ผู้วิจัยคาดหวังว่าการวิจัยโครงการนี้จะนำไปสู่การเลือกวิธีการและปัจจัยที่เหมาะสมในการประเมินค่าในตอนที่ 1 และขั้นตอนที่ 2 ซึ่งจะส่งผลต่อการประเมินค่าใช้จ่ายที่ใกล้เคียงกับค่าใช้จ่ายที่จะเกิดขึ้นจริงโดยมีค่าความคลาดเคลื่อนน้อยลงจากวิธีการที่มีอยู่ในปัจจุบัน