COCOMO MODEL

5,575 views
5,279 views

Published on

COCOMO MODEL

Published in: Technology, Business
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,575
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
234
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

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>

×