ISO Standards for Software Quality
ISO Standards for Software Quality
'Portability' enhances software adaptability by ensuring that systems or products can be effectively transferred and operate across diverse environments. It is determined by characteristics such as adaptability, which assesses ease of adjusting to varying hardware and software contexts; installability, evaluating successful installations and removals; and replaceability, which considers the capability to substitute with comparable products. These factors facilitate software flexibility, enabling broader deployment options, efficient resource utilization, and access to wider market segments, thus ensuring long-term relevance and user satisfaction .
ISO 25010 introduced significant innovations by expanding and restructuring software quality characteristics and by recognizing the importance of usability and context-specific adaptability. Unlike ISO 9126, ISO 25010 included security and compatibility as core components, acknowledging emerging threats and the necessity for systems to co-exist and engage with diverse environments. It also introduced 'quality in use' and 'quality in context', reflecting user-centric and situational adaptability, thus better aligning with real-world, user-oriented interactions. These changes provided a more holistic and dynamic framework for evaluating software quality .
'Reliability' is a pivotal component of the software quality model, ensuring that a system, product, or component performs its specified functions under specified conditions. It is measured using several sub-characteristics: maturity assesses how well the system meets reliability needs; availability ensures the system is operational and accessible; fault tolerance evaluates performance despite hardware/software faults; and recoverability examines data recovery capabilities in case of failures. These components collectively ensure that the software maintains functionality, reduces downtime, and recovers gracefully from issues, thus enhancing user trust and satisfaction .
The main differences between ISO 9126 and ISO 25010 lie in their categorization and definition of non-functional software quality requirements. ISO 25010, published in 2011, replaced the ISO 9126 series by expanding and reorganizing the software quality characteristics. While ISO 9126 identified six main characteristics: functionality, usability, maintainability, reliability, efficiency, and portability, ISO 25010 added two additional characteristics: security and compatibility. Furthermore, ISO 25010 introduced new perspectives such as quality in use, which refers to how well a software product satisfies user needs in a specific context, and quality in context, which focuses on adaptability to different environments .
'Compatibility' is crucial in a multi-system environment as it ensures the seamless exchange and functionality of systems working together. Its main components include co-existence, which evaluates how well a system performs alongside others sharing the same environment without degradation, and interoperability, which assesses the ability to exchange and use exchanged information. Compatibility ensures systems can integrate within complex IT ecosystems, minimizing conflicts and enhancing collaborative functionality, leading to streamlined operations and resource efficiency .
'Functional Suitability' is critical to software quality as it assesses how well a software product provides functions that meet stated and implied needs. It includes three sub-characteristics: functional completeness, which ensures the software covers all specified tasks and objectives; functional correctness, which ensures it delivers correct results with precision; and functional appropriateness, which evaluates whether the functions can accomplish specified tasks effectively. These elements ensure that the software meets user requirements and works as intended, directly impacting user satisfaction and software utility .
'Performance Efficiency' is significant in software systems because it relates directly to how well a software performs in terms of resource usage and response time, impacting user satisfaction and operational costs. It is evaluated through time behavior, assessing response and processing times and throughput rates; resource utilization, examining the types and amounts of resources used; and capacity, determining the maximum limits a system can handle. Efficient performance ensures resources are optimized, systems scale effectively, and users experience minimal delays, critical for high-performing applications .
Within ISO 25010, 'Security' ensures software reliability and integrity by protecting information and preventing unauthorized access. It encompasses confidentiality, which restricts data access to authorized users; integrity, which prevents unauthorized modifications; non-repudiation, ensuring actions can be verified; accountability, tracing user actions; and authenticity, verifying identities. By addressing these areas, security bolsters software reliability by reducing vulnerabilities, maintaining data integrity, and ensuring that only legitimate operations occur, thereby safeguarding both user data and system functionality .
'Usability' enhances user experience by making software intuitive and pleasant to use, thereby increasing efficiency and satisfaction. Aspects considered in its evaluation include appropriateness recognizability, which determines if the software meets user needs; learnability, assessing ease of learning the software; operability, ensuring easy operation and control; user error protection, which prevents user mistakes; user interface aesthetics, evaluating interface appeal; and accessibility, accommodating diverse user needs. By addressing these areas, usability ensures that users can achieve their goals effectively and efficiently with minimal effort, leading to higher adoption and satisfaction rates .
'Maintainability' facilitates the evolution and improvement of software systems by allowing them to be modified for improvements, corrections, or adaptations to changing environments and requirements. It is evaluated through characteristics such as modularity, enabling component changes with minimal impact; reusability, promoting the use of assets across different systems; analysability, assessing the impact of changes; modifiability, which allows changes without defects; and testability, supporting effective testing. These aspects ensure that software can adapt to new requirements, fix issues efficiently, and improve over time, extending the system's lifecycle and relevance .