Leer en español · Lire en français · Auf Deutsch lesen
Section 2.2 of 2.8 · Intermediate · 18 min read
The quality models: ISO/IEC 25010 and how to use it
Video lesson
4 min · narrated, with captionsListen only (audio)
Read the transcript
In the last lesson you saw that quality attributes decide most of an architecture. The obvious next question is: which qualities? This lesson introduces quality models, the main international standard, and how to use it without drowning in paperwork.
When you buy a used car, a good checklist stops you forgetting things: the engine, the brakes, the tyres, rust, the paperwork and fuel use. You don't need every item to be perfect. But you want to have looked at each one, and decided whether it matters to you. A quality model is that checklist for software.
Left to themselves, stakeholders mention the two or three qualities that hurt them last, usually speed and uptime. A quality model is a structured list of quality characteristics, each broken into narrower sub-characteristics. It does two jobs. It gives people a shared vocabulary, so reliability means the same thing to everyone. And it acts as a checklist, prompting you to consider qualities nobody has raised yet. It's a map of the territory, not a route through it.
The most widely referenced model is the international standard ISO/IEC 25010. Its second edition, published in twenty twenty three, defines product quality. It has nine characteristics. Functional suitability asks whether the system does the right things correctly. The other eight describe how well it does them, and how well it can be operated, protected and changed. Three characteristics changed from the twenty eleven edition. Usability was renamed interaction capability, with a new focus on inclusivity for people of different ages and abilities. Portability became flexibility, which now includes scalability: the ability to cope with changing load. And safety was added, because so much software now controls physical things, from cars to medical devices. When a contract mentions this standard, check which edition it means.
You'll meet other lists too. FURPS plus groups requirements into functionality, usability, reliability, performance and supportability, and adds constraints. It's brief, but supportability lumps a lot together. The book Software Architecture in Practice covers the qualities that most often drive architectures, with tactics for each, which makes it especially useful to architects. And the open Q42 model, kept alongside the arc42 template, tags well over a hundred named qualities. These lists overlap heavily. There's no single correct way to break down quality, only more or less useful ones for a purpose.
The great risk is that a model becomes a form, full of statements like the system shall be maintainable, that nobody reads and nobody tests. Instead, walk through the characteristics with stakeholders once, in about an hour. Mark each one high, medium, low or not applicable, and record a sentence of rationale. Writing not applicable is useful, because it records a decision. For the high ones only, look at the sub-characteristics to find the precise concern, such as recoverability rather than reliability in general. Then turn each concern into a measurable scenario, rank them, and put the model away until the next review.
Let's apply this to a bank's mobile app with one point two million users. On payday evening, about twenty five per cent log in within two hours. That's three hundred thousand log-ins, or about forty two a second. Allowing three times that for bursts gives about a hundred and twenty five a second. So performance is rated high, with a scenario: at that rate, balances appear within two seconds for ninety five per cent of users on a 4G connection. Security is high too. The sub-characteristics make it precise: prove which customer approved each payment, and resist credential-stuffing attacks without locking out genuine users. Safety is marked not applicable, because the app can't cause physical harm. That's a decision, not an omission. In one hour, the team rates five characteristics high, three medium and one not applicable, and writes eleven scenarios, each with a number.
The full section lists every sub-characteristic, compares the two editions and has the complete banking example. Next, in Section two point three, you'll learn to write quality attribute scenarios that can be tested. See you there.
What you need to know
- A quality model gives a shared vocabulary of quality characteristics and sub-characteristics and works as a checklist for finding the qualities that matter.
- ISO/IEC 25010:2023 defines nine product characteristics: functional suitability, performance efficiency, compatibility, interaction capability, reliability, security, maintainability, flexibility and safety.
- Compared with 2011, usability became interaction capability, portability became flexibility, safety was added, and quality in use moved to a separate standard, ISO/IEC 25019:2023.
- Other lists such as FURPS+, the qualities in Software Architecture in Practice and Q42 overlap heavily with ISO/IEC 25010; none is uniquely correct.
- Use a model to prompt a quick, explicit decision about each characteristic, then turn only the relevant ones into a few measurable, prioritised scenarios.
What a quality model is for
Section 2.1 argued that quality attributes decide most of an architecture. The obvious next question is: which qualities? Left to themselves, stakeholders mention the two or three that hurt them last, usually speed and uptime, and forget the rest until it is too late. A quality model is a structured list of quality characteristics, each broken into narrower sub-characteristics, with agreed names and definitions. It does two jobs. It gives people a shared vocabulary, so that 'reliability' means the same thing to the product owner, the tester and the supplier. And it acts as a checklist, prompting you to consider qualities that nobody has raised yet.
A model does not tell you which qualities matter for your system or how much of each you need. That comes from stakeholders and business goals (Section 2.8). Nor does it tell you how to achieve them; that is the job of tactics, patterns and the rest of this course. It is a map of the territory, not a route through it.
ISO/IEC 25010:2023: the product quality model
The most widely referenced model is ISO/IEC 25010, part of the SQuaRE family of standards (Systems and software Quality Requirements and Evaluation). The second edition, published in November 2023, defines a product quality model of nine characteristics. It applies to software products and to wider ICT products, and the standard lists its uses: specifying requirements, checking that requirements are complete, setting design and test objectives, defining acceptance criteria and establishing quality measures. Related standards in the family define how to measure each sub-characteristic (ISO/IEC 25023) and how to evaluate a product.
The nine characteristics are functional suitability, performance efficiency, compatibility, interaction capability, reliability, security, maintainability, flexibility and safety. The first describes whether the system does the right things correctly; the other eight describe how well it does them and how well it can be operated, protected and changed. The diagram below shows the structure; the table after it lists every sub-characteristic with an example question an architect might ask.
The nine characteristics
Characteristics, sub-characteristics and an example question for a mobile banking app
| Characteristic | Sub-characteristics | Example question |
|---|---|---|
| Functional suitability | Functional completeness, functional correctness, functional appropriateness | Does the app calculate the loan repayment correctly, and does it do everything the customer needs to complete the task? |
| Performance efficiency | Time behaviour, resource utilisation, capacity | How quickly does the balance appear on a mid-range phone over 4G, and how many concurrent users can the back end serve? |
| Compatibility | Co-existence, interoperability | Can the app exchange payment data with the national faster-payments scheme, and run alongside other apps without draining shared resources? |
| Interaction capability (formerly usability) | Appropriateness recognisability, learnability, operability, user error protection, user engagement, inclusivity, user assistance, self-descriptiveness | Can a first-time user set up a standing order without help, and can a screen-reader user do the same? |
| Reliability | Faultlessness, availability, fault tolerance, recoverability | If the card-processing partner is down, can customers still see balances and move money between their own accounts? |
| Security | Confidentiality, integrity, non-repudiation, accountability, authenticity, resistance | Can we prove which customer authorised a transfer, and does the app resist credential-stuffing attacks? |
| Maintainability | Modularity, reusability, analysability, modifiability, testability | How long does it take to add a new account type, and can the transfer rules be tested without a real bank core? |
| Flexibility (formerly portability) | Adaptability, scalability, installability, replaceability | Can the back end grow from 1 to 5 million customers, and could we replace the push-notification provider within a quarter? |
| Safety | Operational constraint, risk identification, fail safe, hazard warning, safe integration | Mostly relevant to systems that can harm people, property or the environment: an infusion pump, a train controller, an industrial robot. |
A few definitions are worth knowing precisely, because they differ from everyday usage. In ISO/IEC 25010, availability is a sub-characteristic of reliability: the degree to which a system is operational and accessible when required. Faultlessness is the degree to which a system performs its functions without fault under normal operation. Capacity, under performance efficiency, is the maximum limit of a parameter, such as concurrent users or transactions per second, that still meets requirements. Scalability sits under flexibility, which reflects a view of scaling as the ability to adapt to changing load rather than a matter of raw speed. Resistance, new under security, is the capability to sustain operations while under attack. Sections 2.4 to 2.7 return to these qualities in depth; Section 2.5 shows how to calculate availability.
What changed from the 2011 edition
The first edition, ISO/IEC 25010:2011, replaced the older ISO/IEC 9126 model and became the standard reference for a decade. Many textbooks, tender documents and templates still use its eight characteristics, so it is worth knowing what moved.
ISO/IEC 25010: 2011 compared with 2023
| Topic | 2011 edition | 2023 edition |
|---|---|---|
| Number of characteristics | Eight | Nine |
| Usability | Usability, including user interface aesthetics and accessibility | Renamed interaction capability; aesthetics replaced by user engagement; accessibility split into inclusivity and user assistance; self-descriptiveness added |
| Portability | Portability: adaptability, installability, replaceability | Renamed flexibility; scalability added as a sub-characteristic |
| Reliability | Maturity, availability, fault tolerance, recoverability | Maturity replaced by faultlessness |
| Security | Confidentiality, integrity, non-repudiation, accountability, authenticity | Resistance added (withstanding attack) |
| Safety | Treated only within quality in use (freedom from risk) | New product characteristic with five sub-characteristics |
| Quality in use | Part of ISO/IEC 25010 (effectiveness, efficiency, satisfaction, freedom from risk, context coverage) | Moved to a separate standard, ISO/IEC 25019:2023 (beneficialness, freedom from risk, acceptability) |
The renamings are more than cosmetic. 'Interaction capability' widens the focus from ease of use to the whole exchange of information between users and the product across different contexts of use, and the new inclusivity sub-characteristic places accessibility for people of different ages and abilities at the centre rather than the edge. 'Flexibility' groups the qualities that let a product cope with change in its environment: new platforms, new installation targets, and more or less load. Adding safety as a product characteristic reflects how much software now controls physical things, from cars to medical devices.
The second structural change is that quality in use, the quality experienced by people using the product in a real context, now lives in its own standard, ISO/IEC 25019:2023. Its three characteristics are beneficialness (usability, accessibility and suitability in use), freedom from risk (economic, health, human life, and environmental and societal risk) and acceptability (experience, trustworthiness and compliance). The split clarifies a useful distinction for architects: product quality is what you build and can test in the product; quality in use is the outcome for real people, which also depends on training, context and how the product is deployed.
Other lists you will meet
ISO/IEC 25010 is not the only taxonomy, and practitioners often use simpler or differently cut lists. FURPS+ grew out of FURPS, a classification developed at Hewlett-Packard and set out by Robert Grady and Deborah Caswell in Software Metrics: Establishing a Company-Wide Program (1987). FURPS groups requirements into functionality, usability, reliability, performance and supportability; the later '+' extension adds constraints: design, implementation, interface and physical constraints and, in some versions, business rules. FURPS+ became popular through the Rational Unified Process and its successors. Its strength is brevity; its weakness is that 'supportability' lumps together maintainability, testability, configurability, installability and localisation.
Bass, Clements and Kazman, in the fourth edition of Software Architecture in Practice (2021), do not try to be exhaustive. They devote a chapter each to the qualities that most often drive architectures: availability, deployability, energy efficiency, integrability, modifiability, performance, safety, security, testability and usability, followed by a chapter on working with other qualities. For each, they give a general scenario and a catalogue of tactics. Their list is organised around design rather than evaluation, which makes it especially useful to architects.
Mark Richards and Neal Ford, in Fundamentals of Software Architecture, use the term architecture characteristics and sort them into groups such as operational (availability, performance, scalability), structural (modifiability, extensibility, portability) and cross-cutting (security, accessibility, legal) groups. Gernot Starke's open Q42 model, maintained alongside the arc42 template, takes yet another approach: it tags well over a hundred named qualities with nine dimensions (efficient, flexible, maintainable, operable, reliable, safe, secure, suitable, usable) and provides example requirements for each.
These lists disagree in detail but overlap heavily. The disagreement is itself instructive: there is no single correct decomposition of 'quality', only more or less useful ones for a purpose. Using a standard model helps when you need to communicate with procurement, auditors or other organisations; a lighter list may serve a product team better day to day.
Using a model as a checklist without creating bureaucracy
The great risk of a quality model is that it becomes a form. A requirements template with a heading for each of the 40 sub-characteristics invites people to fill every box, and the result is a document full of statements such as 'the system shall be maintainable' that nobody reads and nobody tests. Effort spreads evenly across qualities that matter very unevenly, and the two or three qualities that will really decide the architecture are lost among the rest.
A better approach treats the model as a prompt for a conversation. Walk through the characteristics with stakeholders once, quickly, asking for each: does this matter for our system, and if so, what would failure look like? Discard the irrelevant ones explicitly (writing 'safety: not applicable, the app cannot cause physical harm' is useful, because it records a decision). Turn the relevant ones into a small number of concrete, measurable scenarios (Section 2.3). Rank them (Section 2.8). Then put the model away until the next review.
A lightweight way to apply the model
- Walk the nine characteristicsIn a one-hour session, read each characteristic aloud and ask stakeholders whether it matters. Note who cares and why.
- Mark relevanceLabel each characteristic high, medium, low or not applicable, and record a sentence of rationale for each decision.
- Drill into the high onesFor high-relevance characteristics only, look at the sub-characteristics to find the precise concern, such as recoverability rather than reliability in general.
- Write scenariosExpress each precise concern as one or two measurable scenarios with a stimulus, context and response measure.
- Prioritise and linkRank the scenarios and link each to the design decisions it drives, so the list stays short and alive.
Worked example
Worked example: applying ISO/IEC 25010 to a mobile banking app
A mid-sized bank is replacing its mobile app and its back end. It has 1.2 million active app users; on the evening of payday about 25% of them log in between 18:00 and 20:00. The team walks the nine characteristics in an hour and records the outcome.
| Peak load estimate | 1,200,000 × 25% = 300,000 log-ins in 2 hours = 300,000 ÷ 7,200 s ≈ 42 log-ins per second on average; allow 3× for bursts ≈ 125 per second |
|---|---|
| Functional suitability: high | Interest, fees and balances must be correct to the penny. Scenario: every displayed balance reconciles with the core ledger within 5 seconds of a posted transaction. |
| Performance efficiency: high | Scenario: at 125 log-ins per second, the home screen with balances renders within 2 seconds for 95% of users on a 4G connection. Battery and data use on the phone also matter (resource utilisation). |
| Compatibility: medium | Must interoperate with the national faster-payments scheme and the open-banking APIs that regulation requires; must run on the two latest major versions of both mobile operating systems. |
| Interaction capability: high | Inclusivity and user error protection matter most. Scenario: a screen-reader user can complete a payment to a new payee without sighted help; the app warns before a payment to a payee name that does not match the account. |
| Reliability: high | Recoverability and fault tolerance. Scenario: if the card platform fails, balances and transfers between own accounts keep working; full service is restored within 30 minutes. |
| Security: high | Authenticity, non-repudiation and resistance. Scenario: every payment is authorised with strong customer authentication and recorded so that the bank can prove who approved it; 10,000 credential-stuffing attempts per minute are throttled without locking out genuine users. |
| Maintainability: medium | Modifiability and testability. Scenario: a new savings product can be launched in under 6 weeks without changing the payments component. |
| Flexibility: medium | Scalability. Scenario: the back end can grow to 3 million users by adding instances, with no redesign. |
| Safety: not applicable | The app cannot cause physical harm; risks to money are covered under security and reliability. Recorded explicitly so the decision is visible. |
| Outcome | Five characteristics rated high, three medium, one not applicable. Eleven scenarios in total, each with a number. The top three (security, reliability, performance at payday peak) become the quality goals on the first page of the architecture document. |
The arithmetic converts 'lots of users on payday' into a design figure (about 125 log-ins per second at burst) that can be tested.
Sub-characteristics did their job: 'security' became authenticity, non-repudiation and resistance, each of which suggests different mechanisms.
Marking safety as not applicable is a decision, not an omission. If the bank later adds a feature that could cause harm, the record shows it needs revisiting.
Questions people ask
Do I have to cite ISO/IEC 25010 to do architecture properly?
No. It is valuable as shared vocabulary and as a checklist, and essential when contracts or regulators reference it. Many excellent teams use a lighter list. What matters is that the important qualities are identified, made measurable and prioritised.
Where does scalability belong: performance or flexibility?
In ISO/IEC 25010:2023 it is a sub-characteristic of flexibility, while capacity sits under performance efficiency. In practice the two are closely linked, and Section 2.4 treats them together. Do not let classification arguments delay writing the scenario.
Is 'observability' in the model?
Not by that name. Parts of it map to analysability (maintainability) and accountability (security). Many practitioners now treat it as a quality in its own right; Section 2.7 discusses it.
Check your understanding
What were usability and portability renamed to in ISO/IEC 25010:2023?
Usability became interaction capability and portability became flexibility.
Under which characteristic does ISO/IEC 25010:2023 place availability?
Under reliability, alongside faultlessness, fault tolerance and recoverability.
Why is it useful to write 'not applicable' against a characteristic rather than leaving it blank?
It records a deliberate decision with its rationale, so reviewers can see it was considered and the decision can be revisited if the system changes.
What is the main danger of turning a quality model into a requirements template?
People fill every box with vague statements, effort spreads evenly over qualities of very unequal importance, and the few qualities that really decide the architecture get lost.
Sources and further reading
Have a question about this section? ArchitectBot, the course’s AI study assistant, answers from the course first.
Ask: “We have a 40-row non-functional requirements template from ISO 25010. How do I cut it down to something my team will actually use?”