Concept: Analysis Mechanism
An Analysis Mechanism is a conceptual representation of an Architectural Mechanism.
Relationships
Main Description

An Analysis Mechanism is a conceptual representation of an Architectural Mechanism. Over time, Analysis Mechanisms are refined into Design Mechanisms and, later, into Implementation Mechanisms.

Analysis Mechanisms allow the developer to focus on understanding the requirements without getting distracted by the specifics of a complex implementation. They are a way of abstracting away the complexity of the solution, so people can better comprehend the problem.

Analysis Mechanisms are described in simple terms:

  • Name: Identifies the mechanism.
  • Basic attributes: Define the requirements of the mechanism.

You can identify Analysis Mechanisms top-down, from previous knowledge, or bottom-up, meaning that you discover them as you proceed.

In the top-down mode, you are guided by experience -- you know that certain problems are present in the domain and will require certain kinds of solutions. Examples of common architectural problems that might be expressed as mechanisms during analysis are: persistence, transaction management, fault management, messaging, and inference engines. The common aspect of all of these is that each is a general capability of a broad class of systems, and each provides functionality that interacts with or supports the basic application functionality. The Analysis Mechanisms support capabilities required in the basic functional requirements of the system, regardless of the platform that it is deployed upon or the implementation language. Analysis Mechanisms also can be designed and implemented in different ways. Generally, there will be more than one design mechanism that corresponds with each Analysis Mechanism. There may also be more than one way of implementing each design mechanism.

The bottom-up approach is where Analysis Mechanisms ultimately originate. They are created as the you see, perhaps faintly at first, a common theme emerging from a set of solutions to various problems. For example: There is a need to provide a way for elements in different threads to synchronize their clocks, and there is a need for a common way of allocating resources. Analysis Mechanisms, which simplify the language of analysis, emerge from these patterns.

Identifying an Analysis Mechanism means that you identify a common, perhaps implicit subproblem, and you give it a name. Initially, the name might be all that exists. For example, the system will require a persistence mechanism. Ultimately, this mechanism will be implemented through the collaboration of various classes, some of which do not deliver application functionality directly, but exist only to support it. Very often these support classes are located in the middle or lower layers of a layered architecture, thereby providing a common support service to all application-level classes.

If the subproblem that you identify is common enough, perhaps a pattern exists from which the mechanism can be instantiated, probably by binding existing classes and implementing new ones, as required by the pattern. An Analysis Mechanism produced this way will be abstract, and it will require further refinement throughout design and implementation work.

You can see examples of how Architectural Mechanisms can be represented in Example: Architectural Mechanism Attributes.

More Information