Software and Systems Quality Attributes


Attributes are properties of the service delivered by the system to its users. The service delivered by a system is its behavior as it is perceived by its users. A user is another system — physical or human — which interacts with the former.

The service is initiated by some event, which is a stimulus to the system signaling the need for the service. The stimulus can originate either within the system or external to the system.

A quality attribute is a measurable or testable property of a system that is used to indicate how well the system satisfies the needs of its stakeholders. You can think of a quality attribute as measuring the “goodness”of a system along some dimension of interest to a stakeholder.

For each quality attribute (i.e., performance, dependability, security and safety) there are:
  1. Concerns — the parameters by which the attributes of a system are judged, specified and measured. Requirements are expressed in terms of concerns;
  2. Attribute-specific factors —properties of the system (such as policies and mechanisms built into the system) and its environment that have an impact on the concerns.
Factors might not be independent and might have cause/effect relationships. Factors and their relationships would be included in the system’s architecture:
Performance factors — the aspects of the system that contribute to performance. These include the demands from the environment and the system responses to these demands.
Dependability impairments — the aspects of the system that contribute to (lack of) dependability. There is a causal chain between faults inside the system and failures observed in the environment. Faults cause errors; and error is a system state that might lead to failure if not corrected.
Security factors — the aspects of the system that contribute to security. These include system/environment interface features and internal features such as kernelization.
Safety impairments — the aspects of the system that contribute to (lack of) safety. Hazards are conditions or system states that can lead to a mishap or accident. Mishaps are unplanned events with undesirable consequences.