COCOMO cost estimation

The first COCOMO (the COnstructive COst MOdel) is widely used to estimate the costs for a software project.

  • for a simple project (an "organic"), developed by a small team, the formula is PM - 2.4(KDSI)^1.05*M, where PM is person-months, KDSI is thousands of delivered source instructions, and M dependent on project complexity and is usually 1.0.
  • for a moderately sized project ("semi-detached"), PM = 3.0(KDSI)^1.12*M
  • for a complex project (e.g. "embedded"), PM = 3.6(KDSI)^1.20*M

Elapsed time is calculated similarly:

  • Organic mode: TDEV = 2.5(PM )^0.38
  • Semi-detached mode: TDEV = 2.5(PM )^0.35
  • Embedded mode: TDEV = 2.5(PM )^0.32

Examples:

  • Organic mode project, 32KLOC
    * PM = 2.4(32)^1.05 = 91 person months
    * TDEV = 2.5(91)^0.38 = 14 months
    * N = 91/14 = 6.5 people
  • Embedded mode project, 128KLOC
    * PM = 3.6(128)^1.2 = 1216 person-months
    * TDEV = 2.5(1216)^0.32 = 24 months
    * N = 1216/24 = 51 people

A more sophisticated model is COCOMO II which takes into account three phases of a project:

  • early prototyping: PM = (NOP*(1 %reuse/100))/PROD, where NOP is the number of "object points" and PROD is the productivity which varies from 4 for developers with very low experience to 50 when their experience is very high. %reuse is the percentage of a project which can come through reuse of an already finished project.
  • early design: PM = A*SIZE^B*M + PMm, where A=2.5, SIZE is thousands of lines of code, B varies from 1.1 to 1.24 depending on project complexity, and M is the product of estimates of reliability level desired, platform difficulty, experience and capabilities of personnel, required schedule and team support facilities.
  • post-architecture: same formula as early design, but SIZE is an estimate of new lines of code, depending on how much of the design has been modified, and how much the code has been modified.