Menu

Earn Premium with Referrals

Invite your friends and earn Premium rewards through our referral program.

See how it works and start inviting friends.

Software Quality Attributes
SDLC

Software Quality Attributes

What makes software 'good'? Learn about the McCall Quality Model and the attributes that define high-quality software.

Quality can’t be “tested in” at the end — it must be designed in from the start. Quality attributes (also called non-functional requirements or “ilities”) describe how the system behaves, not what it does.

McCall’s Quality Model (1977)

Organizes 11 factors into three perspectives:

Product Operation (Does it run?)

FactorMeaningInterview question
CorrectnessDoes it do what the spec says?”How do you know your code is correct?”
ReliabilityDoes it keep working?”How do you handle failures?”
EfficiencyDoes it use resources well?”How would you optimize this query?”
IntegrityIs it secure?”How do you prevent unauthorized access?”
UsabilityCan people use it?”How do you design user-friendly interfaces?”

Product Revision (Can we change it?)

FactorMeaning
MaintainabilityHow easy is it to fix bugs?
FlexibilityHow easy is it to add features?
TestabilityHow easy is it to verify correctness?

Product Transition (Can we move it?)

FactorMeaning
PortabilityCan it run on different platforms?
ReusabilityCan parts be used in other projects?
InteroperabilityCan it work with other systems?

ISO/IEC 25010 (Modern Standard)

The current standard replaces McCall with eight characteristics: Functional Suitability, Reliability, Performance Efficiency, Usability, Security, Compatibility, Maintainability, Portability.

Functional vs Non-Functional — The Classic Interview Question

FunctionalNon-functional
Answers”What does it do?""How well does it do it?”
Example”User can log in with email/password""Login completes in under 2 seconds”
Measurable?Yes (pass/fail)Yes (quantitative thresholds)
TestUnit testPerformance test

Q: Which quality attribute matters most?

A: It depends on the domain. For a medical device, reliability and correctness are critical. For a consumer app, usability and performance efficiency decide whether users stay. For an internal API, maintainability and interoperability matter most.

Q: How do you measure maintainability?

A: Proxies: cyclomatic complexity, code churn, test coverage, time to implement a new feature, number of files changed per bug fix. There’s no single metric — you look for trends.

Q: What’s the trade-off between usability and security?

A: More security usually means less usability (e.g., 2FA adds friction). Good design minimizes the friction while maintaining security. The trade-off is explicit: decide based on the threat model and user profile.

My Private Notes

Notes are auto-saved locally to this device.