wcalab.com › course › wp-content › uploads › 2015 › 01 › 13-บทที่-15... ·...

35
บทที15 การประมาณการต้นทุนของซอฟต์แวร์ Software Cost Estimation

Transcript of wcalab.com › course › wp-content › uploads › 2015 › 01 › 13-บทที่-15... ·...

บทท 15 การประมาณการตนทนของซอฟตแวรSoftware Cost Estimation

สงสำคญในการประเมนราคากคอ “ตนทนของโครงการ (Project Cost)”

ประกอบดวย

1. คาใชจายดานฮารดแวร ซอฟตแวร และการบำรงรกษา(Hardware , Software

and Maintenance Cost)

2. คาใชจายในการเดนทาง และการฝกอบรม (Travel and Training Cost)

3. คาใชจายในความเพยรพยายาม (Effort Cost: หรอคาใชจายแรงงาน ในทนจะ

ใชคำวา “Effort” แทน เชน คาใชจายเบดเตลด (Overhead) คาใชจายในการเตรยมงาน

คาใชจายในการบรหารงาน การตดตอสอสาร และสวสดการตาง ๆ เปนตน)

การประมาณการตนทนของซอฟตแวร

การผลตซอฟตแวรจำเปนตองวดขนาดของซอฟตแวร(Software Size) ดงนน จงสามารถคำนวณ Productivity (Productivity วดไดจากจำนวนหนวยของงานทผลตไดหารดวยจำนวนเวลาทตองการใชในการผลต หรอ Effort นนเอง )ในการผลตซอฟตแวรของบคลากรไดดงน

!!! มการวดขนาดของซอฟตแวร 2 ประเภท ดงน

1. การนบจำนวนบรรทดของซอรสโคด (Line of Code)

2. การนบจำนวนฟงกชน (Function Point: FP)

การประมาณขนาดของซอฟตแวร

Productivity = Size/ Effort

วธการนบจำนวนบรรทดแบงออกเปนหลายวธดงน } Simple Line Count } Physical Lines (LINES) } Physical Lines of Cost } Logical Lines of Cost (LLOC) } Statements (STMT)

การนบจำนวนบรรทดของซอรสโคด (Line of Code)

แสดงการคำนวณหา Productivity ของโปรแกรมเมอร

วเคราะห ออกแบบ เขยนโปรแกรม ทดสอบ จดทำเอกสาร

โคด Assembly 4 สปดาห 6 สปดาห 10 สปดาห 12 สปดาห 2 สปดาหโคด-ภาษาระดบสง 4 สปดาห 6 สปดาห 5 สปดาห 7 สปดาห 2 สปดาห

Size Effort Productivityโคด Assembly 6,000 บรรทด 34 สปดาห 705 บรรทด/เดอน

โคด-ภาษาระดบสง 2,500 บรรทด 24 สปดาห 416 บรรทด/เดอน

Effort ตองหารดวย 4 กอน เพอทำหนวยใหเปนเดอน

การนบจำนวนฟงกชน (Function Point: FP) เปนการวดขนาดของซอฟตแวร

ดวยการนบจำนวนฟงกชนการทำงานของโปรแกรมจากขอกำหนดความตองการของ

ซอฟตแวร มสตรดงน

!! จากสตรคำนวณ จำนวนของฟงกชนจะหาคาไดจาก FP ทยงไมไดถกปรบแตง

คณกบคาปจจยคณลกษณะของระบบ

!UFP = FP ทยงไมไดถกปรบแตง

VAF = คาปจจยคณลกษณะของระบบ

การนบจำนวนฟงกชน (Function Point:FP)

FP = UFP*VAF

1. คำนวณหา FP ทยงไมไดปรบแตง (UFP)ตารางแสดงรายละเอยดของฟงกชนแตละประเภท

ฟงกชน รายละเอยด

External Input (EI) ขอมลทรบเขามาในระบบ เพอนำไปอพเดทขอมลใน ILF เชน ขอมล

ในกระบวนการเพม ลด แกไขขอมล

External Output (EO) ขอมลทเปนผลลพธจากการประมวลผลขอมลทไดรบจากภายใน

ระบบ ใหนบการแสดงผลขอมลทมรปแบบตางกน

External Quenes (EQ) กระบวนการดงขอมลและประมวลผลเพอแสดงผลตอผใช

ฟงกชน รายละเอยด

Internal Logical Files (ILF) ไฟลทเกยวของกบขอมลทอยในระบบตลอดชวงอายของระบบ

และเปนไฟลทมกจะถกบำรงรกษาหรอปรบปรงดวยขอมลทได

รบจากภายนอก

External Interface Files

(EIF)

ไฟลทเกยวของกบขอมลทใชเพอการอางองเทานน และใชรวม

กบระบบอน EIF เปนไฟลทถกเรยกใชโดยระบบทจะพฒนา

(ตอ)

ฟงกชนแตละประเภทเกดจากการทำรายขอมล (Transaction) ของผใช จงมความ

ซบซอนแตงตางกนตามจำนวนของขอมล (Data Element Type : DET) เรคคอรด

(Report Element Type : RET) และไฟลทเกยวของ (File Type Reference: FTR) ท

ประกอบขนเปน Transaction แตละรายการ

! ดงนน การนบฟงกชนแตละประเภทจงตองนบทจำนวนของ DET, RET และ FTR

ทเกยวของกบฟงกชนแตละประเภท แลวนำมาเปรยบเทยบกบตารางเกณฑระดบความซบ

ซอนของฟงกชน ซงแบงไดเปน 3 ระดบ คอ ระดบตำ (Low) ปานกลาง (Average) สง

(High)

DET

1-4 5-15 มากกวา 15

นอยกวา 2 Low Low Average

2 Low Average High

มากกวา 2 Average High High

ตารางแสดงตารางเกณฑระดบความซบซอนของฟงกชนแตละประเภท

ตารางตวถวงนำหนกและการคำนวณหาคา UFP

EI

FTR

ตาราง (ตอ)

DET

1-5 6-19 มากกวา 19

นอยกวา 2 Low Low Average

2 หรอ 3 Low Average High

มากกวา 3 Average High High

EO,EQ

FTR

ตาราง (ตอ)

RET DET

1-19 20-50 51 ขนไป

1 Low Low Average

2-5 Low Average High

6 ขนไป Average High High

ILF,EIF

ประเภทของฟงกชน เกณฑความซบซอน รวม

Low Average High

External Input (EI) *3= *4 = *6= 44

External Output (EO) *4= *5 = *7=

External Quenes (EQ) *3= *4 = *6=

Internal Logical Files (ILF) *7= *7 = *15=

External Interface Files (EIF) *5= *10 = *10=

ผลรวม UFP

ตาราง(ตอ)ตวถวงนำหนก

2 6 5 20 3 18

2. คำนวณคาปจจยคณลกษณะของระบบ (VAF)

ตารางแสดงคณลกษณะเดนของระบบทง 14 ดาน คาทประเมน ตงแต 0 ถง 5

คณลกษณะ คา คณลกษณะ คา

1. การตดตอสอสารขอมล 8. การปรบปรงขอมลแบบออนไลน

2. การประมวลผลขอมลแบบ

กระจาย

9. ความซบซอนของการประมวลผล

3. ประสทธภาพของระบบ 10. การนำไปใชซำได

4. การแกไขคาของระบบ 11. ความงายในการตดตง

5. ปรมาณรายการขอมล 12. ความงายในการดำเนนงาน

คณลกษณะ คำ คณลกษณะ คำ

6. การปอนขอมลเขาสระบบออนไลน 13. การใชงานไดหลายไซต

7. ประสทธภาพการใชงานของผใช 14. รองรบการเปลยนแปลงของผใช

(ตอ)

VAF = 0.65 + [0.01 * ผลรวมคาคณลกษณะ 14 ดาน]

! เมอคำนวณคา UFP และ VAF แลว นำมาคณกน จะไดผลลพธเปนคา FP ทปรบ

แตงแลวตามคณลกษณะเดนของระบบ ตามสตร

FP = UFP * VAF

3.คำนวณคา FP ทปรบแตงแลว

ภาษาโปรแกรมมง LoC ตอ 1 FPAverage Median Low High

ASP 59 62 32 127

Ada 154 - 104 205

C 148 104 9 704

C++ 60 53 29 178

C# 59 59 51 66

HTML 43 42 35 53

J2EE 61 50 50 100

Java 60 59 50 97

Java Script 56 54 44 65

JSP 59 - - -

Oracle 38 29 4 122

SQL 46 31 14 110

VBScript 45 34 27 50

Visual 50 42 14 276

เทคนคการประมาณการตนทนและ Effortตารางแสดงเทคนคในการประมาณตนทนและ Effort

เทคนค รายละเอยด

Algorithmic Cost Modeling การใชแบบจำลองทางคณตศาสตรเพอการประมาณการ โดย

แบบจำลองนนถกพฒนามาจากขอมลตนทนจรง

Expert Judgement การใชผเชยวชาญประมาณการ โดยใชความเหนของผ

เชยวชาญ เปรยบเทยบกบขอมลในอดต ปรกษา และตกลง

กำหนดตนทนรวมกน

Estimation By Analogy การประมาณดวยการวเคราะห โดยอาศยขอมลจากโครงสราง

ธรกจเดยวกนทดำเนนการประสบความสำเรจมาเปนขอมล

หลกในการวเคราะห

เทคนค รายละเอยด

Parkinson’s Low กฎของพารคนสน คอ การกระจายงานใหกบบคลากรตาม

ระยะเวลาทมอย

Pricing to Win การประมาณเพอใหชนะการประมล

(ตอ)

COCOMO (Constructive Cost Model) เปนแบบจำลองประมาณการ

Effort และการจดตารางการทำงาน โ ดยพจารณาจากขนาดของซอฟตแวร

และคณลกษณะของซอฟตแวรทผใชตองการ COCOMO II แบงแบบจำลอง

ออกเปน 3 ชนด

1. Application-composition Model

2. Early Design Model

3. Post- architecture Model

เทคนคการประมาณแบบ COCOMO

1. Application-composition Modelแบบจำลอง COCOMO II ทเหมาะกบการผลตซอฟตแวรดวยแนวทางคอมโพเนนท

ตารางแสดงระดบความซบซอนของออบเจกตพอยท

งาย

(Simple)

ซบซอน

(Complex)

ซบซอนมาก

(Very Complex)

Screen 1 2 3

Reports 2 5 8

3GL Modules 4 10 -

คาของออบเจคตพอยททถกปรบลดแลว หรอเรยกวา Revised Object Point (ROP) มสตร

คำนวณดงน

Revised Object Point (ROP) = Object Point *

!

จากนนใหนำ ROP ทคำนวณไดไปหา Effort ดงน

(100-%Reuse)

100

ROP

MME(ManMonthEffort) = Productivity Constant

Productivity Constant คอ คาคงทของประสทธผลในการผลตซอฟตแวรซงคดจากประสบการณและ

ความสามารถของทมงาน

ตารางแสดงคาคงทของประสทธผลในการผลตซอฟตแวรโดยพจารณาจากระดบ

ประสบการณและความสามารถของทมงาน

ระดบประสบการณ

และความสามารถ

ตำมาก

(Very Low)

ตำ

( Low)

ปาน

กลาง(Nominal)

สง

(High)

สงมาก

(Very High)

Productivity

Constant

(NOP Per Month)

4 7 13 25 50

ตวอยางเชน ในระยะการกอนการดำเนนงาน โครงการ ก นบจำนวนออบเจคตพอยท

ได 40 OP มอตราการนำโคดไปใชใหม 10% และเมอประเมนประสบการณและความ

สามารถของทมงานแลว พบวาอยในระดบปกต สามารถคำนวณหา Effort ทตองใชใน

โครงการไดดงน

ROP = 40 * (100-10)100

= 40*0.90 = 36

MME = 3613

ประมาณ 3 Man-Month

Revised Object Point (ROP) = Object Point * (100-%Reuse)

100

ROP

MME(ManMonthEffort) = Productivity Constant

แบบจำลอง COCOMO II ทใชในระยะกอนการออกแบบซอฟตแวร โดยมสตร

คำนวณพนฐานดงน

!!โดยท MME คอ Effort ทมหนวยเปน Man-Month

A คอ คาคงทของประสทธผลในการผลตซอฟตแวร

B คอ คาของปจจยทสงผลกระทบให Effort และขนานแปรผน

ตรงตอกน แบบไมมเสนตรง ถา B เปน 1 หมายถง คาปจจยไม

สงผลกระทบตอขนาดซอฟตแวร ถา B มากกวา หรอ นอยกวา 1 แสดงวา คา

ปจจยสงผลกระทบตอขนาดของซอฟตแวร

Size คอ ขนาดของซอฟตแวร มหนวยเปน KLoC(LoC x 1,000)

2. Early Design Model

MME = A*(Size)B

ตารางแสดงคะแนนของปจจยขบแตละระดบ (Value of Rating for Scaling Factor)

Factor

Code

ตำมาก

(Very Low)

ตำ

( Low)

ปาน

กลาง(Nominal)

สง

(High)

Factor Name

PREC 6.20 4.96 3.27 2.48 Precedentness

FLEX 5.07 4.05 3.04 2.03 Flexibility

RESL 7.07 5.65 4.24 2.83 Risk Resolution

TEAM 5.48 4.38 3.29 2.19 Team Cohesion

PMAT 7.80 6.24 4.68 3.12 Process Maturity

ตารางแสดงปจจยขบสำหรบ COCOMO II ในระยะ Early Design Model

ปจจย รายละเอยด

PREC ความเหมอนของซอฟตแวรใหมกบซอฟตแวรเดมทเคยพฒนามาแลว

FLEX การวดระดบความยดหยนในการบรหารจดการและดำเนนโครงการ

RESL การวดระดบความสามารถในการจดการหรอควบคมความเสยงขององคกรหรอทมงาน

ของโครงการ

TEAM การวดระดบของการทำงานเปนทมขององคกรหรอทมงานโครงการ

PMAT การวดระดบวฒภาวะความสามารถขององคกรหรอทมงานโครงการ ตงแตระดบตำสด

คอ 1 จนถงระดบสงสดคอ 5

ตวอยาง สมมตวา ปจจยขบทง 5 ขอ ถกจดอนดบใหอยในระดบตำมากทงหมดและ

กำหนดใหขนาดของซอฟตแวรทนบแบบฟงกชนพอยทและแปลงมาเปน LoC แลว

มคาเทากบ 10 KLoC สามารถคำนวนหาแรงงานโดยประมาณ บนพนฐานของ

คาคงทของประสทธผลในการผลตระดบปกต

1. ตองหาคาของ B  กอน B = 0.91 + 0.01 ! B = 0.91 + 0.01 x (6.20 + 5.07 + 7.07 + 5.48 + 7.80) = 0.91 + 0.01 x 31.62 = 1.2262

2. คำนวนหา Effort ดงน MME = A x (Size)B = 13 x (10)1.2262 = 13 x 16.8344 = 218.84 หรอประมาณ 219 Man-Month !A = 13 เทยบจากตารางแสดงคาคงทของประสทธผลในการผลตซอฟตแวรโดยพจารณา

จากระดบประสบการณและความสามารถของทมงาน

ในระยะหลงการออกแบบ จะพบวานอกจากปจจยขบทง 5 ใ นระยะกอนออกแบบ ทมผลตอ Effort ทตองใชโดยประมาณแลว ยงมปจจยอนทมผลกระทบรวมดวย ทงในดานคณลกษณะของซอฟตแวร (Product Factor) ดาน Platform (Platform Factor) ดานบคลากร (Personnel Factor) และดานโครงการ (Project Factor) รวมทงสน 16 ปจจย เรยกปจจยเหลานวา Effort Multiplier ดงนน จงตองปรบคา Effort โ ดยประมาณทคำนวณไดจากระยะกอนออกแบบใหมเปน MME ดวยการประเมนระดบการสงผลกระทบตอ Effort ของทง 16 ปจจยออกมาเปนคา

3. Post- architecture Model

MME (Modified) = MME X (EM)

EM คอ Effort Multiplier เปนผลคณของปจจยทสงผลกระทบใหจำนวน Effort

เปลยนไป

ตารางแสดงปจจยขบ COCOMOII ในระยะ Post Architecture

MME (Modified) = MME X (EM)

กลมปจจย ปจจย รายละเอยด

ผลตภณฑซอฟตแวร (Product)

RELY: Software Reliability ระดบความนาเชอถอและไววางใจไดของซอฟตแวรทตองการ

DATA : Database Size ขนาดฐานขอมล

CPLX : Software Complexity ระดบความซบซอนของซอฟตแวร

RUSE : Required Reusability ความตองการในการนำโคดไปใชซำ

Docu : Documentation ระดบมาตรฐานของเอกสาร

แพลตฟอรม (Platform)

TIME : Time Constraint on Execution ขอจำกดดานเวลาในการรนซอฟตแวร

STOR : Main Storage Constraint ขอจำกดของเนอทจดเกบขอมล

PVOL : Platform Volatility ความถในการเปลยนแพลตฟอรมหรอระบบปฏบตการ

บคลากร (Personnel) ACAP: Analyst Capability ความสามารถของนกวเคราะหระบบ

PCAP: Programmer Capability ความสามารถของโปรแกรมเมอร

PCON : Personnel Continuity ความถในการเปลยนแปลงพนกงานหรอทมงาน

AEXP : Analyst Experience ประสบการณของนกวเคราะหระบบ

PEXP : Programmer Experience ประสบการณของโปรแกรมเมอร

LTEX : Language and Tools Experience ประสบการณในการใชภาษาโปรแกรมมงและเครองมอ

โครงการ (Project) TOOL : Use of Software Tools การใชเครองมอในการบรหารโครงการ

SITE : Site Environment จำนวนของไซตงาน

ปจจย ตำมาก ตำ ปานกลาง สง

RELY: Software Reliability 0.82 0.92 1.0 1.10DATA : Database Size 0.80 0.90 1.0 1.14CPLX : Software Complexity 0.73 0.87 1.0 1.17RUSE : Required Reusability 0.85 0.95 1.0 1.07Docu : Documentation 0.81 0.91 1.0 1.11TIME : Time Constraint on Execution - - 1.0 1.11STOR : Main Storage Constraint - - 1.0 1.05PVOL : Platform Volatility - - 1.0 1.15ACAP: Analyst Capability 1.42 1.19 1.0 0.85PCAP: Programmer Capability 1.34 1.15 1.0 0.88PCON : Personnel Continuity 1.22 1.10 1.0 0.88AEXP : Analyst Experience 1.19 1.09 1.0 0.91PEXP : Programmer Experience 1.20 1.09 1.0 0.91LTEX : Language and Tools Experience 1.29 1.12 1.0 0.90TOOL : Use of Software Tools 1.17 1.09 1.0 0.90SITE : Site Environment 1.22 1.09 1.0 0.93

2. คำนวนหา Effort ดงน MME (Modified) = MME X (EM)

EM คอ ผลคณของปจจยทสงผลใหจำนวน Effort เปลยนแปลงไป

! EM = 0.82 x 0.80 x 0.73 x 0.85 x 0.81 x 1.42 x 1.34 x 1.22 x 1.19 x 1.20 x 1.29 x 1.17 x 1.22 = 2.01

MME = 219 x 2.01 = 440 Man-Month !หากตองการคำนวนคาใชจายโดยประมาณใหคณดวยอตราคาแรงตอคน

กำหนดใหโครงการ ข มระยะเวลาตงแตเรมโครงการและสงมอบเทากบ 10 เดอนโดยวศวกรซอฟตแวรจะตองทำการประมาณการตนทน

ดวยวธ COCOMO ซงแบงโครงการออกเปน 3 ระยะดงน

ในระยะการกอนการดำเนนงาน นบจำนวนออบเจคตพอยทได 80 OP มอตราการนำโคดไปใชใหม 15% และเมอประเมน

ประสบการณและความสามารถของทมงานแลว พบวาอยในระดบปกต ในระยะกอนการออกแบบซอฟตแวรปจจยขบทง 5 ขอ ถกจดอนดบดงน !!!!!!!!!!!! และกำหนดใหขนาดของซอฟตแวรทนบแบบฟงกชนพอยทและแปลงมาเปน LoC แลว มคาเทากบ 12 KLoC สามารถคำ

นวนหาแรงงานโดยประมาณ บนพนฐานของคาคงทของประสทธผลในการผลตระดบปกต ในระยะหลงการออกแบบ ไดนำคา Effort ทไดมาปรบคาตามปจจยขบเพมเตม 16 ปจจย ใหอยในระดบ สง ทกปจจย และยง

คงขนาดซอฟตแวรเปน 12 KLoC เชนเดม จงคำนวนหาคาใชจายทงหมดตงแตเรมโครงการจนถงสงมอบ โดยใหอตราคาแรงตอคนตอเดอน

เทากบ 10000 บาท

ปจจย ระดบการ

ประเมนPREC ตำ

FLEX ปานกลาง

RESL ปานกลาง

TEAM สง

PMAT ปานกลาง

ปจจย ตำมาก ตำ ปานกลาง สง

RELY: Software Reliability 0.82 0.92 1.0 1.10DATA : Database Size 0.80 0.90 1.0 1.14CPLX : Software Complexity 0.73 0.87 1.0 1.17RUSE : Required Reusability 0.85 0.95 1.0 1.07Docu : Documentation 0.81 0.91 1.0 1.11TIME : Time Constraint on Execution - - 1.0 1.11STOR : Main Storage Constraint - - 1.0 1.05PVOL : Platform Volatility - - 1.0 1.15ACAP: Analyst Capability 1.42 1.19 1.0 0.85PCAP: Programmer Capability 1.34 1.15 1.0 0.88PCON : Personnel Continuity 1.22 1.10 1.0 0.88AEXP : Analyst Experience 1.19 1.09 1.0 0.91PEXP : Programmer Experience 1.20 1.09 1.0 0.91LTEX : Language and Tools Experience 1.29 1.12 1.0 0.90TOOL : Use of Software Tools 1.17 1.09 1.0 0.90SITE : Site Environment 1.22 1.09 1.0 0.93