Did you ever wonder what a strange beast the Grouping Relation in the ArchiMate zoo of elements and relations is? According to the standard it is a ‘relation’. It is, however, one of the weirdest elements of ArchiMate. Officially it is a relation, but it looks like an element. Somehow, it stands for a relation between all the elements grouped, but modelling-wise, it does not relate to any other part of a model. It’s a bit reminiscent of the phrase ‘the sound of clapping with one hand’. The tool I generally use for ArchiMate modelling doesn’t even mention Grouping in the ArchiMate sections of elements and relations that can be added to a model. It is part of the section “Graphic shapes” (together with some other useful shapes that do not stand for anything that have to do with modelling; i.e. shapes to liven up your views such as a post-it note). And that, I’m afraid, is exactly what it in practice is. ArchiMate may call it a relation, but it is hard to see Grouping technically as a relation (as it does not actually relate anything element in the model to anything else). It is also not an element. It is just a shape. The tool can remember that it can graphically nest elements, but that has no effect on the model at all. It is like a Nested relation, but without the relation. The standard says:
Unlike the other language concepts, grouping has no formal semantics. It is only used to show graphically that model elements have something in common. Model elements may belong to multiple (overlapping) groups.
This has ‘shoehorned into the core idea of (elements and) relations’ written all over it.
Actually, there is another weird element if you think about it: Product. It is a passive element, but it can Aggregate behavioural elements, namely the services.
The Location element, added in ArchiMate 2, also has a bit of that ‘shoehorned in’ quality. It has been added to ArchiMate as an active element, normally meaning that it should be able to perform behaviour. The relation used to connect it to other elements is Assignment, too, but in the same kind of meaning as the Assignment between Node and Artifact, the ‘resides at’ meaning. More illogic: I can Assign an Artifact to a Node, but I cannot Assign a Data Object to an Application Component or a Business Object to an Actor. A bit strange. Why is this OK in the infrastructure layer and not the other layers?
I think that we could make a cleaner ArchiMate by dropping the almost meaningless Grouping ‘shape’ in ArchiMate and concluding that the world needs more than just Subject (active element), Verb (behavioural element) and Object (passive element) to be described. ArchiMate could at least do with one more base type in its metamodel.
I propose to add a new element class, next to active, behavioural and passive: aspect (or whatever name is better, maybe collection as I wrote in section 28.8 of the book). Aspects are the elements that contain extra information in the model that is neither active (has behaviour), behaviour (is behaviour) or passive (is accessed by behaviour). The new class contains a single generic master element type: Group. The available specialisations are Location, Product and Capability, as described in another earlier post: Missing from ArchiMate: (Business) Capability?. We might, in the light of capability-based thinking rename Product as a Result, but I am still a bit in two minds about that. From the perspective of the outside Product is better, but from the perspective of the inside, Result is more appropriate. The new part of the metamodel would look like this: A Group may Aggregate any core element. Result may Aggregate Business Object (and Contract), Artifact (an extension of what was proposed in that earlier post) and any service. Capability may Aggregate Actor, Application Component, Node, Process, any Function and Artifact. And of course: you may Nest in a Group element whatever is Aggregated by it. This way, what you are now trying to say with a grouping becomes structured information instead of just an unstructured graphical signal.
I wonder: if we would have had Group from the beginning, would the structural concept Location have been added in ArchiMate 2.0? Or would everyone that required structured information (model) about locations just have used the Group element? And suppose we have need of yet another concept to be used in a modelling sense, say Time, do we, just as happened with Location, add yet another concept to the metamodel? Or might we even be so bold as to drop the Location concept and tell people: just use Group? After all, in this brave new world of Cloud and all, what’s so special about that medieval-up-to-20th-century concept of a geographic place?