Professional Documents
Culture Documents
Effort Estimation
Effort Estimation
Algorithmic Models
Managerial based
① Subjective in nature
② One problem, different estimator will
produce different estimates.
③ Experience level effects estimate.
④ Unstructured process
⑤ Hard to convince customer
⑥ Difficulty in validating estimate.
Intuition Based cont…
Analogy
Used to estimate effort for a new problem by analyzing solutions that were used to
solve an old problem. The analogy method usually follows the process in three step
fashion.
Product metrics
◦ quantify characteristics of the product being
developed
size, cost
Process metrics
◦ quantify characteristics of the process being
used to develop the software
efficiency of fault detection
Cont…
Few Famous Metrics
◦ productivity KLOC/person-month
◦ quality faults/KLOC
◦ cost $$/KLOC
◦ documentation doc_pages/KLOC
LOC cont…
Why used?
◦ early systems emphasis on coding
Criticisms
◦ cross-language inconsistencies
◦ within language counting variations
◦ change in program structure can affect count
◦ stimulates programmers to write lots of code
◦ system-oriented, not user-oriented
How many Lines of Code in this program?
Program length(N) = N1 + N2
Following equations are used for computing estimation .
N = Observed Program Length = N1 + N 2
N* = Estimated Program Length = n1 (log2 (n1))+ n2 (log2 (n2))
n = Program Vocabulary = n1 + n2
V = The program volume (V) is the information contents of the program,
measured in mathematical bits= N*(log 2 (n))
D = Program Difficulty = (n1/2)*(N 2 /n2)
E = D*V
Where
n1 = number of distinct operators in a program
n2 = number of distinct operands in a program
N1 = number of occurrences of operators in a program
N2 = number of occurrences of operands in a program
Halstead’s Example
if (k < 2)
{
if (k > 3)
x = x*k;
}
If-then-else Until
Cyclomatic Complexity
Set of independent paths through the graph
(basis set)
V(G) = E – N + 2
◦ E is the number of flow graph edges
◦ N is the number of nodes
V(G) = P + 1
◦ P is the number of predicate nodes
Meaning
V(G) is the number of (enclosed) regions/areas of the planar graph.
The V(g) or cyclomatic number is a measure of the complexity of a
function which is correlated with difficulty in testing. The standard
value is between 1 and 10.
A value of 1 means the code has no branching.
7 4 5
6
Computing V(G)
V(G) = 9 – 7 + 2 = 4
V(G) = 3 + 1 = 4
Basis Set
◦ 1, 7
◦ 1, 2, 6, 1, 7
◦ 1, 2, 3, 4, 5, 2, 6, 1, 7
◦ 1, 2, 3, 5, 2, 6, 1, 7
Another Example
1
2
4
3
5 6
8
What is V(G)?
Function Points
Function point is emerged which measures the
size of a system from its functionality and
usability.
History
Non-code oriented size measure
Developed by IBM (A.Albrecht) in 1979, 1983
Now in use by more than 500 organizations
world-wide
1) data communications
2) distributed functions Each rated on scales equivalent
3) performance to the following:
4) heavily used configuration
5) transaction rate Not present =0
6) on-line data entry Incidental Influence = 1
7) end user efficiency Moderate Influence = 2
8) on-line update Average Influence = 3
9) complex processing Significant Influence= 4
10) reusability Strong Influence = 5
11) installation ease
12) operational ease
13) multiple sites
14) facilitates change
Function Point Calculation
5 3
Function Counts = FC x i w j
i 1 j 1
14
Function Points = FP FC.65 .01 ck
k 1
where
xi = function i
wj = weight j
ck = complexity factor k
Computing Function Points
Analyze information
domain of the Establish count for input domain and system
application and
interfaces
develop counts
FP = SUM(count x weight) x C
Compute function where
points complexity multiplier C = (0.65+0.01 x N)
degree of influence N = SUM(F_i)
Analyzing the Information
Domain
weighting factor
measurement parameter count simple avg. complex
number of user inputs X 3 4 6 =
number of user outputs X 4 5 7 =
number of user inquiries X 3 4 6 =
number of files X 7 10 15 =
number of ext.interfaces X 5 7 10 =
count-total
complexity multiplier
function points
Example: SafeHome Functionality
Test Sensor
Password
Zone Setting Sensors
Zone Inquiry
Monitor
Password, Alarm Alert and
Sensors, etc. Response
System
System
Config Data
Example: SafeHome FP Calc
weighting factor
measurement parameter count simple avg. complex
number of user inputs 3 X 3 4 6 = 9
number of user outputs 2 X 4 5 7 = 8
number of user inquiries 2 X 3 4 6 = 6
number of files 1 X 7 10 15 = 7
number of ext.interfaces 2 X 5 7 10 = 10
count-total 3
complexity multiplier 1.11
function points --
Attempt
Effort E = a * (KDSI) b
* EAF
Advanced COCOMO
It is used for large sized projects.
The cost drivers depend upon requirements, analysis,
design, testing and maintenance.
Team size is large.
Organic mode projects used for relatively smaller teams and Project is
developed in familiar environment.
E=2.4(KDSI)1.05 E in person-months and S=2.5(E)0.38.
7000
Organic
6000 Semidetached
Embedded
5000
Person-months
4000
3000
2000
1000
0
0 100 200 300 400 500 600
Thousands of lines of code
Solve
Assume that the size of an organic type
software product has been estimated to
be 32,000 lines of source code. Assume
that the average salary of software
engineers be Rs. 15,000/- per month.
Determine the effort required to develop
the software product and the nominal
development time
Issues in Algorithmic Models
Specific Input, Specific Output
Parameter dependent
Regression based dependent
Sizing source code volumes
On the basis of studies, the conversion
between LOC and function points is
possible.