A cornerstone of the TOGAF Architecture Development Methodology (ADM) is that of the elusive ‘building block’. I say that it is ‘elusive’, because the Open Group describes the characteristics of building blocks and articulates various uses of these blocks, but stops short of giving a truly concrete implementation of the concept. I have developed a tangible implementation of the TOGAF Building Block concept that includes real artifacts and concrete deliverables. After a quick introduction to building blocks, I will describe this implementation.
TOGAF Building Blocks Background
Building Block Uses
- Defining the baseline architecture for each domain
- Defining the target architecture for each domain
- Populating the repository with reusable assets
- Retrieving previously vetted assets from the repository
- Performing a gap analysis and producing a roadmap of building block changes to evolve the architecture landscape
- Identifying solutions (SBBs) that map against architectural functionality (ABBs)
Building Block Characteristics
A package of functionality defined to meet the business needs across an organization
A building block has published interfaces to access functionality
A building block may inter-operate with other, inter-dependent building blocks
Considers implementation and usage and evolves to exploit technology and standards
May be assembled from or a subassembly of other building blocks
Is reusable and replaceable
TOGAF Specification References
- Initial, conceptual introduction to building blocks in Chapter 2, Core Concepts
- More thorough, complete treatment of building blocks in Chapter 37, Building Blocks
Building Block Implementation
I have defined Function Blocks (FBs), Infrastructure Blocks (IBs), and Utility Blocks (UBs) as a tangible implementation of TOGAF’s ABB and SBB concepts. I collectively refer to this as the Function Block technique (although supporting Infrastructure and Utility blocks exist as well). The intent of the FB technique is to provide a concrete instantiation of TOGAF’s building block concept in the form of a descriptive template, BPMN and UML diagrams, and supporting tables, lists, interfaces, and association / dependency references.
FBs allow a system designer to construct solutions in a modular fashion. It allows systems to be defined in terms of logically connected modules that are capable of running on different processing resources. Complete applications, can be built from a collection of function blocks, formed by interconnecting their inputs and outputs. Functional Blocks are intended to improve productivity in terms of re-use, reliability, flexibility and interoperability.
Use Cases / User Stories / Business Scenarios and applicable requirements are connected to FBs / IBs / UBs. Functional Blocks are self contained work units that have direct co-relation to the use cases and functional requirements developed during the business architecture phase (Phase B of TOGAF’s ADM). Simple blocks might only map to a single Use Case (UC) while more complex blocks may map to multiple UCs. A given UC can map to multiple blocks in order to fulfill all of its identified functionality.
Function / Infrastructure / Utility Block Template
- Context Diagram (Provides a high-level visual overview)
- Description (Text-based narrative that introduces the block)
- Core Functions (List of significant functionality as identified by Use Cases)
- Use Case Mapping (List of UC numbers)
- Related FBs (List of other FBs that this one talks to)
- Interfaces (List of data entities that this FB sends/receives)
- Artifacts (Diagrams that support the block definition)
Want to learn more about Function Blocks? Check out my pre-recorded webinar: A Tangible Implementation of TOGAF Building Blocks.