SEQA Session 6 Software Reliability
SEQA Session 6 Software Reliability
Yes. If the user is unable to operate a service, it may be perceived as poor reliability though in the sense of technical
reliability will probably not.
3. How important is user perceived reliability for real-time person-to-person communication??
2 formulas
1. Rate of Occurrence of Failure (ROCOF)
• Availability Testing
1. Reactive activities
2. Proactive activities
How to measure
it ?
Availability: the ability of a service, component to perform its agreed
function when required.
situation where a 24 x 7 service has been running for a period of 5,020 hours
with only two breaks, one of 6 hours and one of 14 hours, would give the
following figures:
Service
level
agreement
Classification of Failures
1. Transient
– Occur only for certain input values while
invoking a function of the system.
2. Permanent
– Occur for all input values while invoking a
function of a system.
3. Recoverable
– When recoverable failures occur, the system
recovers with or without operator intervention.
4. Unrecoverable
– The system may need to be restarted.
5. Cosmetic
– These failures cause minor irritations, &
do not lead to incorrect results
1. Jelinski-moranda model
2. Little wood and Verall’s model
3. Step function model
Reliability Growth Modeling
• It is a mathematical model of how the s/w reliability
improves as errors are detected & repaired.
1.Modelling
2.Measurement
3.Improvement
Factors Influencing Software
Reliability
1. The number of faults presents in the
software
• Feature Testing
• Load Testing
• Regression Test
How to do Reliability Testing
• 1. Prediction Modelling
• 2. Estimation Modelling
Issues Prediction Models Estimation Models
Data Reference It uses historical data It uses current data from
the software development.
When used in It will be usually created It will be usually used at the
Development Cycle before the development or later stage of Software
testing phases. Development Life Cycle.
Time Frame It will predict the reliability It will predict the reliability
in the future. either for the present time
or in the future time.
Step 2) Measurement
1. Product Metrics:-
Software size
Function point metric
complexity
Test coverage metric
2. Project Management Metrics
3. Process Metrics
4. Fault and Failure Metrics
Step 3) Improvement
• DECISION CONSISTENCY
• After doing Test-Retest Reliability and
Parallel Form Reliability, we will get a
result of examinees either pass or fail.
•Market Conditions - Policies, which changes over the time, such as taxation
and newly introduced constraints like, how to maintain bookkeeping, may
trigger need for modification.
•Client Requirements - Over the time, customer may ask for new features or
functions in the software.
•Host Modifications - If any of the hardware and/or platform (such as
operating system) of the target host changes, software changes are needed
to keep adaptability.
•Organization Changes - If there is any business level change at client end,
such as reduction of organization strength, acquiring another company,
organization venturing into new business, need to modify in the original
software may arise.
Definitio
ns
The act of keeping, or the expenditure
required to keep, an asset in condition to
perform efficiently the service for which it is
used.
•
Re-Engineering Process
•Decide what to re-engineer. Is
it whole software or a part of it?
•Perform Reverse Engineering,
in order to obtain specifications
of existing software.
•Restructure Program if
required. For example,
changing function-oriented
programs into object-oriented
programs.
•Re-structure data as required.
•Apply Forward
engineering concepts in order
to get re-engineered software.
Cost of Maintenance
Reports suggest that the
cost of maintenance is high.
A study on estimating
software maintenance found
that the cost of maintenance
is as high as 67% of the cost
of entire software process
cycle.
On an average, the cost of
software maintenance is
more than 50% of all SDLC
phases. There are various
factors, which trigger
maintenance cost go high,
such as:
Real-world factors affecting Maintenance Cost
• The standard age of any software is considered up to 10 to 15 years.
• Older softwares, which were meant to work on slow machines with less
memory and storage capacity cannot keep themselves challenging against
newly coming enhanced softwares on modern hardware.
• As technology advances, it becomes costly to maintain old software.
• Most maintenance engineers are newbie and use trial and error method to
rectify problem.
• Often, changes made can easily hurt the original structure of the software,
making it hard for any subsequent changes.
• Changes are often left undocumented which may cause more conflicts in
future.
Software-end factors affecting Maintenance Cost
• Structure of Software Program
• Programming Language
• Dependence on external environment
• Staff reliability and availability
Maintenance Activities
• IEEE provides a framework for sequential maintenance
process activities. It can be used in iterative manner and
can be extended so that customized items and
processes can be included.
• These activities go hand-in-hand with each of the following phase:
• Identification & Tracing - It involves activities pertaining to identification of requirement of
modification or maintenance. It is generated by user or system may itself report via logs or
error messages.Here, the maintenance type is classified also.
• Analysis - The modification is analyzed for its impact on the system including safety and
security implications. If probable impact is severe, alternative solution is looked for. A set of
required modifications is then materialized into requirement specifications. The cost of
modification/maintenance is analyzed and estimation is concluded.
• Design - New modules, which need to be replaced or modified, are designed against
requirement specifications set in the previous stage. Test cases are created for validation
and verification.
• Implementation - The new modules are coded with the help of structured design created in
the design step.Every programmer is expected to do unit testing in parallel.
• System Testing - Integration testing is done among newly created modules. Integration
testing is also carried out between new modules and the system. Finally the system is
tested as a whole, following regressive testing procedures.
• Acceptance Testing - After testing the system internally, it is tested for acceptance with the
help of users. If at this state, user complaints some issues they are addressed or noted to
address in next iteration.
• Delivery - After acceptance test, the system is deployed all over the organization either by
small update package or fresh installation of the system. The final testing takes place at
client end after the software is delivered.
• Training facility is provided if required, in addition to the hard copy of user manual.
• Maintenance management - Configuration management is an essential part of system
maintenance. It is aided with version control tools to control versions, semi-version or patch
management.
Maintenance models-do it urself
• Quick-fix model
• Iterative enhancement model
• Reuse oriented model
• Boehm’s model
• Taute maintenance model
Software Breakdown
Causes
• basic conditions neglected
• inadequate skills
• deterioration unchecked
Reasons:
Maintenance changes ,degrades the original system structure.
Aging software results in high support costs.
Maintenance cost factors
Team stability
Maintenance costs are reduced if the same staff are involved with them for
some time.
Contractual responsibility
The developers of a system may have no contractual responsibility for
maintenance so there is no incentive to design for future change.
Staff skills
Maintenance staff are often inexperienced and have limited domain
knowledge.