Software engineering Software cost factor B.Abinaya Bharathi , II- M.Sc [ Cs&IT ], Nadar Saraswathi college of Arts and Science, Theni. 1
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
Major factor that influence software cost Programmer ability Product complexity Product size Available time Required reliability Level of technology 3
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
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
Product complexity Three main categories or three levels are Application software Utility software System software . 6
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
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
By Boehm's observation Three levels are Organic- application program Semi-detached- utility program Embedded-system program 9
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
11
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
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 Graph shows that the duration for developing all the three types of system are same
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
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
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
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
Boehm states that “there is a limit beyond which a software project cannot reduce its schedule by buying more personnel and equipment” 20
Required reliability Four main terms that express the reliability are Accuracy Robustness Completeness Consistency 21
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
Level of technology A software Project is mainly reflected by programming language abstract machine programming practices software tools used 23
In Modern programming languages to increase productivity and software reliability ,additional features like strong type checking data abstraction separate computation exception handling 24
Programming practices include systematic analysis and design technique structure designed notations inspection structured coding systematic testing program development library 25
Software tools are Assemblers Loaders Compilers Other interactive tool 26