0% found this document useful (0 votes)
31 views16 pages

Wa0011.

Uploaded by

Sumit Gohil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views16 pages

Wa0011.

Uploaded by

Sumit Gohil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Software Estimation Metrics

Module-3
Software Estimation Metrics
A software metric is a measure of software characteristics which are measurable or countable. Software metrics
are valuable for many reasons, including measuring software performance, planning work items, measuring
productivity, and many other uses.

Within the software development process, many metrics are that are all connected. Software metrics are similar to
the four functions of management: Planning, Organization, Control, or Improvement.
Classification of Software Metrics
Classification of Software Metrics

Software metrics can be classified into two types as follows:

1. Product Metrics: These are the measures of various characteristics of the software product. The two important
software characteristics are:

1. Size and complexity of software.


2. Quality and reliability of software.

These metrics can be computed for different stages of SDLC.

2. Process Metrics: These are the measures of various characteristics of the software development process. For
example, the efficiency of fault detection. They are used to measure the characteristics of methods, techniques,
and tools that are used for developing software.
Types of Metrics

Types of Metrics
Internal metrics: Internal metrics are the metrics used for measuring properties that are viewed to be of greater
importance to a software developer. For example, Lines of Code (LOC) measure.

External metrics: External metrics are the metrics used for measuring properties that are viewed to be of greater
importance to the user, e.g., portability, reliability, functionality, usability, etc.

Hybrid metrics: Hybrid metrics are the metrics that combine product, process, and resource metrics. For example,
cost per FP where FP stands for Function Point Metric.

Project metrics: Project metrics are the metrics used by the project manager to check the project's progress. Data
from the past projects are used to collect various metrics, like time and cost; these estimates are used as a base of
new software. Note that as the project proceeds, the project manager will check its progress from time-to-time
and will compare the effort, cost, and time with the original effort, cost and time. Also understand that these
metrics are used to decrease the development costs, time efforts and risks. The project quality can also be
improved. As quality improves, the number of errors and time, as well as cost required, is also reduced.
Advantage of Software Metrics

Comparative study of various design methodology of software systems.

For analysis, comparison, and critical study of different programming language concerning their characteristics.

In comparing and evaluating the capabilities and productivity of people involved in software development.

In the preparation of software quality specifications.

In the verification of compliance of software systems requirements and specifications.

In making inference about the effort to be put in the design and development of the software systems.

In getting an idea about the complexity of the code.

In taking decisions regarding further division of a complex module is to be done or not.

In guiding resource manager for their proper utilization.

In comparison and making design tradeoffs between software development and maintenance cost.

In providing feedback to software managers about the progress and quality during various phases of the software
development life cycle.

In the allocation of testing resources for testing the code.


Disadvantage of Software Metrics

The application of software metrics is not always easy, and in some cases, it is difficult and costly.

The verification and justification of software metrics are based on historical/empirical data whose validity is difficult
to verify.

These are useful for managing software products but not for evaluating the performance of the technical staff.

The definition and derivation of Software metrics are usually based on assuming which are not standardized and
may depend upon tools available and working environment.

Most of the predictive models rely on estimates of certain variables which are often not known precisely.
Software Project Estimation
A Software Project is the complete methodology of programming advancement from requirement gathering to testing
and support, completed by the execution procedures, in a specified period to achieve intended software product.

Need of Software Project Management


Software development is a sort of all new streams in world business, and there's next to no involvement in structure
programming items. Most programming items are customized to accommodate customer's necessities. The most
significant is that the underlying technology changes and advances so generally and rapidly that experience of one
element may not be connected to the other one. All such business and ecological imperatives bring risk in software
development; hence, it is fundamental to manage software projects efficiently.

Software Project Manager


Software manager is responsible for planning and scheduling project development. They manage the work to ensure that it
is completed to the required standard. They monitor the progress to check that the event is on time and within budget. The
project planning must incorporate the major issues like size & cost estimation scheduling, project monitoring, personnel
selection evaluation & risk management. To plan a successful software project, we must understand:

○ Scope of work to be completed


○ Risk analysis
○ The resources mandatory
○ The project to be accomplished
○ Record of being followed

Software Project planning starts before technical work start. The various steps of planning activities are:
Software Project Estimation
Software Project planning starts before technical work start. The various steps of planning activities are:

The size is the crucial parameter for the estimation of other activities. Resources requirement are required based on
cost and development time. Project schedule may prove to be very useful for controlling and monitoring the progress
of the project. This is dependent on resources & development time.
Software Cost Estimation
For any new software project, it is necessary to know how much it will cost to develop and how much
development time will it take. These estimates are needed before development is initiated, but how is this done?
Several estimation procedures have been developed and are having the following attributes in common.

1. Project scope must be established in advanced.


2. Software metrics are used as a support from which evaluation is made.
3. The project is broken into small PCs which are estimated individually.
To achieve true cost & schedule estimate, several option arise.
4. Delay estimation
5. Used symbol decomposition techniques to generate project cost and schedule estimates.
6. Acquire one or more automated estimation tools.

Uses of Cost Estimation


1. During the planning stage, one needs to choose how many engineers are required for the project and to
develop a schedule.
2. In monitoring the project's progress, one needs to access whether the project is progressing according to
the procedure and takes corrective action, if necessary.
Static, Single Variable Models: When a model
Cost Estimation Models
makes use of single variables to calculate desired
A model may be static or dynamic. In a static model, a single values such as cost, time, efforts, etc. is said to be
variable is taken as a key element for calculating cost and time. a single variable model. The most common
In a dynamic model, all variable are interdependent, and there equation is:
is no basic variable.
C=aLb

Where C = Costs
L= size
a and b are constants

The Software Engineering Laboratory established


a model called SEL model, for estimating its
software production. This model is an example of
the static, single variable model.

E=1.4L0.93
DOC=30.4L0.90
D=4.6L0.26

Where E= Efforts (Person Per Month)


DOC=Documentation (Number of Pages)
D = Duration (D, in months)
L = Number of Lines per code
COCOMO Model
Boehm proposed COCOMO (Constructive Cost Estimation Model) in 1981.COCOMO is one of the most generally used
software estimation models in the world. COCOMO predicts the efforts and schedule of a software product based on
the size of the software.

The necessary steps in this model are:

1. Get an initial estimate of the development effort from evaluation of thousands of delivered lines of source code
(KDLOC).
2. Determine a set of 15 multiplying factors from various attributes of the project.
3. Calculate the effort estimate by multiplying the initial estimate with all the multiplying factors i.e., multiply the
values in step1 and step2.

The initial estimate (also called nominal estimate) is determined by an equation of the form used in the static single
variable models, using KDLOC as the measure of the size. To determine the initial effort Ei in person-months the
equation used is of the type is shown below

Ei=a*(KDLOC)b

The value of the constant a and b are depends on the project type.
COCOMO Model
In COCOMO, projects are categorized into three types:

1. Organic
2. Semi Detached
3. Embedded

1.Organic: A development project can be treated of the organic type, if the project deals with developing a
well-understood application program, the size of the development team is reasonably small, and the team members
are experienced in developing similar methods of projects. Examples of this type of projects are simple business
systems, simple inventory management systems, and data processing systems.

2. Semi Detached: A development project can be treated with semidetached type if the development consists of a
mixture of experienced and inexperienced staff. Team members may have finite experience in related systems but
may be unfamiliar with some aspects of the order being developed. Example of Semidetached system includes
developing a new operating system (OS), a Database Management System (DBMS), and complex inventory
management system.

3. Embedded: A development project is treated to be of an embedded type, if the software being developed is
strongly coupled to complex hardware, or if the stringent regulations on the operational method exist. For Example:
ATM, Air Traffic control.

For three product categories, Bohem provides a different set of expression to predict effort (in a unit of person
month)and development time from the size of estimation in KLOC(Kilo Line of code) efforts estimation takes into
account the productivity loss due to holidays, weekly off, coffee breaks, etc.
COCOMO Model
According to Boehm, software cost estimation should be done through three stages:

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

1. Basic COCOMO Model: The basic COCOMO model provide an accurate size of the project parameters. The following expressions give the basic
COCOMO estimation model:

Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months

Where

KLOC is the estimated size of the software product indicate in Kilo Lines of Code,

a1,a2,b1,b2 are constants for each group of software products,

Tdev is the estimated time to develop the software, expressed in months,

Effort is the total effort required to develop the software product, expressed in person months (PMs).

Estimation of development effort

For the three classes of software products, the formulas for estimating the effort based on the code size are shown below:

Organic: Effort = 2.4(KLOC) 1.05 PM

Semi-detached: Effort = 3.0(KLOC) 1.12 PM

Embedded: Effort = 3.6(KLOC) 1.20 PM


Project Scheduling
Project-task scheduling is a significant project planning activity. It comprises deciding which functions would be
taken up when. To schedule the project plan, a software project manager wants to do the following:

1. Identify all the functions required to complete the project.


2. Break down large functions into small activities.
3. Determine the dependency among various activities.
4. Establish the most likely size for the time duration required to complete the activities.
5. Allocate resources to activities.
6. Plan the beginning and ending dates for different activities.
7. Determine the critical path. A critical way is the group of activities that decide the duration of the project.

The first method in scheduling a software plan involves identifying all the functions required to complete the project.
A good judgment of the intricacies of the project and the development process helps the supervisor to identify the
critical role of the project effectively. Next, the large functions are broken down into a valid set of small activities which
would be assigned to various engineers. The work breakdown structure formalism supports the manager to
breakdown the function systematically after the project manager has broken down the purpose and constructs the
work breakdown structure; he has to find the dependency among the activities. Dependency among the various
activities determines the order in which the various events would be carried out. If an activity A necessary the results
of another activity B, then activity A must be scheduled after activity B. In general, the function dependencies
describe a partial ordering among functions, i.e., each service may precede a subset of other functions, but some
functions might not have any precedence ordering describe between them (called concurrent function). The
dependency among the activities is defined in the pattern of an activity network.
Project Scheduling
Once the activity network representation has been processed out, resources are allocated to every activity. Resource
allocation is usually done using a Gantt chart. After resource allocation is completed, a PERT chart representation is
developed. The PERT chart representation is useful for program monitoring and control.

For task scheduling, the project plan needs to decompose the project functions into a set of activities. The time frame
when every activity is to be performed is to be determined. The end of every action is called a milestone.

The project manager tracks the function of a project by audit the timely completion of the milestones. If he examines
that the milestones start getting delayed, then he has to handle the activities carefully so that the complete deadline
can still be met.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy