UNIT 7
Software Reliability & Quality Management
Software Reliability is a composite attribute composed of following features:
Reliability metrics are used to quantitatively express the reliability of the software product. The option of which parameter is to be used depends upon the type of system to which it applies & the requirements of the application domain.
The current methods of software reliability measurement can be divided into four categories:
1. Product Metrics
Product metrics are characteristics of the product such as size, complexity, design features, performance, efficiency, reliability, portability etc.
Software size is considered as measurement of complexity, development effort, and reliability. It is calculated in terms of Lines of Code (LOC), or LOC in thousands (KLOC). It is used to determine of the functional complexity of the program and is independent of the programming language.
Function point (fp) is a method used to determine the functionality of proposed software development based on the count of inputs, outputs, master files, inquires, and interfaces.
Quality metrics depicts the quality at different levels of software development. An important quality metric is Defect Removal Efficiency (DRE).
2. Project Management Metrics
Project metrics are explained as different project characteristics and its execution such as: Number of software developers, Staffing pattern over the life-cycle of the software, Cost and schedule, Productivity
3. Process Metrics
Process metrics are defined as efficacy and quality of the processes that produce the software product. Examples are:
4. Fault and Failure Metrics
A fault is a defect in a software which appears on execution under some particular condition. These metrics determine whether the software is failure-free or not. Software testing is done to find faults or feedback of users are collected and analyzed to rectify the fault.
Reliability metrics are used to express reliability of a software product. Some reliability metrics:
Software quality product is defined in term of its fitness of purpose. That is, a quality product does precisely what the users want it to do.
Example: assume a good working software product which performs all tasks specified in the SRS document. But, has a typically hard user interface. Even after being functionally right, it cannot be considered as quality product.
Several methods to assess quality are:
Portability: A software device is said to be portable, if it can be freely made to work in various operating system environments, in multiple machines, with other software products, etc.
Usability: A software product has better usability if various categories of users can easily invoke the functions of the product.
Reusability: A software product has excellent reusability if different modules of the product can quickly be reused to develop new products.
Correctness: A software product is correct if various requirements as specified in the SRS document have been correctly implemented.
Maintainability: A software product is maintainable if bugs can be easily corrected as and when they show up, new tasks can be easily added to the product, and the functionalities of the product can be easily modified, etc.
ISO (International Standards Organization) is a group or consortium of 63 countries established to plan and fosters standardization. ISO declared its 9000 series of standards in 1987. It serves as a reference for the contract between independent parties. The ISO 9000 standard determines the guidelines for maintaining a quality system.
Types of industries to which the various ISO standards apply are as follows.
ISO 9001: This standard applies to most software development organizations working in design, development, production, and servicing of goods.
ISO 9002: This standard applies to Non software development organizations.
Which do not design products but are only involved in the production. Examples steel and car manufacturing industries
ISO 9003: This standard applies to organizations involved only in the installation and testing of the products. For example, Gas companies.
The Capability Maturity Model (CMM) is a Method used to develop and improve an organization's software development process. CMM was developed and is promoted by the Software Engineering Institute (SEI), a research and development centre promote by the U.S. Department of Defence (DOD).
The model defines a five- evolutionary Maturity levels of consistently organized processes.
Maturity Levels Characterization
Initial (Maturity Level 1) Ad-hoc Process
Repeatable (Maturity Level 2) Basic Project Management
Defined (Maturity Level 3) Process Definition
Managed (Maturity Level 4) Process Measurement
Optimizing (Maturity Level 5) Process Control
There are two methods of SEICMM:
Capability Evaluation: Capability evaluation provides a means to assess the software process capability of an organization.
Software Process Assessment: it is used inside an organisation to improve process capability.