Task: Define the Architecture
Define a candidate architecture for the system based on experience gained from similar systems or in similar problem domains. Define the architectural patterns, key mechanisms, and -- where applicable -- modeling conventions for the system.
Disciplines:  Analysis & Design
Purpose
To provide sufficient guidance and direction for analysis and design activities to be performed in a consistent and coherent way by the team.
Relationships
Main Description

This task focuses on defining a candidate architecture and constraining the architectural techniques to be used for the development, testing and operation of system. It relies on gathering experience gained in similar systems or problem domains to constrain and focus the architecture so that effort is not wasted in architectural rediscovery. In systems where there is already a well-defined architecture, this task might be omitted; as it is primarily beneficial when developing new and unprecedented systems.

Steps
Identify architectural goals
Describe the goals of the architecture by examing the project Vision and other requirements products; and talking to the project Stakeholder(s) and Analyst(s). These will motivate the approach taken to important architecture and design decisions.
Identify architectural constraints

List any constraints on the solution (or possibly opportunities) that arise from the existing environment or organisation. 

Survey, assess and select from available assets

Establish the availability of suitable candidates for re-use from the existing software estate.

Define approach for structuring the system

Define the layering strategy for the software architecture. The architect will

  • Decide how many layers will be used.
  • Identify their names and purpose.
  • Descibe their relationships to one another. 
Identify key abstractions

Identify key concepts that the system should handle. These are usually found by looking for important nouns in the requirements, that describe things that are important to the business.

Identify analysis mechanisms

Catalogue the architecture mechanisms needed to support the requirements (see Architecture Mechanism). These will be expressed as Analysis Mechanisms at this point in the process, due to the relatively small amount of detail required against each mechanism.

Map each mechanism to one or more use cases. This will how the mechanisms are used to support the requirements and assist in the prioritisation of the development of the mechanisms.

Capture architectural decisions

Keep a log of important decisions for future reference.

More Information