Software Cost Estimation and Boehm’s COCOMO Model (Including a 50 KLOC Embedded-Time Calculation)

Software Cost Estimation and Boehm’s COCOMO Model (Including a 50 KLOC Embedded-Time Calculation)

Verified Sources
Sep 12, 2026

COCOMO Model - Guide with LOC Numerical Example

Software keywordcost estimation is the structured process of forecasting the resources needed to build software—primarily keywordeffort in person-months and keyworddevelopment time (months), which can then be converted to cost using labor rates. It is used for budgeting, staffing, contracting, and risk management.

A common approach is keywordparametric estimation: estimate software size (e.g., KLOC) and then apply an empirical model such as Boehm’s keywordCOCOMO to compute effort and schedule.

Footnotes

  1. Cost estimation in software engineering - Wikipedia - Overview of what cost estimation concerns (effort/schedule and related expenditures).

  2. COCOMO Model: Formula, Types, and Cost Estimation | DataCamp - Explains COCOMO as parametric model and discusses effort/schedule estimation.

Boehm’s COCOMO Model: what it is and what it predicts

COCOMO (“Constructive Cost Model”) is an empirical, equation-based software keywordcost estimation model that predicts:

  • keywordeffort EE (in person-months),
  • keyworddevelopment time TdevT_{dev} (in months),
  • optionally average staffing =E/Tdev= E/T_{dev}.

COCOMO originated from regression analysis on historical projects; the “COCOMO I” set of equations is typically presented in three levels (basic, intermediate, detailed). For many academic problems, the “basic COCOMO” equations are used because they depend only on size and project mode.

Footnotes

  1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

  2. COCOMO Model: Formula, Types, and Cost Estimation | DataCamp - Notes regression analysis on historical projects used to produce COCOMO constants (COCOMO I context).

COCOMO (Basic / COCOMO I) equations in detail

For a given project size KLOCKLOC (thousands of lines of code), the Basic COCOMO (“COCOMO I Basic”) model computes:

  1. Effort equation E=a(KLOC)b(person-months)E = a \cdot (KLOC)^b \quad \text{(person-months)}

  2. Development time equation Tdev=c(E)d(months)T_{dev} = c \cdot (E)^d \quad \text{(months)}

where a,b,c,da,b,c,d depend on the project type (mode).

Project modes and constants

For Basic COCOMO I, commonly reported constants are:

Modeaabbccdd
Organic2.41.052.50.38
Semi-Detached3.01.122.50.35
Embedded3.61.202.50.32

Footnotes

  1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants. 2

Why embedded mode often yields higher effort/time

Embedded projects usually have stricter operational constraints and integration/validation complexity. In Basic COCOMO, embedded mode uses a larger aa and larger bb (steeper growth of effort with size).

Footnotes

  1. COCOMO Model - Software Engineering (GeeksforGeeks) - Describes differences among project modes including embedded constraints affecting constants.

Compute development time for an embedded project of 50 KLOC using Basic COCOMO

  1. 1
    Step 1

    Use embedded (Basic COCOMO) values a=3.6a=3.6, b=1.20b=1.20, c=2.5c=2.5, d=0.32d=0.32.

    Footnotes

    1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

  2. 2
    Step 2

    Given KLOC=50KLOC=50, compute E=3.6×(50)1.20E = 3.6\times (50)^{1.20} in person-months. (Use the same form E=a(KLOC)bE=a(KLOC)^b.)

    Footnotes

    1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

  3. 3
    Step 3

    Then compute Tdev=2.5×(E)0.32T_{dev}=2.5\times (E)^{0.32} in months using Tdev=c(E)dT_{dev}=c(E)^d.

    Footnotes

    1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

  4. 4
    Step 4

    First, (50)1.20109.81(50)^{1.20}\approx 109.81, so E3.6×109.81395.3 person-months.E\approx 3.6\times 109.81\approx 395.3\text{ person-months}. Next, (395.3)0.329.13(395.3)^{0.32}\approx 9.13, so Tdev2.5×9.1322.8 months.T_{dev}\approx 2.5\times 9.13\approx 22.8\text{ months}.

    Footnotes

    1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants. 2

  5. 5
    Step 5

    Estimated development time for 50 KLOC embedded project: Tdev22.8 months\boxed{T_{dev} \approx 22.8\text{ months}}.

    Footnotes

    1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

Embedded-mode selection matters (Basic vs Intermediate vs Detailed)

If you were asked to use Intermediate or Detailed COCOMO, you would need effort multipliers (EAF) or additional cost drivers/scale factors. The problem statement here matches Basic COCOMO because it only provides size (KLOC) and asks directly for development time. 2

Footnotes

  1. COCOMO Model: Formula, Types, and Cost Estimation | DataCamp - Explains COCOMO as parametric model and discusses effort/schedule estimation.

  2. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

Worked result summary (embedded, 50 KLOC)

Using Basic COCOMO (embedded mode):

  • Effort: E395.3E \approx 395.3 person-months
  • Development time: Tdev22.8T_{dev} \approx 22.8 months

(Computed using E=a(KLOC)bE=a(KLOC)^b and Tdev=c(E)dT_{dev}=c(E)^d.)

Footnotes

  1. COCOMO Model - Software Engineering (GeeksforGeeks) - Provides Basic COCOMO equations and embedded/organic/semi-detached constants.

Estimated Development Time by COCOMO Basic Mode (50 KLOC)

Same size (50 KLOC), different mode constants.

Common exam clarifications

Knowledge Check

Question 1 of 4
Q1Single choice

In Basic COCOMO, which equation directly estimates development time (schedule)?