System quality attributes

30 min 5 outcomes Interactive risk matrix + drag challenge 5 standards cited

Here is the position this module defends: security is not a plea that overrides every other concern. It is one of eight quality characteristics that ISO/IEC 25010:2023 says a system must balance, and every control you add buys protection at a price paid somewhere else, in latency, sign-in friction, storage or the speed of change. Professional practice is not pretending that price away. It is naming the trade-off, writing the decision down with an owner and a review date, wiring automated checks into the delivery pipeline so the property survives next month's release, and pricing the protection you have deferred so a board can decide whether to keep carrying it.

By the end of this module you will be able to:

  • Locate security within the ISO 25010:2023 system quality model and distinguish it from related quality characteristics
  • Conduct a structured trade-off analysis between security, usability, and performance requirements
  • Apply the concept of architectural fitness functions to define measurable security quality gates
  • Quantify and communicate security debt to non-technical stakeholders
  • Record a security trade-off as a decision with named options, an evaluation metric, an owner and a review date

NHS COVID-19 app: a trade-off written down before anyone knew the answer

In May 2020, NCSC published the privacy and security design for the contact tracing app then being built by NHSX. That app used a centralised matching model: proximity data was uploaded to a server, and the server decided who should be notified. The alternative was to match on the user's own device, keeping the proximity data there.

What makes the paper worth reading is what it declines to do. It states that it “does not make a case for either a centralised or decentralised matching model”, and then documents three consequences the team believed a decentralised model would have in the UK: notifications would have to be tied to an authenticated clinical test, symptom reporting would be slower, and tracing would show the risk to a person from their own exposures but not the risk from an infectious person to others. It closes by handing the judgement over, saying it is for health professionals to decide the likely impact of those changes.

No figure is attached to any of the three. That is the honest form of a trade-off record when the evidence is qualitative: name the options, name the consequences you can identify, say plainly which ones you cannot size, and name who decides rather than deciding for them. The app that launched in September 2020 used Apple and Google's exposure notification system instead, which is what a written decision allows: it can be revisited, because the reasoning is on the record. Hold onto that shape; by the end of the module you will be able to produce it for any control you propose.

When the consequences of the rejected option cannot be measured, what does an honest trade-off record look like?

1. Security as a quality characteristic in ISO 25010:2023

The previous module put privacy and auditability on a legal footing: the UK GDPR's seven principles, the Data (Use and Access) Act 2025 and the Computer Misuse Act 1990. This module widens the same move from the legal frame to the engineering one, because the properties a regulator demands are, to an architect, quality characteristics to be specified and measured. ISO/IEC 25010:2023 (the SQuaRE system and software quality model) defines eight top-level product quality characteristics: Functional Suitability, Performance Efficiency, Compatibility, Interaction Capability, Reliability, Security, Maintainability, and Flexibility. Security sits in that list as a peer, not as a separate compliance exercise, and it decomposes into five sub-characteristics:

  • Confidentiality: data is accessible only to authorised entities.
  • Integrity: the system prevents unauthorised access to or modification of data.
  • Non-repudiation: actions can be proven to have taken place.
  • Accountability: actions can be traced uniquely to the entity that performed them.
  • Authenticity: the identity of a subject can be proven to be the one claimed.

Two of these should feel familiar. Confidentiality and integrity are two thirds of the from the foundations stage, and the third leg has not disappeared: ISO 25010 files availability under Reliability, as the question of whether the system is operational and accessible when required. The remaining three sub-characteristics extend the triad into questions of proof: can an action be denied later, can it be traced to exactly one actor, and is that actor who they claim to be. The decomposition is what makes security testable, because each sub-characteristic can carry its own measures and its own acceptance criteria instead of one vague demand to be secure.

Treating security as a quality characteristic has practical consequences. Security requirements are managed with the same requirements engineering practices as functional requirements; security quality is measured and tracked alongside reliability and performance; and a security regression triggers the same response as a performance regression, not a quieter one. The secure software development lifecycle module closed by writing security requirements as ; the quality model is where those requirements get their vocabulary. A poor NFR: "The system must be secure." A well-formed NFR names the sub-characteristic, the measure and the verification: "All customer payment data transmitted between the client application and the backend API must be encrypted using 1.2 or higher. Connections on TLS 1.1 or below must be rejected. Compliance is verified by automated test TC-TLS-001, which connects to all production API endpoints using a TLS 1.1 client and confirms a connection failure." That requirement is Confidentiality made checkable, and the figure below places it in the model it came from.

Security is a quality characteristic of a system or software product that encompasses the degree to which the product or system protects information and data so that persons or other products or systems have the degree of data access appropriate to their types and levels of authorisation.

ISO/IEC 25010:2023, Section 4.2.6: Security

The definition ties security to appropriate degrees of access rather than to any particular technology, which is what lets it be specified, measured and traded off like any other quality characteristic.

2. Trade-off analysis: naming the cost of every control

Because security is one characteristic among eight, it competes for the same design budget as the other seven, and the competition is structural rather than accidental. A control that strengthens one sub-characteristic almost always spends from another characteristic's account. The professional response is documented trade-off analysis: state which characteristics are in tension, measure what each option costs, and decide on the record. The failure mode is silent de-prioritisation, where one characteristic quietly loses without anyone having agreed that it should.

Security versus Interaction Capability (usability): increases Authenticity but adds login friction, and friction is not a soft cost: users who find the front door painful build side doors, sharing accounts or pushing work to unmanaged tools. The resolution is rarely to abandon the control. Contextual MFA prompts only on new devices or unusual locations; built on FIDO2 and WebAuthn remove both the password and the one-time-code friction at the same time as strengthening Authenticity; and user research finds the friction level at which adoption materially drops, so the trade-off is measured rather than guessed.

Security versus Performance Efficiency: full-disk encryption, field-level encryption, and certificate verification all add measurable latency. The disciplined pattern is to measure a performance baseline before and after the control, prefer efficient implementations (AES-GCM with hardware acceleration, TLS session resumption), and agree an explicit latency budget for security overhead so that "too slow" is a number, not a mood.

Security versus Maintainability: the least discussed tension. Every additional control is also code and configuration that future engineers must understand: a finely segmented network is harder to change, a bespoke cryptography wrapper is harder to upgrade, and an access model with hundreds of roles invites misconfiguration. None of this argues against the controls. It argues for costing them honestly, because a control nobody can safely modify becomes next year's vulnerability. The opening story is what honest costing looks like at national scale: the NHS app design set out the consequences it could identify for the option it did not take, said which of them it could not size, and named who should weigh them. The decision can still be read years later precisely because the reasoning was written down, not because it was free.

Common misconception

Adding security controls to a system never negatively affects its other quality attributes.

Every security control carries costs in at least one other quality dimension. Encryption adds CPU overhead (performance trade-off). Input validation adds processing latency (performance and usability). Strict authentication requirements reduce user accessibility (usability trade-off). Detailed audit logging increases storage requirements (efficiency trade-off). The goal is not to minimise security controls but to make explicit, documented decisions about which trade-offs are acceptable given the system's risk profile. A system that is maximally secure but unusable fails on a different quality dimension. Architectural decisions must document these trade-offs.

3. Architectural fitness functions: quality gates that keep running

A documented trade-off is a snapshot, and systems do not hold still for snapshots. Dependencies update, engineers join and leave, a hotfix bypasses the agreed pattern, and eighteen months later the property everyone decided to protect has quietly eroded. The discipline that keeps a decided quality property true over time is the architectural , a term from Ford, Parsons and Kua's "Building Evolutionary Architectures" (O'Reilly, 2017): an objective, automated measurement of an architectural characteristic, run continuously in the pipeline rather than checked once at a design review.

Concrete security fitness functions look like this. A Trufflehog scan on every pull request fails if a secret pattern is detected, enforcing that no credentials live in source code. A Trivy scan fails the build on any CRITICAL CVE, so no vulnerable container image is promoted. The TC-TLS-001 test from section 1 runs against every production endpoint and fails if a TLS 1.1 client can connect, keeping the Confidentiality NFR true after every deployment. A performance test blocks release if p99 latency under security controls exceeds the 200ms budget, which protects the other side of the section 2 trade-off: the latency budget the business agreed to spend on security is also a ceiling. And a build step that publishes a current and fails if any component appears in the CISA catalogue turns the prioritisation logic from the vulnerability management module into an enforced property of every release.

The design choice that decides whether any of this works is blocking versus warning. A fitness function that only raises a warning records decay; one that fails the build prevents it. Warnings accumulate, become wallpaper, and train teams to ignore the channel that was meant to protect the property. Exceptions will still be needed, because real delivery sometimes has to ship with a known gap. The professional form of an exception is a time-boxed waiver with a named owner and an expiry date, the same shape as the patching SLAs from the vulnerability management module, so that an exception left to rot shows up as overdue rather than passing as normal. Seen this way, fitness functions are how the secure development lifecycle's gates survive contact with delivery pressure: the gate is not a meeting, it is a test that runs whether or not anyone remembers to hold the meeting.

4. Security debt: measuring what you have chosen not to fix

Fitness functions stop new erosion, but every real organisation already carries a stock of known weaknesses from before the gates existed. is that stock: the accumulation of known security deficiencies not yet remediated, whether by explicit decision or by drift. It includes patches deferred beyond their SLA, controls omitted during development, threat models that no longer match the system they describe, and compliance gaps documented but unclosed. The borrowing metaphor is earned, because the debt accrues interest: the longer a weakness stands, the more attacker tooling learns to find it and the more systems grow to depend on the weak component.

The canonical compounding failure is Equifax in 2017. The vulnerability that opened the breach, in the Apache Struts web framework, had a patch available for roughly two months before the intrusion began: the flaw was known, catalogued and fixable, which is exactly what makes it debt rather than surprise. The unpaid debt compounded into the exposure of personal data on around 147 million people, and in 2023 the UK Financial Conduct Authority fined Equifax Ltd £11 million over the failures affecting UK consumers' data caught up in the breach. Every step of that sequence was a known deficiency ageing past the date someone should have acted on it.

Debt you cannot count, you cannot manage, so measurement comes first:

  1. Inventory: enumerate all open findings from , , penetration tests, vulnerability scans, and compliance assessments.
  2. Score: assign severity and a remediation cost estimate to each item.
  3. Age: calculate days overdue beyond the defined SLA per severity tier.
  4. Aggregate: total security debt = sum of (overdue items × severity weight × remediation cost estimate).
  5. Trend: is the debt increasing or decreasing, and at what rate?

Weight the inventory by exploitation evidence, not severity labels alone: a MEDIUM finding on the KEV catalogue outranks a HIGH that nobody is exploiting, which is the -plus- discipline the vulnerability management module built. Then translate for the audience that funds remediation. For a board: "We have three unmitigated CRITICAL vulnerabilities in our payments API. If exploited, they could expose all customer payment records, with ICO fine exposure of up to 4% of global annual turnover and reputational impact comparable to the British Airways £20 million fine." Compare remediation cost to breach cost: "Fixing these three issues requires approximately 15 engineering days. A breach at our scale would likely cost £2 to 10 million in fines, incident response, customer notification, and reputational impact." The trend line matters as much as the total: a debt number falling quarter on quarter is a system under control, while a rising trend under flat headcount is a request for funding expressed in data.

Common misconception

Presenting CVE counts and CVSS severity labels to the board communicates security risk effectively.

Boards make resource allocation decisions based on business risk, not technical metrics. A dashboard showing '142 HIGH findings' does not communicate urgency to a non-technical audience. CTOs and board members are not equipped to interpret a CVSS score or CWE category. Translate security debt into: what data is at risk, which regulations would be violated in a breach, and what the financial exposure is. The British Airways £20 million ICO fine provides a concrete UK benchmark. Compare the cost of remediation to a realistic breach cost estimate to enable a funding decision.

5. NIST CSF 2.0: where quality meets governance

Everything so far happens inside engineering: quality models, trade-off analyses, pipelines, debt registers. For any of it to hold, someone above the engineering organisation has to own the balance, and that is the change the current framework revision made explicit. 2.0 (published 2024) adds a sixth function to the original five: Govern (GV) for cybersecurity risk strategy, roles, and policy; Identify (ID) for asset management and risk assessment; Protect (PR) for access control and data security; Detect (DE) for monitoring and anomaly detection; Respond (RS) for incident response; and Recover (RC) for recovery planning. The Govern function recognises that security is a governance and quality concern, not only a technical one, which aligns it with ISO 25010:2023's framing of security as a characteristic to be balanced rather than a department to be consulted.

Govern is also where the board's becomes engineering's targets. An appetite statement such as "no internet-facing service carries a known exploited vulnerability for more than 14 days" descends through Identify and Protect as patching SLAs, becomes a blocking fitness function in the pipeline, and reports back upward as the security debt trend from section 4. That loop, appetite flowing down and measurement flowing up, is what the figure below draws with Govern at the hub of the other five functions. When the loop is missing, the symptoms are familiar: engineers guessing what level of protection the business wants, and boards discovering their real risk position only after an incident.

The last piece is the record. A security trade-off decision worth making is worth writing down with five fields: the options considered, the metric used to evaluate them, the decision taken, the named owner, and the review date. "We chose performance" is not a decision record; it is a missing one. The review date is the field teams most often omit and most often regret, because a trade-off that was correct at design time decays as attacker capability, system load and regulation change. The NHS app team's published review is the pattern scaled up to national visibility; a two-page record in the repository is the same pattern at everyday scale, and it is what turns this module's analysis into something an auditor, a successor or a regulator can follow years later.

Loading interactive component...
Loading interactive component...
Check your understanding

A payments platform feature requires 200 database calls per API request. The security architect recommends field-level encryption for all PII in the database, adding 180ms per call. At 200 calls per request, this adds 36 seconds to response time, making the API unusable. Which ISO 25010:2023 quality trade-off is in play, and what is a principled resolution?

A CISO presents to the board: 87 CRITICAL and HIGH open vulnerabilities; mean time to remediate of 42 days against a 14-day SLA for CRITICAL; three systems on the CISA KEV catalogue still unpatched. How should this be framed as security debt for a board audience that must make a funding decision?

A financial services firm is designing a real-time payment processing API that must: (1) process transactions with under 200ms end-to-end latency at 99th percentile; (2) comply with PCI DSS requiring encryption of all cardholder data in transit and at rest; (3) provide complete audit trails for fraud investigation. The security architect proposes full-payload encryption with AES-256-GCM plus SHA-256 HMAC integrity verification, logging every request and response body. A performance test shows this exceeds the 200ms SLA at P99. Which quality attribute trade-off analysis should guide the resolution?

Loading interactive component...
Loading interactive component...

Core distinctions

  • ISO 25010:2023 positions security as one of eight product quality characteristics. Its five sub-characteristics (Confidentiality, Integrity, Non-repudiation, Accountability, Authenticity) provide a vocabulary for writing precise, verifiable security NFRs.
  • Security NFRs must be specific, testable, and automated. 'The system must be secure' is not an NFR; 'all API endpoints must reject TLS 1.1 connections, verified by automated test TC-TLS-001' is.
  • Quality trade-offs between security and usability, performance or maintainability are inevitable. They must be documented explicitly: options considered, metrics used to evaluate, decision made, and who made it.
  • Architectural fitness functions automate security quality validation as part of the CI/CD pipeline. They enforce quality properties continuously rather than episodically. A fitness function generating warnings rather than failures does not enforce the property; exceptions take the form of time-boxed waivers with named owners.
  • Security debt must be translated into business risk language for board audiences. CVE counts are not decision-enabling for non-technical stakeholders; financial exposure estimates, regulatory fine benchmarks and the debt trend line are.
  • NIST CSF 2.0's Govern function closes the loop: board risk appetite descends as measurable targets and SLAs, fitness functions enforce them in the pipeline, and the security debt trend reports the true position back up.

You now hold the full quality-attribute toolkit: the ISO 25010:2023 vocabulary, trade-off analysis, fitness functions that keep decisions true, and debt language that prices what remains. The next module is the practice-strategy capstone: one scenario, MedCore Health Systems, that asks you to threat model an IoT pipeline, design zero trust and SDL gates, manage supply chain and incident response, and take regulation, resilience and a ransom decision to the board. The trade-off discipline you rehearsed here is the connective tissue running through every part of it.

Standards and sources cited in this module

  1. ISO/IEC 25010:2023: Systems and Software Quality Requirements and Evaluation (SQuaRE)

    Eight product quality characteristics including Security (Section 4.2.6) with five sub-characteristics and their definitions.

  2. ISO/IEC 25019:2023: Quality Measurement

    Measurement of security quality sub-characteristics for quantitative evaluation.

  3. NIST CSF 2.0 (2024)

    Six-function cybersecurity framework including the new Govern (GV) function for security strategy and policy.

  4. Ford, Parsons, Kua: Building Evolutionary Architectures (O'Reilly, 2017)

    Chapter 2: Architectural fitness functions concept and implementation examples for continuous quality validation.

  5. NCSC, High level privacy and security design for NHS COVID-19 Contact Tracing App (May 2020)

    Explains the centralised design NHSX adopted, declines to argue for either matching model, and lists three qualitative impacts a decentralised model would have on the UK health response.

  6. DHSC, NHS COVID-19 app launches across England and Wales (24 September 2020)

    The launch announcement for the released app, carrying Apple and Google's joint statement on the exposure notification system it was built on.