Identify architectural drivers and scenarios
Use the Vision, Supporting Requirements and Use Cases to evaluate the objectives for the architecture. You should balance the objectives for the
current iteration against the overall project objectives, ensuring that the architecture can support current and future
needs. Leverage developers, analysts, and testers to gain insight on balancing priorities across the team.
Architecture drivers can take the form of one or more Architectural Mechanisms brought into scope by association to the use case scenarios
prioritized for the current iteration. Other drivers may also be apparent. For example, it may be necessary to move
certain aspects of the architecture from prototype to production quality implementation; or explore certain aspects of
the architecture to inform future iterations.
|
Identify design mechanisms
Develop each architectural Mechanism into a Design Mechanism by looking at the requirements in context, refining your
understanding of the requirements and capturing detail in the architecture as you go. Include each architecturally
significant use case in scope. Look for commonality across scenarios as they are being analyzed and designed, then
propose common components and patterns for their solution. Work with the developers and analysts to refine the
understanding of the requirements and gain consensus on design mechanisms.
|
Identify business patterns
Analyze the use cases and identify areas of related or similar behavior and propose any appropriate generic
designs. See Business Pattern. Work with the stakeholders to assure the business patterns are
based on sound knowledge.
|
Identify reuse opportunities
Leverage reuse of existing components by evaluating their interfaces and the behavior that they provide. Work with
developers to gain consensus on the suitability of using existing components.
|
Identify architecturally significant design elements
Refine the key abstractions to decide on the important design elements (such as classes and subsystems) that
make up the architecture, and provide at least a name and brief description for each. Add them to the Design. Gain consensus with the developers on architecturally significant design
choices.
|
Define development architecture and test architecture
Decide on additional architecture elements that will be required for the development and test activities. Work with the
developer(s) and Tester(s) to ensure that their requirements are addressed.
|
Evaluate results
Work with the whole team, particularly developers, stakeholders, testers, project managers, and testers, to verify
that the architecture decisions are appropriate for their purpose.
|
Communicate and document decisions
Ensure that those who need to act upon the architectural work understand it and are able to work with
it. Make sure that the description of the architecture clearly conveys not only the solution but also the
motivation and objectives related to the decisions that have been made in shaping the architecture. This will make
it easier for others to understand the architecture and to adapt it over time.
|
|