Quality Attributes, Requirements, and Architectural Styles

Get an overview of some quality attributes and their architectural styles.

Overview

Let’s now discuss the importance of quality attributes in software architecture. Quality attributes (QAs) are measurable or testable properties of a software system that indicate how well it meets the needs of stakeholders. These attributes must be clear and objective, ensuring that requirements are well-defined and testable.

Architects play a vital role in translating quality attributes into concrete software structures and designs. They must choose architectural styles and design elements that align with the desired quality attributes. A checklist of common quality attributes includes performance, scalability, availability, security, and flexibility, but the significance of each attribute can vary from project to project.

Quality attributes

Recall the architecture meta-frame diagramArchitectureMetaFrame.

QAs are the most important parts from an architectural point of view. Scenarios and constraints are also important, and they are a part of deciding which architectural style would be best for a given scenario. For example, our application may map to an internet web application scenario, which has unique architecture solutions compared to a mobile client application.

An important point to note about a QA is that the property must be measurable or testable. For example, suppose a requirement is that the application must have a good user interface. However, what does that mean? “Good” is a very subjective term and may mean different things to different stakeholders. It all depends on perspective. Therefore, the requirements must be testable. A measurable functional requirement would be: “A user must be able to perform a certain task within four mouse clicks.”

Quality attributes are not only nonfunctional requirements of the system, but also include service-level agreements and other concerns as well. These are important attributes that should be considered, because they can make or break the system.

Get hands-on with 1200+ tech skills courses.