Chapter 2 - Understanding Quality Attributes
Chapter 2 - Understanding Quality Attributes
Chapter 2 - Understanding Quality Attributes
(Seng 6122)
1
Content
• Architecture and Requirements
• To many vocabularies - Each attribute community has developed its own vocabulary
• Solution
• The first two of these problems is to use quality attribute scenarios as a means of
characterizing quality attributes.
• Third problem is to provide a discussion of each attribute
Quality Attribute Scenarios
• QAS are used to specify all quality attribute requirements
• QASs can be
• General quality attribute scenarios - are system independent and can, potentially,
pertain to any system
• concrete quality attribute scenarios - are specific to the particular system under
consideration.
Quality Attribute Scenarios…
• Example general scenario for availability
Quality Attribute Scenarios…
• Example Specific scenario for availability
Features of Concrete Scenarios
• A collection of concrete scenarios can be used as the quality attribute
requirements of a system.
• When eliciting requirements, discussions of general scenarios are organized
by quality attributes;
• if the same scenario is generated by two different attributes, one can be eliminated.
• As use cases are for functional requirements Concrete scenarios are for non-
functional requirements
Features of Concrete Scenarios…
• Theoretically quality attribute requirements should be obtained during
requirements elicitation, but in practice it is seldom done.
• It is the architect’s task to ensure that this is accomplished by generating concrete
quality attribute scenarios.
• Example
• General scenario - "A request arrives for a change in functionality, and the change
must be made at a particular time within the development process within a specified
period."
• Specific scenario - "A request arrives to add support for a new browser to a Web-
based system, and the change must be made within two weeks."
A Tour of Quality Attributes: Availability
• Availability is concerned with system failure and its consequences.
• Areas of concern:
• How the system failure is detected? Frequency of failure?
• What happens when a failure occurs?
• How long a system is allowed to be out of operation?
• When failures may occur safely? How failures can be prevented?
• What kinds of notifications are required when a failure occurs?
• Differentiate between failures and faults. A fault may become a failure if not
corrected or masked.
• Once a system fails, we must consider the time it takes to repair it.
• Like all quality attributes, interoperability is not a yes-or-no proposition but has
shades of meaning.
• Five levels of interoperability “maturity”
• level 1 - do not share data at all to
• The response measures for testability deal with how effective the tests are in
discovering faults and how long it takes to perform the tests to some desired
level of coverage.
Testability: General Scenario
Testability: Sample Concert Scenario
The unit tester completes a code unit during development and performs a test sequence
whose results are captured and that gives 85 percent path coverage within three hours
of testing
Usability: Definition
• Usability is concerned with how easy it is for the user to accomplish a desired
task and the kind of user support provided.
• Areas of usability:
• 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
• The normal development process detects usability problems through building
prototypes and user testing. Here we focus on aspects of usability that have a
major impact on the architecture
Usability: General Scenario
Usability: Sample Concert Scenario
A user, wanting to minimize the impact of an error, wishes to cancel a
system operation at runtime; cancellation takes place in less than one
second
Other Quality
• Variability: is a special form of modifiability.
• It refers to the ability of a system and its supporting artifacts to support the
production of a set of variants that differ from each other in a preplanned fashion.
• Portability: is also a special form of modifiability.
• Portability refers to the ease with which software that built to run on one platform
can be changed to run on a different platform.
• Development Distributability: is the quality of designing the software to
support distributed software development.
• Scalability:
• Horizontal scalability (scaling out) refers to adding more resources to logical units
such as adding another server to a cluster.
• Vertical scalability (scaling up) refers to adding more resources to a physical unit such
as adding more memory to a computer.
Other Quality
• Deployability:
• is concerned with how an executable arrives at a host platform and how it is invoked.
• Mobility:
• deals with the problems of movement and affordances of a platform (e.g. size, type
of display, type of input devices, availability and volume of bandwidth, and battery
life).
• Monitorability:
• deals with the ability of the operations staff to monitor the system while it is
executing.
• Safety: Software safety is about the software’s ability to avoid entering
states that cause or lead to damage, injury, or loss of life, and to recover and
limit the damage when it does enter into bad states.
• The architectural concerns with safety are almost identical with those for availability
(i.e. preventing, detecting, and recovering from failures).
Other Categories of Quality Attributes
• Conceptual Integrity: refers to consistency in the design of the architecture.
• It contributes to the understandability of the architecture.
• Conceptual integrity demands that the same thing is done in the same way through
the architecture.
• Marketability:
• Some systems are marketed by their architectures, and these architectures
sometimes carry a meaning all their own, independent of what other quality
attributes they bring to the system (e.g. service-oriented or cloud-based).
• Quality in Use: qualities that pertain to the use of the system by various
stakeholders. For example
• Effectiveness: a measure whether the system is correct
• Efficiency: the effort and time required to develop a system
• Freedom from risk: degree to which a product or system affects economic status,
human life, health, or the environment
Software QAs and System QAs
• Physical systems, such as aircraft or automobiles or kitchen appliances, that
rely on software embedded within are designed to meet a whole other
litany of quality attributes: weight, size, electric consumption, power
output, pollution output, weather resistance, battery life, and on and on.
• Disadvantages:
• No list will ever be complete.
• Lists often generate more controversy than understanding.
• Lists often purport to be taxonomies. But what is a denial-of-service attack?
• They force architects to pay attention to every quality attribute on the list, even if
only to finally decide that the particular quality attribute is irrelevant to their system.
Dealing with “X-ability”
• Suppose you must deal with a quality attribute for which there is no
compact body of knowledge, e.g. green computing.
2. Paper Presentation
1. Quality Characteristics for Software Architecture by Losavio et al., 2003
• Gezahegn and Mebratu