ArchiMate derived relations

Find this and related slide shows on ArchiMate and TOGAF on this page
http://grahamberrisford.com/AM%201%20Methods/6PRODUCTSandTECHNIQUES/AM%20products%20and%20techniques.htm
Avancier
EA models the enterprise as a
system that is stateful and
event-driven.
System elements are
interrelated.
Events trigger changes to
system state and/or the
provision of services to
external entities.
ArchiMate and TOGAF
Core concepts
Symbols (boxes & lines)
Concept framework
Relations
1. order and derivation
2. grouping
3. realisation
Diagram types
Relations between system elements
1 Order and Derivation of Relations
Including diagrams and definitions edited from the ArchiMate 2.1 standard.
Copyright © The Open Group, All Rights Reserved.
ArchiMate is a registered trademark of The Open Group.
Training at http://avancier.website
Relations between system elements
► A line between two boxes usually specifies rules
for how instances of element types (named in the
boxes) are related.
► ArchiMate features a dozen kinds of relation
Training at http://avancier.website
Avancier
Name
Access
Used by
Assignment
Association
Abstraction
relations
Commentary
Might be labelled create or use.
Or create, read, update or delete.
the use of services by processes, functions, or
interactions and the access to interfaces by roles,
components, or collaborations.
Many would prefer a “uses" relation in which
the arrow points the other way.
Notation
links units of behavior with active elements (e.g.
roles, components) that perform them, or roles with
actors that fulfill them.
a relationship between objects that is not covered The simplest and arguably most widely useful
by another, more specific relationship.
relation.
Realization
The run-time sense (internal realises external)
links a logical entity with a more concrete entity that
is strongly related to the design-time sense
realizes it.
(physical realises logical)
Specialization
indicates that an object is a specialization of
another object.
Aggregation
indicates that an object groups a number of other
objects.
Composition
indicates that an object is composed of one or more
An object can be part of only one composition. Else nested boxes
other objects.
Grouping
Flow
Behavioural
relations
Other
Definition
the access of behavioral concepts to business or
data objects.
Symbol in UML
Not in UML
Avancier
Different meaning
in UML
Not in UML
-
An object can be part of > 1 aggregation.
indicates that objects, of the same type or different
types, belong together based on some common
Could be used to represent aggregation?
characteristic.
describes the exchange or transfer of, for example,
Can represent the movement information or
information or value between processes, function,
materials. Or energy?
interactions, and events.
Different meaning
in UML
Different meaning
in UML
Triggering
describes temporal or causal relationships between
processes, functions, interactions, and events.
Different meaning
in UML
Junction
used to connect relationships of the same type.
Not in UML
Training at http://avancier.website
Making sense of relations in the meta model
Explained
earlier
Avancier
► The standard’s narrative makes more sense than the meta model
App
Service
One Service can be accessible through > 1 Interface.
One Interface can give access to > 1 Service.
One Service can be realised by > 1 Function
One Function can realise > 1 Service
App
function
App
interface
One Interface can hide only 1 Component?
One Component can be hidden by > 1 Interface.
One Component can perform > 1 Function.
One Function can be performed by only 1 Component?
Training at http://avancier.website
App
component
Ordering of structural relations
► The standard lists seven structural relations in order of “strength”
► Weakest
Association
Access
Used by
Realization
Assignment
Aggregation
Composition
► Strongest
Training at http://avancier.website
Avancier
Deriving direct relations from indirect ones
► Given a chain of structural relationships (A to B to C)
► you can directly relate the ends of the chain (A direct to C)
► using the weakest of the indirect relationships.
► E.g. Service to Function to Component.
► You can directly Service to Component using the weakest of the
indirect relationships.
► And since the indirect relationships have a direction,
► the derived relationship will be in the same direction.
Training at http://avancier.website
Avancier
An ArchiMate diagram
Avancier
Read-only
Interface
Read Asset
Service
Create Asset
Service
Modify Asset
Interface
Update Asset
Service
Delete Asset
Service
Read Asset
Function
Asset
Manager
Component
Modify Asset
Function
► Service <realised by> Function <assigned from> Component
► (Notice one Function realises three Services.
► How does this Function differ from a Component?)
Training at http://avancier.website
Suppose we omit the Functions?
Avancier
Read-only
Interface
Read Asset
Service
Create Asset
Service
Modify Asset
Interface
Update Asset
Service
Delete Asset
Service
Asset
Manager
Component
► Service <realised by> Function <assigned from> Component
► Replaced by Service <realised> Component
► Using the “weaker” of the two relations
Training at http://avancier.website
Suppose we omit the Interfaces?
Avancier
Read Asset
Service
Create Asset
Service
Update Asset
Service
Delete Asset
Service
Asset
Manager
Component
►
►
►
►
Derived relationships remove detail,
But EA level diagrams usually don't have the detail in the first place!
EA diagrams typically omit intermediate entities,
So it is normal to start with weak relations, associations may suffice
Training at http://avancier.website
Note multiple connection paths can yield invalid derivations
Read-only
Interface
Read Asset
Service
Create Asset
Service
Modify Asset
Interface
Update Asset
Service
Delete Asset
Service
Read Asset
Function
Asset
Manager
Component
Modify Asset
Function
► There are two paths from Modify Asset Function to an Interface
► A wrongly derived relation would connect it to the Read-only Interface
Training at http://avancier.website
Avancier
Q) Why is Association defined as the weakest relation?
► Associations appear weak in ArchiMate because it has no symbol
to specify cardinality or mandatory constraints on a relation.
► (Aside from the cardinality implied by composition.)
► But if the association actually has cardinality and mandatory
constraints, then it is strong.
► So ordering the relations (for derivation) based on symbols alone is
deceptive.
Training at http://avancier.website
Avancier
Q) Are all relations subtypes of Association?
Avancier
► All relations look like associations a diagram, since
they connect two boxes.
► But sometimes two boxes specify different aspects of
one thing.
► Most obviously, generalisation and specialisation
boxes specify different properties of one object.
► You might say the same of idealisation and
realisation boxes.
► But the use of realisation in ArchiMate is too vague to
be definitive about this (as discussed elsewhere).
Training at http://avancier.website
Network
Node
Firewall
Logical
aspect
or thing
External
aspect
or thing
Physical
aspect
or thing
Internal
aspect
or thing
Q) How to explain the ordering of structural relations?
► This weak-to-strong order is an intuition based on observation
► But surely there should be a rational explanation for it?
► Weakest
Association
Access
Used by
Realization
Assignment
Aggregation
Composition
► Strongest
Training at http://avancier.website
Avancier
Q) What makes "access" stronger than plain "association"?
► How about…
► At design time, Access imposes constraints on the element types
(box symbols) that can be related.
► At run time, Access imposes the constraint that an instance of each
related element must exist?
Training at http://avancier.website
Avancier
Q) What makes "used by" stronger than "access“?
► How about…
► “Used by” constrains the kinds of behaviour by which the element
instances can be related?
► "Access" allows create, read, update and delete functions, but
► “Uses" excludes create and delete services/functions?
Training at http://avancier.website
Avancier
Q) What makes "composition" stronger than "aggregation"?
► Composition
■ specialises or extends the meaning of an aggregate.
■ adds a property – a cardinality constraint - one element can be
connected to only one composite at a time.
Training at http://avancier.website
Avancier
Q) Is the order correct and useful?
► I don’t know if completing an analysis along these lines would verify
the standard order.
► Perhaps this analysis would shift relations along the order in some
defined circumstances.
■ E.g. if associations were named and given cardinality constraints
■ then aggregation might be seen as weakly-defined association.
Training at http://avancier.website
Avancier
And bear in mind
Avancier
► Some relations are used within one view
■ (e.g. triggers between process steps)
► Some are used connect one view to another view
■ (e.g. process access to data).
► And different views apply different meanings to the same relations
► E.g. A trigger arrows could be used to show
■
■
■
■
Active structure - start of an object life time
Behaviour – start of a process step
Passive structure – start (entry point) to an access path
Associations in a structural and behaviour models may have different
implications.
Training at http://avancier.website
Nevertheless
Avancier
► The stated ordering can be useful in practice, to simplify diagrams.
► Some people draw clunky ArchiMate diagrams, including boxes
that are incidental if not redundant to the purpose.
Training at http://avancier.website
Q) Why does ArchiMate discuss deriving direct relations from
indirect ones?
► Drawing direct relations (derived from indirect ones, but often
weaker) is a way to simplify EA level diagrams.
Read Asset
Service
Create Asset
Service
Update Asset
Service
Delete Asset
Service
Asset
Manager
Component
► E.g. omitting the Functions which ArchiMate positions as
intermediate entities between Services and Components
Training at http://avancier.website
Avancier
Transferring dynamic relations
The standard says the following rules apply.
► “The begin and/or end point of a triggering or flow relationship between
behavior elements (e.g., processes or functions) may be transferred to…
1.
2.
“services that they realize.”
“active structural elements (e.g., business actors or application components)
that are assigned to them.”
► The second is questionable, since to trigger means to start something.
► Here, the trigger starts only whatever inside that component is needed to
perform the process containing the trigger.
► In more conventional modelling, triggers in behavioural models are likely to
appear as flows in structural models.
► See next page for detail…
Training at http://avancier.website
Avancier
Detailed discussion of that last point
A process flow diagram is a type, in which a trigger arrow indicates the end of step A and the start of step
B.
A process flow is an instance of that type, in which the trigger is instantiated as a transfer of control from
an instance of step A to an instance of step B.
In the latter, the trigger instantiates a process (meaning it causes an instance of process step B to be
performed).
Traditional modelling distinguishes:
(P) behavioural process flow diagrams - which connect process steps by triggers.
(C) structural communication diagrams - which connect active components by data flows.
Triggers in P often correspond to data flows in C..
A UML sequence diagram is a combination of process flow and data flow diagram.
The trigger is at once a trigger and a data flow. There are two kinds of trigger:
(T1) A trigger entering an operation (a process step) instantiates a process.
(T2) A trigger entering an object (a component) instantiates a component (meaning it causes an
instance of the component to be created) and a process.
I'd need a convincing example to persuade me it is a good idea to transfer triggers from behavioural
diagrams into a structural diagrams.
Training at http://avancier.website
Avancier
Q) Why do EA-level diagrams often feature derived relations?
► Sure, derived relationships remove detail
► But EA level diagrams are usually very abstract
■ “considerably more abstract than solution architecture” says TOGAF
► EA diagrams typically omit intermediate entities
► So it is normal to start with weak relations
Training at http://avancier.website
Avancier
In practice
Avancier
► People can and do use the ArchiMate notation at any level.
► Even at the solution architecture level most diagrams they show
me are cartoons.
■ They use the symbols as they use Power Point symbols.
■ They draw strong relations where they should draw weak.
■ They draw 1-1-1 relation chains where the intermediate elements are
redundant.
■ They confuse structural elements with behavioural elements (function
with component, service with interface).
■ They draw aggregation to express a 1-to-many cardinality notation
(which it doesn't).
► This makes it harder to teach them the basic concepts.
Training at http://avancier.website