COCOMO Model in Software Engineering

Learn via video courses
Topics Covered

Overview

The Construction Cost Model (COCOMO) is an important software cost estimation method that has played a central role in the field of software engineering for decades. COCOMO provides a structured approach to estimating the effort, time, and resources required for successful software development. It is a powerful tool for project managers, developers, and stakeholders to make informed decisions, improve project planning, and optimize resource allocation. COCOMO contains several versions, each responsible for a specific complexity and functionality of the project.

The importance of COCOMO lies in its ability to bridge the gap between theoretical planning and practical implementation. By breaking down software into manageable components and considering multiple influencing factors, COCOMO enables software professionals to make informed choices at every stage of the project lifecycle. This article sheds light on the complexity of the COCOMO model and explores its origins, methods, and applications. COCOMO's comprehensive understanding enables software engineers to navigate the complex journey of software development, ensuring a successful outcome and optimized utilization of resources.

Types of Software Projects

The COCOMO model of software engineering divides software projects into three types based on their complexity and development characteristics:

  1. Organic Projects:

    Organic projects are characterized by relatively small teams of experienced programmers working on familiar and well-defined software. The project requirements are clear and stable, which enables a structured development process. These projects tend to have a low level of innovation and risk. Examples include small business applications, simple websites, and utilities.

  2. Two-domain projects:

    Half-domain projects fall between the extremes of organic and embedded projects. These include moderate team size and development complexity. The requirements may be partially well-defined, but there is still room for innovation. These projects involve moderate risk and uncertainty. Examples are e-commerce platforms and medium-sized web applications.

  3. Embedded Projects:

    Embedded projects are characterized by large development teams working on complex and innovative software under strict requirements. A project often involves cutting-edge technology, a major innovation, and high uncertainty. These projects involve significant risk due to the complexity of integration and the need to meet specific hardware or regulatory constraints. Examples include real-time operating systems, air traffic software, and complex scientific simulations.

Each project type corresponds to a specific set of parameters and factors in the COCOMO model that affect the effort, time, and resources required for successful completion. Understanding these project types helps software engineers and project managers make accurate estimates and make informed decisions throughout the software lifecycle.

Types of COCOMO Models

Basic COCOMO Model

It focuses on three main factors: project size, development method, and input evaluation.

  • Project size:

    The size of a software project is usually measured in lines of code (LOC), which represents the total number of lines of code to be written.

  • Development methods:

    The Basic COCOMO model defines three development states that describe the different complexity of projects and the capabilities of the team:

    Organic mode: For small teams working with familiar software.

    Semi-detached Mode: For medium-sized groups working with somewhat familiar software.

    Embedded mode: For large teams working with complex and unfamiliar software.

Basic COCOMO math expressions:

The basic COCOMO model uses a simple exponential formula to estimate effort in person-months:

Here "a" and "b" are constants derived from historical data and depend on the selected development method. The value "a" explains the productivity of the development team, while "b" reflects the scalability of the project.

basic cocomo model

Example for Basic COCOMO:

We illustrate the basic COCOMO model with an example of C code to estimate effort based on project size and development status:

Output:

Intermediate COCOMO Model

It is designed to provide a more comprehensive and accurate evaluation of software development efforts. Introduced as an extension of the Basic COCOMO model, the average COCOMO includes additional factors and cost factors to account for a wider range of features that affect the complexity and effort of a software project.

Main features of the mid-level COCOMO:

  • Expanded set of cost drivers:

    Intermediate COCOMO provides a more detailed set of cost drivers compared to the basic COCOMO model. These cost drivers include a broader set of project characteristics, development environment factors, and team characteristics.

  • Power rating equation:

    The average COCOMO load rating equation is more advanced than the basic COCOMO model. It considers the impact of multiple cost drivers, each of which contributes to the total project effort.

  • Schedule and Resource Estimate:

    Mid-level COCOMO not only estimates effort in man-months but also provides insight into project schedules and resource requirements.

  • Five-step scale of cost factors:

    Mid-level COCOMO cost factors are evaluated on a five-step ordinal scale, which allows for a more nuanced assessment of their impact on the project.

Intermediate COCOMO components:

  • Scale factors:

    Average COCOMO considers five scale factors that affect project complexity and effort:

    1. Precedence
    2. Development flexibility
    3. Architecture/Risk Resolution
    4. Team cohesion
    5. Process Maturity
  • Cost Drivers:

    Mid-level COCOMO has 17 cost drivers, including personnel, product, platform, project, and environmental characteristics. Each cost factor is assigned a specific rating based on project characteristics.

  • Capacity Estimating Equation:

    COCOMO's average estimating equation includes scale factors and cost factors to calculate the effort required for a project. The equation is more complex than the simple formula used in the basic COCOMO model.

  • Duration and Resource Estimate:

    Mid-level COCOMO provides estimates not only of effort but also of project duration and number of software development personnel.

intermediate cocomo model

Detailed COCOMO Model

The detailed COCOMO model is a further development of the original COCOMO framework, which aims to provide a comprehensive and accurate estimate of software work, time, and resource requirements. Unlike its predecessor, Detailed COCOMO delves into complex project dynamics and includes a wide range of cost factors and scale factors to capture the complexities of modern software projects.

Phases of the Detailed COCOMO Model:

  1. Preparation and Requirements Phase
  2. System Design and Architecture Phase
  3. Detailed Design Phase
  4. Coding and Unit Testing Phase
  5. Integration and Testing Phase
  6. Delivery and Maintenance Phase

detailed cocomo model

Differences between the Basic, Intermediate, and Detailed COCOMO Models

AspectBasic COCOMOIntermediate COCOMODetailed COCOMO
FocusSize-based estimationIncorporates additional cost drivers for complexityExtensive consideration of various factors
EquationEffort = a * (Size)^bEffort = a * (Size)^b * EAFEffort = a * (Size)^b * EAF * Mode Factors
Size MetricThousands of Lines of Code (KLOC)Same as Basic COCOMO (KLOC)Same as Basic and Intermediate COCOMO (KLOC)
Complexity FactorsNot consideredAdded cost drivers categorized into Product, Platform, and PersonnelExpanded set of 17 cost drivers
Adjustment FactorN/AEAF (Effort Adjustment Factor) based on cost driversEAF multiplied by mode-specific effort factors
Cost DriversN/A15 cost drivers for Product, Platform, and Personnel17 cost drivers, including those from Intermediate COCOMO
Development ModesN/AN/ADifferentiates between Organic, Semi-detached, and Embedded
Project CharacteristicsBasic software development onlyMore comprehensive, considers development environmentWide range of project-specific characteristics

Advantages of the COCOMO model

  • COCOMO offers a systematic approach to estimating the effort, time, and resources of a software project.
  • Enables informed decisions about project feasibility, budgeting, timing, and resource allocation.
  • Identifies potential risks and challenges at an early stage, which helps in effective risk management.
  • Estimate the required number of employees by optimizing the allocation of resources.
  • Promotes consistency of assessment practices across projects and groups.
  • Provides a common language to communicate project requirements and challenges.
  • Enables organizations to improve assessment methods based on real results.

Disadvantages of the COCOMO Model

  • COCOMO estimates are highly sensitive to input parameters such as project size and cost factor classifications, which can vary significantly in estimates based on small changes.
  • COCOMO's focus on size and cost factors may not fully address the complexities of today's software development.
  • An accurate estimate is based on historical data that may not be accurate for new or innovative projects, making estimates less accurate.
  • Understanding and applying the COCOMO model, especially its more detailed versions, can be difficult, requiring a thorough understanding of the various cost drivers and their interactions.
  • COCOMO is based on assumptions that may not hold in rapidly changing technological environments, making it less adaptable to the changing nature of software development.

Conclusion

  • COCOMO (Construction Cost Model) is a well-established software cost estimation model used in software engineering to estimate project input, time, and resources.
  • It offers different levels of complexity: Basic COCOMO, Intermediate COCOMO, and Detailed COCOMO, each adapted to different project requirements.
  • Basic COCOMO provides a simple estimate based on size but ignores many project-specific factors.
  • Intermediate COCOMO introduces cost factors that classify factors affecting development and improve estimation accuracy.
  • Detailed COCOMO further expands cost factors and considers many design features and development modes.
  • COCOMO helps project managers and teams make informed decisions about resource allocation and planning.
  • Although COCOMO provides valuable estimates, it is important to adapt to the real context and constantly refine the estimates as the project progresses.
  • COCOMO made a major impact in the field of software engineering, formalizing the evaluation process and promoting a systematic approach to project planning.