SQA helps to ensure that quality is built into the product. It aims at preventing errors and detecting them as early as possible. It is preferable that software professionals detect errors during the development of software rather than let customers find them later. This is because by the time customers find errors they are costlier to remove and these errors also lead to customer dissatisfaction.
Classification of Software Qualities
By the term software quality we mean the satisfaction of concern of different persons including the users, developers and other stakeholders like of manager, Software quality is called the conformance to explicitly stated functional and performance requirements, documented development standards, and implicit characteristics. Remember that software requirements are the foundation from which quality is measured.
From user perspective the software should be:
- easy to use
From producer points of view, software should be:
and a manager wants:
- development to be productive
- easy to control
all of the above points will be discussed in detail in pages coming next.
Software Quality Standards
The most general standards are: ISO 9001 and British Standard Institute BS5750
The relevant standards for the industry are:
- ISO 9001: Quality Systems-Model for Quality Assurance and Deign
- ISO 9000-3: Guidelines for the application of ISO 9001 to the Development,
- ISO 9004-2: Quality Management and Quality System Elements
Software Quality Characteristics:
The various Quality Characteristics are summarized as below:
- Correctness – Deals with the extent to which the software design and implementation conform to the stated requirements.
- Interoperability – Deals with how easy it is to couple the software in other systems or applications.
- Integrity – Deals with security against either overt or covert access to the programs or data.
- Reliability – Deals with the continuity in the presence of a system failure.
- Usability – Deals with the initial effort required to learn, and the recurring effort to see the functionality of the software.
- Efficiency – Deals with the resources needed to provide the required functionality.
- Maintability – Deals with the ease of finding and fixing errors.
- Expandability – Deals with increasing the software’s functionality of performance to meet new needs.
- Verifiability – Deals with how easy it is to verify that the software is working correctly.
- Portability – Deals with transporting the software to execute on a host processor or operating system different from the one for which it was designed.
- Reusability – Deals the use of portions of the software for other applications.
- Flexibility – Deals with modifying the software to work in different environments.
- Manageability – Deals with the administrative aspects of modification to the software.
- Safety – Deals with the absence of unsafe software conditions.
Criteria for Software Quality
The various criteria set for the measurement of the software quality are discussed as below:
- Modularity – Those attributes that a structure of highly independent module.
- Accuracy – Those attributes that provides the required precision in calculation and nations.
- Completeness – Those attributes that provide full implementation of the function required.
- Traceability – Those attributes of the software that provide a thread from the requirement to the implementation with respect to the specific development and operational environment.
- Consistency – Those attributes that uniform design and implementation techniques and notation.
- Error Tolerance – Those attributes that provides continuity of operation under non-nominal condition.
- Simplicity – Those attributes that provides implementation of function in the most understandable manner.
- Generality – Those attributes that provide breath to the functions performed.
- Expandability – Those attributes that provides for expansion of data storage requirement of computational functions.
- Instrumentation – Those attributes that provide for the measurement of usage or identification of errors.
- Self-descriptiveness – Those attributes provide explanation of the implementation of a function.
- Execution Efficiency – Those attributed that provide minimum processing time.
- Storage Efficiency – Those attributes that provide for minimum storage requirement during operation.
- Access Control – Those attributes that provide for control of the access of software and data.
- Access Audit – Those attributes that provide for control of the access of software and data.
- Operability – Those attribute that determine operation and procedure concerned with the operation and procedures concerned with the operation of software.
- Training – Those attributes that provide transition from current operation to initial familiarization.
- Communicativeness – Those attributes that provide useful input and output which can be assimilated.
- Software System Independence – Those attributes that determine the software’s dependency on the software environment.
- Machine independence – Those attributes that determine the software’s dependency of the hardware system.
- Communication commonality – Those attributes provide the use of standard protocols and interface routines.
- Data commonality – Those attributes that provides the use of standard data representation.
- Conciseness – Those attributes that provide for implementation of a function with a minimum amount of code.