Software Quality Factors

Balachandran Kumaran
6 min readJun 21, 2022

--

What is Quality Factors ?

Quality factors of software need to be considered. Thus developing software in light of quality factors is important. Firstly identify required quality factors then plan for each factor. These factors have significant effects on software quality.

Classifications of software requirements into software quality factors

McCall’s Quality Model

McCall software quality model was introduced in 1977. This model is integrated with many attributes, called software features, that influence the software. This model classifies all software requirements into 11 software quality factors. The 11 factors are organised into three product quality factors — product operation, product revision, and product transition factors.

The following are the product quality factors —

  • Product operation factors: Correctness, Reliability, Efficiency, Integrity, Usability.
  • Product revision factors: Maintainability, Flexibility, Testability.
  • Product transition factors: Portability, Reusability, Interoperability.
McCall’s Factor Tree Model

McCall’s Quality Factors Category: Product Operation Factors

1. Correctness.

The ability of software products to perform their exact tasks or behaviours as defined by their specification.

  • Examples: 1. Specifying accuracies for correct outputs. 2. Specifying the completeness of the outputs. 3. Specifying the timeliness of the output. 4. Specifying the standards.

2. Reliability.

Requirements deal with failures to provide service. They determine the maximum allowed software system failure rate and can refer to the entire system or to one or more of its separate functions.

  • Examples: A heart monitoring system have a failure rate less than one / million cases. Downtime for a system will not be more than ten minutes per month

3. Efficiency.

Efficiency requirements deal with the hardware resources needed to perform all the functions of the software system in conformance to all other. The main hardware resources to consider for computer processing capabilities(measured by MIPS instructions — million per second, etc.)

  • Here we consider MIPS, MHz (cycles per second)
  • Data storage capabilities measured in MB or TB, Communication lines (usually measured in KBPS, MBPS, or GBPS).

4. Integrity.

Deal with system security that prevent unauthorized person’s access.

  • Examples: Cyber Security, Internet security, network security etc.

5. Usability.

Usability requirements deal with the scope of staff resources needed to train new employees and to operate the software system.

  • Examples: Deals with learnability, utility, usability etc.
  • Example spec: A staff member should be able to easily perform one task.

McCall’s Quality Factors Category: Product Revision Factors

1. Maintainability.

The degree of effort deals with measure of how easily bug fixes or functional modifications can be accomplished with the modular structure of the software. Requirements for this feature refer to software design, internal program documentation, and editorial manual, among other things.

  • Example: Refactoring.
  • Maintenance activities: 1. Corrective maintenance. 2. Adaptive maintenance. 3. Perfective maintenance

2. Flexibility.

The capabilities and efforts required to support adaptive maintenance activities are covered by the flexibility requirements. These include the resources(i.e., in man-days) required to adapt a software package to a variety of customers of the same trade, of various extents of activities, of different ranges of products and so on. This factor’s requirements also support perfective maintenance activities.

  • It may also involve some minor overhaul so that it may be slightly improved for the sake of customers, perhaps a slightly more stable area.

3. Testability.

Deals with the testing of an information system as well as with its operation.

  • Are intermediate results of computations predefined to assist testing?
  • Are log files created?
  • Backup?
  • Example: Traceability

McCall’s Quality Factors Category: Product Transition Software Quality Factors

1. Portability.

If the software ported to different environments (different hardware, operating systems) and still maintain an existing environment, then portability is used.

2. Reusability.

Deals with the using existing software components in a different context.

  • Are we able to reuse parts of the app for new applications?
  • Can save massive development costs due to errors found / tested.

3. Interoperability.

Focus on creating interface with other existing systems. To which software components work together. Interoperability requirements can specify the name(s) of the software or firmware for which interface is required. They can also specify the output structure accepted as standard in a specific industry or applications area

  • Example: Firmware, Web portal

Alternatives

Some other SQA professionals have offered essentially renamed quality factors. One has offered 12 factors; another 15 factors. Totally five new factors were suggested

Evans and Marciniak offer two ‘new’ ones.

  • Verifiability
  • Expandability

Deutsch and Willis offer three ‘new’ ones.

  • Safety
  • Manageability
  • Survivability
McCall’s Factor Model and Alternative Models

Evans and Marciniak Alternatives

1. Verifiability Addresses design and programming features that allow for efficient verification of design and programming.

  • This does not refer to outputs, rather, structure of code, design elements and their dependencies, coupling, cohesion, patterns…

2. Expandability The implementation takes future growth into consideration, refers to scalability and extensibility to provide more usability.

  • McCall’s flexibility

Deutsch and Willis Alternatives

1. Safety. Meant to eliminate risky conditions because of errors in process control software, as in setting alarms or sounding warnings.

  • Especially important to process control / real time software such as that running conveyor belts or instrumentation for ordinance…

2. Manageability.Maintenance is similar to flexibility but focuses on bug fixes and minor modifications, not a large increase in performance.

3. Survivability.Is the ability to remain alive or continue to exist. Refer to MTBF(Mean time between failures), MTTR (Mean time to recover).

  • McCall’s Reliability.

Conclusion

Concluded that software quality features are critical to improving the overall quality of any software product. These features can be categorized into three main categories, each responsible for the other aspects of software competency and effectiveness. With all these factors in mind, we can evaluate the product quality of a software product and determine if it is in the best interests of the customer. In addition to opportunities to identify programs that need to be improved and, with the aim of increasing system efficiency, with a focus on all that contributes to raising the quality standard.

BY — Kumaran B.(CT/2017/033) Undergraduate University of Kelaniya Srilanka.

--

--