Quality Attributes Flashcards
What is a Quality Attribute
A quality attribute is a dimension of quality used to evaluate a software system.
✦ A.k.a., non-functional qualities
Quality Scenario Parts
Source of stimulus Stimulus Environment Artifact Response Response measure
Source of stimulus
This is some entity (a human, a computer system, or any other actuator) that generated the stimulus.
Stimulus
The stimulus is a condition that needs to be considered when it arrives at a system.
Environment
The stimulus occurs within certain conditions. The system may be in an overload condition or may be running when the stimulus occurs, or some other condition may be true.
Artifact
Some artifact is stimulated. This may be the whole system or some pieces of it.
Response
The response is the activity undertaken after the arrival of the stimulus.
Response measure
When the response occurs, it should be measurable in some fashion so that the requirement can be tested.
Availability
· Availability is concerned with system failure and its associated consequences.
· A system failure occurs when the system no longer delivers a service consistent with its specification.
· Such a failure is observable by the system’s users—either humans or other systems.
Performance
· Performance is about timing. Events (interrupts, messages, requests from users, or the passage of time) occur, and the system must respond to them.
· One of the things that make performance complicated is the number of event sources and arrival patterns.
· A performance scenario begins with a request for some service arriving at the system. Satisfying the request requires resources to be consumed. While this is happening the system may be simultaneously servicing other requests.
· An arrival pattern for events may be characterized as either periodic or stochastic.
Security
· Security is a measure of the system’s ability to resist unauthorized usage while still providing its services to legitimate users.
· Security can be characterized as a system providing nonrepudiation, confidentiality, integrity, assurance, availability, and auditing.
1. Nonrepudiation is the property that a transaction (access to or modification of data or services) cannot be denied by any of the parties to it.
2. Confidentiality is the property that data or services are protected from unauthorized access.
3. Integrity is the property that data or services are being delivered as intended.
4. Assurance is the property that the parties to a transaction are who they purport to be.
5. Availability is the property that the system will be available for legitimate use.
6. Auditing is the property that the system tracks activities within it at levels sufficient to reconstruct them.
Modifiability
Modifiability is about the cost of change.
Testability
· Software testability refers to the ease with which software can be made to demonstrate its faults through testing.
· Testability refers to the probability that it will fail on its next test execution.
· For a system to be properly testable, it must be possible to control each component’s internal state and inputs and then to observe its outputs.
Usability
Usability is concerned with how easy it is for the user to accomplish a desired task and the kind of user support the system provides. It can be broken down into the following areas:
· Learning system features. If the user is unfamiliar with a particular system or a particular aspect of it, what can the system do to make the task of learning easier?
· Using a system efficiently. What can the system do to make the user more efficient in its operation?
· Minimizing the impact of errors. What can the system do so that a user error has minimal impact?
· Adapting the system to user needs. How can the user (or the system itself) adapt to make the user’s task easier?
· Increasing confidence and satisfaction. What does the system do to give the user confidence that the correct action is being taken?
Integrability
Concerned about making separately developed components cooperate; and the costs and technical risks of anticipated and (to varying degrees) unanticipated future integration tasks