what is software metrics in software engineering
understanding software metrics:
In this tutorial today learn what is software metrics in software engineering and software quality are primarily concerned with
defects that are injected into different lifecycle stages. These defects can be
injected right from the requirement analysis stage to the testing stage. These
defects are injected because of many reasons. These reasons could vary from
lack of knowledge to lack of complete understanding of customer requirements to
error in design specifications, and so forth. These defects are then detected
and removed during the execution stage. An application is always measured for
its quality in terms of defect injection and defect removal rate.
This is an important concept in software project management and is one of the aspects that
need to be controlled and monitored during the lifecycle of project execution.
This is because of the fact that software development is a highly
people-intensive activity and “to err is human." Defects can be injected
and detected at any stage. Thus, defects can be injected in requirement
analysis, design, and
coding stages. These are the stages where requirements are converted to
deliverables to the customer (such as design specification, code, etc.).
As discussed earlier, defects are injected at all stages of the development
lifecycle, and hence they need to be detected and removed. The removals in
requirement analysis and design stages are done through a review of their
deliverables, whereas in the coding stage, both review and testing will help in
removing defects. A project is considered successful if these defects are
removed in all these stages and application is delivered with no or less
defects
The project management process has to plan for activities such that
these are removed at the appropriate stage; defect injected in the initial
stages has a cascading effect on defects downstream. This is because defects at
early stages will inject new defects and time and cost involved in removing
these defects, if not removed early, become higher and higher. Thus, it is
imperative that the project management process should be matured enough to
detect and remove the defects immediately.
This is however easier said than
done. The project manager has to plan for activities such as reviews of all
deliverables from the requirement, design, and coding stages and also has to decide a testing strategy for codes written during the lifecycle stages.
Software metrics deal with the measurement of the software product and
the process by which it is developed.
The software product should be viewed as
an abstract object that evolves from an initial statement of need to a finished
software system, including source and object code and different forms of
documentation produced during development. Ordinarily, these measurements of
the software process and product are studied and developed for use in modeling
the software development process. These metrics and models are then used to
estimate/predict product costs and schedules and to measure productivity and
product quality. The information gained from the metrics and the model can then be
used in manage and control of the development process, leading to, one hopes,
improve results.
Jalote (2000) feels that good metrics should facilitate the development
of models that are capable of predicting process or product parameters, not
just describing them. As per Jalote (2001), ideal metrics should be
• Simple, precisely definable so that it is clear how the metric can be
evaluated.
• Objective, to the greatest extent possible
. • Easily obtainable (that is, at a reasonable cost).
• Valid—the metric should measure
what it is intended to measure.
• Robust-relatively insensitive to insignificant changes in the process
or product.
In addition, for maximum utility in analytical studies and statistical
analyses, metrics should have data values that belong to appropriate
measurement scales.
Hence, the objectives of software project measurement are
as follows:
• Ensure that software projects operate at the desired quality and
productivity levels. Quality
also covers attributes such as reliability, usability, stability, and
performance, as applicable.
• Ensure that projects meet the service level agreements (SLAs).
• Ensure that processes operate within the defined bounds and look for
opportunities for improvement.
• Ensure that the project meets the
commitments made to the customer in terms of delivery schedule
and other parameters, as applicable. The mapping between business goals and
measures are given in Table
definitions of metrics:
Software Engineering Institute at Carnegie
Mellon University (www.sei.cmu.edu) has stated that broadly the metrics can be classified
into basic and derived metrics. Basic metrics are collected as a result of
direct measurement of the process or product characteristics. The typical basic
metrics collected are as follows:
Effort-
This is the amount of time spent on the activity and is measured in
person-hours or person-days.
Defects—:
This represents noncompliance to requirements and is measured in
numbers. Size-It is the size of the application being developed and is measured
in function points or lines of code.
Elapsed time-:
This is the time spent between the start and the end of an activity and
is measured in days.
Requirements count-:
This is the number of requirements given by the customer and is measured
in numbers.
A number of requirement changes.
This represents the number of
times the customer has changed his/her mind resulting in changes in the
original requirements. It is usually measured in numbers.
Number of requests (maintenance projects)-
This represents the number of requests received from the customer to be
fixed. It is measured in numbers only. Derived metrics are quality indicators
that is calculated using basic measures in order to gain insight into the process
and product quality characteristics. Some of the derived metrics are as
follows:
• Productivity
• Delivered quality
• Defect injection rate (DIR)
• Defect detection rate
• Review/test effectiveness
• Review/test efficiency
No comments:
Post a Comment