CIS210: Software Engineering and Development Empirical Estimation Models 1. Software Project Estimation Software project estimation is necessary to achieve reliable cost and effort prediction. A project estimation method usually involves the following steps: - identify the project scope - perform project decomposition - compute the empirical metrics KLOC and/or FP - apply an empirical model to obtain estimates of software cost, effort and duration - use for comparison automated estimation tools (optional) The contemporary software projects are usually extremely large, and require decomposition and recharacterization as a set of smaller, more manageable subproblems. The decomposition techniques take the "divide and conquer" approach to software project estimation. Software estimation activities can be performed in a stepwise fashion when the project is decomposed in major functions and related tasks. The expected values for KLOC and FP can be computed as follows: E=(a+4m+b)/6 where: a is the optimistic value m is the most likely value b is the pessimistic value 2. Empirical Estimation Models An estimation model for computer software uses empirically derived formulas to predict effort as a function of LOC or FP. 2.1. Structure of the Estimation Models E = A + B * ( ev )C where: E is effort in person-months A, B, and C are empirically derived constants ev is the estimated variable (LOC or FP). 2.2. Concrete Estimation Models LOC oriented models E = 5.2 * ( KLOC )0.91 Walston-Felix model E = 5.5 + 0.73 * ( KLOC )1.16 Bailey-Basili model E = 3.2 * ( KLOC )1.05 E = 5.288 * ( KLOC )1.047 Boehm simple model Doty model FP oriented models E = -13.39 + 0.0545 * FP Albrecht and Gaffney model E = 60.62 * 7.728 * 10-8 * FP3 Kemerer model E = 585.7 + 15.12 FP Matson, Barnett, Mellichamp 6.3. The COCOMO Models: Constructive Cost MOdels The COCOMO model is an hierarchy of models as follows: Model 1:The Basic COCOMO model- computes software development effort and cost as a function of program size expressed in estimated lines of code. Model 2:The Intermediate COCOMO -computes software development effort and cost as a function of program size and a set of cost drivers that include subjective assessments of product, hardware, personel, and project attributes. Model 3:The Advanced COCOMO model- incorporates all characteristics of the intermediate model with an assessment of the impact on each step of the software development process. The COCOMO can be applied to three different kinds of software project classes: - organic mode projects: small, simple projects developed by small teams of software engineers, that work with less than rigid requirements; - semi-detached mode projects: medium in size and complexity projects, developed by teams with mixed experience, that work with mixed requirements; - embedded mode projects: projects that have to be developed under tight hardware and software constraints. Model 1: The Basic COCOMO equations have the following form: E = ab * ( KLOC )exp( bb ) D = cb *( E )exp( db ) where: E is effort in person-months D is development time in chronological months the coefficients are given in the table below: Project class ab bb cb db organic semidetached embedded 2.4 3.0 3.6 1.05 1.12 1.20 2.5 2.5 2.5 0.38 0.35 0.32 Example: Let the expected size of a semidetached software project is 33.3 KLOC. Using the coefficients in the above table, the BasicCOCOMO estimates can be produced as follows: E = ab * ( KLOC )exp( bb ) = 3.0 * ( 33.3 )exp( 1.12 ) = 3.0 * 33.31.12 = 152 [person-months] D = cb *( E )exp( db ) = 2.5( 152 )exp( 0.35 ) = 2.5*1520.35 = 14.5 [months] The recommended number of people is: N=E/D = 152 / 14.5 = 11 [people] Model 2: The Intermediate COCOMO equation takes the form: E = ai * ( LOC )exp( bi ) * EAF where: E is effort in person-months EAF is error adjustment factor [0.9 1.4] determined with respect to cost driver attributes (given in a table) the coefficients are given in the table below: Project class ai bi organic semidetached embedded 3.2 3.0 2.8 1.05 1.12 1.20 Web Resources: http://sunset.usc.edu/research/COCOMOII/index.html