Derived Relationships and Derived Connectors
Describes how Derived Relationships and Derived Connectors can be used to make sense of complex models.
What is a derived connector
Some modeling languages, like Archimate, define the idea of a ‘derived relationship’.
This just means that it recognizes that if elements of type A are connected to elements of type B, and Bs to Cs, then it might be helpful to say that A is related to C. And ignore, for a moment, that the Bs are involved.
This doesn’t have to be true: the relationship might not be useful or interesting. But it might.
Where we have more than just three types of element, then derived relationships become even more useful.
Example
Here are some Archimate elements
If we create a derived connector which navigates across these elements, it would look like this:
More importantly, we can now make this example diagram much simpler, and miss-out all the intermediate elements:
The benefits of using Derived Relationships become more obvious when applied to a larger diagram:
..when can be reduced to:
Defining a Derived Relationship
Model expert implements the idea of derived relationship in two parts:
1. The Derived Relationship (DR) definition.
This is the set of rules which describe
-
- how to navigate across the model: which connectors types to follow, and which element types to use.
- what kind of real EA connector to create if the DR rules are met
2. The Derived Connectors (DC) which are created using the Derived Relationship rules.
One DR can give rise to many DCs, but each DC is defined by only one rule. And DCs need to be refreshed, so that Model Expert can follow the DR rules, and make sure the DC is still valid: one of the intermediate connectors might have been deleted.
Hint: to see why a DC has been created, right-click on the derived connector in a diagram, and choose Model Expert / show details.
This will create a diagram with the start and end elements, and all the intermediate classes and connectors, to show why the DC exists.
In Model Expert you can define a derived relationship here.
To create DCs from a DR, you can, on a diagram, choose Specialize / Model Expert/ Add all derived connectors for diagram.
This will look at each element in the diagram, and look for any DRs which start or end at that element, and, if the other end of the DR is also present in the diagram, it will create a connector.
Why not just create them all at the same time?
It would be quite possible to create all the DCs for a DR at the same time.
For a large model this would take some time, and would also risk making a mess of lots of diagrams, which might suddenly get extra connectors appearaing. For this reason, we have decided to implement the creating of DCs diagram-by-diagram.
Refresh before use
The Derived Connectors which DRs produce depend on the existence of lots of other elements and connectors to be valid. If any of those elements or connectors get deleted the DC is no longer valid.
So it’s vital to refresh the DCs in a diagram before you do anything with that diagram, such as print it in a document, make it available via tools like Prolaborate or WebEA, or make decisions on it based on what it looks like in EA.
You can choose Model Expert / Refresh derived connectors in any diagram.
Derived Connectors are Real Connectors
When Model Expert creates a Derived Connector (DC) from the rules in a Derived Relationship (DR) then what gets produced is a real EA connector. What type, direction and color that connector is, is defined by the DR, but it’s still a real EA connector.
That means everything else in EA, and in EA addins and extensions, will treat the DC as a connector.
So that it can:
- Be seen in a diagram
- Appear as a cell in a relationship matrix (EA or Model Expert) or a Matrix Report (eaDocX)
- Have tagged values attached to it (not recommended, as, if the DC is deleted and then re-created, the tagged values will be lost)
- Be viewed in any of the Prolaborate views which show connectors
This is usually what we want: to make the model seem simpler, as the DCs replace more complex relationships. But remember always to refresh the DCs before using them.