Patterns versus building blocks

Hi,

To allow more reuse of architectural 'artifacts' in our company we are considering to introduce a more formal naming convention for these 'artifacts' and we went back to TOGAF for guidance. Two concepts stood out that we probably need:

While TOGAF does not seem to provide a definition for a building block, I definitely like (part of) their definition of a pattern:

Patterns offer the promise of helping the architect to identify combinations of Architecture and/or Solution Building Blocks (ABBs/SBBs) that have been proven to deliver effective solutions in the past, and may provide the basis for effective solutions in the future. Building blocks are what you use: patterns can tell you how you use them, when, why, and what trade-offs you have to make in doing so

Even though it may be a philosophical discussion, I feel that there is value to distinguish between building blocks and patterns but I have a difficult time to formalize it. Therefore I attempted to create visualizations of the metamodels for buildings blocks and patterns:

A building block is simply a combination of concepts, e.g. a combination of software and hardware. This could be a metamodel for a building block:

image

A pattern is one or more building blocks put into concept, but it can also be constructed from other other lower-level patterns. This could be a metamodel for a pattern:

image

An example could be:

  • building block: DataTransport.FTP
  • pattern: DataTransport.FileTransfer, which consists a.o. of the building block 'DataTransport.FTP'.

However, you could also argue 'DataTransport.FTP' is a pattern since it is built from some hardware building block (a server) and some software (an FTP client) put into a certain context. This could lead to the conclusion that every building block we use as architects is actually a pattern.

Did TOGAF intend to use pattern as a kind of building block, or is there a clear distinction between the two?

Note: I realize this is not a forum about TOGAF, but in the end I wish to model such patterns and building blocks in Archimate. In order to that, I first have to understand what they mean.

Edited by Michael Boeynaems