Comparing Software Quality Models
Comparing Software Quality Models
The FURPS model extends previous models by providing a structured categorization of requirements into functional and non-functional components, introducing elements like usability, performance, and supportability. Unlike McCall’s and Boehm’s models, FURPS explicitly differentiates between functional requirements (e.g., input and output expectations) and non-functional requirements (e.g., usability and performance), thus offering a more granular approach. Moreover, it integrates additional focus areas such as supportability, emphasizing maintenance and serviceability, which builds upon, but more specifically categorizes, the broader maintainability concepts found in Boehm’s and McCall’s models .
Portability in McCall's Model is viewed through the product transition lens, focusing on adapting software to different environments. Boehm’s Model also recognizes portability but expands it to consider how effectively a product can change environments and its generalized utility. FURPS treats portability under reusability aspects, linking it to compatibility and interoperability. Usability is seen in McCall’s Model as ensuring the software runs smoothly per user specifications, while Boehm relates usability with human engineering, placing more emphasis on the ease of use and user interaction aspects. FURPS, in contrast, provides a specific non-functional usability category which includes human factors and aesthetics, offering a broader perspective than the other models. Each model thus offers a varied depth and scope of complexity concerning these attributes .
In McCall’s Model, maintainability is focused broadly on identifying and fixing defects and accommodating future changes, emphasizing flexibility and testability. Boehm’s Model takes this further by breaking maintainability into more distinct elements, such as testability, understandability, and modifiability, offering a more nuanced perspective on how easily software can be maintained. This extended detailing in Boehm's Model allows a more targeted and granular approach, identifying specific areas of improvement in a software’s maintainability, while McCall provides a more general view that might not capture such intricacies .
The functional and non-functional requirements categorization in FURPS effectively differentiates between what the software should do (functional) and how it should perform (non-functional), creating a clear structure for addressing all aspects of software expectations. This enables distinct attention to the technical and user experience aspects, advocating clearer planning and design paths. Functional requirements focus the development on meeting precise user and system needs, while non-functional considerations like usability, reliability, and performance assure user satisfaction and system durability. However, this categorization might oversimplify certain aspects by not recognizing the interdependencies between categories, possibly leading to oversight if not considered holistically in design .
Using a hierarchical structure in models like McCall’s and Boehm’s provides a clear framework to break down high-level software quality concerns into more manageable attributes, fostering a deeper analysis and understanding. This structure allows for a detailed exposition of how higher-level factors such as reliability and efficiency are supported by specific attributes, improving the traceability of quality issues. However, it can also lead to complexity, as the interdependencies among levels can complicate implementation and evaluation, potentially requiring significant expertise to navigate effectively. Despite these challenges, such a structure facilitates a comprehensive assessment, providing a complete perspective on how each facet contributes to the overall quality .
While both McCall's and Boehm's Models aim to evaluate software quality, they differ in their structural approach and emphasis on certain attributes. McCall’s Model primarily focuses on product revision, product operation, and product transition, emphasizing maintainability, correctness, and portability as key indicators of quality. In contrast, Boehm’s Model expands on these by offering a more detailed breakdown into attributes such as reliability, human engineering, and efficiency. Both models share similarities in using hierarchical structures to illustrate quality attributes and emphasize the importance of maintaining software quality through various factors like maintainability and portability .
ISO 9126-1 may be criticized for its complexity, as it categorizes quality attributes into internal, external, and quality-in-use categories, which might not be as straightforward compared to the simplicity of FURPS's division between functional and non-functional requirements. Moreover, ISO 9126-1 relies heavily on quantitative assessment, which can be resource-intensive and complicated in implementation, potentially limiting its practicality for smaller projects. Unlike FURPS’s clearer emphasis on differentiating between usability and performance as distinct categories, ISO 9126-1 has overlapping categories that might cause confusion in implementation .
In ISO 9126-1, 'functional compliance' is treated as a subset of functionality, focusing on how well a software meets predefined specifications and standards without execution. In the FURPS model, functionality is part of the functional requirements, but it also relates to the effectiveness of inputs and outputs, security, and general feature set capability. While both models regard compliance broadly, ISO 9126-1 emphasizes it as a criterion met during execution, whereas FURPS incorporates it into a broader context of functional capability tied heavily with user requirements and performance expectations .
FURPS structures performance as a discrete category focused on speed, efficiency, resource consumption, throughput, and scalability, offering a direct perspective on resource-focused metrics. It includes not just efficiency but also relies heavily on capacity and scalability as critical indicators of performance. On the other hand, ISO 9126-1 considers performance efficiency as the primary indicator, focusing more specifically on resource utilization under certain operations, such as disk space and memory, which provide a narrower scope. This structured difference indicates FURPS's broader inclusion of resource and performance dynamics versus ISO's targeted efficiency assessment .
ISO 9126-1 addresses reliability through categories such as maturity, fault tolerance, and recoverability, which focus on the software's capability to perform under various conditions without failure. This model emphasizes robustness and the software’s ability to recover from failures, with explicit reliability compliance. In contrast, FURPS considers reliability regarding the frequency and severity of failures, time between failures, and stability, emphasizing predictability and error frequency. The emphasis in FURPS is on understanding and improving the system's durability and resilience, providing a broader view than ISO’s compliance-centric approach .