Software Engineering Principles and Practices / Software Quality Assurance

Quality Models

πŸ—οΈ What is a Quality Model?

A Quality Model is a structured framework that breaks down the abstract idea of "good software" into measurable characteristics. It provides a common language πŸ—£οΈ for developers, testers, and stakeholders.


πŸ“œ McCall’s Quality Model (1977)

One of the pioneers, McCall focused on three "uses" or perspectives of a product:

  • Product Revision πŸ”§ (The Ability to Change): Maintainability, Flexibility, Testability.

  • Product Transition ✈️ (Adaptability): Portability, Reusability, Interoperability.

  • Product Operation βš™οΈ (Basic Functionality): Correctness, Reliability, Efficiency, Integrity, Usability.


πŸ›οΈ Boehm’s Quality Model (1978)

Barry Boehm expanded on McCall by adding a hierarchical structure that links high-level goals to measurable "primitive" parts.

  • High-level πŸ”: Utility, Maintainability, Portability.

  • Intermediate πŸ—οΈ: Reliability, Efficiency, Human Engineering, Testability, Understandability, Modifiability.

  • Primitive πŸ“ (The measurable bits): e.g., Device independence, Accuracy, Completeness.


🏹 FURPS / FURPS+ Model

Developed at HP, this model is the "gold standard" for separating Functional from Non-Functional requirements.

  • Functional: Features, capabilities, security. βœ…

  • Usability: Human factors, aesthetics, documentation. 🎨

  • Reliability: Frequency of failure, recoverability. βš“

  • Performance: Speed, efficiency, throughput. ⚑

  • Supportability: Testability, extensibility, serviceability. πŸ› οΈ

  • The "+" βž•: Includes extra constraints like Design, Implementation, Interface, and Physical requirements.


🌐 ISO/IEC 25010 (Modern Standard)

The current global heavyweight (replacing ISO 9126). It defines 8 characteristics:

  1. Functional Suitability: Does it do the job? 🎯

  2. Performance Efficiency: Is it fast and lean? πŸƒβ€β™‚οΈ

  3. Compatibility: Does it play well with others? 🀝

  4. Usability: Is it easy to learn? πŸ™‹β€β™‚οΈ

  5. Reliability: Is it stable under pressure? πŸ’Ž

  6. Security: Is the data safe? πŸ›‘οΈ

  7. Maintainability: Is it easy to fix/improve? πŸ”§

  8. Portability: Can it move environments easily? πŸ“±


πŸ“Š Comparison of Quality Models

Model

Primary Focus 🎯

Best Used For... πŸ› οΈ

McCall

Internal vs. External quality.

Legacy systems & general assessment.

Boehm

Detailed technical hierarchies.

Hardware/Software interaction.

FURPS+

Requirements engineering.

Defining Non-Functional Requirements (NFRs).

ISO 25010

Comprehensive standardization.

Professional & global industry standards.


πŸ’‘ The "So What?" (Why Use Them?)

Without a model, "Quality" is just a vibe. With a model, you get metrics. πŸ“

The Vibe: "The app should be fast." 😴

The Metric (ISO 25010): "The system must respond to search queries within 2 seconds for up to 1,000 concurrent users." πŸš€