270 likes | 1.03k Views
การประมาณการต้นทุนของโครงการพัฒนาซอฟต์แวร์ Software Project Cost Estimation. Software Development and Management. Outline. การประมาณการต้นทุนของซอฟต์แวร์ การประมาณการขนาดของซอฟต์แวร์ เทคนิคการประมาณการต้นทุน และ effort เทคนิคการประมาณการแบบ COCOMO. การประมาณการต้นทุนของซอฟต์แวร์.
E N D
การประมาณการต้นทุนของโครงการพัฒนาซอฟต์แวร์ Software Project Cost Estimation Software Development and Management
Outline • การประมาณการต้นทุนของซอฟต์แวร์ • การประมาณการขนาดของซอฟต์แวร์ • เทคนิคการประมาณการต้นทุน และ effort • เทคนิคการประมาณการแบบ COCOMO
การประมาณการต้นทุนของซอฟต์แวร์การประมาณการต้นทุนของซอฟต์แวร์ • มีความสำคัญในการประมาณการต้นทุนโครงการผลิตซอฟต์แวร์ (Software Project Cost)ซึ่งครอบคลุม • Hardware Cost • Software Cost • Maintenance Cost • Travel and Training Cost • Effort Cost
ปัจจัยที่มีผลต่อการกำหนดราคาซอฟต์แวร์ปัจจัยที่มีผลต่อการกำหนดราคาซอฟต์แวร์ • โอกาสทางการตลาด (Market Opportunity) • ข้อกำหนดของสัญญา (Contractual Term) • ความต้องการซอฟต์แวร์ที่เปลี่ยนแปลงได้ (Requirement Volatile) • ฐานะการเงิน (Financial Health) • การประมาณการต้นทุน (Cost Estimation)
การประมาณการขนาดของซอฟต์แวร์การประมาณการขนาดของซอฟต์แวร์ • Line of Code • Function Point
ประสิทธิผลการทำงาน Productivity • Productivity หรือประสิทธิผลการทำงาน (ของคน) สามารถคำนวณได้จาก Productivity = Size/Effort เมื่อ size คือขนาดของ sw ที่ประมาณการอาจเป็น LOC, FP effort คือแรงงานที่ลงไป(Person-Hours, Man-Day or Man-Month)
Line of Code • Simple Line Count • Physical Lines (LINES) • Physical Line of Code (หรือ sLOC: Source Line of Code) • Logical Line of Code (LLOC) • Statements (STMT)
Function Point: FP • คือการนับจำนวนฟังก์ชัน • เพื่อลดปัญหาความแตกต่างของภาษาโปรแกรม • มีสูตรในการคำนวณคือ FP = UFP * VAF UFP : Unadjusted Function Point คือ FP ที่ยังไม่ปรับแต่ง VAF: Value Adjustment Factor
การคำนวณค่า UFP • คำนวณตามประเภทของฟังก์ชัน(5 กลุ่ม) • Internal Logical File (ILF) • External Interface File (EIF) • External Input (EI) • External Output(EO) • External Queries (EQ) • (มีตารางรายละเอียดหน้า 267, กิตติ) • ฟังก์ชันการทำงาน (transaction) ตามแต่ละกลุ่มประเภทของข้อมูลมีความซับซ้อนและแตกต่างกันตามจำนวนข้อมูลและไฟล์ที่เกี่ยวข้อง • คำนวณแบบถ่วงน้ำหนักตามแต่ละกลุ่ม (Total weighted count) (ต.ย. 268)
การคำนวณหาค่า VAF • คำนวณจาก VAF = 0.65 + (0.01 * ผลรวมค่าคุณลักษณะ 14 ด้าน) ค่า 14 ด้านนั้นจากการประเมิน (ต.ย. หน้า 269) นำค่าที่ได้ไปคำนวณหา FP = UFP * VAF *FP เป็นตัววัดขนาด (size) ของ SW เช่นเดียวกับ LOC
เทคนิคการประมาณการต้นทุน และ Effort • Algorithmic Cost Modelling • Expert Judgement • Estimation by Analogy • Parkinson’s Law • Pricing to Win ทั้งหมดต่างก็เป็นเทคนิคที่อาศัยความรู้และประสบการณ์หรือข้อมูลในอดีตเป็นส่วนใหญ่ * แต่อดีตกับปัจจุบันปัจจัยแวดล้อมมันต่างกันเลยทำให้เกิดความคาดเคลื่อนสูง
เทคนิคการประมาณการแบบ COCOMO • COCOMO: Constructive Cost Model • เป็นแบบประมาณการต้นทุน และ Effort
COCOMO • แบ่งแบบจำลองออกเป็น 3 ชนิด เพื่อประมาณการต้นทุน Effort ในระยะต่างๆ • Application-Composition Model ระยะสรุป concept ในการดำเนินโครงการ ใช้ Object Pointแทนขนาดของ SW • Early Design Model ใช้ประมาณการในระยะก่อนออกแบบซอฟต์แวร์ แต่ต้องหลังจากกำหนดความต้องการเรียบร้อยแล้ว • Post-Architecture Model ใช้ประมาณการในระยะหลังออกแบบซอฟต์แวร์ (เป็นการประมาณอีกรอบเพื่อความถูกต้องแม่นยำของค่าประมาณ) * Object Point จำนวนอ๊อบเจ็กที่หมายถึงคอมโพเน้นท์ 3ส่วนคือ หน้าจอ (screen)รายงาน (report)และโมดูล (module) ที่เขียน
Application-Composition Model • เหมาะกับการผลิตซอฟต์แวร์แบบ Component-Based Development • อยู่ในระยะสรุป concept ในการดำเนินงาน • ใช้ Object Point (OP) เป็นตัววัดขนาดซอฟต์แวร์ จำนวน OP แต่ต่างกันขึ้นกับความซับซ้อน (ตย.ตารางหน้า 273) ซึ่งจำเป็นต้องมีการปรับแต่ค่า OP Revised OP = OP * (100 - %reuse)/100
Application-Composition Model • นำ Revised OP หรือ ROP ไปคำนวณหาค่า Effort MME (Man-Month Effort) = ROP/Productivity Constant Productivity Constant เป็นค่าคงที่ที่บอกถึง ประสิทธิผลของการพัฒนา หน่วยเป็น NOP (Number of OP per month) ซึ่งขึ้นกับระดับประสบการณ์และความสามารถของทีมพัฒนา (ตัวอย่างหน้า 273) MME ความพยายามที่ลงทุนไป นับเป็นจำนวนคนที่ต้องใช้ในเวลา 1 เดือนที่สามารถพัฒนาซอฟต์แวร์จนเสร็จ
Early Design Model • ใช้ประมาณการ Effort ในช่วงการออกแบบ หลังได้ความต้องการเรียบร้อยแล้ว • สูตร MME = A * (Size)B MME : Effort หน่วยเป็น Man-Month A : ค่าคงที่ของประสิทธิผลในการผลิต ตามระดับความซับซ้อน B : ค่าปัจจัยผลกระทบ (5Factors) Size: ขนาดของซอฟต์แวร์ KLoC
Early Design Model • การคำนวนหาค่า B : ค่าปัจจัยผลกระทบ (5Factors) เรียกปัจจัยเหล่านี้ว่า Scaling Factor, Economics Scale หรือ Cost Driver • ซึ่ง Bนี้แปรผันกับ Effort ในลักษณะ Exponential (พิจารณาจากสูตรที่ MME = A*SizeB ) • ถ้า B=1 หมายถึง Scaling Factor ไม่มีผลต่อ Effort • ถ้า B>1 หรือ B<1 มีผลต่อ Effort ให้เพิ่มขึ้นหรือลดลง B = 0.91 + 0.01(ผลรวมของคะแนนแต่ละ factor) (ต.ย. 275)
Post Architecture Model • ใช้ประเมินในระยะหลังการออกแบบ (ให้ให้ค่าประเมินมีความถูกต้องมากขึ้น) • เนื่องจากยังมีปัจจัยอื่นอีกที่มีผลกระทบร่วมด้วย ได้แก่ • Product Factor • Platform Factor • Personal Factor • Project Factor เรียกปัจจัยเหล่านี้ว่า Effort Multiplier(EM)
Post Architecture Model • สูตรคำนวณ MME (เพื่อปรับค่าใหม่) MME (Modified) = MME * (EM) เมื่อ EM คือผลคูณของปัจจัยที่ส่งผลให้ค่า Effort เปลี่ยนแปลง (ซึ่งมีทั้งหมด 16 ค่า แบ่งตาม 4 กลุ่มปัจจัยข้างต้น) นั่นคือเท่า EM1 * EM2 * … *EM16 ซึ่งเป็นค่าคงที่ (ที่ประมาณการมาจากข้อมูลอดีตและผู้เชียวชาญ) ดังตารางหน้า 278