Monday, 16 November 2015

State and define McCall's quality factor? How is the quality of the software product find out using FURPS quality factor ?

McCall's Quality Model - 1977

Jim McCall produced this model for the US Air Force and the intention was to bridge the gap between users and developers. He tried to map the user view with the developer's priority.

McCall identified three main perspectives for characterizing the quality attributes of a software product.

These perspectives are:-
  1. Product revision (ability to change).
  2. Product transition (adaptability to new environments).
  3. Product operations (basic operational characteristics).


Product revision
The product revision perspective identifies quality factors that influence the ability to change the software product, these factors are:-
  • Maintainability, the ability to find and fix a defect.
  • Flexibility, the ability to make changes required as dictated by the business.
  • Testability, the ability to Validate the software requirements.


Product transition 
The product transition perspective identifies quality factors that influence the ability to adapt the software to new environments:-
  • Portability, the ability to transfer the software from one environment to another.
  • Reusability, the ease of using existing software components in a different context.
  • Interoperability, the extent, or ease, to which software components work together.


Product operations 
The product operations perspective identifies quality factors that influence the extent to which the software fulfils its specification:-
  • Correctness, the functionality matches the specification.
  • Reliability, the extent to which the system fails.
  • Efficiency, system resource (including cpu, disk, memory, network) usage.
  • Integrity, protection from unauthorized access.
  • Usability, ease of use.


In total McCall identified the 11 quality factors broken down by the 3 perspectives, as listed above.
For each quality factor McCall defined one or more quality criteria (a way of measurement), in this way an overall quality assessment could be made of a given software product by evaluating the criteria for each factor. 

For example the Maintainability quality factor would have criteria of simplicity, conciseness and modularity.

FURPS is an acronym representing a model for classifying software quality attributes (functional and non-functional requirements):
• Functionality : Feature set, Capabilities, Generality, Security
• Usability:  Human factors, Aesthetics, Consistency, Documentation
• Reliability:  Frequency/severity of failure, Recoverability, Predictability, Accuracy, Mean time to failure
• Performance:  Speed, Efficiency, Resource consumption, Throughput, Response time
• Supportability:  Testability, Extensibility, Adaptability, Maintainability, Compatibility, Configurability, Serviceability, Installability, Localizability, Portability

Hence, FURPS is a hierarchical definition model. The first four quality factors (FURP) are more aimed at the user and operator of the software, while the last quality factor (S) is more targeted at the developers, testers and maintainers. FURPS gives an alternative decomposition to the standard ISO/IEC 25010 which we will discuss in detail in Sect. 2.3. The main aim of FURPS is a decomposition and checklist for quality requirements. A software engineer can go through this list of quality factors and check with the stakeholders to define corresponding qualities. Therefore, it defines quality as basis for requirements. In addition, Grady and Caswell [77] describe various metrics that can be related to the quality factors for evaluating them. The main purpose of FURPS, however, is to define quality

1 comment: