UNIT - III
COCOMO Model
The Constructive Cost Model (COCOMO) is a software cost estimation model that helps
predict the effort, cost, and schedule required for a software development project. Developed
by Barry Boehm in 1981, COCOMO uses a mathematical formula based on the size of the
software project, typically measured in lines of code (LOC).
What is the COCOMO Model?
The COCOMO Model is a procedural cost estimate model for software projects and is often
used as a process of reliably predicting the various parameters associated with making a
project such as size, effort, cost, time, and quality. It was proposed by Barry Boehm in 1981
and is based on the study of 63 projects, which makes it one of the best-documented models.
The key parameters that define the quality of any software product, which are also an
outcome of COCOMO, are primarily effort and schedule:
   1. Effort: Amount of labor that will be required to complete a task. It is measured in
      person-months units.
   2. Schedule: This simply means the amount of time required for the completion of the
      job, which is, of course, proportional to the effort put in. It is measured in the units of
      time such as weeks, and months.
Types of Projects in the COCOMO Model
In the COCOMO model, software projects are categorized into three types based on their
complexity, size, and the development environment. These types are:
   1. Organic: A software project is said to be an organic type if the team size required is
      adequately small, the problem is well understood and has been solved in the past and
      also the team members have a nominal experience regarding the problem.
   2. Semi-detached: A software project is said to be a Semi-detached type if the vital
      characteristics such as team size, experience, and knowledge of the various
      programming environments lie in between organic and embedded. The projects
      classified as Semi-Detached are comparatively less familiar and difficult to develop
      compared to the organic ones and require more experience better guidance and
      creativity. Eg: Compilers or different Embedded Systems can be considered Semi-
      Detached types.
   3. Embedded: A software project requiring the highest level of complexity, creativity,
      and experience requirement falls under this category. Such software requires a larger
      team size than the other two models and also the developers need to be sufficiently
      experienced and creative to develop such complex models.
Detailed Structure of COCOMO Model
Detailed COCOMO incorporates all characteristics of the intermediate version with an
assessment of the cost driver’s impact on each step of the software engineering process. The
detailed model uses different effort multipliers for each cost driver attribute. In detailed
COCOMO, the whole software is divided into different modules and then we apply
COCOMO in different modules to estimate effort and then sum the effort.
The Six phases of detailed COCOMO are:
Phases of COCOMO Model
   1. Planning and requirements: This initial phase involves defining the scope,
      objectives, and constraints of the project. It includes developing a project plan that
      outlines the schedule, resources, and milestones
   2. System design: : In this phase, the high-level architecture of the software system is
      created. This includes defining the system’s overall structure, including major
      components, their interactions, and the data flow between them.
   3. Detailed design: This phase involves creating detailed specifications for each
      component of the system. It breaks down the system design into detailed descriptions
      of each module, including data structures, algorithms, and interfaces.
   4. Module code and test: This involves writing the actual source code for each module
      or component as defined in the detailed design. It includes coding the functionalities,
      implementing algorithms, and developing interfaces.
   5. Integration and test: This phase involves combining individual modules into a
      complete system and ensuring that they work together as intended.
   6. Cost Constructive model: The Constructive Cost Model (COCOMO) is a widely
      used method for estimating the cost and effort required for software development
      projects.
Types of COCOMO Model
There are three types of COCOMO Model:
      Basic COCOMO Model
      Intermediate COCOMO Model
      Detailed COCOMO Model
1. Basic COCOMO Model
      The Basic COCOMO model is a straightforward way to estimate the effort
       needed for a software development project. It uses a simple mathematical
       formula to predict how many person-months of work are required based on
       the size of the project, measured in thousands of lines of code (KLOC).
2. Intermediate COCOMO Model
The basic COCOMO model assumes that the effort is only a function of the number of lines
of code and some constants evaluated according to the different software systems. However,
in reality, no system’s effort and schedule can be solely calculated based on Lines of Code.
For that, various other factors such as reliability, experience, and Capability. These factors are
known as Cost Drivers (multipliers) and the Intermediate Model utilizes 15 such drivers for
cost estimation.
3. Detailed COCOMO Model
Detailed COCOMO goes beyond Basic and Intermediate COCOMO by diving deeper into
project-specific factors. It considers a wider range of parameters, like team experience,
development practices, and software complexity. By analyzing these factors in more detail,
Detailed COCOMO provides a highly accurate estimation of effort, time, and cost for
software projects. It’s like zooming in on a project’s unique characteristics to get a clearer
picture of what it will take to complete it successfully.
Advantages of the COCOMO Model
   1. Systematic cost estimation: Provides a systematic way to estimate the cost and effort
      of a software project.
   2. Helps to estimate cost and effort: This can be used to estimate the cost and effort of
      a software project at different stages of the development process.
   3. Helps in high-impact factors: Helps in identifying the factors that have the greatest
      impact on the cost and effort of a software project.
   4. Helps to evaluate the feasibility of a project: This can be used to evaluate the
      feasibility of a software project by estimating the cost and effort required to complete
      it.
Disadvantages of the COCOMO Model
   1. Assumes project size as the main factor: Assumes that the size of the software is
      the main factor that determines the cost and effort of a software project, which may
      not always be the case.
   2. Does not count development team-specific characteristics: Does not take into
      account the specific characteristics of the development team, which can have a
      significant impact on the cost and effort of a software project.
   3. Not enough precise cost and effort estimate: This does not provide a precise
      estimate of the cost and effort of a software project, as it is based on assumptions and
      averages.
               Putnam Resource Allocation Model
In software engineering, effective project management is crucial for delivering projects on
time and within budget. The Putnam Resource Allocation Model also known as the Putnam
Model is one of the models that are helpful in forecasting and resource distribution. Created
by Lawrence H. Putnam at the end of the 1970s, this model is used to define the rough order
of magnitude that has to be set as resources and schedule for a software development project.
It is founded on the dynamics of software project on the similar name, and it is especially
useful for large and intricate software projects.
What is the Putnam Model?
The Putnam Model is a formal tool used to quantify the cost, time, and effort required for
software project development. It operates on the principle that there is a trade-off between the
time available and the resources (effort) needed to complete a project. The model uses the
Rayleigh curve to illustrate how effort should be distributed over the project timeline.
The Rayleigh curve represents the distribution of effort over time, showing that effort
typically increases to a peak and then decreases as the project progresses. The core concept of
the Putnam Model is that the rate at which resources, including manpower, are applied to the
project impacts both the project’s costs and its delivery time.
Putnam’s Work Along with Equations
The basis for Putnam’s research is Rayleigh curve and Software Life Cycle Model (SLIM)
which he initiated. The SLIM model uses the following key equation, known as the Putnam-
Norden-Rayleigh (PNR) equation, to estimate effort: The SLIM model uses the following key
equation, known as the Putnam-Norden-Rayleigh (PNR) equation.
IMPORTANT QUESTIONS
5 Marks Questions
   1. What is the purpose of the Constructive Cost Model (COCOMO) in software
      engineering?
   2. Explain the difference between COCOMO I and COCOMO II.
   3. What are the main factors that affect software development costs in the
      COCOMO model?
   4. Define the Putnam Resource Allocation Model.
   5. What is the significance of the effort multiplier in COCOMO?
   6. Describe the basic formula for COCOMO.
   7. How does the Putnam Resource Allocation Model allocate resources over the
      course of a software project?
   8. Explain the concept of scale drivers in COCOMO.
   9. What is the purpose of the effort estimation in the COCOMO model?
   10. Identify and explain one limitation of using the COCOMO model in estimating
       software development effort.
10 Marks Questions
   1. Compare and contrast the COCOMO model and the Putnam Resource
      Allocation Model in terms of their approach to resource allocation and effort
      estimation.
   2. Describe the different levels of COCOMO and explain the types of projects
      suitable for each level.
   3. Explain the steps involved in applying the COCOMO model for effort estimation
      in a software development project.
   4. Discuss the importance of software cost estimation models like COCOMO and
      Putnam in software project management.
   5. How does COCOMO calculate the effort (person-months) required for a
      project? Explain with the formula.
   6. Discuss the concept of "Effort Multipliers" in the COCOMO model and give
      examples of how they influence the estimation process.
   7. Explain how the Putnam model allocates resources during the development life
      cycle and how it influences the scheduling of activities.
   8. What is the significance of the effort adjustment factors in COCOMO, and how
      do they affect the estimation process?
   9. How can COCOMO II be applied to modern software development practices,
      and what adjustments does it make compared to the original COCOMO model?
   10. Analyze the strengths and weaknesses of using COCOMO for estimating effort
       in large-scale software projects.
15 Marks Questions
   1. Critically analyze the applicability of the COCOMO model in agile software
      development projects. Include a discussion on the challenges and how the model
      can be adapted.
   2. Explain the detailed workings of the Putnam Resource Allocation Model,
      including its assumptions, equations, and how it differs from other software cost
      estimation models.
   3. Apply the COCOMO model to estimate the effort required for a software project
      with a given set of parameters, including size, complexity, and environment.
      Show all the steps involved in the estimation process.
   4. Describe the various cost drivers in the COCOMO model. How do they impact
      the final cost estimation of a software project? Provide examples of each cost
      driver.
   5. Discuss the role of the COCOMO model in software project risk management.
      How does accurate effort estimation contribute to project success?
   6. Evaluate the strengths and weaknesses of using the COCOMO and Putnam
      models in estimating software costs for a large, distributed software development
      project.
   7. Using the Putnam Resource Allocation Model, discuss the concept of optimal
      resource allocation during the lifecycle of a software project. How does this
      influence project outcomes?
   8. Discuss the evolution of COCOMO from its initial version (COCOMO I) to
      COCOMO II, particularly focusing on the adjustments made to accommodate
      newer software development methodologies and technologies.
   9. Compare and contrast the COCOMO model's estimation process with that of
      function point analysis. Which model is better suited for different types of
      software projects?
   10. Analyze a case study of a software development project where the COCOMO or
       Putnam model was applied. Discuss the accuracy of the estimates, lessons
       learned, and how the model helped or hindered the project's success.