COCOMO Quick Reference
Comprehensive reference for the Constructive Cost Model (COCOMO) family of estimation models.
Basic COCOMO
Model Equations
Effort (Person-Months) = a × (KLOC)^b
Duration (Months) = c × (Effort)^d
Team Size = Effort / Duration
Project Types and Constants
Project Mode | a | b | c | d | Description |
---|---|---|---|---|---|
Organic | 2.4 | 1.05 | 2.5 | 0.38 | Small teams, familiar problem |
Semi-detached | 3.0 | 1.12 | 2.5 | 0.35 | Medium teams, mixed experience |
Embedded | 3.6 | 1.20 | 2.5 | 0.32 | Complex systems, tight constraints |
Project Mode Selection Criteria
Organic Projects:
- Team size: 2-8 people
- Application domain: Familiar
- Requirements: Stable and well-understood
- Environment: Stable tools and methods
- Examples: Business applications, data processing
Semi-detached Projects:
- Team size: 8-30 people
- Application domain: Mixed familiarity
- Requirements: Mix of familiar and new
- Environment: Some new tools/methods
- Examples: Operating systems, DBMS, complex web apps
Embedded Projects:
- Team size: Often > 30 people
- Application domain: Unprecedented
- Requirements: Complex, changing
- Environment: Tight hardware/software constraints
- Examples: Real-time systems, avionics, telecommunications
Intermediate COCOMO
Effort Multipliers
Product Attributes
| Attribute | Very Low | Low | Nominal | High | Very High | Extra High | |———–|———-|—–|———|——|———–|————| | RELY (Reliability) | 0.75 | 0.88 | 1.00 | 1.15 | 1.40 | - | | DATA (Database Size) | - | 0.94 | 1.00 | 1.08 | 1.16 | - | | CPLX (Complexity) | 0.70 | 0.85 | 1.00 | 1.15 | 1.30 | 1.65 |
Hardware Attributes
| Attribute | Very Low | Low | Nominal | High | Very High | Extra High | |———–|———-|—–|———|——|———–|————| | TIME (Execution Time) | - | - | 1.00 | 1.11 | 1.30 | 1.66 | | STOR (Main Storage) | - | - | 1.00 | 1.06 | 1.21 | 1.56 | | VIRT (Virtual Machine) | - | 0.87 | 1.00 | 1.15 | 1.30 | - | | TURN (Turnaround Time) | - | 0.87 | 1.00 | 1.07 | 1.15 | - |
Personnel Attributes
| Attribute | Very Low | Low | Nominal | High | Very High | |———–|———-|—–|———|——|———–| | ACAP (Analyst Capability) | 1.46 | 1.19 | 1.00 | 0.86 | 0.71 | | AEXP (Applications Experience) | 1.29 | 1.13 | 1.00 | 0.91 | 0.82 | | PCAP (Programmer Capability) | 1.42 | 1.17 | 1.00 | 0.86 | 0.70 | | VEXP (Virtual Machine Experience) | 1.21 | 1.10 | 1.00 | 0.90 | - | | LEXP (Language Experience) | 1.14 | 1.07 | 1.00 | 0.95 | - |
Project Attributes
| Attribute | Very Low | Low | Nominal | High | Very High | |———–|———-|—–|———|——|———–| | MODP (Modern Practices) | 1.24 | 1.10 | 1.00 | 0.91 | 0.82 | | TOOL (Software Tools) | 1.24 | 1.10 | 1.00 | 0.91 | 0.83 | | SCED (Schedule Constraint) | 1.23 | 1.08 | 1.00 | 1.04 | 1.10 |
COCOMO II
Scale Factors
Used to calculate the scale exponent: E = B + 0.01 × Σ(Scale Factors) where B = 0.91
Scale Factor | Very Low | Low | Nominal | High | Very High |
---|---|---|---|---|---|
PREC (Precedentedness) | 6.20 | 4.96 | 3.72 | 2.48 | 1.24 |
FLEX (Development Flexibility) | 5.07 | 4.05 | 3.04 | 2.03 | 1.01 |
RESL (Architecture Risk Resolution) | 7.07 | 5.65 | 4.24 | 2.83 | 1.41 |
TEAM (Team Cohesion) | 5.48 | 4.38 | 3.29 | 2.19 | 1.10 |
PMAT (Process Maturity) | 7.80 | 6.24 | 4.68 | 3.12 | 1.56 |
COCOMO II Equation
Effort = A × (Size)^E × Π(EMi)
Duration = C × (Effort)^F
Where:
- A = 2.94 (calibration constant)
- Size = software size in KSLOC or unadjusted function points
- E = scale exponent
- EMi = effort multipliers
- C = 3.67 (schedule constant)
- F = D + 0.2 × (E - B) = D + 0.2 × (E - 0.91), where D = 0.28
Effort Multipliers (COCOMO II)
Product Factors
| Factor | Very Low | Low | Nominal | High | Very High | Extra High | |——–|———-|—–|———|——|———–|————| | RELY | 0.82 | 0.92 | 1.00 | 1.10 | 1.26 | - | | DATA | - | 0.90 | 1.00 | 1.14 | 1.28 | - | | CPLX | 0.73 | 0.87 | 1.00 | 1.17 | 1.34 | 1.74 | | RUSE | - | 0.95 | 1.00 | 1.07 | 1.15 | 1.24 | | DOCU | 0.81 | 0.91 | 1.00 | 1.11 | 1.23 | - |
Platform Factors
| Factor | Very Low | Low | Nominal | High | Very High | Extra High | |——–|———-|—–|———|——|———–|————| | TIME | - | - | 1.00 | 1.11 | 1.29 | 1.63 | | STOR | - | - | 1.00 | 1.05 | 1.17 | 1.46 | | PVOL | - | 0.87 | 1.00 | 1.15 | 1.30 | - |
Personnel Factors
| Factor | Very Low | Low | Nominal | High | Very High | |——–|———-|—–|———|——|———–| | ACAP | 1.42 | 1.19 | 1.00 | 0.85 | 0.71 | | PCAP | 1.34 | 1.15 | 1.00 | 0.88 | 0.76 | | PCON | 1.29 | 1.12 | 1.00 | 0.90 | 0.81 | | APEX | 1.22 | 1.10 | 1.00 | 0.88 | 0.81 | | PLEX | 1.19 | 1.09 | 1.00 | 0.91 | 0.85 | | LTEX | 1.20 | 1.09 | 1.00 | 0.91 | 0.84 |
Project Factors
| Factor | Very Low | Low | Nominal | High | Very High | |——–|———-|—–|———|——|———–| | TOOL | 1.17 | 1.09 | 1.00 | 0.90 | 0.78 | | SITE | 1.22 | 1.09 | 1.00 | 0.93 | 0.86 | | SCED | 1.43 | 1.14 | 1.00 | 1.00 | 1.00 |
Size Estimation Guidelines
Lines of Code (SLOC)
- Physical LOC: Count actual lines in source files
- Logical LOC: Count executable statements
- Exclude: Comments, blank lines, data declarations
- Include: Modified and reused code with effort multipliers
Function Points to SLOC Conversion
| Language | SLOC per FP | Range | |———-|————-|——-| | Assembly | 320 | 213-427 | | C | 128 | 85-171 | | COBOL | 106 | 71-141 | | Java | 53 | 35-71 | | C++ | 53 | 35-71 | | Visual Basic | 32 | 21-43 | | Python | 27 | 18-36 | | SQL | 12 | 8-16 |
Model Selection Guidelines
When to Use Basic COCOMO
- Early project phases
- Rough order-of-magnitude estimates
- Limited project information available
- Simple, straightforward projects
When to Use Intermediate COCOMO
- Detailed estimates needed
- Project characteristics well understood
- Risk assessment required
- Budget and schedule planning
When to Use COCOMO II
- Modern development environments
- Object-oriented or component-based development
- Reuse considerations important
- Process maturity variations
Common Applications
Project Planning
- Effort Estimation: Total person-months required
- Schedule Estimation: Project duration
- Team Sizing: Number of people needed
- Cost Estimation: Budget requirements
Risk Assessment
- Sensitivity Analysis: Impact of parameter changes
- Best/Worst Case: Range of possible outcomes
- Critical Factors: Most sensitive parameters
- Mitigation Planning: Address high-risk factors
Process Improvement
- Benchmark Current Performance: Compare to model predictions
- Identify Improvement Areas: Low-performing factors
- Track Progress: Monitor improvements over time
- Set Goals: Target productivity levels
Model Limitations
Assumptions
- Stable requirements: Changes increase effort significantly
- Competent management: Poor management can double effort
- Reasonable budget and schedule: Extreme constraints reduce productivity
- Lifecycle consistency: Single development approach throughout
Not Suitable For
- Maintenance projects: Different effort patterns
- Very small projects (< 2 KLOC): High overhead percentage
- Non-procedural languages: Different productivity characteristics
- Prototyping: Exploratory development
Calibration Guidelines
Organizational Calibration
- Collect historical data from completed projects
- Calculate actual vs. predicted ratios
- Adjust model constants based on organizational factors
- Validate calibration on new projects
- Update regularly as organization matures
Industry-Specific Adjustments
- Financial services: +20-30% for regulatory compliance
- Healthcare: +30-40% for safety requirements
- Embedded systems: +40-60% for hardware constraints
- Web applications: -10-20% for rapid development tools
COCOMO models provide a systematic approach to estimation but require calibration to organizational and project-specific factors for maximum accuracy.