Beruflich Dokumente
Kultur Dokumente
Menu
The constructive cost model (COCOMO) is one of the most widely used software cost estimation
models. This model is developed by B.W.Boehm in 1981. COCOMO model is based on LOC, i.e., the
number of lines of code. This model can be classified into three categories basic, intermediate, and
detailed sub-models.
These are the essential parameter of COCOMO which is responsible for the quality of any software
product:
Effort: The number of labor required to complete the work. It is measured in person-months units.
Schedule: The amount of time required to complete the work is directly proportional to the effort.
It is measured in the unit of time, for example, months, and weeks.
Various models of COCOMO have been introduced to predict cost estimates at different levels. All
the models are applied to different projects according to the requirements.
Organic
Semi-detached
Embedded
Organic: In the organic type, the project deals with developing a well-understood application
program; the team size is generally small. This category is for the small to medium size software
product. In this type, team members have good experience and knowledge.
Semi-detached: In the semi-detached type, the essential elements are team-size, experience,
knowledge of the multiple programming languages. The projects that come under the semi-
detached are less familiar and hard to develop. It also requires better guidance, more experienced
developers.
Embedded: In the embedded type, a software project requires the highest level of complexity,
creativity, and experience. In this category, the larger team size is needed as compared to the
previous models.
Where,
The coefficient a,b,c & d are constant and can be calculated using the given table:
Project A b c d
When we calculate effort and development time, then the average staff size to complete the
project should be calculated as:
When the project size is calculated, then we will have to calculate productivity level
Intermediate Model
The basic COCOMO model assumes that effort is the only factor, which calculates the number of
lines of code and constants with respect to the multiple software systems. The intermediate
COCOMO model refines the initial estimate. This estimate is obtained through the basic COCOMO
expressions with the help of a set of fifteen cost drivers, based on various attributes of software
development. Boehm requires the project manager to rate these fifteen different parameters for a
particular project on a scale of one to three. Then based on these three ratings, he suggests an
appropriate cost driver value to be multiplied with the initial estimate that was obtained from the
basic COCOMO model.
Product attributes
Hardware attributes
Personnel attributes
Project attributes
Extra-
Very low Low Nominal High Very High
High
Product
Attributes
RELY DATA 0.88 0.94 1.00 1.00 1,15 1.08 1.40 1.16 ––
0.75 – 0.70
CPLX 0.85 1.00 1.15 1.30 1.65
Computer
Attributes
TIME –––– – – 0.87 1.00 1.00 1.11 1.06 1.30 1.21 1.66
STOR 0.87 1.00 1.00 1.15 1.07 1.30 1.15 1.56 –
VIRT –
TURN
Personnel
Attributes
ACAP AEXP 1.46 1.29 1.19 1.13 1.00 1.00 0.86 0.91
0.71 0.82 –––
PCAP VEXP 1.42 1.21 1.17 1.10 1.00 1.00 0.86 0.90
0.70 – – ––
LEXP 1.14 1.07 1.00 0.95
Project
Attribute
MODP TOOL 1.24 1.24 1.10 1.10 1.00 1.00 0.91 0.91 0.82 0.83
–––
SCED 1.23 1.08 1.00 1.04 1.10
Detailed Model
In detailed COCOMO, a large amount of work has been done by Boehm to cover all essential
aspects of software development. It offers a medium to process all the project characteristics for
calculating the software estimation. The detailed model introduces two more capabilities that are
as follows:
Some phases (like design, programming, integration/test) are more affected than others by factors
defined by the cost drivers. The detailed model provides a set of phase-sensitive effort multipliers
for each cost driver. This helps in determining the workforce allocation for each phase of the
project.
In the three-level product hierarchy, there are a module, subsystem, and system levels. The ratings
of the cost driver are done at an appropriate level, i.e., the level at which it is most affected by the
variation.
Development phase
Software development is done in four phases:
Plans/requirements:
This is the first phase of the software development life cycle. In this phase, the requirements are
analyzed, the product plan is set up, and a full product specification is generated for software
development. The developers have to give 6% to 8% of the effort and 10% to 40% of the
development time.
Product design:
In this phase, a software developer starts thinking about “how.” How a software UI look like? How
do they function? The software requirements required by the customers are kept in the mind of the
designer while designing software. There are two types of designs that are designed by the
designer; conceptual design and technical design. Conceptual design tells the customer what the
system will exactly do. When the customer approves the design, this process is called validation.
Then the conceptual design is converted into a more detailed form of technical design, which helps
the developer to understand the hardware and software needs to fulfill the customer’s
requirement.
Programming:
This is the phase where development starts. This phase is divided into two sub-phases: detailed
design and code/unit test. This phase requires an effort from 48% to 68% and necessitate 24% to
64% of the development time to finish the coding.
Integration/Test:
In the integration testing, individual units are combined and tested as a whole. The purpose of this
level of testing is to expose faults in the interaction between integrated units.
Software Engineering
Software Project Planning
Software Quality Assurance (SQA)
Latest Tutorials
Angular 8 Tutorial AI Tutorial Machine Learning Tutorial Selenium Tutorial Hadoop
Tutorial Operating System Tutorial DBMS Tutorial Python Tutorial ReactJS Tutorial
RPA Tutorial UiPath Tutorial Cloud Computing Tutorial C Tutorial C++ Tutorial Data
Structure Tutorial Computer Fundamental Tutorial Java TutorialCCNA Tutorial PHP
Tutorial Magento 2 Tutorial CakePHP Tutorial Codeigniter Tutorial Laravel Tutorial
C# Tutorial R Tutorial SQL Tutorial jQuery Tutorial Tableau Tutorial HTML Tutorial
CSS Tutorial JavaScript Tutorial Servlet Tutorial JSP Tutorial Spring Tutorial Hibernate
Tutorial Excel VBA Tutorial
Interview Questions
Android Interview Questions Angular 2 Interview Questions AngularJS Interview
Questions ASP.NET MVC Interview Questions AWS Interview QuestionsC Interview
Questions C++ Interview Questions C# Interview Questions CSS Interview Questions
DBMS Interview Questions HTML Interview Questions Java Interview Questions
JavaScript Interview Questions jQuery Interview Questions MySQL Interview
Questions PHP Interview Questions SQL Interview Questions
Top Searched
HTML Interview Questions Java Interview Questions JavaScript Interview Questions
Haskell Interview Questions Symfony Interview Questions HTTP Interview Questions
Hadoop Interview Questions Google Maps Interview Questions Flask Interview
Questions React Native Interview Questions Arduino Interview Questions Xamarin
Interview Questions
Long Tutorials
Angular 8 Tutorial AI Tutorial ReactJS Tutorial Selenium Web driver Tutorial DBMS
Tutorial Python Tutorial Machine Learning TutorialC Tutorial C++ Tutorial Computer
Fundametals Tutorial Java TutorialCCNA Tutorial PHP Tutorial C# Tutorial R Tutorial
Laravel Tutorial Servlet Tutorial JSP Tutorial Spring Framework Tutorial Hibernate
Tutorial jQuery Tutorial Tableau Tutorial
Short Tutorials
Kubernetes Tutorial Devops Tutorial QlikView Tutorial Python Pandas Tutorial Sass
Tutorial Artificial Neural Network Tutorial Unix Tutorial Blockchain Tutorial Power BI
Tutorial Web API Tutorial Keras Tutorial Deep Learning Tutorial Kali Linux Tutorial
© 2020 Tutorial And Example • Powered by GeneratePress