Copyright Avancier Limited. All rights reserved.
Composition is one of the four scales of abstraction introduced in ref. 1 and included the table below.
Abstraction |
Omission |
Composition |
Generalisation |
Idealisation |
|
Vacuous |
Coarse-grained composite |
Universal |
Logical Concept |
|
Sketchy |
Mid-grained composite |
Fairly generic |
|
|
Elaborate |
Fine-grained composite |
Fairly specific |
|
|
Complete |
Elementary part |
Uniquely configured |
Physical Material |
Concretion |
Elaboration |
Decomposition |
Specialisation |
Realisation |
You may find it helpful to review the definitions and examples of composition given in the paper on abstraction. For example:
And remember that architects describe different, clashing, structures of the same thing. Often, there is a more physical structure and more logical structure. For example,
Here are a few more examples of hierarchical decomposition. In business organisation domain:
In the information systems domain:
In the technology infrastructure domain:
This paper explores the idea of hierarchical decomposition, and introduces some hierarchical structures used in our reference model.
Divide one thing into ten smaller things, divide each of those into ten smaller things and you have defined a two-level decomposition hierarchy (the top isn’t counted as a level) with 100 elementary things and 111 things in total.
The conventional advice is that it is difficult for one person to maintain the integrity of a hierarchical structure with more than three or four levels of decomposition, or more than a thousand elements. How many levels in a complete enterprise architecture description? I address that question only in presentations!
In a pure hierarchy, everything appears once and once only, there is no repetition between branches, no redundancy. A classic example is the management structure of an army listed above. You can document a pure hierarchy as a tree or folder structure, or as nested boxes. (The latter is common in the IT world.)
In a redundant hierarchy, one (lower-level) node can appear in, be reused in, many (higher-level) branches. How to avoid repetitious documentation? You can draw a matrix, a node-relationship network diagram, or document the lower level nodes separately.
You can draw a matrix in which the repeated nodes are mapped to the nodes above them - as row and column headings. For example:
Core Divisions “Shared Services” |
Investment Division |
Insurance Division |
General Loan Division |
Home Loan Division |
Accounting |
x |
x |
x |
x |
Procurement |
x |
x |
x |
x |
Human Resources |
x |
x |
x |
x |
Debt Collection |
|
|
x |
x |
A matrix is not good for recording complex multi-level structures. You could instead draw a node-relationship network diagram, retaining the top-down structure where possible. Or you could break off the lower level nodes into distinct hierarchies, and document the mappings only in supporting documentation. This last is essentially what enterprise architects do when they divide architecture into several domains as shown below.
The table below shows three architecture domains as a hierarchically layered structure. The components in one layer invoke services offered by components in the layer below. This is a useful mental model for enterprise and solution architects alike.
This architecture domain |
is composed of systems called |
that provide services to each other and to |
by executing processes called |
Business |
Business functions |
Customers |
Business processes |
Applications |
Client-side applications |
Business functions |
Use cases |
Server-side applications |
Client-side applications |
Automated services |
|
Infrastructure |
Infrastructure apps |
Applications |
Platform services |
The overall structure of the enterprise is a redundant hierarchy, meaning that a service provided by a system in one level can be reused by several systems in the level above. The dependency of a component on a service in layer below is recorded in supporting documentation.
Aggregating smaller things into a big one can result in a new kind of thing. If you squash a number of circles together, you arrive at a triangle.
Similarly, if you merge the logical data models of several enterprise applications, then you don't get an even larger application, you get an enterprise-level business data model of different character. They may look similar, use the same notations, but they are different things.
Using the same term at all levels of granularity can create difficulties – leading architects to talk at cross purposes with each other, let alone with business people.
E.g. consider the word “capability”.
That’s OK providing the two architects don’t talk to each other about capabilities, and you don’t try to write a generic architecture framework that both architects will find helpful.
The usual way to avoid hierarchical decomposition confusion is to use different terms at different levels. For example, in the hierarchy of architecture layers above, you’ll see the processes and services are given different names at each level. Some other examples are shown below.
The inputs to architecture definition include high level aims, directives, targets and plans. These are decomposed and elaborated alongside architecture definition. So outputs include lower level definitions of the inputs, commonly given different names.
The table below shows four hierarchies of inputs and outputs included in the reference model:
Aims |
Directives |
Targets |
Plans |
Goal
(KGI) |
Principle |
Solution
vision |
Strategy |
Objective
(KPI) |
Policy |
Solution
outline |
Programme |
Requirement |
Business
rule |
Solution
to build |
Project |
Depending on the scope of the system being described, a hierarchy can include two, three or more levels of decomposition. The names used along a row may or may not correspond to each other in any real-world situation. The “right” granularity and detail for a level of decomposition varies with the scope and complexity of your enterprise, system or project.
Some say enterprise architecture is all about delivering value and managing risk. But what do these words mean exactly? They can (in the world of corporate governance and legislation) mean delivering value to shareholders and managing enterprise financial failure risk. The latter is some kind of science, embodied in automated calculations run after every financial transaction.
High level values and risks, like every concept the architect deals with, can be decomposed into lower level values and risks. What kind, what level, of values and risks are EA and IT architects most concerned with? Deep thought is needed about:
In practice, Enterprise Architect usually strive to deliver value to the business sponsors of the IT department, and manage the risks attributable to that department.
The TeleManagement Forum (TMF) has produced three architecture reference models. These are somewhat generic structures that a specific Telecoms enterprise can specialise and realise, or least use to do a gap analysis by comparing them with their existing systems.
· By way of business architecture: there is a business function hierarchy (called eTOM) which has 3 levels of decomposition leading to about 500 elementary business functions.
· By way of data architecture: there is a data structure (called SID) with 8 domains, decomposed to about 80 entities, decomposed (in places down to a fourth level) to several thousand classes documented using UML.
· By way of applications architecture: there is an applications structure (called TAM) in which the same 8 domains are decomposed to about 70 applications, with some further decomposition below that.
These three models could be placed in the naïve abstraction schema shown in the paper on abstraction. They are all fairly specific (to the Telecoms industry) but are completed to different levels of detail.
Generalisation Composition |
Universal |
Fairly generic |
Fairly specific |
Uniquely
configured |
||
Coarse-grained composite |
|
|
eTOM |
TAM |
SID |
|
Mid-grained composite |
|
|
eTOM |
|
SID |
|
Fine-grained composite |
|
|
|
|
SID |
|
Elementary parts |
|
|
|
|
Authors don’t always appreciate how hierarchical decomposition undermines their attempts to draw 1-1 or 1-N relationships between concepts in different hierarchies.
For example, systems can be decomposed into subsystems, and process flows can be decomposed into sub processes. You cannot say in general that a system encapsulates several processes or that a process requires several systems. You can only say that:
And this applies to all sentences in which synonyms of system and processes are used. So, all sentences including the words function, capability, service, operation etc.
Decomposition hierarchies are not inheritance hierarchies. Some terms in our reference model terms do inherit from each other in a generalisation-specialisation hierarchy. For example: System is a super type of Actor, Broker, Client, Component, Function and Server. However, the inheritance tree between the c400 terms is complex and not formally defined.
Ref. 1. “Abstraction in all its variety” at http://avancier.co.uk .