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
Roles | Primary Performer: Architect | Additional Performers:
Inputs | Mandatory: Glossary Vision Use Case Model | Optional: Design Architecture Architectural Proof-of-Concept Supporting Requirements
Outputs | Architecture Design Architectural Proof-of-Concept
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
Guidelines | Define the Architecture Guideline
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