pdf viewer in c# code project : How to copy picture from pdf to word control SDK system azure .net asp.net console software-architecture-practice126-part1356

[ Team LiB ]
Chapter 11. The ATAM: A Comprehensive Method for
Architecture Evaluation
with Mark Klein
We evaluate the services that anyone renders to us according to the value he puts on them,
not according to the value they have for us.
—Friedrich Nietzsche
In this chapter, we will introduce the Architecture Tradeoff Analysis Method (ATAM), a thorough and
comprehensive way to evaluate a software architecture. The ATAM is so named because it reveals how
well an architecture satisfies particular quality goals, and (because it recognizes that architectural
decisions tend to affect more than one quality attribute) it provides insight into how quality goals interact
—that is, how they trade off.
Evaluating an architecture for a large system is a complicated undertaking. First, a large system will have
a comparably large architecture that will be difficult to understand in a limited amount of time. Second,
according to Nietzsche and the Architecture Business Cycle (ABC), a computer system is intended to
support business goals and the evaluation will need to make connections between those goals and the
technical decisions. Finally, a large system usually has multiple stakeholders and acquiring their different
perspectives in a limited amount of time requires careful management of an evaluation process. As you
can see from this set of difficulties, managing the limited time for an architecture evaluation is a central
problem.
Note:
Mark Klein is a senior member of the technical staff at the Software Engineering Institute.
The ATAM is designed to elicit the business goals for the system as well as for the architecture. It is also
designed to use those goals and stakeholder participation to focus the attention of the evaluators on the
portion of the architecture that is central to the achievement of the goals.
This chapter will introduce the steps of the ATAM and discuss them in light of their intended purpose. It
will also presents an ATAM case study (based on one of our applications of the method).
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
260 / 463
How to copy picture from pdf to word - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
how to copy and paste a pdf image; copying image from pdf to word
How to copy picture from pdf to word - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
copy image from pdf to; how to copy an image from a pdf in
[ Team LiB ]
11.1 Participants in the ATAM
The ATAM requires the participation and mutual cooperation of three groups:
1. 
The evaluation team.
This group is external to the project whose architecture is being evaluated. It
usually consists of three to five people. Each member of the team is assigned a number of specific
roles to play during the evaluation. (See Table 11.1
for a description of these roles, along with a set
of desirable characteristics for each.) The evaluation team may be a standing unit in which
architecture evaluations are regularly performed, or its members may be chosen from a pool of
architecturally savvy individuals for the occasion. They may work for the same organization as the
development team whose architecture is on the table, or they may be outside consultants. In any
case, they need to be recognized as competent, unbiased outsiders with no hidden agendas or axes
to grind.
2. 
Project decision makers.
These people are empowered to speak for the development project or
have the authority to mandate changes to it. They usually include the project manager, and, if there
is an identifiable customer who is footing the bill for the development, he or she will be present (or
represented) as well. The architect is always included—a cardinal rule of architecture evaluation is
that the architect must willingly participate. Finally, the person commissioning the evaluation is
usually empowered to speak for the development project; even if not, he or she should be included
in the group.
3. 
Architecture stakeholders.
Stakeholders have a vested interest in the architecture performing as
advertised. They are the ones whose ability to do their jobs hinges on the architecture promoting
modifiability, security, high reliability, or the like. Stakeholders include developers, testers,
integrators, maintainers, performance engineers, users, builders of systems interacting with the one
under consideration, and others. Their job during an evaluation is to articulate the specific quality
attribute goals that the architecture should meet in order for the system to be considered a success.
A rule of thumb—and that is all it is—is that you should expect to enlist the services of twelve to
fifteen stakeholders for the evaluation.
Table 11.1. ATAM evaluation team roles
Role
Responsibilities
Desirable characteristics
Team
Leader
Sets up the evaluation; coordinates with client,
making sure client's needs are met; establishes
evaluation contract; forms evaluation team; sees
that final report is produced and delivered
(although the writing may be delegated)
Well-organized, with managerial skills;
good at interacting with client; able to
meet deadlines
Evaluation
Leader
Runs evaluation; facilitates elicitation of
scenarios; administers scenario
selection/prioritization process; facilitates
evaluation of scenarios against architecture;
facilitates onsite analysis
Comfortable in front of audience;
excellent facilitation skills; good
understanding of architectural issues;
practiced in architecture evaluations;
able to tell when protracted discussion
is leading to a valuable discovery or
when it is pointless and should be re-
directed
Scenario
Scribe
Writes scenarios on flipchart or whiteboard during
scenario elicitation; captures agreed-on wording
of each scenario, halting discussion until exact
wording is captured
Good handwriting; stickler about not
moving on before an idea (scenario) is
captured; can absorb and distill the
essence of technical discussions
Proceedings
Scribe
Captures proceedings in electronic form on laptop
or workstation, raw scenarios, issue(s) that
motivate each scenario (often lost in the wording
of the scenario itself), and resolution of each
Good, fast typist; well organized for
rapid recall of information; good
understanding of architectural issues;
able to assimilate technical issues
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
261 / 463
C# PDF insert image Library: insert images into PDF in C#.net, ASP
How to Insert & Add Image, Picture or Logo on PDF Page Using C#.NET. Import graphic picture, digital photo, signature and logo into PDF document.
copy and paste image into pdf; how to paste a picture into a pdf document
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add images to any selected PDF page in VB.NET.
copy pdf picture to powerpoint; how to copy text from pdf image to word
scenario when applied to architecture(s); also
generates a printed list of adopted scenarios for
handout to all participants
quickly; unafraid to interrupt the flow of
discussion (at opportune times) to test
understanding of an issue so that
appropriate information is captured
Timekeeper Helps evaluation leader stay on schedule; helps
control amount of time devoted to each scenario
during the evaluation phase
Willing to interrupt discussion to call
time
Process
Observer
Keeps notes on how evaluation process could be
improved or deviated from; usually keeps silent
but may make discreet process-based
suggestions to the evaluation leader during the
evaluation; after evaluation, reports on how the
process went and lessons learned for future
improvement; also responsible for reporting
experience to architecture evaluation team at
large
Thoughtful observer; knowledgeable in
the evaluation process; should have
previous experience in the architecture
evaluation method
Process
Enforcer
Helps evaluation leader remember and carry out
the steps of the evaluation method
Fluent in the steps of the method, and
willing and able to provide discreet
guidance to the evaluation leader
Questioner Raise issues of architectural interest that
stakeholders may not have thought of
Good architectural insights; good
insights into needs of stakeholders;
experience with systems in similar
domains; unafraid to bring up
contentious issues and pursue them;
familiar with attributes of concern
Source:
Adapted from [Clements 02a
].
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
262 / 463
C# HTML5 Viewer: Deployment on ASP.NET MVC
under Views according to config in picture above. RasterEdge.XDoc.PDF.HTML5Editor. dll. Open RasterEdge_MVC3 DemoProject, copy following content to your project:
copy picture from pdf to powerpoint; how to copy picture from pdf file
VB.NET TIFF: How to Draw Picture & Write Text on TIFF Document in
Copy the demo codes and run your project to see New RaterEdgeDrawing() drawing.Picture = "RasterEdge" drawing & profession imaging controls, PDF document, tiff
how to copy a picture from a pdf to a word document; how to copy and paste an image from a pdf
[ Team LiB ]
11.2 Outputs of the ATAM
An ATAM-based evaluation will produce at least the following outputs:
A concise presentation of the architecture.
Architecture documentation is often thought to consist of
the object model, a list of interfaces and their signatures, or some other voluminous list. But one of
the requirements of the ATAM is that the architecture be presented in one hour, which leads to an
architectural presentation that is both concise and, usually, understandable.
Articulation of the business goals.
Frequently, the business goals presented in the ATAM are being
seen by some of the development team for the first time.
Quality requirements in terms of a collection of scenarios.
Business goals lead to quality
requirements. Some of the important quality requirements are captured in the form of scenarios.
Mapping of architectural decisions to quality requirements.
Architectural decisions can be
interpreted in terms of the qualities that they support or hinder. For each quality scenario examined
during an ATAM, those architectural decisions that help to achieve it are determined.
A set of identified sensitivity and tradeoff points.
These are architectural decisions that have a
marked effect on one or more quality attributes. Adopting a backup database, for example, is clearly
an architectural decision as it affects reliability (positively), and so it is a sensitivity point with respect
to reliability. However, keeping the backup current consumes system resources and so affects
performance negatively. Hence, it is a tradeoff point between reliability and performance. Whether
this decision is a risk or a nonrisk depends on whether its performance cost is excessive in the
context of the quality attribute requirements of the architecture.
A set of risks and nonrisks.
A risk is defined in the ATAM as an architectural decision that may lead
to undesirable consequences in light of stated quality attribute requirements. Similarly, a nonrisk is
an architectural decision that, upon analysis, is deemed safe. The identified risks can form the basis
for an architectural risk mitigation plan.
A set of risk themes.
When the analysis is complete, the evaluation team will examine the full set of
discovered risks to look for over-arching themes that identify systemic weaknesses in the
architecture or even in the architecture process and team. If left untreated, these risk themes will
threaten the project's business goals.
The outputs are used to build a final written report that recaps the method, summarizes the proceedings,
captures the scenarios and their analysis, and catalogs the findings.
There are secondary outputs as well. Very often, representations of the architecture will have been
created expressly for the evaluation and may be superior to whatever existed before. This additional
documentation survives the evaluation and can become part of the project's legacy. Also, the scenarios
created by the participants are expressions of the business goals and requirements for the architecture
and can be used to guide the architecture's evolution. Finally, the analysis contained in the final report
can serve as a statement of rationale for certain architectural decisions made (or not made). The
secondary outputs are tangible and enumerable.
There are intangible results of an ATAM-based evaluation. These include a palpable sense of community
on the part of the stakeholders, open communication channels between the architect and the
stakeholders, and a better overall understanding on the part of all participants of the architecture and its
strengths and weaknesses. While these results are hard to measure, they are no less important than the
others and often are the longest-lasting.
[ Team LiB ]
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
263 / 463
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
first! VB.NET Image & Picture Cropping Application. Do you need to save a copy of certain part of an image file in a programming way?
how to copy pdf image into word; copy images from pdf
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
NET Method to Resize Image & Picture. Here we code demo, which you can directly copy to your provide powerful & profession imaging controls, PDF document, image
paste image into preview pdf; copying images from pdf files
[ Team LiB ]
11.3 Phases of the ATAM
Activities in an ATAM-based evaluation are spread out over four phases.
In phase 0, "Partnership and Preparation," the evaluation team leadership and the key project decision
makers informally meet to work out the details of the exercise. The project representatives brief the
evaluators about the project so that the team can be supplemented by people who possess the
appropriate expertise. Together, the two groups agree on logistics, such as the time and place of
meetings, who brings the flipcharts, and who supplies the donuts and coffee. They also agree on a
preliminary list of stakeholders (by name, not just role), and they negotiate on when the final report is to
be delivered and to whom. They handle formalities such as a statement of work or nondisclosure
agreements. They work out delivery to the evaluation team of whatever architectural documentation
exists and may be useful. Finally, the evaluation team leader explains what information the manager and
architect will be expected to show during phase 1, and helps them construct their presentations if
necessary.
Phase 1 and phase 2 are the evaluation phases, where everyone gets down to the business of analysis.
By now the evaluation team will have studied the architecture documentation and will have a good idea of
what the system is about, the overall architectural approaches taken, and the quality attributes that are of
paramount importance. During phase 1, the evaluation team meets with the project decision makers
(usually for about a day) to begin information gathering and analysis. For phase 2, the architecture's
stakeholders join the proceedings and analysis continues, typically for two days. The exact steps of
phase 1 and phase 2 are detailed in the next section.
Phase 3 is follow-up in which the evaluation team produces and delivers a written final report. The
essence of this phase, however, is team self-examination and improvement. During a post-mortem
meeting, the team discusses what went well and what didn't. They study the surveys handed out to
participants during phase 1 and phase 2, and the process observer makes his or her report. Team
members look for improvements in how they carry out their functions so that the next evaluation can be
smoother or more effective. The team catalogs how much effort was spent during the evaluation, on the
part of each of the three participating groups. After an appropriate number of months, the team leader
contacts the evaluation client to gauge the long-term effects of the exercise so that costs and benefits can
be compared.
Table 11.2
shows the four phases of the ATAM, who participates in each one, and an approximate
timetable.
Table 11.2. ATAM Phases and Their Characteristics
Phase Activity
Participants
Typical Duration
0
Partnership and
preparation
Evaluation team leadership and key
project decision makers
Proceeds informally as required,
perhaps over a few weeks
1
Evaluation
Evaluation team and project decision
makers
1 day followed by a hiatus of 2 to 3
weeks
2
Evaluation
(continued)
Evaluation team, project decision
makers, and stakeholders
2 days
3
Follow-up
Evaluation team and evaluation client 1 week
Source:
Adapted from [Clements 02a
].
STEPS OF THE EVALUATION PHASES
The ATAM analysis phases (phase 1 and phase 2) consist of nine steps. Steps 1 through 6 are carried
out in phase 1. In phase 2, with all stakeholders present, those steps are summarized and steps 7
through 9 are carried out.
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
264 / 463
VB.NET PDF remove image library: remove, delete images from PDF in
C#.NET PDF pages extract, copy, paste, C# Powerful PDF image editor control, compatible with .NET Support removing vector image, graphic picture, digital photo
how to copy a picture from a pdf file; how to copy pdf image
C# PDF remove image library: remove, delete images from PDF in C#.
Image: Copy, Paste, Cut Image in Page. Link Visual Studio .NET PDF image editor control, compatible Support removing vector image, graphic picture, digital photo
copy image from pdf to pdf; copy image from pdf to ppt
The analysis steps are nominally carried out in sequential order according to a set agenda, but
sometimes there must be dynamic modifications to the schedule to accommodate personnel availability or
architectural information. Every evaluation is unique, and there may be times when the team returns
briefly to an earlier step, jumps forward to a later step, or iterates among steps, as the need dictates.
Step 1—Present the ATAM
The first step calls for the evaluation leader to present the ATAM to the assembled project
representatives. This time is used to explain the process that everyone will be following, to answer
questions, and to set the context and expectations for the remainder of the activities. Using a standard
presentation, the leader will describe the ATAM steps in brief and the outputs of the evaluation.
Step 2—Present Business Drivers
Everyone involved in the evaluation—the project representatives as well as the evaluation team members
—needs to understand the context for the system and the primary business drivers motivating its
development. In this step, a project decision maker (ideally the project manager or the system's customer)
presents a system overview from a business perspective. The presentation should describe the following:
The system's most important functions
Any relevant technical, managerial, economic, or political constraints
The business goals and context as they relate to the project
The major stakeholders
The architectural drivers (that is, the major quality attribute goals that shape the architecture)
Step 3—Present Architecture
Here, the lead architect (or architecture team) makes a presentation describing the architecture at an
appropriate level of detail. The "appropriate level" depends on several factors: how much of the
architecture has been designed and documented; how much time is available; and the nature of the
behavioral and quality requirements.
In this presentation the architect covers technical constraints such as operating system, hardware, or
middleware prescribed for use, and other systems with which the system must interact. Most important,
the architect describes the architectural approaches (or patterns, if the architect is fluent in that
vocabulary) used to meet the requirements.
To make the most of limited time, the architect's presentation should have a high signal-to-noise ratio.
That is, it should convey the essence of the architecture and not stray into ancillary areas or delve too
deeply into the details of just a few aspects. Thus, it is extremely helpful to brief the architect beforehand
about the information the evaluation team requires. A template such as the one in Figure 11.1
can help
the architect prepare the presentation. Depending on the architect, a dress rehearsal can be included as
part of the phase 1 activities.
FIGURE 11.1 Example of a template for the architecture
presentation 
Source:
Adapted from [Clements 02a
].
Architecture Presentation (~20 slides; 60 minutes)
Driving architectural requirements, the measurable quantities you associate with these
requirements, and any existing standards/models/approaches for meeting these (2–3 slides)
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
265 / 463
Important Architectural Information (4–8 slides)
- Context diagram—the system within the context in which it will exist. Humans or other
systems with which the system will interact.
- Module or layer view—the modules (which may be subsystems or layers) that describe
the system's decomposition of functionality, along with the objects, procedures, functions
that populate these, and the relations among them (e.g., procedure call, method invoca-
tion, callback, containment).
- Component-and-connector view—processes, threads along with the synchronization,
data flow, and events that connect them.
- Deployment view—CPUs, storage, external devices/sensors along with the networks
and communication devices that connect them.Also shown are the processes that
execute on the various processors.
Architectural approaches, patterns, or tactics employed, including what quality attributes they
address and a description of how the approaches address those attributes (3–6 slides)
- Use of commercial off-the-shelf (COTS) products and how they are chosen/integrated
(1–2 slides)
- Trace of 1 to 3 of the most important use case scenarios. If possible, include the
runtime resources consumed for each scenario (1–3 slides)
- Trace of 1 to 3 of the most important change scenarios. If possible, describe the
change impact (estimated size/difficulty of the change) in terms of the changed modules
or interfaces (1–3 slides)
- Architectural issues/risks with respect to meeting the driving architectural requirements
(2–3 slides)
- Glossary (1 slide)
As may be seen in the presentation template, we expect architectural views, as described in Chapter 2
, to
be the primary vehicle for the architect to convey the architecture. Context diagrams, component-and-
connector views, module decomposition or layered views, and the deployment view are useful in almost
every evaluation, and the architect should be prepared to show them. Other views can be presented if
they contain information relevant to the architecture at hand, especially information relevant to achieving
important quality attribute goals. As a rule of thumb, the architect should present the views that he or she
found most important during the creation of the architecture.
During the presentation, the evaluation team asks for clarification based on their phase 0 examination of
the architecture documentation and their knowledge of the business drivers from the previous step. They
also listen for and write down any architectural tactics or patterns they see employed.
Step 4—Identify Architectural Approaches
The ATAM focuses on analyzing an architecture by understanding its architectural approaches. As we
saw in Chapter 5
, architectural patterns are useful for (among other reasons) the known ways in which
each one affects particular quality attributes. A layered pattern tends to bring portability to a system,
possibly at the expense of performance. A data repository pattern is usually scalable in the number of
producers and consumers of data. And so forth.
By now, the evaluation team will have a good idea of what patterns and approaches the architect used in
designing the system. They will have studied the architecture documentation, and they will have heard
the architect's presentation in step 3. During that step, the architect is asked to explicitly name the
patterns and approaches used, but the team should also be adept at spotting ones not mentioned.
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
266 / 463
In this short step, the evaluation team simply catalogs the patterns and approaches that are evident. The
list is publicly captured by the scribe for all to see and will serve as the basis for later analysis.
Step 5—Generate Quality Attribute Utility Tree
An architecture is either suitable or unsuitable with respect to its ability to deliver particular quality
attributes to the system(s) built from it. The highest-performance architecture may be totally wrong for a
system in which performance is not nearly as important as, say, security. The important quality attribute
goals for the architecture under consideration were named in step 2, when the business drivers were
presented, but not to any degree of specificity that would permit analysis. Broad goals such as
"modifiability" or "high throughput" or "ability to be ported to a number of machines" establish important
context and direction, and provide a backdrop against which subsequent information is presented.
However, they are not specific enough to let us tell if the architecture suffices. Modifiable in what way?
Throughput that is how high? Ported to what machines?
In this step, the quality attribute goals are articulated in detail via a mechanism known as the utility tree.
Here, the evaluation team works with the project decision makers to identify, prioritize, and refine the
system's most important quality attribute goals, which are expressed as scenarios. The utility tree serves
to make the requirements concrete, forcing the architect and customer representatives to define precisely
the relevant quality requirements that they were working to provide.
A utility tree begins with 
utility
as the root node. Utility is an expression of the overall "goodness" of the
system. Quality attributes form the second level because these are the components of utility. Quality
attributes named in the business drivers presentation in step 2 make up the initial or seed set of this
second level. Typically, performance, modifiability, security, usability, and availability are the children of
utility, but participants are free to name their own. Sometimes different stakeholder groups use different
names for the same ideas (for example, some stakeholders prefer to speak of "maintainability").
Sometimes they introduce quality attribute names that are meaningful in their own culture but not widely
used elsewhere, such as "flextensibility." Any names the stakeholders introduce are fine as long as they
are able to explain what they mean through refinement at the next levels. (See the sidebar What's in a
Name?)
Under each of these quality attributes are specific quality attribute refinements. For example, performance
might be decomposed into "data latency" and "transaction throughput." This is a step toward refining the
attribute goals into quality attribute scenarios that are concrete enough for prioritization and analysis.
Data latency might be further refined into "Lower storage latency on customer database to 20 ms." and
"Deliver 20 frame/second video in real time" because both kinds of data latency are relevant to the
system.
Scenarios (as described in Chapter 4
) are the mechanism by which broad (and ambiguous) statements of
desired qualities are made specific and testable. They form the leaves of the utility tree, grouped by the
quality attributes they express. Their six-part form, as shown in Chapter 4
, is simplified for purposes of
evaluation. ATAM scenarios consist of three parts: stimulus (what condition arrives at a system, who
generated it, and what system artifact it stimulates), environment (what is going on at the time), and
response (system's reaction to the stimulus expressed in a measurable way).
Now we have something tangible against which to evaluate the architecture. In fact, the analysis steps of
the ATAM consist of choosing one scenario at a time and seeing how well the architecture responds to, or
achieves, it. More on that in the next step.
Some scenarios might express more than one quality attribute and so might appear in more than one
place in the tree. That is not necessarily a problem, but the evaluation leader should guard against
scenarios that try to cover too much diverse territory because they will be difficult to analyze. Try to split
such scenarios into constituents that each attach smaller concerns.
Not only does the team need to understand the precise goals levied on the architecture, but it also needs
to understand their relative importance. A utility tree can easily contain fifty scenarios at its leaves, and
there will not be time during the evaluation meeting to analyze them all. Hence, utility tree generation also
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
267 / 463
includes a prioritization step. By consensus, the decision makers assign a priority to each scenario. This
prioritization may be on a 0 to 10 scale or use relative rankings such as high, medium, and low. (We
prefer the high/medium/low approach because it works well with diverse groups and takes less time than
assigning precise numbers.)
After that, scenarios are prioritized a second time, using a different criterion. The architect is asked to
rank each scenario by how difficult he or she believes it will be for the architecture to satisfy. Again, a
simple high/medium/low scheme works well here.
What's in a Name?
The architecture evaluation methods in this book use scenarios as a way to capture quality
attributes because quality attributes by themselves are too vague for analysis. And yet the
ATAM's utility tree uses quality attribute names as an organizing vehicle. Is that a
contradiction? In fact, it is not because we do not care what qualities the stakeholders choose.
As long as it stimulates their thinking, they are free to choose any quality attribute names they
like. For instance, in the utility tree shown in Table 11.5
later in this chapter, you might argue
that "configurability" and "modularity" are special kinds of "modifiability" and therefore should
appear as a refinement of it. I would probably agree with you. But at that particular evaluation
the stakeholders felt they were different enough to warrant their own categories in the utility
tree, and so we accommodated them. What really matters is the scenarios at the leaves, not
the structure of the branches.
We almost never see the same quality attribute names from evaluation to evaluation. One
organization's "maintainability" is another organization's "changeability." Sometimes
"portability" is a kind of modifiability, but many times the stakeholders stand it on its own.
Reliability and availability are often interchanged, and we have also seen some esoteric
quality attribute names that had well-known meaning within the organizations we were visiting:
"deployability" and "sellability," for example. What did those mean? We did not know precisely,
but it is a happy property of the ATAM that we never need to spend valuable time haggling
over definitions. The scenarios provided the operational meaning. What mattered was that the
terms meant something to the stakeholders who brought them up, who were then able to use
them to conjure up scenarios articulating the concerns for which they stood.
In one ATAM exercise we ran, the developing organization had a very real concern about
attracting talented personnel to its headquarters in a small, quiet city in the American Midwest.
This business driver actually led to an architectural concern—that the architecture employ
sufficiently interesting and state-of-the-art software technology so as to make people want to
come work with it.
You will not find "Iowa-bility" in any list of IEEE, ISO, or ANSI standard quality attribute names,
but it found its way into one of our ATAM utility trees, where it served as a means to stimulate
thinking about scenarios to express the concern.
— PCC
Now each scenario has an associated ordered pair: (H,H), (H,M), (H,L), and so forth. The scenarios that
are the most important and the most difficult will be the ones where precious analysis time will be spent
and the remainder will be kept as part of the record. A scenario that is considered either unimportant (L,*)
or very easy to achieve (*,L) is not likely to receive much attention.
The output of utility tree generation is a prioritized list of scenarios that serves as a plan for the remainder
of the ATAM evaluation. It tells the ATAM team where to spend its (relatively limited) time and, in
particular, where to probe for architectural approaches and risks. The utility tree guides the evaluators
toward the architectural approaches for satisfying the high-priority scenarios at its leaves.
At this point in the evaluation, all of the information necessary for analysis is on the table: the important
qualities expected of the architecture that came from step 2's business drivers and step 5's utility tree,
and the architecture in place as captured in step 3's architecture presentation and step 4's catalog of
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
268 / 463
approaches used. An example of a utility tree, shown in tabular form (omitting the root utility node) is
given in Table 11.5
.
Step 6—Analyze Architectural Approaches
Here the evaluation team examines the highest-ranked scenarios one at a time; the architect is asked to
explain how the architecture supports each one. Team members—especially the questioners—probe for
the architectural approaches that the architect used to carry out the scenario. Along the way, the team
documents the relevant architectural decisions and identifies and catalogs their risks, nonrisks, sensitivity
points, and tradeoffs. For well-known approaches, the team asks how the architect overcame known
weaknesses in the approach or how the architect gained assurance that the approach sufficed. The goal
is for the evaluation team to be convinced that the instantiation of the approach is appropriate for meeting
the attribute-specific requirements for which it is intended.
For example, the number of simultaneous database clients will affect the number of transactions that a
database can process per second. Thus, the assignment of clients to the server is a sensitivity point with
respect to the response as measured in transactions per second. Some assignments will result in
unacceptable values of this response—these are risks. When it turns out that an architectural decision is
a sensitivity point for more than one attribute, it is designated as a tradeoff point.
The scenario walkthrough leads to a discussion of possible risks, nonrisks, sensitivity points, or tradeoff
points. These, in turn, may catalyze a deeper analysis, depending on how the architect responds. For
example, if the architect cannot characterize the number of clients and cannot say how load balancing will
be achieved by allocating processes to hardware, there is little point in a sophisticated queuing or rate-
monotonic performance analysis. If such questions can be answered, the evaluation team can perform at
least a rudimentary, or back-of-the-envelope, analysis to determine if these architectural decisions are
problematic vis-à-vis the quality attribute requirements they are meant to address. The analysis is not
meant to be comprehensive. The key is to elicit sufficient architectural information to establish some link
between the architectural decisions that have been made and the quality attribute requirements that need
to be satisfied.
Figure 11.2
shows a form for capturing the analysis of an architectural approach for a scenario. As
shown, based on the results of this step the evaluation team can identify and record a set of sensitivity
points and tradeoff points, risks and nonrisks. All sensitivity points and tradeoff points are candidate risks.
By the end of the ATAM exercise, all of them should be categorized as either one or the other. The risks,
nonrisks, sensitivity points, and tradeoff points are gathered in separate lists. The numbers R8, T3, S4,
N12, and so forth, in Figure 11.2
are simply pointers into these lists.
Figure 11.2. Example of architectural approach analysis
Source:
Adapted from [Clements 02a
].
This PDF file was converted by Atop CHM to PDF Converter free version!  http://www.chmconverter.com/chm-to-pdf/
Addison Wesley : Software Architecture in Practice, Second Edition
269 / 463
Documents you may be interested
Documents you may be interested