Premise 3: Structures
are space bound
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
3b: Roles and functions identify rather
than perform behaviours
Principle
3c: Clustering discrete services makes a structural function, not a larger
service
Principle
3d: One-to-one relationships and synonym boxes can be redundant
Premise: All behaviours in a system are performed by actors or components that occupy space and must be addressable.
Interfaces, roles and functions do not perform behaviour, they only identify behaviours. They name behaviours that addressable components, human actors and organization unit actors are responsible for.
ArchiMate’s
processes are start-to-end or cyclical, but its functions are not. Since
functions are more like roles, classifying them as behavioral is confusing. ArchiMate tries to
draw a distinction by saying roles represent responsibilities for behaviour, whereas functions describe that behaviour, but the
following discussion suggests this is sophistry.
What
makes a thing (subject or object) structural?
That it is addressable. If you can't locate a subject in space, you can't ask
it to do work. If you can't locate an object in space, you can't work on it.
Further, what makes a structural element active?
That it performs one or more behaviours (each of which has a purely logical
structure over time), or identifies or names behaviours to be performed.
Components, organisation
units and actors perform behaviours. Interfaces, roles and functions do not;
they only identify/name behaviours.
·
Separating
interfaces (which name behaviours) from components (responsible for performing
behaviours) separates what is to be done from how it is assigned to components
in a system structure.
·
Separating
functions (which name behaviours) from organization units (responsible for
performing behaviours) separates what is to be done from how it is assigned to
organisation units.
·
Separating roles
(which name behaviours) from actors (responsible for performing behaviours)
separates what is to be done from how it is assigned to human beings.
Note that ArchiMate uses the term actor for both an individual organisation
unit and for an individual person.
What a system can do is identified in definitions of its
active structural elements. Business functions identify
what organisation units do, and roles identify what actors do.
Functions and roles are structural elements rather than behavioural. The ArchiMate meta
model can easily be modified to more
clearly distinguish processes (start to end behaviours) from functions and
roles (logical components). This table shows how elements can be renamed and
moved.
Architecture layers |
Behaviours over time |
Addressable structures |
Business layer |
Business service |
Business interface |
Business process |
Function / Role / Actor |
|
Applications layer |
Application service |
Application interface |
Application process |
Application function / Component |
|
Infrastructure layer |
Infrastructure service |
Infrastructure interface |
Infrastructure process |
Infrastructure function / Node |
In addition to abstraction varieties mentioned above, simply erasing
detail from a description is the simplest kind of abstraction. One way to erase
details is to cluster several related things into a group, and then name the
group of things, or the type of thing. Thus, discrete individuals become a set,
things become a type, the unique becomes a collection.
Clustering different
behaviour types into a group is how we design the logical
structural elements we call interfaces, functions and roles.
A logical structure |
clusters behaviour types that |
more physical structures |
are responsible for |
An external interface |
clusters
behaviour types that |
components |
are
responsible for |
A business function |
clusters
behaviour types that |
organisation unit actors |
are
responsible for |
A role |
clusters
behaviour types that |
human actors |
are
responsible for |
Granularity is irrelevant here.
A behavioural element (service or process) may be fine-grained or
coarse-grained, depending on the granularity and the nature of the system that
exposes or performs it. A single business service could be a project that runs
from project request to delivery over years. But plurality is relevant. Joining several shorter behaviours in a
longer behaviour makes one longer behaviour (the
aggregate still runs from start to end or outcome). But clustering different
units of behaviour into an aggregate using some other criterion is how we design a logical structural element. The aggregate is unlike an
internal behaviour, and very like a role or function, or what TOGAF calls a logical component (the root entity of a
“capability” to deliver that function using physical resources).
In short, if you cluster
discrete services into a named group, you should represent it using the function or interface symbol.
In practice, some architecture diagrams are cluttered with redundant
1-to-1 relationships and synonym boxes. If
a box called gardening is associated 1-to-1 with a box called gardener, then
having two boxes is redundant. The verb-named box merely attaches an
alternative label to the noun-named box. Defining a service as whatever a component does, one sees diagrams
cluttered with 1-to1 relationships such as: transaction
processing <is the service realised by> a transaction processor; message
brokering <is the service realised by> a message broker; and customer relationship management
is <is the service realised by> a customer relationship management system.
Similarly, if one component has one interface, found at the same
address, there is no need to separate interface from component. If two
components collaborate to support one interface, then that interface represents
the collaboration, so there is no need to draw a collaboration box as well. If
one process delivers one service, it may not help to separate service from
process. And so on.
Copyright Avancier Ltd 2106