Code quality frameworks describe code quality characteristics and their decomposition. In ISO/IEC 25010, software quality is divided into two broad dimensions:
Product quality relates to the static and dynamic properties of the software proper. It is divided into 8 characteristics:
- Functional Suitability
- Completeness
- Correctness
- Appropriateness
- Performance Efficiency
- Time-behavior
- Resource utilization
- Capacity
- Compatibility
- Coexistence
- Interoperability
- Usability
- Appropriateness recognisability
- Learnability
- Operability
- User error protection
- User interface aesthetics
- Accessibility
- Reliability
- Maturity
- Availability
- Fault tolerance
- Recoverability
- Security
- Confidentiality
- Integrity
- Non-repudiation
- Accountability
- Authenticity
- Maintainability
- Modularity
- Reusability
- Analyzability
- Modifiability
- Testability
- Portability
- Adaptability
- Installability
- Replaceability
Quality in use relates to the outcome of human interaction with the software. It is divided in 5 characteristics:
- Effectiveness
- Efficiency
- Satisfaction
- Usefulness
- Trust
- Pleasure
- Comfort
- Freedom from risk
- Context coverage