การประมาณการซอฟต์แวร์ (software Estimation)
การประมาณการซอฟต์แวร์ เป็นส่วนที่สำคัญในการวางแผนงาน เนื่องจากแผนงานนั้นจะอยู่บนพื้นฐานของสิ่งที่ต้องการจัดการสร้างหรือพัฒนา โดยในส่วนของซอฟต์แวร์นั้นมุมมองหลักที่มองถึง คือ ขนาด(Size) ค่าใช้จ่าย(Cost) บุคลากรที่ใช้ในการพัฒนา (Effort)
Size Estimation เป็นสิ่งแรกที่ต้องทำก่อนการเริ่มต้นการประมาณการ คือ การวัด แยกลักษณะการวัดออกเป็น 2 เชิง คือ
- การวัดเชิงปริมาณ (Software Quantitative)
- การวัดเชิงคุณภาพ (Software Qualitative)
การประมาณการต้นทุนของซอฟต์แวร์ (Software Cost Estimation) สร้างขึ้นเพื่อนำไปประเมินราคาซอฟต์แวร์ หากบริษัทต้องการเป็นผู้ชนะการประมูล จะต้องเสนอราคาซอฟต์แวร์ค่อนข้างต่ำกว่าคู่แข่ง แต่การเสนอราคาที่ต่ำกว่าจะต้องไม่ทำให้บริษัทขาดทุนเมื่อเทียบกับต้นทุนที่ต้องจ่ายจริง
ปัจจัยที่ส่งผลต่อการกำหนดราคาซอฟต์แวร์ในปัจจุบัน
- โอกาสทางด้านการตลาด
- ข้อกำหนดในสัญญา
- ความต้องการซอฟต์แวร์ที่เปลี่ยนไป
- ฐานะทางการเงิน
- การประมาณการต้นทุน
เทคนิคที่ใช้ในการประเมินต้นทุนซอฟต์แวร์
- การใช้แบบจำลองอัลกอริทึมเป็นฐานในการประเมิน
- พิจารณาจากการพัฒนาระบบในอดีตซึ่งสามารถบอกได้ว่าการพัฒนาระบบโดยขั้นตอนวิธีที่ใช้จะมีบบรรทัดคำสั่งมากน้อยเท่าใด และประเมินต้นทุนและแรงงานจากปริมาณบรรทัดคำสั่งที่ต้องเขียน
- การประเมินโดยผู้เชียวชาญ
- เป็นเทคนิคที่ใช้ผู้เชียวชาญหลายคนเป็นที่ปรึกษาโครงการ ผู้เชียวชาญแต่ละคนจะประเมินต้นทุนและนำเข้าที่ประชุมเพื่อทำการเปรียบเทียบและทำการตกลงกำหนดเป็นต้นทุนของการพัฒนาระบบ
- การประเมินโดยการเทียบเคียงกับระบบที่เคยพัฒนาแล้ว
- เป็นเทคนิคการประเมินต้นทุนการพัฒนาซอฟต์แวร์ใหม่ โดยเทียบกับซอฟต์แวร์ในโดเมนเดียวกันที่เคยพัฒนาเสร็จแล้ว
- การประเมินโดยใช้สูตรการคำนวณ
- ตามกฎของ Parkinson แรงงานที่ใช้ในการทำงานขึ้นอยู่กับทรัพยากรที่มีมากกว่า เช่น ถ้าต้องทำการส่งมอบซอฟต์แวร์ภายใน 12 เดือน และมีแรงงานอยู่ 5 คน หมายความว่างานนี้จะต้องใช้แรงงานในการพัฒนาระบบ เท่ากัน 12 x 5 คน - เดือน
- การประเมินจการาคาที่ที่จะทำให้ได้งาน
- เป็นการประมาณต้นทุนจากงบประมาณที่ลูกค้ามีให้สำหรับโครงการพัฒนาระบบ เทคนิคการประเมินต้นทุนแบบนี้จะขึ้นอยู่กับงบประมาณของโครงการมากกว่าฟังก์ชันการทำงานขอวซอฟต์แวร์
การประมาณขนาดของซอฟต์แวร์
Productivity = Size /Effort
Productivity = ผลที่ได้จากการผลิตงานของบุคลากรในโครงการ
(มีหน่วยเป็น Person-Hours หรือ Man-day หรือ Man-Month)
Size = ขนาดของซอฟต์แวร์
Effort = เวลาที่ต้องใช้ในการผลิต
Size Estimation วิธีการนิยมใช้ในการประมาณขนาด (Size) ของซอฟต์แวร์ มี 2 ลักษณะ คือ
- Line of Code (LOC) Count
- Function Point (FP)
วิธีการนับ Line of Code
- Simple Line Code นับทุกบรรทัด ทั้งบรรทัดที่ว่างและบรรทัดที่เป็น Comment
- Physical Lines (LINES) นับทุกบรรทัด ยกเว้นบรรทัดที่เป็นนิยามตัวแปรของ Code ที่เขียนด้วย VB
- Physical Line of Code จะไม่นับบรรทัดว่างและบรรทัดที่เป็น Comment บางครั้งเรียกว่า Source Line Codes (sLOC)
- Logical Lines of Code (LLOC) เป็นการนับแบบ Logical คล้ายกับ Physical แตกต่างกันคือ Logical Lines จะนับบรรทัดที่มีการเชื่อมต่อด้วยอักขระ “ - ” รวมเป็นบรรทัดเดียว
- Statement (STMT) ไม่นับบรรทัด แต่จะนับเป็นจำนวนประโยคคำสั่ง โดยภาษาโปรแกรมมิ่งส่วนใหญ่จะมีเพียง 1 ประโยคคำสั่งต่อ 1 บรรทัด (อย่างไรก็ตามภาษาใน VB สามารถมีมากกว่า 1 ประโยคคำสั่งใน 1 บรรทัด โดยใช้เครื่องหมาย Colon “ : ”)
ข้อเด่น-ข้อด้อย ของ Line of Code
ข้อเด่น
- เป็นวิธีวัดซอฟต์แวร์วิธีแรกที่นำมาใช้ในยุคก่อน
- เป็นวิธีที่ใช้ง่ายได้ผลเร็ว
ข้อด้อย
- จำนวนบรรทัดที่ได้ ขึ้นอยู่กับภาษาโปรแกรมมิ่งที่ใช้ และคุณภาพในการออกแบบโปรแกรม หากภาษาโปรแกรมมิ่งที่แตกต่างกันจะไม่สามารถเปรียบเทียบกันได้
Function Point
ปัจจุบันการนับขนาดของโปรแกรมด้วยการนับบรรทัดนั้น ไม่สามารถให้ผลการวัดในเชิงผลสัมฤทธิ์ของโปรแกรมได้อย่างชัดเจน การนำวิธีการนับด้วยฟังก์ชันพอยต์เข้ามาใช้นั้น จึงได้รับความสนใจ
การวัดด้วยฟังก์ชันพอยต์ จะมุ่งเน้นที่การวัดฟังก์ชัน หรือการวัดโดยผ่านมุมมองความต้องการของฟังก์ชันของซอฟต์แวร์
กระบวนการนับฟังก์ชันพอยต์ มีลักษณะดังนี้
ขั้นที่ 1 นำ Requirement ที่เก็บรวบรวมไว้มาทำการแบ่งฟังก์ชันพอยต์
ขั้นที่ 2 ประเมินความซับซ้อนของฟังก์ชัน
ขั้นที่ 3 เปรียบเทียบความซับซ้อน เพื่อให้ได้ระดับความซับซ้อน เพื่อคำนวณฟังก์ชันพอยต์ (Unadjusted Function Point : UFP)
ขั้นที่ 4 คำนวณค่าปัจจัยคุณลักษณะของระบบ (Value Adjustment Factor : VFP) ซึ่งเป็นไปตามลักษณะของแต่ละโครงการ
ขั้นที่ 5 คำนวณจำนวนฟังก์ชันพอยต์ที่ผ่านการปรับค่า (Adjusted Function Point : AFP)
ขั้นที่ 6 ฟังก์ชันพอยต์ที่ผ่านการปรับค่า สามารถนำไปคำนวณเป็น LOC ได้
ฟังก์ชันการทำงานของฟังก์ชันพอยต์ สามารถแบ่งได้ 5 ประเภทดังนี้
- External Input (EI)
- External Output (EO)
- External Inquiry (EQ)
- Internal Logical Files (ILF)
- External Interface Files (EIF)
ฟังก์ชัน |
รายละเอียด |
External Input (EI) |
ข้อมูลที่ได้รับเข้ามาในระบบ (อาจเป็นข้อมูลทางธุรกิจหรือข้อมูลควบคุม)เพื่อนำไปอัพเดทข้อมูลใน ILF เช่น ข้อมูลในกระบวนการ เพิ่ม ลบ แก้ไข ข้อมูลเป็นต้น |
External Output (EO)
|
ข้อมูลที่เป็นผลลัพธ์จากการประมวลผลเพื่อแสดงข้อมูลที่ได้รับภายในระบบ ให้นับการแสดงผลข้อมูลที่มีรูปแบบแตกต่างกัน |
External Inquiry (EQ)
|
กระบวนการดึงข้อมูลและประมวลผลเพื่อแสดงผลต่อผู้ใช้ (คือ Query ข้อมูลนั้นเอง) |
Internal Logical Files (ILF)
|
ไฟล์ที่เกี่ยวข้องกับข้อมูลที่อยู่ในระบบตลอดช่วงอายุของระบบ และเป็นไฟล์ที่มักจะถูกบำรุงรักษาหรือปรับปรุงด้วยข้อมูลที่ได้รับจากภายนอก (EI) ให้นับรวมเรคคอร์ดที่ทำหน้าที่เทียบเท่า |
External Interface Files (EIF)
|
ไฟล์ที่เกี่ยวข้องกับข้อมูลที่ใช้เพื่อการอ้างอิงเท่านั้น และใช้รวมกับระบบอื่น EIF เป็นไฟล์ที่ถูกเรียกใช้โดยระบบที่จะพัฒนา แต่จะบำรุงรักษาหรือถูกสร้างโดยระบบอื่น |
สรุป การประมาณต้นทุนจัดทำขึ้นเพื่อนำไปใช้ในการประเมินซอฟต์แวร์ หากบริษัทต้องการเป็นผู้ชนะในการประมูลจะต้องเสนอราคาที่ต่ำกว่าคู่แข่ง แต่การเสนอราคาจะต้องไม่ทำให้บริษัทขาดทุนเมื่อเทียบกับต้นทุนที่ต้องจ่ายจริงโดยการประเมินต้นทุนจะต้องมีการนำเทคนิคต่าง ๆ มาใช้ หรือนำเอาเทคนิคมาประยุกต์ให้เข้ากับแต่ละงาน
ช่องทางการศึกษาเพิ่มเติมข่าวสารที่น่าสนใจเกี่ยวกับ : บทความทั่วไป
- บทความเกี่ยวกับความรู้ทั่วไป (114)
- ถาม - ตอบปัญหาเกี่ยวกับคอมพิวเตอร์ (696)
- บทความเกี่ยวกับความรู้ทั่วไป (84)
- บทความเกี่ยวกับ Microsoft (140)
- บทความเกี่ยวกับ Software License ใบอนุญาตซอฟต์แวร์ (9)