Task: Envision the Architecture |
|
 |
Define architectural goals, identify inputs to the architecture, and make key decisions about the structure of the architecture. |
Disciplines: Architecture |
|
Purpose
The purpose of this task is to understand project goals, define and validate architectural goals, and gather together all
sources of input to the architecture. This task helps you ensure that your architecture meets the needs of your
stakeholders, leverages existing resources, and is understood by developers. |
Relationships
Roles | Primary Performer:
| Additional Performers:
|
Inputs | Mandatory:
| Optional:
|
Outputs |
|
Main Description
In this task, you define architectural goals and identify inputs to the architecture, including requirements, constraints,
and reusable assets. You make and document key decisions about the structure of the architecture. You sketch a high level
overview of the architecture. |
Steps
Define architectural goals
Understand the project's goals and requirements. Elicit and build consensus on architectural goals. These goals help
prioritize and guide important technical decisions.
Describe the architectural goals in the Architecture Overview.
See Concept: Architectural Goals for more information.
|
Identify architecturally significant requirements
Identify which of the requirements play an important role in determining the architecture of the system. Explore those that
you much implement in order to realize the Architectural Goals. See Concept: Architecturally Significant Requirements.
Prioritize clarifying and stabilizing architecturally significant requirements that are unclear or likely to change.
Communicate these needs and priorities back to those responsible for defining them. In some cases, this means that they
must do further requirements analysis before you can complete the architecture.
Mark the requirements that are architecturally significant using an attribute of the requirements. You may reference this
list in the Architectural Decisions. Document the rationale for any key decisions that you make based about the
requirements.
|
Identify constraints on the architecture
Gather information about the existing environment and identify any constraints on the solution. List the constraints and any ideas that you have on how the
architecture will meet them in the Architectural Decisions. Document the rationale for any key decisions that you make
based on the constraints. |
Survey available assets
Search within your organization for similar projects and note any reusable assets from those projects that have potential to be applied to your
architecture.
Review industry literature to identify any commercial or open source reference architectures, technologies, architectural patterns, or other reusable assets applicable to your project.
Assess whether each asset contributes to meeting the project's requirements and architectural goals, and whether it is
compatible with the project's constraints. Examine the tradeoffs in cost, risk, and functionality from adopting the
asset. For each asset, note whether you plan to use it as-is, extend or enhance it, or whether you choose not to use it
at all, and why. Capture these decisions, and any supporting rationale, in the Architectural Decisions.
Consider whether negotiate modifications for any of the requirements to enable use of an available asset. If so,
propose requirements changes to those responsible for them.
See Guideline: Software Reuse for more information.
|
Identify architectural mechanisms
Use your experience to recognize architectural problems that exist in your system that have been solved before. Propose
a consistent means, or "mechanism", of solving those problems throughout your system. Document your ideas by listing
required Analysis Mechanisms in the Architectural Decisions.
For each mechanism, specify its name and basic attributes. The set of attributes varies among mechanisms. Prioritize
the design and development of any mechanisms that are key to achieving the Architectural Goals. Communicate these
priorities to developers.
See Concept: Architectural Mechanism for more information and examples.
|
Sketch architecture overview
Sketch the major building blocks of the architecture in the Architecture Overview. Keep any diagrams simple, brief, and
informal.
If you are still exploring alternative architectural solutions, produce diagrams for each option to enable stakeholders
to evaluate the tradeoffs between options.
|
Validate the architecture
Review the Architectural Decisions to ensure that you have captured the rationale for any significant decisions that
you have made, especially those that are controversial or are based on reasoning that is not obvious.
Review your requirements and update based on any new information you have discovered, updating requirements
traceability as required.
Communicate and validate your architecture overview and decisions with project sponsors, stakeholders, and developers.
Make sure that your developers understand the plan and can deliver it. Repeat the steps of this task as needed to
incorporate their feedback.
For checklists to assess the results of this task, refer to the output work products.
|
|
More Information
Checklists |
|
Concepts |
|
Guidelines |
|
Tool Mentors |
|
Licensed Materials - Property of IBM
© Copyright IBM Corp. 1987, 2012. All Rights Reserved.
|
|