Premise 5: Models
are abstractions
How to align ArchiMate with UML and TOGAF
Copyright Avancier Ltd 2106
“The method proposed by systems theory is to model complex entities (multiple interacting components) by abstracting from certain details of structure and component.” (Laszlo and Krippner).
This is one in a series of papers that present premises and principles for using business system modelling languages and frameworks in a way that is compatible with system theory.
Principles
Principle
5b: Architects both generalise and idealise system element
types
Principle
5c: Delegation is best distinguished from realisation
Principle
5d: Enterprise architects model only a fraction of reality
Principle
5e: Omission of detail
Premise: All system descriptions abstract from operational systems
that exist or are envisaged. Omission
of detail is perhaps the most basic and universal abstraction technique. Several more specific
varieties of abstraction are explored on the
“Sense and nonsense in system theory page” at http://avancier.website. For example:
·
After abstraction
by delegation, a description of a
client omits behaviour delegated to servers.
·
After abstraction
by composition, a description of a
whole hides details of its parts.
·
After abstraction
by generalisation, a description of
a generalisation omits details of any specialisations.
·
After abstraction
by idealisation, a description of a
logical thing omits details of more physical refinements or concretions.
This table represents each of
these four kinds of abstraction as a four-level hierarchy.
Delegation |
Composition |
Generalisation |
Idealisation |
Roles Applications System
software Hardware |
Coarse-grained composite Mid-grained composite Fine-grained composite Elementary part |
Universal Fairly generic Fairly specific Uniquely configured |
Concepts Logical Model Physical Model Physical Material |
Servers |
Decomposition |
Specialisation |
Realisation |
There is no implication of
correspondences along a row.
In UML, the fundamental or
elementary unit of behaviour - the finest-grained behaviour in the
system model – is called an “action”. Joining actions in a sequential flow
is how we define a longer behaviors (process,
workflow, state machine or interaction). Clustering actions by some other cohesion criterion is how we design
structural elements (functions, components, interfaces etc). ArchiMate should address the principle that active
structure and behaviour views are decomposable to the same elementary
activities, and how to represent this conjunction using symbols in diagrams.
Physicists consider
our world to be embedded in a four-dimensional space-time continuum. It is
called a “continuum” because it is assumed that space and time can be
subdivided without any limit to size or duration. Business system descriptions can be hierarchically
divided by space/structure and by time/behaviour.
Structural composition/decomposition
A
structural view defines what a system is made of. It defines actors and
components that perform behaviour (along with interfaces and data structures). Structural decomposition successively divides space
into smaller spaces. Biologists describe a body in terms of organs, then
tissues, then cells, then organelles. Architects organise a large system into
large components which are subdivided into smaller ones and so on. A higher
level system can be described only in terms of next-most coarse-grained
components, hiding the internal details of finer-grained components.
Behavioural composition/decomposition
The behavioural
view of a system defines what a system does, how it works. It defines regular
services and processes
that run from start to end, repeatedly. Behavioural decomposition successively divides time
into shorter durations. We can divide a long process into short steps, divide
those steps into shorter steps, and so on. A higher level process can be
described only in terms of next-most coarse-grained process steps, hiding the
internal details of finer-grained steps.
Functions can be seen
as logical components. Business functions can be seen as logical organisation
units. A
functional decomposition hierarchy groups activities in a structural view.
By contrast, a process
decomposition hierarchy groups activities in a behavioural view. So, if both
hierarchies are decomposed to the same level, they must both descend to the
same elementary activities. This principle is evident in the structured
analysis techniques used in EA frameworks like Avancier Methods, EA3 and TOGAF.
The elementary activity may be
called an elementary business function and/or an elementary business process.
Decomposing
behaviour and active structure views to the same level
In UML, the fundamental or
elementary unit of behaviour - the finest-grained behaviour in the
system model – is called an “action”. Joining actions in a sequential flow
is how we define longer behaviors (process, workflow, state machine or
interaction). Clustering actions by some other
cohesion criterion is how we design structural elements (functions, components,
interfaces etc). ArchiMate should
address the principle that active structure and behaviour views are
decomposable to the same elementary activities, and how to represent this
conjunction using symbols in diagrams.
Enterprise architects usually strive to generalise components, services
and interfaces – for reuse across an enterprise. This table show how TOGAF’s schema for
architecture description artefacts (the Enterprise Continuum) maps levels of
generalisation (columns) to levels of idealisation (rows).
Generalisation Idealisation |
Foundation (Universal) |
Common Systems (Fairly generic) |
Industry (Fairly specific) |
Organisation (Uniquely configured) |
Requirements
and Context |
|
|
|
|
Architecture
Continuum (Logical Models) |
Foundation Architecture |
Common System
Architecture |
Industry Architecture |
Organisation Architecture |
Solution
Continuum (Physical Models) |
Foundation Solutions |
Common System Solutions |
Industry Solutions |
Organisation Solutions |
Deployed
solutions |
|
|
|
|
It is common to describe or design
a complex system by dividing it into hierarchical client-server layers. This
simplifies the design of higher systems, which delegate to lower systems, which
depend on lower systems, etc. Delegation enables a higher system to be
described without little or no reference to how a lower system works.
ArchiMate speaks of realisation where
delegation seems a better-fitting term. A
client uses or delegates to a
server; does not idealise it. An application delegates to devices;
does not idealise those devices.
A billing application delegates
to a database software node or function; does not idealise it. Conversely,
a server serves a client; does not realise
it. A device serves system
software; it does not realise it.
A database system software node serves a billing application; does not realise it.
UML can show delegation from
clients to servers using a dependency arrow. To this end, ArchiMate employs the “used by” relation in
the reverse direction (meaning “serves”).
Enterprise architects do not describe all the busy,
buzzing, confusion of reality; the astonishing variety of actors and activities
in the conduct of business operations. They do not describe human biochemistry,
human cognition or human social communication. They do not describe buildings,
lifts, doors, vehicles, cabling and computer processor chips. They do not
describe perhaps 99% of the biological and physical or material world that a
business relies on.
TOGAF,
in its development method and “enterprise continuum”, uses four different kinds
of abstraction to classify and divide up architecture descriptions. This table shows each kind of abstraction as a four-level hierarchy;
there is no implication of correspondences along a row.
The Architecture Development Method |
The Enterprise Continuum |
||
Delegation |
Composition |
Generalisation |
Idealisation |
Clients |
Composed |
Generic |
Ideal |
Roles |
Enterprise /
Strategy |
Foundation |
Requirements |
Applications |
x Segments |
Common System |
Architecture
building blocks |
System software |
x * y
Capabilities |
Industry |
Solution
building blocks |
Hardware |
Organisation |
Deployed
Solutions |
|
Severs |
Decomposed |
Specific |
Real |
Even the bottom (deployed solutions) row of TOGAF’s enterprise continuum is a huge abstraction from the
reality of operational systems. For more, read “Abstraction in TOGAF and
Zachman” on the “Sense and nonsense in
system theory” page at http://avancier.website.
Omission of detail is perhaps the most basic and universal abstraction technique. TOGAF implies omitting intermediate entities that are often shown in ArchiMate diagrams. Omission of detail is perhaps the most basic and universal abstraction technique. TOGAF implies omitting intermediate entities that are often shown in ArchiMate diagrams.
For example, this ArchiMate style model.
Element |
Relation |
Element |
Relation |
Element |
Service |
Assigned from |
Interface |
Part of |
Component |
Realised by |
Process |
To |
Is typically reduced in TOGAF to this model.
Element |
Relation |
Element |
Service |
Realised by |
Component |
On the other hand, it isn’t always possible or helpful
to derive a direct relationship from direct ones. Sometimes
because there are several possible relationship paths. Sometimes because
boxes represent large and complex types, composed of many smaller simpler
elements, and lines relating instances of source and target types often connect
elements within source and target
instances. And sometimes because relationships can be optional.
E.g. ArchiMate says that if A-triggers-B-triggers-C,
then A-triggers-C. Is this necessarily true? What if A triggers a behaviour within B that has no relationship to C? Or
triggers a behaviour that chooses whether to trigger C or not? If Strategy
triggers Marketing & Sales triggers Complaints & Compensation, is it
appropriate to say Strategy triggers Complaints & Compensation?
E.g. ArchiMate says that if A-is-associated-with
B-is-associated-with-C, then A-is-associated-with-C. What if A is associated
with only a part of B that is
unrelated to C? If the associations are Customer-Movie Showing-Movie-Actor, is
it appropriate to say Customers are associated with Actors?
In one sense, every part of a system is associated
with every other part, directly or indirectly, else there would be separable
systems. But it isn’t architecturally meaningful or useful to associate every
part with every other part.
Copyright Avancier Ltd 2106