.Trashed 1687492846 Chapt4
.Trashed 1687492846 Chapt4
.Trashed 1687492846 Chapt4
• The Project:
• To manage complexity, we conduct planned and
controlled software projects.
• The project manager of a project or sub-project is
responsible for managing the people, product and
process.
• The responsibilities or activities of software project
manager would be a long list but that has to be
followed to avoid project failure.
• To avoid project failure, a software project manager
and the software engineers who build the product
must avoid a set of common warning signs, understand
the critical success factors that lead to good project
management, and develop a common-sense approach
for planning, monitoring, and controlling the project.
• The success rate for present-day software projects may
have improved but our project failure rate remains
much higher than it should be.
• Its merely due to the development but mostly due to
the steps before development and sometimes due to
the lack of maintenance.
4.2 Metrics for Size Estimation
Currently two metrics are popularly being
used widely to estimate size:
1.Lines of Code (LOC).
2.Function Point (FP).
Lines of Code (LOC)
• LOC is the simplest among all metrics available to
estimate project size.
• This metric is very popular because it is the
simplest to use.
• Using this metric, the project size is estimated by
counting the number of source instructions in the
developed program.
• The size is estimated by comparing it with the
existing systems of the same kind.
• The experts use it to predict the required size of
various components of software and then add
them to get the total size.
• Project manager always divides the problem into
modules, and each module into sub modules and
so on, until the sizes of the different level can be
approximately predicted.
• Determining LOC count at end of project is a very
simple job. However accurate estimation of the
LOC count at the beginning of a project is a very
difficult.
• The units of LOC are:
• KLOC- Thousand lines of code
• NLOC- Non-comment lines of code
• KDSI- Thousands of delivered source instruction
• Parameters to count LOC:
1. count only executable lines.
2. count executable lines plus data definitions.
3. count executable lines, data definitions and
comments.
4. count physical lines on input screen.
Advantages:
• Universally accepted and is used in many models
like COCOMO.
• Estimation is closer to the developer’s
perspective.
• Disadvantages:
• Different programming languages contain a
different number of lines.
• No proper industry standard exists for this
technique.
• It is difficult to estimate the size using this
technique in the early stages of the project.
• Consider the following example for counting
LOC:
KCSI: thousands changed source instructions.
KSSI: thousands shipped source instructions.
First Release of Product Y
KCSI = KSSI = 50 KLOC
Defects/KCSI = 2.0
Total number of defects = 2.0 × 50 = 100
Second Release,
KCSI = 20 KSSI = 50+ 20 (new and changed lines of
code) -4 (assuming 20% are changed lines of
code) = 66
• Defect/KCSI = 1.8 (assuming 10% improvement
over the first release). Total number of
additional defects = 1.8 x 20 = 36.
• Third Release,
KCSI=30 KSSI 66+30 (new and changed lines of
code) -6 (assuming 20% of changed lines of code)
= 90.
Targeted number of additional defects (no more
than previous release) = 36.
Defect rate target for the new and changed lines
of code: 36/30= 1.2 defects/KCSI or lower.
2. Function Point (FP)
• The concept of Function-oriented metrics was
proposed by Albrecht
• The conceptual idea behind the function point
metric is that the size of a software product is
directly dependent on the number of different
Functions or features it supports.
• A software product supporting many features
would certainly be of larger size than a product
with less number of features.
• Each function when invoked reads some input
data and transforms it to the corresponding
output data.
• In this method, the number and type of function
supported by the software are utilized to find FPC
(Function point count).
• The steps in function point analysis are:
• Count the number of functions of each proposed type:
Functions belonging to the following types:
External Input: Functions related to data entering the
system.
External Outputs: Functions related to data existing
from the system.
External Enquires: They lead to data retrieval from the
system.
Internal Files: Logical files maintained within the
system.
External interface files: These are logical files of
other application used by our application.
• Compute the unadjusted function point (UFP)
• Categories each of the function types like simple,
average or complex based on their complexity.
Multiply the count of each function type with its
weighting factor and find the weighted sum.
• Find total degree of influence (TDI) or (Fi)
Use the 14 general characteristics (each scale in
the range 0 – 5) of system to find the degree of
influence of each of them. The sum of all 14
degree of influence will give TDI. The range of TDI
is 0 to 70.
1. Heuristic Technique
• Heuristic means “to discover”.
• This technique basically use the concept of
learning from the previous project and estimate
the cost.
• The objective is to find a similar system produced
earlier and through knowing how the properties
of the new system vary from the existing one.
• Heuristic techniques assume that the
relationships among the different project
parameters can be modeled using suitable
mathematical expressions.
• Once the basic (independent) parameters are
known, the other (dependent) parameters can
be easily determined by substituting the value of
the basic parameters in the mathematical
expression.
• heuristic estimation models can be divided into
the following two classes:
- Single variable model
- Multi variable model
1. Single Variable Estimation Models:
• It provides a means to estimate the desired
characteristics of a problem, using some
previously estimated basic (independent)
characteristic of the software product such as its
size.
• A single variable estimator model takes the
following form:
• Estimated Parameter = c1 * ed1
• e= characteristic which already have been
calculated.
• Estimated parameter is the dependent
parameter to be estimated.
• The dependent parameters to be estimated
could be effort, duration, staff size etc.
• c1 and d1 are constants
• The values of the constants c1 and d1 are
usually determined using data collected from
past projects (historical data).
• COCOMO is one of this type of models example.
• 2. Multi variable Cost Estimation Model:
• It has the following form
Estimated Resources = c1 * e1d1 + c2 * e2d2 + - - -
e1 and e2 are the basic independent characteristics
of the software already estimated. c1, c2, d1, d2,
are constants.
Multivariable Estimation Models are expected to
give more accurate estimate compared to the
Single Variable Models, since a project parameters
is typically influenced by several independent
parameters.
• The independent parameters influence the
dependent parameter to different extents.
• The constants c1,c2,d1,d2.... are used to model
this.
• Volume = Length*log(23)
=81*4.52
=366
3. Empirical Estimation Technique
• Empirical estimation techniques are based on
making an educated guess of the project
parameters.
• While using this technique, prior experience
with development of similar products is helpful.
• Although empirical estimation techniques are
based on common sense, different activities
involved in estimation have been formalized
over the years.
• Two popular empirical estimation techniques
are:
• 1. Expert judgment technique
• 2. Delphi cost estimation.
1) Basic COCOMO:
The basic COCOMO is employed for rough
calculations, limiting software estimation
precision.
• This is because the model only considers lines of
source code and constant values.
• It derived from software project types rather
than other elements that significantly impact
the software development process.
2) Intermediate COCOMO:
The Intermediate COCOMO model expands the
Basic COCOMO model that takes into account a
collection of cost drivers to improve the cost
estimating model's accuracy.
3) Complete/Detailed COCOMO:
The model contains all qualities of both Basic
COCOMO and Intermediate COCOMO techniques
for each software engineering process. The
model considers each project's development
phase (analysis, design, and so on).