Architecture mechanisms are used to satisfy architecturally significant requirements. Architecture
mechanisms form the basis of common software that will be consistently applied across the
product being developed. They form the basis for standardising the way that the software works and so are an
important element of the overall software architecture.
When fully described, Architecture Mechanisms show patterns of structure and behaviour in the software.
There are three categories of Architecture Mechanism; Analysis, Design and Implementation. These
categories reflect the state of the architecture mechanism over time. The state changes as successive levels of
detail are uncovered during the refinement of architecturally significant requirements into working software. The
categories are summarised in the table below.
Types of Architecture Mechanism
Mechanism Type
|
Description
|
Analysis
|
A conceptual solution to a common technical problem. For example, Persistence is an abstract solution
to the common requirement to store data. The purpose of this category is simply to identify the need for an
architectural mechanism to be designed and implemented; and capture some basic attributes for that
mechanism.
|
Design
|
A refinement of an analysis mechanism into a concrete technology (e.g. RDBMS). The purpose of this category
is to enable initial design specifications to be produced and guide precise product or technology
selection.
|
Implementation
|
A further refinement of a design mechanism into a specific technology or product that implements the
required Architecture Mechanism. For examplem. MySQL as a database product implements the Analysis
Mechanism "Persistance" and Design Mechanism "RDBMS".
|
The transition from one state to another can be obvious or intuitive and so be achieved in a matter of seconds. It
can also require more considered analysis and design and so take longer. The following diagram illustrates the
transition of Architecture Mechanisms from one state to another.
State Machine for Architecture Mechanisms
|