Within systems engineering, quality attributes are realized non-functional requirements used to evaluate the performance of a system. These are sometimes named architecture characteristics, or "ilities" after the suffix many of the words share. They are usually architecturally significant requirements that require architects' attention. Quality attributes Notable quality attributes include: accessibility accountability accuracy adaptability administrability affordability agility auditability autonomy [Erl] availability compatibility composability [Erl] confidentiality configurability correctness credibility customizability debuggability degradability determinability demonstrability dependability deployability discoverability [Erl] distributability durability effectiveness efficiency evolvability extensibility failure transparency fault-tolerance fidelity flexibility inspectability installability integrity interchangeability interoperability [Erl] learnability localizability maintainability manageability mobility modifiability modularity observability operability orthogonality portability precision predictability process capabilities producibility provability recoverability redundancy relevance reliability repeatability reproducibility resilience responsiveness reusability [Erl] robustness safety scalability seamlessness self-sustainability serviceability (a.k.a. supportability) securability simplicity stability standards compliance survivability sustainability tailorability testability timeliness traceability transparency ubiquity understandability upgradability usability vulnerability Many of these quality attributes can also be applied to data quality. Common subsets Together, reliability, availability, serviceability, usability and installability, are referred to as RASUI. Functionality, usability, reliability, performance and supportability are together referred to as FURPS in relation to software requirements. Agility in working software is an aggregation of seven architecturally sensitive attributes: debuggability, extensibility, portability, scalability, securability, testability and understandability. For databases reliability, availability, scalability and recoverability (RASR), is an important concept. Atomicity, consistency, isolation (sometimes integrity), durability (ACID) is a transaction metric. When dealing with safety-critical systems, the acronym reliability, availability, maintainability and safety (RAMS) is frequently used. Dependability is an aggregate of availability, reliability, safety, integrity and maintainability. Integrity depends on security and survivability. Security is a composite of confidentiality, integrity and availability. Security and dependability are often treated together. See also Non-functional requirement Information quality ISO/IEC 9126 Software engineering—product quality Cognitive dimensions of notations Software quality References Further reading Software engineering terminology Software requirements Software quality