2. SOFTWARE COST ESTIMATION
 One of the important and difficult task is estimating a
software product
 Preliminary estimate is prepared during planning
 •Improved estimate is presented at the software
requirements review
 •Final estimate is prepares at the preliminary design
view 2
3. MAJOR FACTOR THAT INFLUENCE
SOFTWARE COST
ď‚— Programmer ability
ď‚— Product complexity
ď‚— Product size
ď‚— Available time
ď‚— Required reliability
ď‚— Level of technology
3
4. PROGRAMMER ABILITY
 Maintaining and production of a software is based on
programmer
 Programmer must be expert in computer programming
 If not an expert project may become failure
 Programming is a individual and private activity
4
5.  Communication path among programmers increases
according to the number of programmers in a project
 By Brook’s observation
Communication path=n(n+1)/2
 n= number of programmers
5
6. PRODUCT COMPLEXITY
 Three main categories or three levels are
ď‚— Application software
ď‚— Utility software
ď‚— System software
.
6
7.  Application software
ď‚— Developed using high level programming language
like C++,java etc,.
 Utility software
ď‚— Utility programs are system software like loader ,
linker , compiler
 System software
ď‚— Which directly interacts with hardware
ď‚— Ex: operating System 7
8.  By Brook’s observation
ď‚— 1:3:9
ď‚— i.e. utility program are 3 times difficult than
application program.
ď‚— System program are 9 times difficult than utility
program.
8
9.  By Boehm's observation
Three levels are
ď‚— Organic- application program
ď‚— Semi-detached- utility program
ď‚— Embedded-system program
9
10.  Boehm derived an equation by analyzing the historical
data of many project
ď‚— Application program= PM*(KDSI)**1.05
ď‚— Utility program = PM*(KDSI)**1.12
ď‚— System program = PM*(KDSI)**1.20
*KDSI=thousand of delivered source line
*PM=Programmer month
10
12.  Above graph shows that
 Developing a application program using 60,000 lines
 The ratio is 1 to 1.7 to 2.8 for application program ,
utility program and system program.
12
13.  The development time for a product
ď‚— Application program TDEV=2.5*(PM)**0.38
ď‚— Utility programs TDEV=2.5*(PM)**0.35
ď‚— System programs TDEV=2.5*(PM)**0.32
*TDEV – development time
13
14. 14
Graph shows that the duration
for developing all the three
types of system are same
15.  Total programmer for a project
ď‚— Application program:176.6PM / 17.85mo
=9.9programmers
ď‚— Utility program:294PM / 18.3mo
=16programmers
ď‚— System programm:489.6PM / 18.1mo
=27programmers
*mo=month
15
16.  Failures in estimating the number of source
instructions in a software product is to under estimate the
amount of house keeping code
 Housekeeping code
ď‚— portion of source code
ď‚— handles input , output , interactive user
communication ,error checking and error handling
16
17. PRODUCT SIZE
 A large software product is more expensive to develop
than a small one.
 Boehm equation indicate that
 “the rate of increase in required effort grows with
number of source instruction at an exponential”
17
19. AVAILABLE TIME
 Project must complete within the given time and cost
 Putnam’s
 “project effort is inversely proportional to the fourth
power of the development time”
ď‚— E=k/(TD**4)
 Putnam states that , development schedule
 cannot be compressed below about 86%
19
20.  Boehm states that
 “there is a limit beyond which a software project
cannot reduce its schedule by buying more personnel
and equipment”
20
21. REQUIRED RELIABILITY
 Four main terms that express the reliability are
ď‚— Accuracy
ď‚— Robustness
ď‚— Completeness
ď‚— Consistency
21
22.  A product which is built by these all characteristics but
there is a cost associated with different phases to ensure
high reliability
 Product failure may cause slightly inconvenience high
financial loss or risk to human life
22
23. LEVEL OF TECHNOLOGY
 A software Project is mainly reflected by
ď‚— programming language
ď‚— abstract machine
ď‚— programming practices
ď‚— software tools used
23
24.  •In Modern programming languages to increase
productivity and software reliability ,additional
features like
ď‚— strong type checking
ď‚— data abstraction
ď‚— separate computation
ď‚— exception handling
24
25.  •Programming practices include
ď‚— systematic analysis and design technique
ď‚— structure designed notations
ď‚— inspection
ď‚— structured coding
ď‚— systematic testing
ď‚— program development library
25
26.  Software tools are
ď‚— Assemblers
ď‚— Loaders
ď‚— Compilers
ď‚— Other interactive tool
26