WHAT IS SOFTWARE QUALITY ?
Quality is synonymous with efficiency, flexibility, correctness, reliability, maintainability, portability, usability, security and integrity.
The quality of the software is measurable and varies from system to system or program to program.
A software developed for the control of spacecraft must be reliable at the level of “zero failures”; one software made to run once does not require the same level of quality; While a software product to be exploited for a long period (10 years or more), it needs to be reliable, maintainable and flexible to reduce maintenance and improvement costs during the exploitation time.
The quality of the software can be measured after the product is built. But this can be very costly if problems derived from design imperfections are detected, so it is essential to take into account both quality assurance and control during all stages of the software life cycle .
HOW TO GET A QUALITY SOFTWARE ?
Obtaining quality software implies the use of standard methodologies or procedures for the analysis, design, programming and testing of the software that allow standardizing the work philosophy, in order to achieve greater reliability, maintainability and ease of testing, at the while increasing productivity, both for development work and for software quality control .
The established policy must be based on three basic principles: technological, administrative and ergonomic.
The technological principle defines the techniques to be used in the software development process .
The administrative principle contemplates the planning and control functions of software development , as well as the organization of the environment or software engineering center .
The ergonomic principle defines the interface between the user and the automated environment.
Good policy goes a long way toward achieving software quality , but it does not ensure it. Control or evaluation is necessary for quality assurance.
HOW TO CONTROL THE QUALITY OF THE SOFTWARE ?
To control the quality of the software, it is necessary, first of all, to define the parameters, indicators or measurement criteria, since, as Tom De Marco puts it, “you cannot control what cannot be measured”.
The qualities to measure software quality are defined by countless authors, who name and group them in different ways. For example, John Wiley defines quality metrics and criteria, where each metric is derived from combinations of the different criteria. The Methodology for the Evaluation of the Quality of Program Means of the CIC, of Russia, defines quality indicators structured in four hierarchical levels: factor, criterion, metric, evaluation element, where each lower level contains the indicators that make up the preceding level. Other authors identify quality with the level of complexity of the software and they define two categories of metrics: program or code complexity, and system or structure complexity.
All authors agree that the software has certain measurable indices that are the basis for quality, control and improvement of productivity.
Once the quality indices have been selected, the control process must be established, which requires the following steps:
- Define the software to be controlled: classification by type, sphere of application, complexity, etc., in accordance with the standards established for software development .
- Select a measure that can be applied to the control object. For each kind of software it is necessary to define the indicators and their magnitudes.
- Create or determine the methods for assessing the indicators: manual methods such as questionnaires or standard surveys for measuring expert criteria and automated tools for measuring calculation criteria.
- Define the organizational regulations to carry out the control: who participates in the quality control, when it is carried out, what documents must be reviewed and prepared, etc.
Based on the analysis of all the above, our Center is involved in a project for Software Quality Assurance (ACS), valid for any entity that is dedicated to research, production and marketing of software , which includes the development of a Software Quality Indicator System , preparation of a Software Quality Assurance Methodology and development of manual and automated support tools for the application of ACS techniques and procedures, in such a way that a Software Quality Assurance System is established .
To achieve success in the production of software is to do it with quality and demonstrate its good quality. This is only possible with the implementation of a Software Quality Assurance System directly related to the policy established for its elaboration and that is in correspondence with the widely accepted international ISO definition of quality, and by the group’s standards. ISO 9000.