Understanding software quality
System quality is a measure of how well a system behaves under certain operating conditions and how well it evolves to handle future demands satisfactorily. One of the most significant responsibilities of Agile architects is to incrementally and explicitly capture quality needs and connect them to architecture decisions and backlogs. Many terminologies, such as quality characteristics, quality attributes, quality concerns, architecture concerns, technical requirements, Architecturally Significant Requirements (ASRs), and Non-Functional Requirements (NFRs), are interchangeably used for describing the quality requirements of software systems. This book uses quality attributes and ASR to refer to quality needs that constrain or influence architecture and design decisions.
Inaccuracy in detecting and implementing quality attributes can have adverse repercussions on the endurance of systems, which further leads to higher maintenance and operating costs...