Maintenance, Reliability and Quality
Maintenance – Types
Lehman’s laws
Maintenance Process Models
Reliability – Hardware and Software
Reliability Metrics
Quality
ISO -9001, SEI CMM, Six Sigma
Maintenance
This phase starts after the software goes
live
One of the most important phases
Every development needs maintenance
All good software continue to evolve after
its development through maintenance
efforts
Type of maintenance
Corrective
◦ All the bugs in the system discovered after release is
resolved in this phase
Adaptive
◦ Maintenance is done when platforms changed, OS
upgraded or new interfaces added
Perfective
◦ This involves adding new features and changing
existing functionalities
Characteristics of s/w evolution
Lehman’s Laws
◦ First Law – Software product much change
continuously otherwise they will become
progressively less useful
◦ Second Law – The structure of the program
tends to degrade as more and more
maintenance is carried out
◦ Third Law – The rate at which code is written
or modified is approximately the same during
development and maintenance
Software Maintenance Process Models
Method 1
◦ Small requirement changes
◦ Requirements are not complex in nature
Method 2
Requirements are complex
Existing applications do not have proper
documentation and design
Use of reverse engineering and forward engineering
Method 1
Gather change requirements
Analyze change requirements
Devise code change strategies
Apply code changes to old code
Update documents Integrate and test
Method 2
Change Requirement
Reverse Engineering
Requirement Specs New Requirement Specs
Design Design
Module specs Module specs
Code
Code
Reliability
Reliability of a software product:
◦ a concern for most users especially industry users.
◦ An important attribute determining the quality of the
product.
◦ Users not only want highly reliable products but want
quantitative estimation of reliability before making buying
decision.
Accurate measurement of software reliability:
◦ a very difficult problem
◦ Several factors contribute to making measurement of
software reliability difficult
Hardware Vs Software Reliability
Hardware failures:
◦ inherently different from software failures.
Most hardware failures are due to component wear and
tear:
◦ some component no longer functions as specified.
To fix hardware faults-
◦ replace or repair the failed part
Software faults are latent:
◦ system will continue to fail unless changes are made to the
software design and code.
Reliability Metrics
There are many method by which reliability of
a software product can be measured.
Reliability can also be a part of the non-
functional requirement in SRS
Some reliability metrics
◦ Rate of Occurrence Of Failure (ROCOF)
◦ Mean Time to Failure (MTTF)
◦ Mean Type to Repair (MTTR)
◦ Mean Time between Failure (MTBF)
◦ Probability of failure on demand(POFOD)
◦ Availability
Rate of Occurrence Of Failure
(ROCOF)
ROCOF measures:
◦ The frequency of occurrence of
failures.
◦ Observe the behaviour of a software
product in operation:
over a specified time interval
calculate the total number of failures
during the interval.
Mean Time To Failure (MTTF)
Average time between two successive
failures:
◦ observed over a large number of failures.
MTTF is not as appropriate for software as for
hardware:
◦ Hardware fails due to a component’s wear and
tear indicating how frequently the component fails
◦ When a software error is detected and repaired
the same error never appears.
Mean Type to Repair (MTTR)
Once the failure occurs, it takes time to fix
it and addition time is lost
MTTR measures the average time it takes
to fix faults
Mean Time between Failures (MTBF)
We can combine MTTF and MTTR:
◦ to get an availability metric:
◦ MTBF=MTTF+MTTR
MTBF of 100 hours would indicate
◦ Once a failure occurs, the next failure is
expected after 100 hours
Probability of failure on demand(POFOD)
Unlike other metrics
◦ This metric does not explicitly involve time.
Measures the likelihood of the system
failing:
◦ when a service request is made.
◦ POFOD of 0.001 means:
1 out of 1000 service requests may result in a
failure.
Availability
This metric is important for systems
like:
◦ telecommunication systems,
◦ operating systems, etc. which are supposed
to be never down
◦ where repair and restart time are significant
and loss of service during that time is
important.
◦ Availability is also important for web
applications
Quality
Several quality factors are associated
with a software product :
◦ Correctness
◦ Reliability
◦ Portability
◦ Usability
◦ Reusability
◦ Maintainability
Software Quality Management System
Quality management system (or quality system):
◦ Principal methodology used by organizations to
ensure that the products have desired quality.
Quality System Activities
◦ Auditing of projects
◦ Development of standards, procedures, and guidelines.
◦ Production of reports for the top management:
◦ Summarizing the effectiveness of the quality system in
the organization.
◦ Review of the quality system itself
Certifications
International Standards Organization –
ISO 9000
SEI –CMM (Capability Mature Model)
Six Sigma
Assignment
What is the difference between ISO 9001,
9002 and 9003?
Compare between ISO 9001 and SEI –
CMM?
What are the metrics of six sigma, 5 sigma
and 4 sigma?