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.
Discipline:  Analysis & Design
Purpose
The objective of this task is 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 in the 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, architectural analysis might be omitted; architectural analysis is primarily beneficial when developing new and unprecedented systems.

Steps
Identify architectural goals
Describe the goals of the architecture. 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

  • 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. For example, Customer, Account or Branch are typical key abstractions in the retail banking domain.

Identify analysis mechanisms

Catalogue the architecture mechanisms needed to support the requirements (see Concept: Architecture Mechanism. These will be expressed as Concept: Analysis Mechanism 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