Information Technology Reference
In-Depth Information
model that is best in all situations. Because of the complexity of software, any model
has to have extra assumptions. Only limited factors can be put into consideration.
Most software reliability models ignore the software development process and focus
on the results—the observed faults and/or failures. By doing so, complexity is reduced
and abstraction is achieved; however, the models tend to specialize to be applied to
only a portion of the situations and to a certain class of the problems. We have
to choose carefully the right model that suits our specific case. Furthermore, the
modeling results cannot be blindly adopted.
Design for Six Sigma methods (such as Axiomatic Design, Fault Tree Analysis,
FMEA, etc.) largely can improve software reliability. Before the deployment of
software products, testing, verification, and validation are necessary steps. Software
testing is used heavily to trigger, locate, and remove software defects. Software testing
is still in its infant stage; testing is crafted to suit specific needs in various software
development projects in an ad hoc manner. Various analysis tools such as trend
analysis, fault-tree analysis, Orthogonal defect classification and formal methods,
and so on, also can be used to minimize the possibility of defect occurrence after
release and, therefore, improve software reliability.
After deployment of the software product, field data can be gathered and analyzed
to study the behavior of software defects. Fault tolerance or fault/failure forecast-
ing techniques will be helpful techniques and will guide rules to minimize fault
occurrence or impact of the fault on the system.
Software Reliability Measurement and Metrics 11 , 12
14.2.3
Measurement is a process to collect data for tracking or to calculate meta-data
(metrics) such as defect counts. Metrics are variables with information derived from
measurements (metadata) such as failure rate, defect removal efficiency, and defect
density. Reliability measurements and metrics accomplish several goals:
Provide estimates of software reliability prior to customer deployment.
Track reliability growth throughout the life cycle of a release.
Identify defect clusters based on code sections with frequent fixes.
Determine where to focus improvements based on analysis of failure data.
Tools for software configuration management and defect tracking should be up-
dated to facilitate the automatic tracking of this information. They should allow for
data entry in all phases, including development. Also, they should distinguish code-
based updates for critical defect repair versus any other changes, (e.g., enhancements,
minor defect repairs, coding standards updates, etc.).
Measurement is commonplace in other engineering field but not in software,
though the quest of quantifying software reliability has never ceased. Measuring
11 See Chapter 5 for software metrics.
12 See Rosenberg et al. (1998).
Search WWH ::




Custom Search