1.Shashwat Shriparv [email protected] InfinitySoft 2. Estimating the cost of a Software product is one of the most difficult and error prone tasks. Cost estimates can be of two types: 1) Top down approach 2) Bottom up approach 3. TOP DOWN APPROACH ♣ It focuses on system level cost like computing resources as well as the cost of configuration management ,quality assurance ,system integration ,training and publications. ♣ It focuses on system level cost but may overlook various technical factors. 4. BOTTOM UP APPROACH ♣ It first estimates the cost to develop each module and these cost are combined to arrive at an overall estimate. ♣ It emphasizes the cost associated with developing individual system components but fail to account for system level costs. 5. METHODS FOR ESTIMATION 1) Expert Judgment 2) Delphi Cost Estimation 3) Work Breakdown Structures 4) Algorithmic Cost Models 6. Compute the estimate cost of the software system as the sum of costs of the modules and the subsystem that comprises the system. They follow Bottom Up Approach. 7. CONSTRUCTIVE COST MODEL 8. ☺ This is one of the most widely used and discussed software cost estimation in the industry. ☺ It has evolved into a more comprehensive estimation model called COCOMO II. ☺In the COCOMO model Effort Multipliers are used to adjust the estimate for product attribute ,computer attribute ,personal attribute and project attribute. 9. ☺ The following activities are covered by the estimates: a) Covers estimate through acceptance testing b) Includes the cost of documentation and reviews. c) Includes the cost of Project Manager. 10. ☺ The cost estimators exclude planning and analysis costs ,installation and training cost and cost of computer operators , secretaries. ☺ The DSI (Delivered Source Instruction) estimate includes job control statement and source statements but excludes comments ☺ It is considered to be one line or card image. 11. Following are the assumptions estimated by the COCOMO concerning the nature of the software:- 1) Careful definition and validation of requirements is performed by a small number of capable people. 2) Requirements remain stable throughout the project 3) Careful definition and validation of architectural designs is performed by a small number of capable people. 12. 4) Detailed design ,coding and unit testing are performed in parallel by group of programmers working in teams. 5) Integration Testing is based on early test planning. 6) Interface errors are found by unit testing and by inspections. 13. Formally there are mainly 10 steps to estimate the cost using COCOMO:- 1) Identify all the subsystem and modules in the product. 2) Estimate the size of each module and calculate the size of each subsystem and the total system. 14. 3) Specify the module level multipliers. 4) Compute the module effort and the time estimates for each modules. 5) Specify the effort multipliers for each subsystems. 6) From Steps 4 and 5 compute the estimated effort and development time for each subsystems. 15. 7) From Step 6 compute the total system effort and development time. 8) Perform sensitivity analysis on the estimate. 9) Add other development cost like planning and analysis that are not included in the estimates. 10) Compare this estimate with the one developed by Delphi estimation .Identify and Rectify the differences in the estimates. 16. MODULE LEVEL MULTIPLIERS Product Complexity Programmers Capability Virtual Machine Experience Programming Language Experience 17. EFFORT MULTIPLIERS PERSONAL ATTRIBUTES • Analyst capability •Programmer capability •Application experience • Virtual machine experience • Programming language experience PROJECT ATTRIBUTES • Use of modern programming practices • Use of software tools • Required schedule 18. PRODUCT ATTRIBUTES Required Reliability Data-base Size Product Complexity COMPUTER ATTRIBUTES Execution time constraint Main storage Constraint Virtual machine reality Computer turnaround time 19. ADVANTAGES:- o The model can be used to gain insight into the cost factors. o Systematic techniques of software engineering are used throughout the development process. o Data can be collected and analyzed ,new factors can be identified and effort multipliers can be adjusted. 20. Shashwat Shriparv [email protected] InfinitySoft