# COCOMO Model in Software Engineering﻿

COCOMO Model in Software Engineering

The word COCOMO means Constructive Cost Model and it was developed by Barry W. Boehm and there are 3 types of COCOMO Model in Software Engineering that are used the cost estimation of a software and in this article we will explain these 3 models in our article.

## What is COCOMO Modelin Software Engineering?

This COCOMO Model isbasically used in software engineering to estimate the cost of a software andit do it by measuring some parameters of the software and gives you an estimatecost that is going to be used in the software project.

The COCOMO Model was first developed in 1981 and was named as COCOMO-81. This was developed in orderto get cost estimation of a falling waterfall project and that project wasbasically made from starting point. This Model is considered as the best modelto get an estimate cost of a software project in software engineering.

Basically , There are 3 types of cost estimating techniques thatare used in software engineering:

• Delphi cost estimationtechnique
• COCOMO 1 costestimation technique
• COCOMO 2 costestimation technique

Barry Boehm’s who was the developer of the software cost estimation model that is COCOMO Model and further developed 3 models of it as :

1. Basic Cocomo Model
2. Intermediate COCOMO Model
3. Detailed COCOMO Model

## Basic COCOMO Model

In the software if the program size can be seen as the estimated LOC (Lines of Code) SLOC (Source Lines of Code) and KLOC( thousands of lines of source code ) then the software development can be computed.

COCOMO Model can be applied to these 3 classesof software projects :

• Organic Mode: The Organic Mode can be applied to the software projects thathave small team members and the team is quite familiar to the project. E.g.Payroll System
• Semi-Detached Mode: The Semi-Detached Mode can be applied to the software projectsthat have both experienced members and beginners in the team to develop theproject. E.g. Interactive Banking System
• Embedded Mode: The Embedded Mode can be applied to very complex softwareprojects that require a team of highly experienced members that can perform thetask. E.g. Nuclear Reactor Control Systems

## Intermediate COCOMO Model

If the software programsize includes a set of the “cost drivers” containing personnel, subjectiveassessments, project attributes, of hardware and products then it can be consideredas effort of software development and the extension includes 4 cost drivers.

• Product attributes
• Hardware attributes
• Personnel attributes
• Project attributes

## Intermediate COCOMO Model

This Advanced COCOMO Model gets the characteristics from the intermediate model that is sets of cost driver and few it’s with a total of 6 phases of the COCOMO model that is discussed in this article.

• Planning andrequirements
• System design
• Detailed design
• Module code and test
• Integration and test
• Cost Constructive model

Let us now understand different types of COCOMOmodel in software engineering in depth now.

## Mota-Bro Explains

Basic COCOMO Model in software Engineering

The Basic COCOMO model is a type of regression model that basically focuses on the historical programs software, sizes, and multipliers.

The fundamentally most important calculation is the usage of the effort equation in order to find the total number of Person per Months that are required in developing a software-based project.

This COCOMO model is used for estimating the cost that a project required by measuring the size and other essential quality aspects regarding the project and the historical programs, basically it calculate effort that means an estimate of a number of persons required per month that are required to develop a project.

$Estimated Cost = Number of Person per Months * Loaded Labour Rate$

The Estimates of the requirements,maintenance are derived from the given quantity. The COCOMO Model requiresinput as of the project’s estimated size in SLOC (Source Lines of Code).

The COCOMO model insoftware engineering is basically based on relationship of these two formulas:

Formula no. 1: Development Effort is based on the system size:

$MM = A * KSDI ^ B $

where,

• MM refers to theeffort measured in the Man per Months
• KDSI refers to the totalnumber of Source Instructions that are Delivered in a Kilo (Thousands)

Formula no. 2: Effort(MM) and the Development Time

$TDEV = C * MM ^ D$

where,

• TDEV refers to the development Time
• Coefficients A, B, C, and D are depending onthe mode of development and basically can be classified into 3 differentdistinct classes of software projects that are purely defined

StepsTo Perform The Cost Estimate By Using The COCOMO Model Includes:

1. Determining all the sub-systems and modules inthe software project.
2. Calculating the size of subsystem, model andalso size of the system.
3. Determining the module level effortmultipliers for the module. These following multipliers can be a complexity,virtual machine experience , programmer’s capability and experience ofprogramming.
4. Calculating the model efforts and thedevelopment time for every module.
5. Determining the pending 11 effort multipliersfor the subsystem.
6. Calculating the total effort of system and thedevelopment time.
7. Performing the sensitivity analysis for findingthe trade-off benefits.
8. Also add other essential development costs –like analyzing and planning costs that are previously not included in the costestimation.
9. Comparing the cost estimation and correctingthe differences.

• Estimating the exactcost of KDSI can be very difficult in your early phases of the softwaredevelopment because you may not know the required effort estimates
• The main focus of thesoftware development will be on adjusting the model as required by the clientsand the historical data may not be for you as it is very difficult to find.

• The COCOMO model isbuilt with a transparent working environment.
• It examines differentcost estimation factors that affect the project costs.

The COCOMO 2 model in Software Engineering is basically made formoderning software life. COCOMO 1 model was also very successful but theproblem was that it doesn’t work with the newer software and it is onlyapplicable to the older software.

This COCOMO model 2 ismade for the newer software as the previous model was only applicable to theolder software and the sub model of this are as follows:

• Application Composition Model: It comes in use when existing parts are used to make software.
• Early Design Model: It is used when designing is not started but the systemrequirements are collected.
• Reusable Model: Used when the reusable components are used to develop thesoftware and it is used to integrate components by computing the efforts.
• Post-Architecture Model: It is used once the system designing is fully completed and afterthe further system information is collected.
• Multiplier Affect:
The developers capability, familiarity with the development program ,functional requirements etc.

Cost DriverAttributes:

• Product Attributes: This attribute explains the characteristics of the developedsoftware product that are database, reliability and product complexity.
• Personal Attributes: This basically describes the capabilities and experiences thatare further taken as the programmer capability ,virtual machine experience,applications experience ,analyst capacity.
• Project Attributes: This attribute explains the use of software tools, modernprogramming practices, required development schedule of the particularcharacteristics of the software project.

The COCOMO 2 formulathat is used to estimate the required calendar time to complete a softwareproject when the staff will be required.

TDEV = 3^(PM)(0.33 + 0.2 *(B-1.01))

where,

• PM is used for theeffort computation and B is for the exponent (B = 1 for the prototyping model).This computation is used to predict the nominal schedule of the software project.
• The time required inproject is independent of the total number of people that are working on theproject.

How To Improve The SoftwareEconomics?

The software economicswill be improved by following a proper balanced approach and there are these 5key characteristics that will help you in improving the software economics:

1. By Reducing the size of product (i.e. Numberof Lines of Code) and by reducing the complexity of the software
2. Improving the software development process
3. By improving the effectiveness of team.
4. Creating a better environment and improve theautomation to more suitable tools and new technologies
5. Achieve your required quality by the peerinspections.

These Three KeyParameters depend upon the following listed trends.

• Size: It Describes thecomponent based development technologies and abstraction..
Trend: High-level of  programming languages (i.e. C++, Visual Basic,Java), Object-oriented programming paradigm, reusability and Commercialexponents packages
• Process:It Involves the required methods and techniques
Trend: Iterative development,  Architecture-first development and the Processmaturity models such as the CMM.
• Quality:It  Describes the reliability,performance and accuracy issues
Trend: Peer inspection, Hardware platformperformance and the Statistical quality control

If you still have any kindof doubts or any suggestions for us about the COCOMO model in softwareengineering, Feel free to discuss in the comment section below.