Professional Documents
Culture Documents
SA Unit 2 Notes QUALITY ATTRIBUTE WORKSHOP
SA Unit 2 Notes QUALITY ATTRIBUTE WORKSHOP
SA Unit 2 Notes QUALITY ATTRIBUTE WORKSHOP
Definition
Introduction
Both the system and software architectures are key to realizing quality attribute
requirements in the implementation. Although an architecture cannot guarantee
that an implementation will meet its quality attribute goals, the wrong architecture
will surely spell disaster. As an example, consider security. It is difficult, maybe
even impossible, to add effective security to a system as an afterthought.
Components as well as communication mechanisms and paths must be designed
or selected early in the life cycle to satisfy security requirements. The critical
quality attributes must be well understood and articulated early in the
development of a system, so the architect can design an architecture that will
satisfy them. The QAW is one way to discover, document, and prioritize a
system’s quality attributes early in its life cycle.
It is important to point out that we do not aim at an absolute measure of quality;
rather our purpose is to identify scenarios from the point of view of a diverse
group of stakeholders (e.g., architects, developers, users, sponsors). These
scenarios can then be used by the system engineers to analyze the system’s
architecture and identify concerns (e.g., inadequate performance, successful
denial-of-service attacks) and possible mitigation strategies (e.g., prototyping,
modeling, simulation).
QAW Method
2.Business/Mission Presentation
5.Scenario Brainstorming
6.Scenario Consolidation
7.Scenario Prioritization
8.Scenario Refinement
In this step, QAW facilitators describe the motivation for the QAW and explain
each step of the method. We recommend using a standard slide presentation that
can be customized depending on the needs of the sponsor. Next, the facilitators
introduce themselves and the stakeholders do likewise, briefly stating their
background, their role in the organization, and their relationship to the system
being built.
During the presentation, the facilitators listen carefully and capture any relevant
information that may shed light on the quality attribute drivers. The quality
attributes that will be refined in later steps will be derived largely from the
business/mission needs presented in this step.
While a detailed system architecture might not exist, it is possible that high-level
system descriptions, context drawings, or other artifacts have been created that
describe some of the system’s technical details. At this point in the workshop, a
technical stakeholder will present the system architectural plans as they stand
with respect to these early documents. Information in this presentation may
include
• plans and strategies for how key business/mission requirements will be satisfied
While this is an important requirement, facilitators need to ensure that the quality
attribute aspects of this requirement are explored further. For example, the
following scenario sheds more light on the performance aspect of this
requirement: “A remote user requests a database report via the Web during peak
usage and receives the report within five seconds. ”
Note that the initial requirement hasn’t been lost, but the scenario further explores
the performance aspect of this requirement. Facilitators should note that quality
attribute names by themselves are not enough. Rather than say “the system shall
be modifiable,” the scenario should describe what it means to be modifiable by
providing a specific example of a modification to the system vis-à-vis a scenario.
3.Facilitators need to remember that there are three general types of scenarios and
to ensure that each type is covered during the QAW:
To do that, facilitators ask stakeholders to identify those scenarios that are very
similar in content. Scenarios that are similar are merged, as long as the people
who proposed them agree and feels that their scenarios will not be diluted in the
process. Consolidation is an important step because it helps to prevent a
“dilution” of votes during the prioritization of scenarios (Step 7).
Such a dilution occurs when stakeholders split their votes between two very
similar scenarios. As a result, neither scenario rises to importance and is therefore
never refined (Step 8). However, if the two scenarios are similar enough to be
merged into one, the votes might be concentrated, and the merged scenario may
then rise to the appropriate level of importance and be refined further.
Facilitators should make every attempt to reach a majority consensus with the
stakeholders before merging scenarios. Though stakeholders may be tempted to
merge scenarios with abandon, they should not do so. In actuality, very few
scenarios are merged.
After the prioritization, depending on the amount of time remaining, the top four
or five scenarios are refined in more detail. Facilitators further elaborate each one,
documenting the following:
• Further clarify the scenario by clearly describing the following six things:
• Allow the stakeholders to pose questions and raise any issues regarding the
scenario. Such questions should concentrate on the quality attribute aspects of
the scenario and any concerns that the stakeholders might have in achieving the
response called for in the scenario.
See the example template for scenario refinement in Appendix A. This step
continues until time runs out or the highest priority scenarios have been refined.
Typically, time runs out first.
"A science is as mature as its measurement tools," (Louis Pasteur in Ebert Dumke,
). Measuring software quality is motivated by at least two reasons:
2. Efficiency: The source code and software architecture attributes are the
elements that ensure high performance once the application is in run-time mode.
Efficiency is especially important for applications in high execution speed
environments such as algorithmic or transactional processing where performance
and scalability are paramount. An analysis of source code efficiency and
scalability provides a clear picture of the latent business risks and the harm they
can cause to customer satisfaction due to response-time degradation.
5. Size: While not a quality attribute per se, the sizing of source code is a software
characteristic that obviously impacts maintainability. Combined with the above
quality characteristics, software size can be used to assess the amount of work
produced and to be done by teams, as well.
Introduction
• Overall factors that affect run-time behavior, system design, and user
experience
• Source of stimulus
• Stimulus
• Environment
• Artifact
• Response
• Response measure
Common Quality Attributes
• Design qualities
• Runtime qualities
• System qualities
• User qualities
• Non-runtime qualities
• Architecture qualities
• Business qualities
➢ Conceptual Integrity:
➢ Maintainability:
➢ Reusability:
Defines the capability for components and subsystems to be suitable for use in other
applications
Runtime Quality Attributes
➢ Interoperability:
➢ Manageability:
➢ Reliability:
➢ Scalability:
➢ Performance:
• Indication of the responsiveness of a system to execute any action
➢ Security:
➢ Availability:
2
➢ Supportability:
• Ability of the system to provide information helpful for identifying and resolving issues
when it fails to work correctly
➢ Testability:
Measure of how easy it is to create test criteria for the system and its components
➢ Usability:
• Defines how well the application meets the requirements of the user and
consumer by being intuitive
Non-runtime Quality Attributes
➢ Portability:
➢ Reusability:
➢ Integrability:
Ability to make the separately developed components of the system work
correctly together
➢ Modifiability:
Ease with which a software system can accommodate changes to its software
➢ Correctness:
➢ Conceptual Integrity:
• Integrity of the overall structure that is composed from a number of small
architectural structures
• Cost of the system with respect to time to market, expected project lifetime,
and utilization of legacy and COTS systems
➢ Marketability:
The objectives Company A had in their usability project were the following:
The software package is very complex, and therefore very difficult for non-
experienced users to fully understand, and apply in their process. The software is
market leader in the market Company A is selling the software. At the same time
the market has matured during the last three years, forcing Company A to pay
more attention to the user friendliness, and end user acceptance of the software.
The project was divided in different parts to work towards an integration of the
Music techniques in the development process of Company A.
This task evaluated the existing problems of the software using the SUMI
questionnaire as a 'big bang' event and generated the work plan for
improvements to solve these problems.
Training course
The training course was meant to teach the developers the way of user
centered design and evaluation of the software and to show how the
methods introduced related to the current evaluation methods used by the
company. Heuristic analysis and co-evaluation were used.
This test evaluated the results of the applied improvements to the software,
and the evaluation method improvements were applied during this test.
Principally, the method of performance analysis using video capture was
used, but SUMI was also used to quantify the gains.
The software development process improvement program that was taking place
at Company A was sped up enormously.
The consultants of Company A services are using the knowledge about the
Company A usability program to offer their clients the tools and methods to
evaluate the implementations they buy.
The benefits for the organization are enormous. The result of the project is that
all people are aware of usability, know what the word means, and also work
according to that. This means that the attitude of the developers, product
marketers, and sales people has been changed, which is the most important
benefit for Company A.
The benefits for the market arise because users are getting more and more mature,
and do not accept bad software anymore. The developers of software in this
market, which used to be highly technically specialized, are herefore forced to
create better software, more generally usable. This was the first reason why our
company started a software quality improvement program. Usability methods
took our software quality improvement programme a quantum leap into the
future.
The company knew it had a software quality problem in the making, maybe not
just now, but a few years down the road. In addition, multi-site development,
entered into for economic reasons, placed even greater stress on the software
lifecycle to produce quality results. Using the User-Centered Design approach,
the company was able to set a discipline on the development lifecycle and the
design teams were able to check the quality status of the work at well-defined
stages. This became a crucial aspect of the way the company dealt with the
'quality problem.'
Although Company A was keen to get more experience in user centered design,
they needed a focus. They were attracted to us because of our multi-national
reputation. The hard data that SUMI gave us about their chosen product was just
the right thing for that purpose, and it gave a meaning to the training workshops.
Designers knew what they needed to beat. The Context of Use analysis, first
carried out as a training exercise, suddenly revealed the need for a new product
to go with the rest of the product line. After this, we had a high standing all the
way with the company.