…has serious, and many, errors. According to my personal analysis, 152 valid relations are missing, and potentially 2941 relations that are in that table shouldn’t be, if the text of the standard is to be believed or if we use some common sense. Here is why I believe that, and how I did calculate the table myself (code included).
The ArchiMate standard’s metamodel consists of:
- A set of element types (e.g. Business Object, Node, Assessment, Capability) in a number of domains (Core, Motivation, Strategy, Implementation)
- A set of relation types (e.g. Access, Serving, Realization, Assignment)
- A core set of relations defined from element to element (e.g. Application Function — Accesses — Data Object, Technology Interface — Realizes — Requirement)
- A set of derived relations (more about these below)
- Relations to/from relations (as of ArchiMate 3)
We ignore 5 for now.
3 and 4 together fill the the table in appendix B of the standard. Formally, this table defines all the allowed relations between the elements in ArchiMate in an actual model. These relations are all are equally valid. Note: that there is a ‘core set of relations’ and a ‘core domain’ within ArchiMate may confuse people. These are fully separate concepts.
How the table of allowed relations is calculated is not open to the public, and that way can also not completely be inferred from the text of the standard. What is clear, though, is that there are errors in the table. This post is about an attempt to create a calculation, and an comparison of this alternative to what is actually in the official table. Running ahead of things, 152 relations (including core ones) turned out to be missing from ArchiMate’s official table and 2941 relations in the official table are suspect and many clearly illegal.
The resulting Excel Spreadsheet and Python program I share under BSD license (so totally free), for all the world to see my feeble first steps at programming in Python :-). And VBA.