COCOMO
COCOMO
The model also provides an estimate for the **development time (T)** based on the
following formula:
T=c×(E)d
Where:
- T = Development time (in months)
- E = Effort (in person-months)
- c, d = Constants based on the project type.
COCOMO Categories:
COCOMO defines three types of software projects based on their complexity and team
experience:
1. Organic: Small teams with good experience working on simple, less complex
systems. (e.g., small software products, applications)
2. Semi-Detached: Medium-sized teams working on moderately complex systems. (e.g.,
custom applications or systems)
3. Embedded: Large teams working on highly complex systems with strict hardware
constraints. (e.g., safety-critical software, embedded systems)
COCOMO Constants:
Here are some values for constants used in the COCOMO formulas for different project
categories:
Project Type a b c d
Organic 2.4 1.05 2.5 0.38
Semi-Detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
Example:
Suppose you are developing a software project with 50,000 lines of code (50 KLOC),
categorized as Semi-Detached. Using the intermediate COCOMO model, you would
proceed as follows:
1. Effort Estimation:
-KLOC = 5
- Constants for Semi-Detached:
- a = 3.0, b = 1.12
- Formula for effort:
E=3.0× (50) ^ 1.12
E≈3.0×83.98=251.94 person-months
2.Development Time Estimation
- Constants for semi-Detached:
- c = 2.,d = 0.35
- Formula for time:
T=2.5×(251.94)0.35
T≈2.5×14.14=35.35 months
Pros of COCOMO Model:
1. Quantitative Approach: Provides an empirical, data-driven approach to estimating
effort, cost, and schedule.
2. Scalability: Suitable for a wide range of software projects, from small to large-scale
systems.
3. Flexibility: Allows for refinements based on more detailed project attributes and cost
drivers.
4. Risk Mitigation: Helps identify resource and time constraints early in the project
lifecycle.
5. Benchmarking: Provides a basis for comparing the current project with similar past
projects, aiding in estimation accuracy.
Conclusion:
COCOMO is a widely used and effective tool for software project management,
providing a structured way to estimate effort, cost, and schedule. While it can provide
valuable insights and forecasts, the model’s accuracy depends on the availability of
reliable historical data and its applicability to the project at hand.