Software Metrics and Reliability. Definitions According to ANSI, “ Software Reliability is defined...

Preview:

Citation preview

Software Metrics and Reliability

Definitions• According to ANSI, “ Software Reliability is defined as the probability of failure – free

software operation for a specified period of time in a specified environment”.

• IEEE defines Reliability as “ The ability of a system or component to perform its required functions under stated conditions for a specified period of time”

Software Reliability and Hardware Reliability

• Software Reliability

• It is not a direct function of time

• Hardware Reliability

• It is a direct function of time.

Software Reliability

Useful Life obsoleteIntegration and Testing

Integration and Testing

Useful life

obsolete

Hardware Reliability

Burn In

Useful Life

Wear Out

Useful Life Wear OutBurn In

Faults and Failures

FAILURE

• It is the departure of the external results of program operation from

requirements

FAULT

• A Fault is a defect in a program which arises when programmer makes an error.

• It Causes Failure when executed under particular conditions

Achieving Reliability

• Software Reliability can be achieved by using metrics at different stages of software development cycle.

Phases

• Requirement Phase

• Design and coding phase

• Testing phase

Software Metrics For Reliability

• Requirements Reliability Metrics

• Design and Code Reliability Metrics

• Testing Reliability Metrics

Requirements Reliability Metrics

• A clear understanding between client and developer should exist.

• Must Contain valid Strucure

• Must be complete

• Ease to communicate

Design and Code Reliability Metrics

Quality Factors

• Complexity

• Size

Testing Reliability Metrics

• First approach is “ensuring that the system is fully equipped with the functions that are specified in the requirements”.

• Second approach is “Evaluating the code, Finding the errors and fixing them”.

Conclusion

• Software Reliability is the probability that the software will work without failure for a specified period of time

• Achieving the software reliability is hard as the complexity of the software tends to be high

• Software Reliability can be increased by applying metrics at different stages of software development life cycle.

Thank You

Any Questions?