You are on page 1of 2

SOFTWARE ENGINEERING TECHNIQUES

LESSON 8:

Topics Covered complement decomposition techniques and offer a potentially


Project Estimation, Estimation of cost and effort, Metrics for valuable estimation approach in their own right. A model is
software quality- certain measures of quality metrics based on experience(historical data) and takes the form:
Objectives d = f(vi)
Upon completion of this Lesson, you should be able to: where d is one of a number of estimated values (e.g., effort,
• Know what do you mean by estimation of a project cost, project duration) and vi are selected independent
• Know what is estimation of cost and effort
parameters (e.g., estimated lines of code, LOC or function
point, FP). Automated estimation tools implement one or
• Know what is metrics for software quality
more decomposition techniques or empirical models. When
In our previous lecture we have seen what is estimation and we combined with an interactive human machine interface,
have also seen what is effort estimation. Now let us see what are automated tools provide an attractive option for estimating. In
the various criteria based on which we can do the estimation of such systems, the characteristics of the development
cost and effort. We’ll also see into deep what is the metrics for organization (e.g., experience, environment) and the software to
software quality and the various measures of quality metrics. be developed are described. Cost and effort estimates are
What is Project estimation? derived from these data.
Project Estimation Each of the viable software cost estimation options is only as
good as the historical data used to seed the estimate. If no
Estimation of Cost and Effort historical data exist, costing rests on a very shaky foundation.
In the early days of software development, software costs
comprised a small percentage of overall computer-based system Metrics for Software Quality
cost. Presently, software is the most expensive element in most Quality can be measured throughout the software engineering
computer-based systems. Errors in cost estimation can make process and after the software has been released to the customer
the difference between profit and loss. and users. Metrics derived before the software is delivered
provided quantitative basis for making design and testing
Estimation of software cost and effort is not an exact science.
decisions.
Variables such as, human, technical, environmental, etc., can
affect the ultimate cost of software and effort applied to Measuring Quality
develop it. Although there are many measures of software quality, the
most widely used are
To achieve reliable cost and effort estimates, a number of
options arise: • Product Correctness-A program must operate correctly.

1. Delay estimation until late in the project (obviously, we can Correctness is the degree to which the software performs its
achieve 100 percent accurate estimates after the project is required function
complete!). • Product Maintainability-Software maintenance has

2. Use relatively simple decomposition techniques to generate accounted for more effort than any other software activity.
project cost and effort estimates. Maintainability is the ease with which a program can be
corrected if an error is encountered, adapted if its
3. Develop an empirical model for software cost and effort. environment changes, or enhanced if the user desires a
4. Acquire one or more automated estimation tools. change in the requirements.
Unfortunately, the first option, however attractive, is not • Product Integrity-Software integrity measures a system’s
practical. Cost estimates must be provided “up front.” ability to withstand attacks to its security. To measure
However, we should recognize that the longer we wait, the integrity, two additional attributes must be defined: (1)
more we know, and the more we know, the less likely we are to threat is the probability that an attack of a specific type will
make serious errors in our estimates. occur within a given time, and (2) security is the probability
The remaining three options are viable approaches to software that an attack of a specific type will be repelled.
project estimation. Ideally, the techniques noted for each option Integrity = S [1 – threat x (1 – security)]
should be applied in tandem, each used as a crosscheck for the where threat and security are summed over each type of attack.
others. Decomposition techniques take a “divide and conquer”
approach to software project estimation. By decomposing a Halstead’s Software Science
project into major functions and related software engineering M. Halstead’s theory of software science proposes the first
tasks, cost and effort estimation can be performed in a stepwise analytical “laws” of computer software. Software science assigns
fashion. Empirical estimation models can be used to quantitative laws to the development of computer software. It

© Copy Right: Rai University


3E.253 27
uses a set of primitive measures that may be derived after code correct those areas of the software process that are the cause of
SOFTWARE ENGINEERING TECHNIQUES

is generated or estimated once design is complete. software defects.


n1- the number of distinct operators that appear in a program Exercises
n2- the number of distinct operands that appear in a program 1. Present an argument against lines of code as a measure for
N1- the total number of operator occurrences software productivity. Will your case hold up when dozens
N2- the total number of operand occurrences or hundreds of projects are considered?
Halstead uses the primitive measures to develop expressions 2. What are the relative advantages of using either the LOC or
for the overall program length, the potential minimum volume the function point metric to measure the size of a software
for an algorithm, the actual volume (number of bits required to product?
specify a program), the program level (a measure of software 3. List the important shortcomings of using LOC as a software
complexity), the language level (a constant for a given metric.
language), and features such as development effort, Further Readings and Information Sources
development time and projected number of defects in the Software process improvement has received a significant
software. amount of attention over the past decade. Since measurement
Halstead shows that the length (N) can be estimated from and software metrics is key to successfully improving the
N = n1 log2 n1 + n2 log2 n2 software process, many books on SPI also discuss metrics.
Worth while additions to the literature include:
and program volume (V) may be defined as
Garmus, D and D. Herron, Measuring the software process: A
V = N log2(n1 + n2).
Practical guide to Functional Measurements, Prentice-Hall, 1996.
McCabe’s Complexity Metric Humphrey, W., Introduction to the Team Software Process,
A complexity measure of software proposed by T. McCabe is Addison-Wesley Longman, 2000.
based on a control flow representation of a program. A
program graph is used to depict control flow. McCabe defines a The news letter IT metrics (edited by Howard Rubin and
software complexity measure that is based on the cyclomatic published by Cutter Information services ) presents useful
complexity of a program graph for a program module. commentary on the state of software metrics in the industry.
The magazines Cutter IT Journal and software Development
PPT-1 have regular articles and entire features dedicated to software
Software Metrics metrics.
• “When you can measure what you are speaking about and A wide variety of information sources on software related
express it in numbers, you know something about it” topics and management is available on the Internet. An up-to-
(Kelvin) date list of World Wide Web references that are relevant to
software can be found at the SEPA Web site:
• Allow processes and products to be assessed
http://www.mhhe.com/engcs/compsci/pressman/resources/
• Used as indicators for improvement
process-metrics.mhtml
• Size-oriented Metrics
Notes
• Lines of Code (LOC)
• Effort (Person-Months)
• Cost (£)
• Pages of Documentation
• Numbers of Errors
• Errors per KLOC
• Cost per KLOC
• Errors per person-month

Summary
Measurement enables managers and practitioners to improve
the software process; assist in the planning, tracking, and
control of a software project; and assess the quality of the
product(software) that is produced. Measures of specific
attributes of the process, project, and product are used to
compute software metrics. These metrics can be analyzed to
provide indicators that guide management and technical actions.
Software quality metrics, like productivity metrics, focus on the
process, the project, and the product. By developing and
analyzing a metrics baseline for quality, an organization can

© Copy Right: Rai University


28 3E.253

You might also like