Types
and instances of system elements
with respect to
ArchiMate’s generic structure and ideas
Copyright 2014-17 Graham Berrisford.
One of about 300 papers at http://avancier.website. Last updated
12/01/2017 15:55
The paper is mostly edited from my contributions to an email correspondence with Marc Lankhorst.
He doesn’t see everything the same way I do, but did say: “this is a fair
representation of ArchiMate’s basic structure and ideas”
The paper contains an original section n types and instances.
Contents
System
instances and descriptions
Structural and behavioral elements
External and internal elements
Types and instances of elements
Type-instance relationships between and within models
Footnote 1: on locating system elements in space and
time
The solar system exists in two forms:
· Instantiation: a physical reality, several large bodies orbiting the sun.
· Type: any idealised descriptions of that reality.
A Beethoven symphony exists in two forms:
· Instantiation: performances, which instantiate the symphony in sound waves.
· Type: any musical score that describes a performance.
A social system exist in two forms:
· Instantiation: performances of activities by human actors
· Type: any description of the actors and activities in the system.
Generally, a business system features the following element types:
· actors/components (active structure) interact by
· playing roles in processes (behaviors) to meet goals by
· maintaining system state data (passive structure) and
· sending/receiving data to/from each other and to/from the external environment (across the I/O boundary)
All
businesses rely on individual people performing ad hoc activities, not
only in response to recognised events but also by way
of innovation.
However, we can only model those
activities are typical, that are
observed or envisaged as repeated or repeatable.
The structure-behavior duality of system elements can be expressed using many different word pairs.
Structural view What a system is made of |
Behavioral view What a system does |
Actors |
Activities |
Components |
Co-operations |
Entities |
Events |
Form |
Functions |
Items |
Interactions |
Objects |
Operations |
Performers |
Processes |
Roles |
Rules |
Stocks / Stores |
Streams / Flows |
The Unified Modelling Language (UML) is a standard published by The Object Management Group.
Its purpose is to provide system architects and others with tools for analysis, design, and implementation of software-based systems and businesses.
The UML diagrams are divided between those that model structural elements and those that model behavioral elements.
· Behavioral views of system show processes that consume inputs and transform them into outputs, using the resources of the system.
· Structural views organise components (subsystems) that cooperate in processes into structures.
In the quote below, structural elements are called parts and connectors, and behavioral elements are called rules for interactions.
“The architecture of a system is a specification of the parts and connectors of the system and the rules for the interactions of the parts using the connectors.”
(Model Driven Architecture: MDA Guide v1.0.1, The Object Management Group.)
ArchiMate also divides a system description into structural elements and behavioral elements.
“[Architecture descriptions are]
organized in a way that supports reasoning about the structural and behavioral properties
of the system and its evolution.”
(ArchiMate® 2.1 Specification, The Open Group.)
The primacy of behavior
(a general system principle)
In natural systems, structures are created by behaviors.
In designed systems, the structure is created to perform the required behavior.
The roles and components are created in order to perform the required processes.
The Unified Modelling Language (UML) is for describing event-driven activity systems.
“Actions are the fundamental units of behavior in UML, used to define fine-grained behaviors.” UML 2.1
A man-made activity system is designed with purposes in mind
The effects of its behaviors may be divided into desired, neutral and harmful.
E.g. The effects of a haircut may be classified as:
· Desired effects - shorter hair and a credit to the barber’s bank account.
· Neutral effects - knowledge transfer regarding the customer’s holiday plans.
· Harmful effects - wear and tear on the barber’s scissors and chair, or worse, cutting a customer’s ear.
Generally speaking a process can be encapsulated behind a discrete service contract.
And a component can be encapsulated behind an interface definition (confusingly also called service level agreement or contract).
So, the generic elements of system architecture descriptions can be drawn in generic meta model grid as below.
Generic grid |
Behaviors what the system does |
Active Structures what the system is made of |
External
view requirements
of external entities |
SERVICE A discrete behavior triggered by an event or service request and producing a valued result, definable in a contract. |
INTERFACE A collection of services requestable by a client. |
Internal
view the
workings of the system |
PROCESS A sequence of activities triggered by a discrete event or service request and leading to an interim or final result. |
ROLE A performer (actor or component) of required activities, encapsulatable by the services it provides to and requires of others |
It is impossible to prescribe a human activity system as far as a computer activity system must be prescribed.
However, similar principles apply, and key system elements in a restaurant might be naively illustrated as below.
Restaurant |
Behaviors what the system does |
Active Structures what the system is made of |
External
view requirements
of external entities |
Place order, Pay for meal |
A la carte menu, Table d’hote menu Today’s specials |
Internal
view the
workings of the system |
Take order, Cook meal Serve meal, Check |
Waiter, Chef, Oven |
Interfaces
Any role, organisation unit, application or technology can be encapsulated behind an interface declaring requestable services.
· An oven has an interface in the form of controls used to trigger its services: turn it on, up, down and off.
· A human role is describable in the form of an interface declaring requestable services.
· A waiter’s role is to present a menu declaring service requests that the waiter can accept and convey.
· A human actor has the general-purpose interface of their senses, through which they receive service requests specific to their role in a described activity system.
Hmm.. which is the interface - the menu or the waiter?
Some say an interface is a passive structure – like a menu - and the waiter is a façade component that presents the interface.
Others say an interface is an active component – like the waiter who presents the menu.
For now, let us say the generic grid is ambiguous on this point, and you can choose whichever interpretation you want.
The primacy of the external view
(service-orientation)
Note that the internal structural elements in this grid are active structural elements - not passive ones.
In TOGAF, Functions and Roles are structural component types that specify activities performable by actors.
In UML, Components and Classes are structural component types that specify activities performable by active objects.
TOGAF considers “services” to be such fundamental features of a system that it calls them requirements.
It records services in its Architecture Requirements Specification – separate from its Architecture Definition Document.
Since the method is iterative, architects in practice interleave thinking about services, processes and components, alongside continual requirements management.
In these contexts, a service encapsulates a discrete event-triggered operation whose functional and non-functional qualities can be documented in a service contract.
A service contract (recording inputs, outputs, pre and post-conditions and other qualities) encapsulates internal activities and resources needed to realise the service.
“For the external users, only this external functionality, together with non-functional aspects such as the quality of service, costs etc., are relevant.” ArchiMate.
A service is accessible via a system interface, but is recursively decomposable inside the system boundary.
High level services are realised by high level processes, which invoke lower level services, which are realised by lower level processes, and so on down to atomic performable process steps.
Interfaces and components can also be recursively decomposed inside a system.
Services and contracts in other ontologies – terminology confusions
An architecture ontology attaches words to defined concepts (it is not a dictionary that attaches various meanings to a word).
It must select a term for the encapsulated event-triggered operation - and "service" has been selected in the sources above.
Unfortunately, DoDAF, UML and the Web Services Definition Language (WSDL) tend to use the terms “service” and “interface” interchangeably.
“Interfaces declare coherent services that are implemented by BehavioredClassifiers.” UML 2.5
So, what is named in the generic grid as an interface corresponds to what UML calls either interface or service and WSDL calls a Web Service.
And what is named as a service corresponds to an operation offered by a Web Service.
For some, an interface is a menu declaring services, for others it is a waiter (broker/façade) providing access to services.
In UML, a contract is a whole interface definition (cf. a service level agreement document) rather than one discrete service.
“An Interface specifies a contract; any
instance of a Classifier that realizes the Interface shall fulfill
that contract.
The obligations associated with an Interface
are in the form of constraints (such as pre- and post conditions) or protocol
specifications.” UML
2.5
But this last might mislead you, since pre-conditions, post conditions and protocols have to be associated with each discrete service/operation within an interface.
Architects usually model types of things rather than individuals, but some architecture frameworks have terms for instances also.
The mappings between ArchiMate, DoDAF and UML below expose industry terminology confusions surrounding the terms "actor", "service" and "interface".
Types and instances in ArchiMate
Individual instances of architectural entity types can be placed in the extended the generic grid below.
|
Instances |
Types |
Types |
Instances |
|
External view |
Service occurrences |
Service contract |
Interface definition |
Interface deployments |
External view |
Internal view |
Performances |
Process |
Role |
Assignments |
Internal view |
|
Behavioral
view |
Structural
view |
|
Note the grid’s instantiation of a role is an assignment rather than an actor (who may be assigned also to other roles).
For discussion of assigments read Organisations, roles and actors in EA (and other) repositories.
Remember it is impossible to prescribe a human activity system as far as a computer activity system must be prescribed.
Humans are expected to act creatively and usefully to the benefit of their employer, far outside any role description.
However, the core
concepts of a restaurant activity system might be illustrated as below.
|
Instances |
Types |
Types |
Instances |
|
External view |
Servings of > |
Menu item |
Master menu |
Menu copies |
External view |
Internal view |
Performances of > |
Order, Cook, Serve, Pay |
Waiter, Cook, Oven (Roles) |
Waiters, Cooks, Ovens (Assignments) |
Internal view |
|
Behavioral
view |
Structural
view |
|
Strictly speaking, the grid should show waiter assignments rather than a waiters (people) who may perform multiple roles.
The “master menu” above is the interface that defines those menu items the restaurant owner is willing and able to sell.
A menu copy is an instantiation of the master menu - a deployment of the interface definition, a structure found in a location.
Types and instances in the Department of
Defence Architecture Framework (DoDAF)
DoDAF has an unusual meta model, in which instances of types are named using the preface “individual”.
The grid can be edited to show some core DoDAF terms and concepts as below.
|
Instances |
Types |
Types |
Instances |
|
External view |
Individual Desired Effects |
Desired Effect |
Service |
? |
External view |
Internal view |
Individual Activities Projects |
Activity Project Type |
Performer Person Type, System |
Individual Performers Organisations |
Internal view |
|
Behavioral
view |
Structural
view |
|
Note the positioning of “performer” for role or component type, “service” for interface, and “desired effect” for service.
Strictly speaking, the grid should show performer assignment rather than individual performer.
Types and instances in The Unified
Modelling Language (UML 2.5)
“A UML model consists of three major categories of model elements, each of which may be used to make statements about different kinds of individual things within the system being modelled
· A classifier describes a set of objects [each] an individual with a state and relationships to other objects.
· An event describes a set of possible occurrences [each] something that happens that has some consequence with regard to the system.
· A behavior describes a set of possible executions [each] a performance of a set of actions (potentially over some period of time). Executions may generate and respond to occurrences of events, including accessing and changing the state of objects.”
By the way, “describes a set…” might be better “describes each member in a set…”.
UML speaks of interfaces being realised by classifiers (classes or components) rather than being instantiated on their own.
The grid can be
edited to show the major UML terms and concepts, and some others, as below.
|
Instances |
Types |
Types |
Instances |
|
External view |
Occurrences |
Events / Operations |
Interfaces |
“Interfaces
may not be instantiated” |
External view |
Internal view |
Executions |
Behaviors / Methods |
Components / Classes |
Objects |
Internal view |
|
Behavioral
view |
Structural
view |
|
UML 2.5 occupies 786 pages; it is so rich and complex that mapping its elements to the generic grid is not simple.
Classifier is too broad a concept for the internal structural element in the grid; a better fit is UML’s component (a subtype of class which is a subtype of classifier).
“Class: the concrete realization of EncapsulatedClassifier and BehavioredClassifier - specify the Features that characterize the structure and behavior of [classified] objects.”
“Component: a construct that can be used to define software systems of arbitrary size and complexity.
· represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.
· a self-contained unit that encapsulates the state and behavior of a number of Classifiers.
· specifies a formal contract of the services that it provides [and] requires in terms of its provided and required Interfaces.
· a substitutable unit that can be replaced at design time or run-time by a Component that offers equivalent functionality based on compatibility of its Interfaces.”
UML says a component may be instantiated as an addressable object, or else be a design-time-only component (so instantiated through objects that instantiate its realizing Classifiers or parts).
Yes, I know this section is academic, and you may be tempted to skip it, but give it a try.
Type-instance relations between models
Given a real-world domain of interest, you can describe it, then recursively abstract ever-more idealised descriptions by successive idealisation.
First you typify the things that you observe or envisage, then define higher-level types of those types, and so on.
The Meta Object Facility (MOF) of the Object Management Group (OMG) is based on four levels of abstraction.
This provides a management framework for the development and interoperability of models, and for the OMG’s Model Driven Architecture (MDA).
Level of model Composed of |
Generic modelling concepts |
Computer processes |
Computer databases |
Human processes |
Human resources |
M3 Universal concepts The
most generic description elements instantiated
in M2 models |
MOF
standard (Classifier & Instance) Generic
grid (Component & Process) |
|
|
|
|
M2 Language for models Universally-recognised
system description types, instantiated
in M1 models |
Model
kinds in UML, ArchiMate
and TOGAF. |
Programming
language elements (e.g. class) |
Data
definition language elements (e.g.
systable) |
Flowchart
symbols |
Role
description template |
M1 Design time domain-specific model Domain-specific
system description types, instantiated
in M0 models |
Models
drawn using UML, ArchiMate and
TOGAF artefact types |
Class
diagram for
a program |
Tables
/ relations in
a database schema |
Business
process flowcharts |
Role
definitions |
M0 Run time domain-specific model Memories
of instances (below) of M1 types (above) |
|
Object
states in memory |
Rows
/ tuples in a database table |
Case
records |
Assignment records |
Real world
operational system |
Individual
entity instances (humans and computers) performing activities in response to
events, as directed and recorded above |
The M1 level is where human and computer activity systems are described in domain-specific models.
Such a design-time model shows entity and event types or templates.
It does not directly represent particular entity and event instances in the real world.
The templates are used at run-time to instantiate objects (e.g. rows in a database table) in an M0-level information system.
The M0-level model directly records real world entity and event instances, in state data.
Entity and event instances can be remembered digital records, paper records and human mental models.
In practice, businesses rely on employees remembering individual business entity and event instances in their mental models.
Type-instance relations within a model
M1-level models of information systems often include type-instance relations. E.g.
A model of this system |
contains this type – instance relation |
Product management system |
Product type – is manifested by - Products |
Customer relationship management system |
Customer type - is manifested by - Customers |
Project management system |
Role - is manifested by - Assignments |
A box
in an M1-level diagram represents a type
of thing.
And each line in an M1-level
diagram connects 1 type to 1 other type.
But those lines describe how M0-level instances
relate.
E.g. 1 role defines features shared by many assignment instances.
So, the role-to-assignment relation can be seen as a 1-to-1 at
the M1-level and 1-to-many at the M0 level.
At first sight, the generic grid appears to reflect a distinction between things in space and things in time.
You may well assume that structural elements occupy a location in space, and behavioral elements occupy a period of time.
But the truth is far more complex.
Some components and processes can be located space, others cannot:
· a component instance/actor may sit in one place, but a component type/role is located in the system description
· an elementary component may sit in one place, but a larger component may be subdivided and its parts distributed
· an elementary process step may be performed in one place, but the steps of longer process may distributed.
All components and processes have a limited life cycle:
· a process instance occupies a period of time, but a process type lasts as long as its description lasts
· a component instance occupies a period of time between its creation and destruction, but a component type lasts as long as its description lasts.
A structural component’s life cycle can span several system generations.
In each system generation, components from the previous generation may be changed or survive unchanged
Migration planning is based on identifying which components exist (in which version) in each system generation.
Architecture frameworks assume an enterprise architecture repository will be maintained.
This architecture repository might be structured according to the TOGAF or ArchiMate meta model.
Architects are expected to record abstract roles and types of service, process, component etc.
And they are concerned with systems in which particular humans and computers act in described roles.
Of course, a human actor can do more than any role they are asked to play.
Obviously, a human being is much, much more than a performer of described activities in described roles.
But architects do not document what an individual human might do unsystematically or unpredictably - in addition to or in conflict with role definitions.
And a human’s out-of-role feelings and needs, and undescribed activities, are mostly beyond the architect’s reach.
They are the concern of that human, his/her line manager, the HR department, the facilities management department and others.
And wherever architectural change affects them, architects usually turn for help and guidance to those other functions and/or a business change team.
All free-to-read materials at http://avancier.website are paid for out of
income from Avancier’s training courses and methods licences.
If you find the web site helpful, please spread the word and
link to avancier.website in whichever social media you use.