Module - I
PLANNING PHASE:–
– Project planning objective
– Scope of software system
– Empirical estimation models
– COCOMO
– Staffing and personal planning
Planning Phase
Planning Objective:-
• The objective of software project planning is to
provide a framework that enables the manager
to make reasonable estimates of resources, cost,
and schedule.
• Estimates should attempt to define best-case
and worst-case scenarios so that project
outcomes can be bounded.
• The plan must be adapted and updated as the
project proceeds.
Software Scope
• Software scope describes the functions and
features that are to be delivered to end users
• The data that are input and output “content” that is
presented to users as a consequence of using the
software.
• The performance, constraints, interfaces, and
reliability that bound the system
• Scope is defined using one of two techniques
• A narrative description of software scope is
developed after communication with all
stakeholders.
• A set of use cases is developed by end users
• Functions described in scope is evaluated for
estimation
Cost Estimation Models in Software
Engineering
• Cost estimation simply means a technique
that is used to find out the cost estimates.
• The cost estimate is the financial spend that is
done on the efforts to develop and test
software in software engineering.
Various techniques or models are available for cost
estimation, also known as Cost Estimation Models as
shown below :
• Empirical estimation is a technique or model in which empirically
derived formulas are used for predicting the data that are a required
and essential part of the software project planning step.
• These techniques are usually based on the data that is collected
previously from a project and also based on some guesses, prior
experience with the development of similar types of projects,
and assumptions.
• It uses the size of the software to estimate the effort.
• In this technique, an educated guess of project parameters is made.
• The heuristic technique is a technique or model that is used for
solving problems, learning, or discovery in the practical methods
which are used for achieving immediate goals.
• These techniques are flexible and simple for taking quick decisions
through shortcuts and good enough calculations, most probably
when working with complex data.
• In this technique, the relationship among different project
parameters is expressed using mathematical equations.
• The popular heuristic technique is given by Constructive Cost
Model (COCOMO). This technique is also used to increase or
speed up the analysis and investment decisions.
• Analytical estimation is a type of technique that is used to measure
work.
• In this technique, firstly the task is divided or broken down into its
basic component operations or elements for analysing.
• Second, if the standard time is available from some other source, then
these sources are applied to each element or component of work.
• Third, if there is no such time available, then the work is estimated
based on the experience of the work.
• Results are derived by making certain basic assumptions about the
project.
What is COCOMO estimation model?
• The Constructive Cost Model (COCOMO) is a
procedural software cost estimation model developed
by Barry W. Boehm.
• Three versions of COCOMO: Basic, Intermediate, and
Detailed.
• The model parameters are derived from fitting a
regression formula using data from historical (past)
projects
• COCOMO is a regression model based on LOC, i.e
number of Lines of Code.
• It has been commonly used to project costs for a
variety of projects and business processes.
• It is a procedural cost estimate model for software
projects and often used as a process of reliably
predicting the various parameters associated with
making a project such as size, effort, cost, time and
quality.
• The original COCOMO model was a set of models
• 3 levels (basic, intermediate, and advanced).
• 3 development modes (organic, semi-detached, and
embedded)
COCOMO Model Levels
• Basic - predicted software size (lines of code) was used to
estimate development effort
• Intermediate - predicted software size (lines of code), plus
a set of 15 subjectively assessed 'cost drivers' was used to
estimate development effort
• Advanced - on top of the intermediate model, the advanced
model allows phase-based cost driver adjustments and some
adjustments at the module, component, and system level
15 cost drivers
COCOMO Development Modes
• Simple(Organic) - small relatively small, simple
software projects in which small teams with good
application experience work to a set of flexible
requirements
• Embedded - the software project has tight
software, hardware and operational constraints
• Semi-detached - an intermediate (in size and
complexity) software project in which teams with mixed
experience levels must meet a mix of rigid and less than
rigid requirements
• The general formula of the basic COCOMO model is:
• The intermediate and advanced COCOMO models
incorporate 15 'cost drivers'.
• These 'drivers' multiply the effort derived for the basic
COCOMO model
• The importance of each driver is assessed and the
corresponding value multiplied into the COCOMO
equation
• Calculate the effort taken for an embedded project of 60
KLOC ? Cost drivers are as follows:
• Product: Low
• Computer: High
• Personnel: Nominal
• Project: High
The COCOMO II Model
• The original COCOMO model became one of the most
widely used and discussed software cost estimation
models in the industry.
• It has evolved into a more comprehensive estimation
model, called COCOMO II.
• COCOMO II is actually a hierarchy of estimation
models
• Like all estimation models for software, the
COCOMO II models require sizing information.
• Three different sizing options are available as
part of the model hierarchy:
1. object points,
2. function points, and
3. lines of source code.
• The object point is an indirect software measure that
is computed using counts of the number of
1. screens (at the user interface),
2. reports,
3. components likely to be required to build the
application.
• Each object instance (e.g., a screen or report) is
classified into one of three complexity levels (i.e.,
simple, medium, or difficult).
• Complexity is a function of the number and source of
the client and server data tables that are required to
generate the screen or report and the number of views
or sections presented as part of the screen or report.
• Once complexity is determined, the number of
screens, reports, and components are weighted.
• The object point count is then determined by multiplying
the original number of object instances by the weighting
factor in the figure and summing to obtain a total object
point count.
• When component-based development or general
software reuse is to be applied, the percent of reuse
(%reuse) is estimated and the object point count is
adjusted
where NOP is defined as new object points.
Software Project Staffing
• All the management activities that involve
filling and keeping filled the positions that
were established in the project organizational
structure by well-qualified personnel.
Major Issues in Staffing
1. Project managers are frequently selected for their ability to program
or perform engineering tasks rather than their ability to manage
2. The productivity of programmers, analysts, and software engineers
varies greatly from individual to individuals.
3. Universities are not producing a sufficient number of computer
science graduates who understand the software engineering process
or project management.
4. Training plans for individual software developers are not developed
or maintained
Staffing Activities for Software Projects
Factors to Consider when Staffing
1. Education
2. Experience
3. Training
4. Motivation
Education:
• Does the candidate have the minimum level of education for the
job? Does the candidate have the proper education for future
growth in the company?
Experience:
• Does the candidate have an acceptable level of experience? Is it
the right type and variety of experience?
Training:
• Is the candidate trained in the language, methodology, and
equipment to be used, and the application area of the software
system?
Motivation:
• Is the candidate motivated to do the job, work for the
project, work for the company, and take on the
assignment?
Commitment:
• Will the candidate demonstrate loyalty to the project, to
the company, and to the decisions made?
Self-motivation:
• Is the candidate a self-starter, willing to carry a task
through to the end without excessive direction?
Group affinity:
• Does the candidate fit in with the current staff? Are
there potential conflicts that need to be resolved?
Intelligence:
• Does the candidate have the capability to learn, to
take difficult assignments, and adapt to changing
environments?
Sources of Qualified Project Individuals
1. Transferring personnel from within the project itself,
from task to another task
2. Transfers from other projects within the organization,
when other project has ended or is being cancelled
3. New hires from other companies through such
methods as job fairs, referrals
4. New college graduates can be recruited either
through interviews on campus or through referrals
from recent graduates who are now company
employees
5. If the project manager is unable to obtain qualified
individuals to fill positions, one option is to hire
unqualified but motivated individuals and train them
for those vacancies
Personnel Planning
• This includes estimation or allocation of right
persons or individuals for the right type of tasks of
which they are capable
• The capability of the individuals should always
match with the overall objective of the project