Software Engineering Unit 3
Software Engineering Unit 3
COCOMO Model, Project Scheduling, Software Staff & Personnel Planning, Rayleigh Curve,
Software Team Organization & Control Structure. Project Monitoring & Control Techniques
COCOMO Model
Cocomo (Constructive Cost Model) is a regression model based on LOC, i.e., the number of Lines
of Code. This article focuses on discussing the Cocomo Model in detail.
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 products, which are also an outcome
of the 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.
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.
2. System design
3. Detailed design
1. Cost Estimation: To help with resource planning and project budgeting, COCOMO offers
a methodical approach to software development cost estimation.
2. Resource Management: By taking team experience, project size, and complexity into
account, the model helps with efficient resource allocation.
3. Project Planning: COCOMO assists in developing practical project plans that include
attainable objectives, due dates, and benchmarks.
4. Risk management: Early in the development process, COCOMO assists in identifying and
mitigating potential hazards by including risk elements.
5. Support for Decisions: During project planning, the model provides a quantitative
foundation for choices about scope, priorities, and resource allocation.
7. Resource Optimization: The model helps to maximize the use of resources, which raises
productivity and lowers costs
1. Basic Model
E = a(KLOC)^b
Time = c(Effort)^d
Person required = Effort/ time
The above formula is used for the cost estimation of the basic COCOMO model and also is used in
the subsequent models. The constant values a, b, c, and d for the Basic Model for the different
categories of the system:
Software Projects a b c d
1. The effort is measured in Person-Months and as evident from the formula is dependent
on Kilo-Lines of code. The development time is measured in months.
2. These formulas are used as such in the Basic Model calculations, as not much
consideration of different factors such as reliability, and expertise is taken into account,
henceforth the estimate is rough.
2. Intermediate 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 and the Intermediate Model utilizes 15 such drivers for cost estimation. Classification of
Cost Drivers and their Attributes:
Product attributes:
5. Memory constraints
6. The volatility of the virtual machine environment
8. Analyst capability
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.
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.
Rayleigh Curve
The Lawrence Putnam model describes the time and effort requires finishing a software project
of a specified size. Putnam makes a use of a so-called The Norden/Rayleigh Curve to estimate
project effort, schedule & defect rate as shown in fig
Putnam noticed that software staffing profiles followed the well known Rayleigh distribution.
Putnam used his observation about productivity levels to derive the software equation:
K is the total effort expended (in PM) in product development, and L is the product estimate
in KLOC
td correlate to the time of system and integration testing. Therefore, td can be relatively
considered as the time required for developing the product.
Ck Is the state of technology constant and reflects requirements that impede the development of
the program.
The exact value of Ck for a specific task can be computed from the historical data of the
organization developing it.
Putnam proposed that optimal staff develop on a project should follow the Rayleigh curve. Only
a small number of engineers are required at the beginning of a plan to carry out planning and
specification tasks. As the project progresses and more detailed work are necessary, the number
of engineers reaches a peak. After implementation and unit testing, the number of project staff
falls.
There are many ways to organize the project team. Some important ways are as follows
In this, the people of organization at different levels following a tree structure. People at bottom
level generally possess most detailed knowledge about the system. People at higher levels have
broader appreciation of the whole project.
It limits the number of communication paths and stills allows for the needed
communication.
It can be expanded over multiple levels.
The Chief programmer: It is the person who is actively involved in the planning,
specification and design process and ideally in the implementation process as well.
The project assistant: It is the closest technical co-worker of the chief programmer.
The project secretary: It relieves the chief programmer and all other programmers of
administration tools.
Centralized decision-making
Can cause the psychological problems as the “chief programmer” is like the “king” who
takes all the credit and other members are resentful.
Team organization is limited to only small team and small team cannot handle every
project.
Matrix Team Organization: In matrix team organization, people are divided into specialist
groups. Each group has a manager. Example of Metric team organization is as follows:
Egoless Team Organization: Egoless programming is a state of mind in which programmer are
supposed to separate themselves from their product. In this team organization goals are set and
decisions are made by group consensus. Here group, ‘leadership’ rotates based on tasks to be
performed and differing abilities of members.
In this organization work products are discussed openly and all freely examined all team
members. There is a major risk which such organization, if teams are composed of inexperienced
or incompetent members.
Democratic Team Organization :It is quite similar to the egoless team organization, but one
member is the team leader with some responsibilities :
Coordination
Monitoring and Controlling are processes needed to track, review, and regulate the progress and
performance of the project. It also identifies any areas where changes to the project management
method are required and initiates the required changes.
The Monitoring & Controlling process group includes eleven processes, which are:
1. Monitor and control project work: The generic step under which all other monitoring
and controlling activities fall under.
2. Perform integrated change control: The functions involved in making changes to the
project plan. When changes to the schedule, cost, or any other area of the project
management plan are necessary, the program is changed and re-approved by the project
sponsor.
3. Validate scope: The activities involved with gaining approval of the project's
deliverables.
4. Control scope: Ensuring that the scope of the project does not change and that
unauthorized activities are not performed as part of the plan (scope creep).
5. Control schedule: The functions involved with ensuring the project work is performed
according to the schedule, and that project deadlines are met.
6. Control costs: The tasks involved with ensuring the project costs stay within the
approved budget.
7. Control quality: Ensuring that the quality of the project?s deliverables is to the standard
defined in the project management plan.
9. Control Risks: Safeguarding the project from unexpected events that negatively impact
the project's budget, schedule, stakeholder needs, or any other project success criteria.
10. Control procurements: Ensuring the project's subcontractors and vendors meet the
project goals.
11. Control stakeholder engagement: The tasks involved with ensuring that all of the
project's stakeholders are left satisfied with the project work.