There is a ISO software quality standards, call ISO 25010. This standard defines 8 main quality characteristics and also quite a few secondary features.
Top 8 Software Quality Features
The top 8 software quality features are:
- Functional suitability. The degree or level to which the resulting software provides functions that satisfy the needs established for given conditions.
- Reliability. The degree to which a system or software component performs its functions under certain conditions and period of time.
- Performance efficiency. Performance in relation to the amount of resources used under the established conditions.
- Usability. The degree or level to which the software allows it to be understood, learned, used and easy for the user.
- Security. The degree of protection of information and data so that unauthorized people or systems cannot read or modify it and that allows access and use to authorized people or systems.
- Compatibility. The degree to which two or more systems or components can exchange information and/or perform their functions.
- Maintainability. The degree of effectiveness and efficiency with which the software can be. Modified and/or updated.
- Transferability. The degree or level to which a system or component transferred from one hardware, software, or other operating environment to another.
This ISO 25010 standard is effective in determining quality at an early stage of software development.
Limitations and advantages of the standard ISO 25010
This great norm has some limitations:
- The rule It does not specify how quality characteristics are to be measured.
- Some of the quality features seem subjective.
- Although there is an ISO 25023 standard that defines metrics to measure ISO 25010, it has a limitation, which is that most of these metrics are at the behavioral level and not at the software code level.
- The other regulation that allows us to define measurement metrics, ISO 5055, is limited just 4 of the 8 quality characteristics of ISO 25010.
- Another limitation is that most of the defined quality characteristics have different meanings in different contexts, such as execution speed, which in a web context may be valid but would not be valid in a context of real-time needs.
Despite these limitations, we can say that The regulations allow us to measure the most significant ones, which the sector has recognized are the following:
- Code coverage
- abstract interpretation
- Cyclomatic complexity
- Compiler warnings
- Coding standards
- Code Duplication
- Deployment
- Security
The advantage measure is that it allows us to know if our code has been well developed. Therefore, regulations help generate good code, but they are not enough.