Non functional requirements in architecture
Post date: Feb 12, 2019 2:38:40 PM
Architecture of software systems is driven by functional requirements, quality attributes and constraints.
Architect has to take design decision decompose a system as per requirements, lots of decisions are taken to handle quality attributes and limited by constraints.
Focus on this writing is those decisions which are related to quality attribute (or NFRs). These decisions are often referred to as tactics (Bass et. al. 2003). A tactic is a design decision that contributes in addressing a quality attribute. Tactics influence architecture (structure and or behavior) but their impact in architecture may be smaller compared to patterns which majorly give share to structure of the software. Some of the tactics may be part of a pattern or in other words some of the tactics are applying pattern to achieve a quality attribute.
Architecture methods provide a way to handle quality attributes. Some of the architecture methods are:
Viewpoints and Perspectives
Process of Software Architecting
ADD (Attribute Driven Design) is one such method for defining architecture which focuses on quality attribute.
ISO/IEC 9126 (obsolete)
Functionality: Suitability, Accuracy, Interoperability, Security, Functionality compliance
Reliability: Maturity, Fault tolerance, Recoverability, Reliability compliance
Usability: Understandability, Learnability, Operability, Attractiveness, Usability compliance
Efficiency: Time behaviour, Resource utilization, Efficiency compliance
Maintainability: Analyzability, Changeability, Stability, Testability, Maintainability compliance
Portability: Adaptability, Installability, Co-existence, Replaceability, Portability compliance
ISO/IEC 25010:2011 (current)
Quality in use
Freedom from risk
There are further sub categories within each of the above.
CISQ (Software quality characteristics defined for code quality)
1. How do architecture patterns and tactics interact? A model and annotation
2. ADD 3.0: Rethinking Drivers and Decisions in the Design Process
3. Decision Model for Software Architectural Tactics Selection Based on Quality Attributes Requirements
4. Modeling Architectural Non Functional Requirements: From Use Case to Control Case
5. Rigorous Component-Based System Design Using the BIP Framework
6. Proposed Framework for Handling Architectural NFR’s within Scrum Methodology