Вы находитесь на странице: 1из 3

What are software metrics? Explain about software metrics?

Once measures are collected they are converted into metrics for use. IEEE defines metric as 'a quantitative
measure of the degree to which a system, component, or process possesses a given attribute.' The goal of
software metrics is to identify and control essential parameters that affect software development.
Software Metrics provide measures for various aspects of software process and software product.
Software measures are fundamental requirement of software engineering. They not only help to control the
software development process but also aid to keep quality of ultimate product excellent.
According to Tom DeMarco, a (Software Engineer), “You cannot control what you cannot measure.” By his
saying, it is very clear how important software measures are.
Let us see some software metrics:
 Size Metrics - LOC (Lines of Code), mostly calculated in thousands of delivered source code lines,
denoted as KLOC.
Function Point Count is measure of the functionality provided by the software. Function Point count
defines the size of functional aspect of software.
 Complexity Metrics - McCabe’s Cyclomatic complexity quantifies the upper bound of the number of
independent paths in a program, which is perceived as complexity of the program or its modules. It is
represented in terms of graph theory concepts by using control flow graph.
 Quality Metrics - Defects, their types and causes, consequence, intensity of severity and their implications
define the quality of product.
The number of defects found in development process and number of defects reported by the client after the
product is installed or delivered at client-end, define quality of product.
 Process Metrics - In various phases of SDLC, the methods and tools used, the company standards and the
performance of development are software process metrics.
 Resource Metrics - Effort, time and various resources used, represents metrics for resource measurement.
Guidelines for Software Metrics
Although many software metrics have been proposed over a period of time, ideal software metric is the one
which is easy to understand, effective, and efficient. In order to develop ideal metrics, software metrics should
be validated and characterized effectively. For this, it is important to develop metrics using some specific
guidelines, which are listed below.
 Simple and computable: Derivation of software metrics should be easy to learn and should involve
average amount of time and effort.
 Programming language independent: Metrics should be developed on the basis of the analysis model,
design model, or program's structure.
 High quality: Effective software metrics should lead to a high-quality software product.
 Easy to calibrate: Metrics should be easy to adapt according to project requirements.
 Easy to obtain: Metrics should be developed at a reasonable cost.
 Validation: Metrics should be validated before being used for making any decisions.
 Robust: Metrics should be relatively insensitive to small changes in process, project, or product.
What is software reliability? Explain?
Reliability is the probability of failure-free operation of a system over a specified time within a specified
environment for a specified purpose.
The reliability depends on the number of remaining faults that can cause a failure and how these faults are
exposed during execution. This implies two problems:
• The product has to be executed in order to enable measurement of the reliability. Furthermore the execution
must be operational or resemble the conditions under which the software is operated. It is preferable if the
reliability may be estimated before the software is put into operation.
• During execution, failures are detected and may be corrected. Generally, it is assumed that the faults causing
the failures are removed.
In order to solve these problems, two different types of models have to be introduced: • A usage specification.
This specification, consisting of a usage model and a usage profile, specifies the intended software usage. The
possible use of the system should be specified (usage model) and the usage quantities in terms of probabilities
or frequencies (usage profile). Test cases to be run during software test are generated from the usage
specification. The specification may be constructed based on data from real usage of similar systems or on
application knowledge. If the reliability is measured during real operation, this specification is not needed. The
usage-based testing is further discussed in Section II. •
A reliability model. The sequence of failures is modeled as a stochastic process. This model specifies the
failure behavior process. The model parameters are determined by fitting a curve to failure data. This implies
also a need for an inference procedure to fit the curve to data. The reliability model can then be used to estimate
or predict the reliability, see Section IV. The principle flow of deriving a reliability estimate during testing is
presented in Figure.
Test cases failure data reliability estimate
Usage Software Reliability Or prediction
specification system model

Reliability estimation from failure data


As mentioned above, failure intensity is an easier quantity to understand than reliability. Failure intensity can in
most cases be derived from the reliability estimate, but often the failure intensity is used as the parameter in the
reliability model.
As indicated by Figure, measurement of reliability involves a series of activities. The process related to
software reliability consists of four major steps:
1. Create usage specification This step includes collecting information about the intended usage and creation
of a usage specification.
2. Generate test cases and execute From the usage specification, test cases are generated and applied to the
system under test.
3. Evaluate outcome and collect failure data For each test case, the outcome is evaluated to identify whether
a failure occurred or not. Failure data is collected as required by the reliability model.
4. Calculate reliability The inference procedure is applied on the failure data and the reliability model. Thus a
reliability estimate is produced.
If the process is applied during testing, then process steps 2-4 are iterated until the software reliability
requirement is met.
Additionally, it is possible to use attribute models to estimate or predict software reliability. This means that
software reliability is predicted from other attributes than failure data. For example, it may be estimated from
different complexity metrics, in particular in early phases of a project.

Вам также может понравиться