consider the 14 complexity factors : 0-data comm; 0-distrib data; 0-perf criteria; 0-hardware usage; 0-transaction rate; 1-online data entry; 0-end user efficiency; 0-online update; 5-complex computation;0-reusability; 0-ease of install; 0-ease of operation; 0-portability; 1-maintainability:
TCF = .65 + (.01 * 7 ) = .72
FP = UFP * TCF
FP = 10 * .72
FP = 7.2
Function Point Example (cont.)
What does 7.2 function points mean in terms of schedule and cost estimates ?
One can receive guidance from IFPUG (International Function Point User Group) to get some of the $/FP or person-days/FP data.
With “old IBM services division” data of 20 function points per person month to perform “complete” development, 7.2 FP translates to approximately .36 person months or (22days * .36 = 7.9 person days ) of work.
Assume $7k/person-month, .36 person months will cost about $2.5k .
Some Function Points Drawbacks
Requires “trained” people to perform estimates of work volume or product size, especially the 14 technical complexity factors.
While IFPUG may furnish some broader data, Cost and Productivity figures are different from organization to organization.
e.g. the IBM data takes into account of lots of corporate “overhead” cost
Some of the Complexity Factors are not that important or complex with today’s tools.
COCOMO Estimating Technique
Developed by Barry Boehm in early 1980’s who had a long history with TRW and government projects (initially, LOC based )
Later modified into COCOMO II in the mid-1990’s (FP preferred but LOC is still used)
Assumed process activities :
Code and Unit Test
Integration and Test
Utilized by some but most of the software industry people still rely on experience and/or own company proprietary data.
Note : No Requirements !
COCOMO I Basic Form for Effort
Effort = A * B * (size ** C)
Effort = person months
A = scaling coefficient
B = coefficient based on 15 parameters
C = a scaling factor for process
Size = delivered source (K) lines of code
COCOMO I Basic form for Time
Time = D * (Effort ** E)
Time = total number of calendar months
D = A constant scaling factor for schedule
E = a coefficient to describe the potential parallelism in managing software development
Originally based on 56 projects
Reflecting 3 modes of projects
Organic : less complex and flexible process
Semidetached : average project
Embedded : complex, real-time defense projects
For the basic forms:
Effort = A * B *(size ** C)
Time = D * (Effort ** E)
Organic : A = 3.2 ; C = 1.05 ; D= 2.5; E = .38
Semidetached : A = 3.0 ; C= 1.12 ; D= 2.5; E = .35
Embedded : A = 2.8 ; C = 1.2 ; D= 2.5; E = .32
Coefficient B is an effort adjustment factor based on 15 parameters which varied from very low , low , nominal , high , very high to extra high