This chapter explains the concept of building blocks.
This section is intended to explain and illustrate the concept of building blocks in architecture.
Following this overview, there are two main parts:
This section is an introduction to the concept of building blocks.
This section describes the characteristics of building blocks. The use of building blocks in the ADM is described separately in 33.3 Building Blocks and the ADM .
Building blocks have generic characteristics as follows:
A building block's boundary and specification should be loosely coupled to its implementation; i.e., it should be possible to realize a building block in several different ways without impacting the boundary or specification of the building block. The way in which assets and capabilities are assembled into building blocks will vary widely between individual architectures. Every organization must decide for itself what arrangement of building blocks works best for it. A good choice of building blocks can lead to improvements in legacy system integration, interoperability, and flexibility in the creation of new systems and applications.
Systems are built up from collections of building blocks, so most building blocks have to interoperate with other building blocks. Wherever that is true, it is important that the interfaces to a building block are published and reasonably stable.
Building blocks can be defined at various levels of detail, depending on what stage of architecture development has been reached.
For instance, at an early stage, a building block can simply consist of a name or an outline description. Later on, a building block may be decomposed into multiple supporting building blocks and may be accompanied by a full specification.
The level of detail to which a building block should be specified is dependent on the objectives of the architecture and, in some cases, less detail may be of greater value (for example, when presenting the capabilities of an enterprise, a single clear and concise picture has more value than a dense 100-page specification).
The OMG has developed a standard for Re-usable Asset Specification (RAS),1 which provides a good example of how building blocks can be formally described and managed.
Architecture Building Blocks (ABBs) relate to the Architecture Continuum (see Part V, 35.4.1 Architecture Continuum), and are defined or selected as a result of the application of the ADM.
ABB specifications include the following as a minimum:
Solution Building Blocks (SBBs) relate to the Solutions Continuum (see Part V, 35.4.2 Solutions Continuum), and may be either procured or developed.
SBB specifications include the following as a minimum:
This section focuses on the use of building blocks in the ADM. General considerations and characteristics of building blocks are described in 33.2 Introduction to Building Blocks .
An architecture is a set of building blocks depicted in an architectural model, and a specification of how those building blocks are connected to meet the overall requirements of the business.
The various building blocks in an architecture specify the scope and approach that will be used to address a specific business problem.
There are some general principles underlying the use of building blocks in the design of specific architectures:
One building block may support multiple building blocks or may partially support a single building block (for example, the business service of "complaint handling" would be supported by many data entities and possibly multiple application components)
The process of identifying building blocks includes looking for collections of capabilities or assets that interact with one another and then drawing them together or making them different:
In the early stages and during views of the highest-level enterprise, the building blocks are often kept at a broad integration definition. It is during these exercises that the services definitions can often be best viewed. As implementation considerations are addressed, more detailed views of building blocks can often be used to address implementation decisions, focus on the critical strategic decisions, or aid in assessing the value and future impact of commonality and re-usability.
The process of building block definition takes place gradually as the ADM is followed, mainly in Phases A, B, C, and D. It is an iterative process because as definition proceeds, detailed information about the functionality required, the constraints imposed on the architecture, and the availability of products may affect the choice and the content of building blocks.
The key parts of the ADM at which building blocks are designed and specified are summarized below.
The major work in these steps consists of identifying the ABBs required to meet the business goals and objectives. The selected set of ABBs is then refined in an iterative process to arrive at a set of SBBs which can either be bought off-the-shelf or custom developed.
The specification of building blocks using the ADM is an evolutionary and iterative process. The key phases and steps of the ADM at which building blocks are evolved and specified are summarized below, and illustrated in Figure 33-1 .
return to top of page