EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login
Home Software Development Software Development Tutorials Software Engineering Tutorial COCOMO Model
Secondary Sidebar
Software Engineering Tutorial
  • Models
    • Prototype Model
    • What is Spiral Model
    • Waterfall?Model
    • Prototyping Tools
    • Incremental Model
    • Iterative Model
    • RAD Model
    • Fish Model
    • What is Scrum Methodology?
    • RUP? Methodology
    • COCOMO Model
    • Big Bang Model
    • System Models
    • People Capability Maturity Model
    • Analysis Modeling
    • User Interface Design
    • Capability Maturity Model Integration
    • What is Agile Development?
    • Agile Model Advantages and Disadvantages
    • Agile Process Model
    • Rational Unified Process
  • Basic
    • What is Software Engineering?
    • What is SDET
    • What Is SDLC
    • SDLC Methodologies
    • Software Classification
    • Software Design
    • Software Design Principles
    • Software Metrics
    • Utility Software Types
    • UI Design Tools
    • User Interface Design Principles
    • Architectural Design in Software Engineering
    • Software Configuration Management
    • Software Configuration Management Tools
    • What is Risk Management?
    • System Engineering
    • Object oriented programming paradigm
    • CASE Tools
  • UML Daigram
    • StarUML
    • Architecture of UML
    • StarUML? Download
    • Types of UML Diagrams
    • UML Activity Diagram
    • UML Component?Diagram
    • UML Deployment Diagram
    • UML Diagram Softwares
    • UML Object?Diagram
    • UML Sequence Diagram
    • UML Use Case Diagram
    • State Diagram
    • Class Diagram
    • UML Dependency
    • UML Interaction Diagrams
    • Data Flow Diagrams
  • Advanced
    • Functional Point Analysis
    • Software Quality Control
    • Quality Assurance Tools
    • Prototype model advantages and disadvantages
    • UML Modelling Tools
    • Tomcat Server
    • Quality Software
    • UI Prototyping
    • Hybrid Model
    • Behavioral Model in Software Engineering
    • Flowchart symbols
    • Critical System
    • Legacy System
    • SOA Architecture
    • Software Quality Attributes
    • Software Maintenance
    • Software Cost Estimation
    • Software Inspection
    • Cohesion in Software Engineering
    • Coupling in Software Engineering
    • Component-based Software Engineering
    • Design Modeling in Software Engineering
    • Iterative Methodology
    • System Flow Diagram
    • Data Flow Architecture
    • SEICMM
    • Function Oriented Design
  • Interview Questions
    • Software Engineering Interview Questions
    • SDLC Interview Questions

COCOMO Model

By Priya PedamkarPriya Pedamkar

COCOMO-Model

Definition of COCOMO Model

The COCOMO (Constructive Cost Model) is one of the most popularly used software cost estimation models i.e. it estimates or predicts the effort required for the project, total project cost and scheduled time for the project. This model depends on the number of lines of code for software product development. It was developed by a software engineer Barry Boehm in 1981.

What is COCOMO Model?

The COCOMO estimates the cost for software product development in terms of effort (resources required to complete the project work) and schedule (time required to complete the project work) based on the size of the software product. It estimates the required number of Man-Months (MM) for the full development of software products. According to COCOMO, there are three modes of software development projects that depend on complexity. Such as:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

1. Organic Project

It belongs to small & simple software projects which are handled by a small team with good domain knowledge and few rigid requirements.

Example: Small data processing or Inventory management system.

2. Semidetached Project

It is an intermediate (in terms of size and complexity) project, where the team having mixed experience (both experience & inexperience resources) to deals with rigid/nonrigid requirements.

Example: Database design or OS development.

3. Embedded Project

This project having a high level of complexity with a large team size by considering all sets of parameters (software, hardware and operational).

Example: Banking software or Traffic light control software.

Types of COCOMO Model

Depending upon the complexity of the project the COCOMO has three types. Such as:

1. The Basic COCOMO

It is the one type of static model to estimates software development effort quickly and roughly. It mainly deals with the number of lines of code and the level of estimation accuracy is less as we don’t consider the all parameters belongs to the project. The estimated effort and scheduled time for the project are given by the relation:

Effort (E) = a*(KLOC)b  MM
Scheduled Time (D) = c*(E)d  Months(M)

Where,

  • E = Total effort required for the project in Man-Months (MM).
  • D = Total time required for project development in Months (M).
  • KLOC = the size of the code for the project in Kilo lines of code.
  • a, b, c, d = The constant parameters for a software project.
PROJECT TYPE a b c d
Organic 2.4 1.05 2.5 0.38
Semidetached 3 1.12 2.5 0.35
Embedded 3.6 1.2 2.5 0.32

Example: For a given project was estimated with a size of 300 KLOC. Calculate the Effort, Scheduled time for development. Also, calculate the Average resource size and Productivity of the software for Organic project type.

Ans: Given estimated size of project is: 300 KLOC

For Organic

Effort (E) = a*(KLOC)b = 2.4*(300)1.05 = 957.61 MM
Scheduled Time (D) = c*(E)d  = 2.5*(957.61)0.38 = 33.95 Months(M)
Avg. Resource Size = E/D = 957.61/33.95 = 28.21 Mans
Productivity of Software = KLOC/E = 300/957.61 = 0.3132 KLOC/MM = 313 LOC/MM

For Semidetached

Effort (E) = a*(KLOC)b = 3.0*(300)1.12 = 1784.42 MM
Scheduled Time (D) = c*(E)d  = 2.5*(1784.42)0.35 = 34.35 Months(M)

For Embedded

Effort (E) = a*(KLOC)b = 3.6*(300)1.2 = 3379.46 MM
Scheduled Time (D) = c*(E)d  = 2.5*(3379.46)0.32 = 33.66 Months(M)

2. The Intermediate COCOMO

The intermediate model estimates software development effort in terms of size of the program and other related cost drivers parameters (product parameter, hardware parameter, resource parameter, and project parameter) of the project. The estimated effort and scheduled time are given by the relationship:

Effort (E) = a*(KLOC)b *EAF  MM
Scheduled Time (D) = c*(E)d  Months(M)

Where,

  • E = Total effort required for the project in Man-Months (MM).
  • D = Total time required for project development in Months (M).
  • KLOC = The size of the code for the project in Kilo lines of code.
  • a, b, c, d = The constant parameters for the software project.

EAF = It is an Effort Adjustment Factor, which is calculated by multiplying the parameter values of different cost driver parameters. For ideal, the value is 1.

COST DRIVERS PARAMETERS VERY LOW LOW NOMINAL HIGH VERY HIGH
Product Parameter
Required Software 0.75 0.88 1 1.15 1.4
Size of Project Database NA 0.94 1.08 1.16
Complexity of The Project 0.7 0.85 1.15 1.3
Hardware Parameter
 Performance Restriction NA NA 1 1.11 1.3
Memory Restriction NA NA 1.06 1.21
 virtual Machine Environment NA 0.87 1.15 1.3
Required Turnabout Time NA 0.94 1.07 1.15
Personnel Parameter
Analysis Capability 1.46 1.19 1 0.86 0.71
Application Experience 1.29 1.13 0.91 0.82
Software Engineer Capability 1.42 1.17 0.86 0.7
Virtual Machine Experience 1.21 1.1 0.9 NA
Programming  Experience 1.14 1.07 0.95 NA
Project Parameter
Software Engineering Methods 1.24 1.1 1 0.91 0.82
Use of Software Tools 1.24 1.1 0.91 0.83
Development Time 1.23 1.08 1.04 1.1

Example: For a given project was estimated with a size of 300 KLOC. Calculate the Effort, Scheduled time for development by considering developer having high application experience and very low experience in programming.

Ans:

Given the estimated size of the project is: 300 KLOC
Developer having highly application experience: 0.82 (as per above table)
Developer having very low experience in programming: 1.14(as per above table)

EAF = 0.82*1.14 = 0.9348
Effort (E) = a*(KLOC)b *EAF = 3.0*(300)1.12 *0.9348 = 1668.07 MM
Scheduled Time (D) = c*(E)d  = 2.5*(1668.07)0.35 = 33.55 Months(M)

3. The Detailed COCOMO

It is the advanced model that estimates the software development effort like Intermediate COCOMO in each stage of the software development life cycle process.

Advantages and Disadvantages of COCOMO Model

Following are some advantages and disadvantages of the COCOMO model.

Advantages

  • Easy to estimate the total cost of the project.
  • Easy to implement with various factors.
  • Provide ideas about historical projects.

Disadvantages

  • It ignores requirements, customer skills, and hardware issues.
  • It limits the accuracy of the software costs.
  • It mostly depends on time factors.

Conclusion

In this article, we discuss the project estimation model COCOMO, which describes the effort and development time of the software project. It describes the different projects with an estimate of the effort and scheduled time by considering multiple factors.

Recommended Articles

This is a guide to the COCOMO Model. Here we discuss the Definition and What is COCOMO model along with its types, advantages, and disadvantages. You may also have a look at the following articles to learn more –

  1. UML Deployment Diagram
  2. Waterfall Model
  3. What is Spiral Model
  4. Iterative Model
Popular Course in this category
All in One Software Development Bundle (600+ Courses, 50+ projects)
  600+ Online Courses |  3000+ Hours |  Verifiable Certificates |  Lifetime Access
4.6
Price

View Course

Related Courses

Software Testing Training (11 Courses, 2 Projects)4.9
Cyber Security Training (10 Courses, 3 Projects)4.8
Primary Sidebar
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2023 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more