Title: Software Engineering Product Metrics for Software
1Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- In a general sense, software quality is
- Conformance to explicitly stated functional and
performance requirements, explicitly documented
development standards, and implicit
characteristics that are expected of all
professionally developed software. - There are three key points
- Software requirements are the foundation from
which quality is measured. Lack of conformance to
requirements is a lack of quality. - Specified standards define a set of development
criteria that guide the manner in which software
is engineered. If the criteria are not followed,
lack of quality will almost surely result. - There is a set of implicit requirements that
often goes unmentioned (e.g. the desire for ease
of use). If software conforms to its explicit
requirements but fails to meet implicit
requirements, software quality is suspect.
2Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- McCalls Quality Factors
- Factors that affect software quality can be
categorized in two broad groups - Factors that can be directly measured (e.g.
defects uncovered during testing) - Factors that can be measured only indirectly
(e.g. usability or maintainability)
3Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- McCalls Quality Factors
- Correctness The extent to which a program
satisfies the specification and fulfills the
customers mission objectives. - Reliability The extent to which a program can be
expected to perform its intended function with
required precision. - Efficiency The amount of computing recourses and
code required by a program to perform its
function. - Integrity The extend to which access to software
or data by unauthorized persons can be
controlled. - Usability The effort required to learn, operate,
prepare input for and interpret output of a
program. (This can be contradictory, can any
guess why?)
4Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- McCalls Quality Factors
- Usability The effort required to learn, operate,
prepare input for and interpret output of a
program. (This can be contradictory, can any
guess why?) - What is efficient for a power user may not be
effective for a end or novice user. - Maintainability The effort required to locate
and fix an error in a program. - Flexibility The effort required to modify an
operational program. - Testability The effort required to test a
program to ensure that it performs the intended
function.
5Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- McCalls Quality Factors
- Portability The effort required to transfer the
program from one hardware and/or software system
environment to another. - Reusability The extent to which a program or
parts of a program can be reused in other
applications related to the packaging and scope
of the functions that the program performs - Interoperability The effort required to couple
one system to another.
6Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- McCalls Quality Factors
- It is difficult, and in some cases impossible to
develop direct measures of these quality factors.
7Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- ISO 9126 Quality Factors
- A standard developed in an attempt to identify
attributes for computer software. - Functionality The degree to which the software
satisfies stated needs as indicated by the
following sub-attributes suitability, accuracy,
interoperability, compliance, and security. - Reliability The amount of time that the software
is available for use as indicated by the
following sub-attributes maturity, fault
tolerance, recoverability. - Usability The degree to which the software is
easy to use as indicated by the following
sub-attributes understandability, learnability,
operability.
8Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- ISO 9126 Quality Factors
- Efficiency The degree to which the software
makes optimal use of system resources as
indicated by the following sub-attributes time
behavior, resource behavior. - Maintainability The ease with which repair may
be made to the software as indicated by the
following sub-attributes analyzability,
changeability, stability, and testability. - Portability The ease with which the software can
be transposed from one environment to another as
indicated by the following sub-attributes
adaptability, installability, conformance, and
replaceability. - Again these factors do not necessarily lend
themselves to direct measurement.
9Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- Transition to a Quantitative View
- Subjectivity and specialization apply to
determining software quality. - To help solve the problem, a more precise
definition of software quality is needed as well
as a way to derive quantitative measurements of
software quality for objective analysis.
10Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- Measure provides a quantitative indication of
the extent, amount, dimension, capacity, or size
of some attribute of a product or process. - Measurement is the act of determining a measure.
- Metric relates the individual measure in some
way (e.g. the average number of errors found per
review or the average number of errors found per
unit test) - CHALLENGES OF PRODUCT METRICS
- Researchers have attempted to develop a single
metric that provides a comprehensive measure of
software complexity. - It is fair to ask, just how valid product metrics
are?
11Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- A metric should have desirable mathematical
properties (i.e. a meaningful range, zero to
one). - When a metric represents a software
characteristic that increase when positive traits
occur or decreases when undesirable traits are
encountered, the value of the metric should
increase or decrease in the same manner. - Each metric should be validated empirically in a
wide variety of contexts before being published
or used to make decisions.
12Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- Good attributes for software metrics are
- Simple and Computable
- Intuitively persuasive
- Consistent and objective
- Consistent in the use of units and dimensions
- Programming language independent
- An effective mechanism for high-quality
feedback.
13Software Engineering Product Metrics for
Software
- METRIC FOR SOURCE CODE
- n1 the number of distinct operators that appear
in a program - n2 the number of distinct operands that appear
in a program - N1 the total number of operator occurrences.
- N2 the total number of operand occurrence.
- Overall program length N can be computed
- N n1 log2 n1 n2 log2 n2
- V N log2 (n1 n2)
14Software Engineering Product Metrics for
Software
- METRIC FOR TESTING
- n1 the number of distinct operators that appear
in a program - n2 the number of distinct operands that appear
in a program - N1 the total number of operator occurrences.
- N2 the total number of operand occurrence.
- Program Level and Effort
- PL 1/(n1 / 2) x (N2 / n2 l)
- e V/PL
15Software Engineering Product Metrics for
Software
- SOFTWARE QUALITY
- METRICS FOR MAINTENANCE
- Mt the number of modules in the current release
- Fc the number of modules in the current release
that have been changed - Fa the number of modules in the current release
that have been added. - Fd the number of modules from the preceding
release that were deleted in the current release - The Software Maturity Index, SMI, is defined as
- SMI Mt (Fc Fa Fd)/ Mt