Task: Refine Architecture |  |

Refine the architecture to an appropriate level of detail to support development.

Purpose

To make and document the architectural decisions necessary to support development.

Relationships

Roles

Primary Performer:

- Architecture Owner

Additional Performers:

Inputs

Mandatory:

- Architecture

Optional:

- None

Outputs

- Architecture

Process Usage

- Foundation > Refine Architecture > Refine Architecture
- Refine Architecture > Refine Architecture

Main Description

This task builds upon the outlined architecture and makes concrete and unambiguous architectural decisions to support development. It takes into account any design and implementation work products that have been developed so far. In other words, the architecture evolves as the solution is designed and implemented, and the architecture documentation is updated to reflect any changes made during development. This is a key, since the actual implementation is the only real "proof" that the software architecture is viable and provides the definitive basis for validating the suitability of the architecture.

The results are captured for future reference and are communicated across the team.

Steps

Refine the architectural goals and architecturally-significant requirements

Identify architecturally significant design elements

Refine architectural mechanisms

Define development architecture and test architecture

Identify additional reuse opportunities

Validate the architecture

Map the software to the hardware

Communicate decisions