Task Descriptor: Develop the Architecture |
Make concrete decisions about the architecture to provide guidance and direction to the development work for the iteration.
Based on Method Task: Develop the Architecture
Purpose
Provide a skeletal design to enable more comprehensive design activities to be performed coherently by the team.
Relationships
Roles | Main: Architect | Additional: Analyst Developer Project Manager Stakeholder Tester | Assisting:
Inputs | Mandatory: Architecture Design | Optional: None | External: None
Outputs | Architecture Design
Main Description
This task builds on the work performed during Analyze Architectural Requirements to produce a concrete approach for the main development work to follow. The objective is to resolve the overarching issues which affect the design and development activity for the current iteration. These are: To specify common mechanisms or patterns to be used. To specify what, if any, use will be made of existing software assets and how they will integrate with the overall solution. To specify what, if any, new software needs to be developed. To ensure that the appropriate hardware and software resources are specified to support the development and testing of the solution. To ensure that the architecture is useful to the project team To ensure that the architecture is used by the project team The products of this task are generally termed "high level" (in that they are applied in broad terms across solution). They are also specific (in that the technical decisions are concrete and unambiguous).
Steps
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.
Properties
Multiple Occurrences |
Event-Driven |
Ongoing |
Optional |
Planned |
Repeatable |
Key Considerations
The architect should perform this task through collaboration with the whole team to promote consensus and a common understanding of the overall solution. The architect should be working to coordinate and guide the technical activities of the team, rather than seeking to do all the work alone. The architect should place emphasis on involving the developer(s) throughout this task.
More Information
Concepts | Business Pattern Design Mechanism Architectural Mechanism
Guidelines | Develop the Architecture
This program and the accompanying materials are made available under the Eclipse Public License v1.0 which accompanies this distribution. View copyright information here: OpenUP Copyright