14.01.2015 Views

Application Architecture Guide 2.0 BETA 1 - Willy .Net

Application Architecture Guide 2.0 BETA 1 - Willy .Net

Application Architecture Guide 2.0 BETA 1 - Willy .Net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. They are important for the success and acceptance of the deployed application.<br />

2. They exercise enough of the design to be useful in evaluating the architecture.<br />

After you have determined architecturally significant use cases for your application, you can use<br />

them as a way to evaluate the success or failure of candidate architectures. If a candidate<br />

architecture addresses more use cases, or addresses existing use cases more effectively, it will<br />

help you to determine that this candidate architecture is an improvement over the baseline<br />

architecture.<br />

Analyzing and Evaluating <strong>Architecture</strong><br />

Use architecture evaluation to determine the feasibility of your baseline and candidate<br />

architectures. <strong>Architecture</strong> evaluation is a key component of successful architecture iterations.<br />

Consider the following techniques for architecture evaluation:<br />

• Architecturally significant use cases. Test your design against use cases that are important<br />

to the success of your application, and which exercise a significant portion of the design.<br />

• Scenario-based evaluations. Use scenarios to analyze your design with a focus on quality<br />

attributes. Examples of scenario-based evaluations are: <strong>Architecture</strong> Trade-off Analysis<br />

Method (ATAM), Software <strong>Architecture</strong> Analysis Method (SAAM), and Active Reviews for<br />

Intermediate Designs (ARID).<br />

Representing and Communicating the <strong>Architecture</strong><br />

Communicating your design is critical for architecture reviews, as well as for the use of your<br />

architecture during implementation. In the end, your architecture is only as good as the quality<br />

of communication of your ideas. You must communicate your architectural design to a variety<br />

of roles, including system designers, developers, system administrators, and management.<br />

One way to think of an architectural view is as a map of the important decisions. The map is not<br />

the terrain. Instead, it is an abstraction that helps you to share and communicate the<br />

architecture.<br />

The Architectural Landscape<br />

Understand the key forces at work that are shaping architectural decisions today, and which<br />

will change how architectural decisions are made in the future. These key forces are driven by<br />

user demand; as well as by business demand for faster results, better support for varying work<br />

styles and workflows, and improved adaptability of software design.<br />

Consider the following key forces and responses:<br />

• User Empowerment. A design that supports user empowerment is flexible, configurable<br />

and focused on the user experience. Design your application with user personalization and<br />

options in mind. Allow the user to define how they interact with your application instead of<br />

dictating to them. Understand the key scenarios and make them as simple as possible;<br />

make it easy to find information and use the application.<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!