Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

COCOMO MODEL

COCOMO MODEL

  • Be the first to comment

COCOMO MODEL

  1. 1. More on Estimation <ul><li>In general, effort estimation is based on several parameters and the model ( E= a + b*S**c ): </li></ul><ul><ul><li>Personnel </li></ul></ul><ul><ul><li>Environment </li></ul></ul><ul><ul><li>Quality </li></ul></ul><ul><ul><li>Size or Volume of work </li></ul></ul><ul><ul><li>Process </li></ul></ul><ul><ul><li>where S is the Size and a, b, and c are constants estimated with other parameters </li></ul></ul><ul><li>Some popular Effort Estimation methodologies: </li></ul><ul><ul><li>Function Point </li></ul></ul><ul><ul><li>COCOMO (Constructive Cost Model) </li></ul></ul>
  2. 2. “ simplified” Function Point <ul><li>Proposed by Albrecht of IBM as an alternative metric to lines of code count for S, size of product. </li></ul><ul><li>Based on 5 major areas and a complexity table of simple , average and complex set of weights as follows: </li></ul><ul><ul><li>input 3 4 6 </li></ul></ul><ul><ul><li>output 4 5 7 </li></ul></ul><ul><ul><li>inquiry 3 4 6 </li></ul></ul><ul><ul><li>master files 7 10 15 </li></ul></ul><ul><ul><li>interfaces 5 7 10 </li></ul></ul><ul><li>The Unadjusted Function Point is : </li></ul><ul><ul><li>UFP = w*Inp + w2*Out + w3*Inq + w4*MastF +w5*Intf </li></ul></ul>
  3. 3. Function Point (cont.) <ul><li>14 technical complexity factors are included, each valued between 0 and 5: </li></ul><ul><ul><li>data communications </li></ul></ul><ul><ul><li>distributed data </li></ul></ul><ul><ul><li>performance criteria </li></ul></ul><ul><ul><li>heavy hardware usage </li></ul></ul><ul><ul><li>high transaction rates </li></ul></ul><ul><ul><li>online data entry </li></ul></ul><ul><ul><li>online updating </li></ul></ul><ul><ul><li>complex computations </li></ul></ul><ul><ul><li>ease of installation </li></ul></ul><ul><ul><li>ease of operation </li></ul></ul><ul><ul><li>portability </li></ul></ul><ul><ul><li>maintainability </li></ul></ul><ul><ul><li>end-user efficiency </li></ul></ul><ul><ul><li>reusability </li></ul></ul>
  4. 4. Function Point (cont.) <ul><li>The sum of 14 technical complexity factors can have values of 0 through 70. </li></ul><ul><li>The the Total Complexity Factor(TCF) is defined as: </li></ul><ul><ul><li>TCF = .65 + (.01 * Sum of 14 technical complexity factors) </li></ul></ul><ul><ul><li>TCF may have values of 0.65 through 1.35. </li></ul></ul><ul><li>Finally, Function Point (FP) is defined as: </li></ul><ul><ul><li>FP = UFP * TCF </li></ul></ul><ul><li>For Cost and Productivity per FP, one may use “historical” data. </li></ul>
  5. 5. Simple Function Point Example <ul><li>Consider the previous POWER function project and use Simple weights from the table : </li></ul><ul><ul><li>2 inputs, 1 output, 0 inquiry, 0 master file, and 0 interfaces </li></ul></ul><ul><ul><li>UFP = 3* 2 + 4*1 + 3*0 + 7*0 + 5*0 = 1 0 </li></ul></ul><ul><ul><li>consider the 14 complexity factors : 0-data comm; 0-distrib data; 0-perf criteria; 0-hardware usage; 0-transaction rate; 1-online data entry; 0-end user efficiency; 0-online update; 5-complex computation;0-reusability; 0-ease of install; 0-ease of operation; 0-portability; 1-maintainability: </li></ul></ul><ul><ul><li>TCF = .65 + (.01 * 7 ) = .72 </li></ul></ul><ul><ul><li>FP = UFP * TCF </li></ul></ul><ul><ul><li>FP = 10 * .72 </li></ul></ul><ul><ul><li>FP = 7.2 </li></ul></ul>
  6. 6. Function Point Example (cont.) <ul><li>What does 7.2 function points mean in terms of schedule and cost estimates ? </li></ul><ul><li>One can receive guidance from IFPUG (International Function Point User Group) to get some of the $/FP or person-days/FP data. </li></ul><ul><li>With “old IBM services division” data of 20 function points per person month to perform “complete” development, 7.2 FP translates to approximately .36 person months or (22days * .36 = 7.9 person days ) of work. </li></ul><ul><li>Assume $7k/person-month, .36 person months will cost about $2.5k . </li></ul>
  7. 7. Some Function Points Drawbacks <ul><li>Requires “trained” people to perform estimates of work volume or product size, especially the 14 technical complexity factors. </li></ul><ul><li>While IFPUG may furnish some broader data, Cost and Productivity figures are different from organization to organization. </li></ul><ul><ul><li>e.g. the IBM data takes into account of lots of corporate “overhead” cost </li></ul></ul><ul><li>Some of the Complexity Factors are not that important or complex with today’s tools. </li></ul>
  8. 8. COCOMO Estimating Technique <ul><li>Developed by Barry Boehm in early 1980’s who had a long history with TRW and government projects (initially, LOC based ) </li></ul><ul><li>Later modified into COCOMO II in the mid-1990’s (FP preferred but LOC is still used) </li></ul><ul><li>Assumed process activities : </li></ul><ul><ul><li>Product Design </li></ul></ul><ul><ul><li>Detailed Design </li></ul></ul><ul><ul><li>Code and Unit Test </li></ul></ul><ul><ul><li>Integration and Test </li></ul></ul><ul><li>Utilized by some but most of the software industry people still rely on experience and/or own company proprietary data. </li></ul>Note : No Requirements !
  9. 9. COCOMO I Basic Form for Effort <ul><li>Effort = A * B * (size ** C) </li></ul><ul><ul><li>Effort = person months </li></ul></ul><ul><ul><li>A = scaling coefficient </li></ul></ul><ul><ul><li>B = coefficient based on 15 parameters </li></ul></ul><ul><ul><li>C = a scaling factor for process </li></ul></ul><ul><ul><li>Size = delivered source (K) lines of code </li></ul></ul>
  10. 10. COCOMO I Basic form for Time <ul><li>Time = D * (Effort ** E) </li></ul><ul><ul><li>Time = total number of calendar months </li></ul></ul><ul><ul><li>D = A constant scaling factor for schedule </li></ul></ul><ul><ul><li>E = a coefficient to describe the potential parallelism in managing software development </li></ul></ul>
  11. 11. COCOMO I <ul><li>Originally based on 56 projects </li></ul><ul><li>Reflecting 3 modes of projects </li></ul><ul><ul><li>Organic : less complex and flexible process </li></ul></ul><ul><ul><li>Semidetached : average project </li></ul></ul><ul><ul><li>Embedded : complex, real-time defense projects </li></ul></ul>
  12. 12. COCOMO I <ul><li>For the basic forms: </li></ul><ul><ul><li>Effort = A * B *(size ** C) </li></ul></ul><ul><ul><li>Time = D * (Effort ** E) </li></ul></ul><ul><ul><ul><li>Organic : A = 3.2 ; C = 1.05 ; D= 2.5; E = .38 </li></ul></ul></ul><ul><ul><ul><li>Semidetached : A = 3.0 ; C= 1.12 ; D= 2.5; E = .35 </li></ul></ul></ul><ul><ul><ul><li>Embedded : A = 2.8 ; C = 1.2 ; D= 2.5; E = .32 </li></ul></ul></ul>
  13. 13. Coefficient B <ul><li>Coefficient B is an effort adjustment factor based on 15 parameters which varied from very low , low , nominal , high , very high to extra high </li></ul><ul><li>B = Product of (15 parameters) </li></ul><ul><ul><li>Product attributes: </li></ul></ul><ul><ul><ul><li>Required Software Reliability : .75 ; .88; 1.00; 1.15; 1.40; </li></ul></ul></ul><ul><ul><ul><li>Database Size : ; .94; 1.00; 1.08; 1.16; </li></ul></ul></ul><ul><ul><ul><li>Product Complexity : . 70 ; .85; 1.00; 1.15; 1.30; 1.65 </li></ul></ul></ul><ul><ul><li>Computer Attributes </li></ul></ul><ul><ul><ul><li>Execution Time Constraints : ; ; 1.00; 1.11; 1.30; 1.66 </li></ul></ul></ul><ul><ul><ul><li>Main Storage Constraints : ; ; 1.00; 1.06; 1.21; 1.56 </li></ul></ul></ul><ul><ul><ul><li>Virtual Machine Volatility : ; .87; 1.00; 1.15; 1.30; </li></ul></ul></ul><ul><ul><ul><li>Computer Turnaround time : ; .87; 1.00; 1.07; 1.15; </li></ul></ul></ul>
  14. 14. Coefficient B (cont.) <ul><li>Personnel attributes </li></ul><ul><ul><ul><li>Analyst Capabilities : 1.46 ; 1.19; 1.00; .86; .71; </li></ul></ul></ul><ul><ul><ul><li>Application Experience : 1.29; 1.13; 1.00; .91; .82; </li></ul></ul></ul><ul><ul><ul><li>Programmer Capability : 1.42; 1.17; 1.00; .86; .70; </li></ul></ul></ul><ul><ul><ul><li>Virtual Machine Experience : 1.21; 1.10; 1.00; .90; ; </li></ul></ul></ul><ul><ul><ul><li>Programming lang. Exper. : 1.14; 1.07; 1.00; .95; ; </li></ul></ul></ul><ul><li>Project attributes </li></ul><ul><ul><ul><li>Use of Modern Practices : 1.24; 1.10; 1.00; .91; .82; </li></ul></ul></ul><ul><ul><ul><li>Use of Software Tools : 1.24; 1.10; 1.00; .91; .83; </li></ul></ul></ul><ul><ul><ul><li>Required Develop schedule : 1.23; 1.08; 1.00; 1.04; 1.10; </li></ul></ul></ul>
  15. 15. An example <ul><li>Consider an average project of 10Kloc : </li></ul><ul><ul><li>Effort = 3.0 * B * (10** 1.12) = 3 * 1 * 13.2 = 39.6 pm </li></ul></ul><ul><ul><li>Where B = 1.0 (all nominal) </li></ul></ul><ul><ul><li>Time = 2.5 *( 39.6 **.35) = 2.5 * 3.6 = 9 months </li></ul></ul><ul><ul><li>This requires an additional 8% more effort and 36% more schedule time for product plan and requirements: </li></ul></ul><ul><ul><ul><li>Effort = 39.6 + (39.6 * .o8) = 39.6 + 3.16 = 42.76 pm </li></ul></ul></ul><ul><ul><ul><li>Time = 9 + (9 * .36) = 9 +3.24 = 12.34 months </li></ul></ul></ul>I am cheating here!
  16. 16. Try the POWER Function Example <ul><li>POWER function was assumed to be 100 loc of C++ code, fairly simple (or Organic), and nominal for B factor: </li></ul><ul><ul><li>Effort = 3.2 * 1 * ( .1 ** 1.05) = appr. 0.3 person- month </li></ul></ul><ul><ul><li>Time = 2.5 * ( .3 ** .38) = appr. 1.5 months </li></ul></ul><ul><li>Note that while it takes only (.3 * 22 person days = 6.7 person days), the total project duration will be 1.5 months. </li></ul>
  17. 17. Some COCOMO I concerns <ul><li>Is our initial loc estimate accurate enough ? </li></ul><ul><li>Are we interpreting each parameter the same way ? </li></ul><ul><li>Do we have a consistent way to assess the range of values for each of the 15 parameters ? </li></ul>
  18. 18. COCOMO II <ul><li>Effort performed at USC with many industrial corporations participating (still guided by Boehm) </li></ul><ul><li>Has a database of over 80 some projects </li></ul><ul><li>Early estimate, preferred to use Function Point instead of LOC for size; later estimate may use LOC for size. </li></ul><ul><li>Coefficient B based on 15 parameters for early estimate is “rolled” up to 7 parameters, and for late estimates use 17 parameters. </li></ul><ul><li>Scaling factor for Process has 6 categories ranging in value from .00 to .05, in increments of .01 </li></ul>
  19. 19. Let’s look at Our 3 Estimates for “POWER” <ul><li>Work Breakdown Structure and personal experience: </li></ul><ul><ul><li>Effort : 5 person days </li></ul></ul><ul><ul><li>Time : 3 calendars (done in parallel) </li></ul></ul><ul><li>Function Point and using IBM service division data: </li></ul><ul><ul><li>Effort : 7.9 person days </li></ul></ul><ul><ul><li>Time : 7.9 calendar days (done with 1 person) </li></ul></ul><ul><li>COCOMO I and using Organic, 100 loc, and nominal for all B factors: </li></ul><ul><ul><li>Effort : 6.7 person days </li></ul></ul><ul><ul><li>Time : 1.5 calendar months </li></ul></ul>
  20. 20. Estimation Models <ul><li>There are many tools and models , but none seem to have dominated the software field. </li></ul><ul><li>Many practicing professionals still depend on personal and proprietary data. </li></ul><ul><li>Some other models : </li></ul><ul><ul><li>Walston-Felix </li></ul></ul><ul><ul><li>SLIM (commercial-proprietary) </li></ul></ul>

    Be the first to comment

    Login to see the comments

  • anushaah1

    Jun. 20, 2013
  • sanober29

    Jul. 6, 2013
  • prawee

    Jan. 24, 2014
  • AtifHumderdKtk

    Jun. 3, 2014
  • RudrikaSharma

    Sep. 13, 2014

COCOMO MODEL

Views

Total views

10,853

On Slideshare

0

From embeds

0

Number of embeds

4

Actions

Downloads

445

Shares

0

Comments

0

Likes

5

×