Book a Demo

Author Topic: Show relations of aggregated elements  (Read 5481 times)

knaapie

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Show relations of aggregated elements
« on: January 31, 2024, 08:31:51 pm »
Hi fellow EA users,

I'm trying to build a model and then build some higher-level visualizations.
For that I need EA to show relations to aggregated elements. I have done some searching but cannot find if this is possible, and if so, how.

Let's say I have built this model wherein
Proces A is composed of Proces A1
Proces A1 accesses Business Object B1

Now I want a diagram that shows Proces A and the relation to Business Object B1.
Is it possible to achieve this without adding an extra relation between A and B1?

Many thanks for any enlightenment!

Best Regards,
Eric

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13471
  • Karma: +571/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Show relations of aggregated elements
« Reply #1 on: January 31, 2024, 11:02:54 pm »
No. EA can only show relations that are actually there.

You could try to hide A1 behind A, to make it appear visually that A has a relation to B1, but that's cheating I guess.

We created a script to create aggregated relations based upon the "real" relations.

Geert

knaapie

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Show relations of aggregated elements
« Reply #2 on: January 31, 2024, 11:10:53 pm »
Thanks for the reply!
Bummer that this is not possible...

If you create the extra relations (via script or manually), this makes the complete model harder to read for other architects.
How do you deal with that?

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13471
  • Karma: +571/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Show relations of aggregated elements
« Reply #3 on: February 01, 2024, 12:37:47 am »
Thanks for the reply!
Bummer that this is not possible...

If you create the extra relations (via script or manually), this makes the complete model harder to read for other architects.
How do you deal with that?
In the script I wrote I create the aggregated relations based upon the contents of a diagram.
The newly created relations are then hidden on all other diagrams in order to not mess up other diagrams.

Our script not only creates aggregated (derived) relations, but also decides which aggregated relations should be visible on a diagram.
E.G. only show derived relations if the original is not visible as well.

Our derived relations also have a reference to their original, to help maintain the integrity of the model.

Geert

shimon

  • EA User
  • **
  • Posts: 172
  • Karma: +6/-0
    • View Profile
Re: Show relations of aggregated elements
« Reply #4 on: February 01, 2024, 06:15:09 pm »
Hi Eric,
If the purpose is only to visualize the inferred relation, will it help to to draw relations between objects of the ProcessA and the buisness objects?
These relation will exist only if you use these objects, and will not be added to the Classes.

If you choose to do this, you might want to add a note on the diagram explaining that in order to see the full capabilities / features of ProcessA, choose object and press CTRL+ALT+G.
Sincerely,
Shimon

P.S. We try not to use objects (Instances) as it makes it difficult to produce documentation for these objects' features and relations.
 

Modesto Vega

  • EA Practitioner
  • ***
  • Posts: 1173
  • Karma: +30/-8
    • View Profile
Re: Show relations of aggregated elements
« Reply #5 on: February 02, 2024, 10:12:46 pm »
Hi Eric,
If the purpose is only to visualize the inferred relation, will it help to to draw relations between objects of the ProcessA and the buisness objects?
These relation will exist only if you use these objects, and will not be added to the Classes.

If you choose to do this, you might want to add a note on the diagram explaining that in order to see the full capabilities / features of ProcessA, choose object and press CTRL+ALT+G.
Sincerely,
Shimon

P.S. We try not to use objects (Instances) as it makes it difficult to produce documentation for these objects' features and relations.
 

Inferred relationships will be my prefer approach but there are 2 non-unsurmountable issues with this, Sparx EA lacks the functionality to
1) automatically create and maintain inferred relationships. A script can be written but often writing scripts is a luxury.
2) hide certain types of relationships in certain types of diagrams.

In the sample quote by Eric, I can visualise 2 diagrams, a diagram with
  • the processes, sub processes and business objects without the inferred relationships
  • the process, the business objects and the inferred relationships
and the functionality on the 1st diagram to create inferred relationships.

Pity Sparx EA does not do this out-of-the-box.

P.S.: I know inferred relationships may not be a UML concept but it is/was an ArchiMate concept.

knaapie

  • EA Novice
  • *
  • Posts: 3
  • Karma: +0/-0
    • View Profile
Re: Show relations of aggregated elements
« Reply #6 on: February 09, 2024, 12:28:15 am »
Many thanks for the replies and suggestions!
As far as I understand the suggestions are about adding objects or relations to the model.
My issue with this is that this clutters the model and makes it less easy to understand for architects that have previously not directly worked on the model themselves.

Basically we try to implement using a meta model quite rigorously, so that all architects involved know how to read it.
This also helps to gradually describe our domain, even while working on separate projects.
The model, not the diagrams, should be the basis for the architects. The diagrams are created to make viewpoints for specific projects.
Introducing extra relations would make it harder to achieve this. I'm not completely sure if objects to a diagram would do so, I will experiment with this to see how this works (I'm still kind of a novice).

My preference would be to show a relation on a diagram because it is inferred from the model, but not add the relation to the model directly. As I understand it, this is currently not possible in Sparx EA.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13471
  • Karma: +571/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Show relations of aggregated elements
« Reply #7 on: February 09, 2024, 12:39:08 am »
My preference would be to show a relation on a diagram because it is inferred from the model, but not add the relation to the model directly. As I understand it, this is currently not possible in Sparx EA.

EA can only show relations on diagrams that actually exist.
You could make it look like an aggregated relation by hiding the actual source and target elements under the aggregated elements.

Geert

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8617
  • Karma: +257/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Show relations of aggregated elements
« Reply #8 on: February 09, 2024, 06:42:45 pm »
I hadn't originally meant to get involved with this, but I may be able to clarify some ideas mentioned in this thread.  We use derived relationships a lot in our modelling and have done so for nearly a decade.  We've done a lot of thinking about the problem (of derived relationships) and how to model them, and we're quite happy with how this works.  BTW: We work in the Enterprise modelling space more than the specific system modelling, so the types of items and relationships are complex.

Firstly, we need to clarify some terminologies.  In any model, there is a pile of relationships between items.  Some relationships are canonical (that is, they can't be derived by traversal of other relationships), and if you remove them, the model is not valid any longer, and others can be derived by traversing two or more other relationships (so they could be removed and if one knows the derivation rule achieve the same outcome).  ArchiMate (for example) has a set of rules for deriving relationships by traversing others.

We distinguish between Derivation (i.e., by known rules) and Inference (i.e., arbitrary guestimation).  Thus, a canonical relationship can be Inferred, but a Derived relationship can't (since the rules are known).

Our MDG will graphically distinguish between a canonical and derived relationship.  It will also surface that the relationship is inferred.  Since there may be more than one route between any two nodes on a network, we also allow the definition of the traversal route that defines that specific derived relationship.  This is achieved via relationship-to-relationship relationships (try saying that after a few pints ;) ).  We don't do this often, but it is very useful when we do.

If the derived relationship is worthy of display, then it is worthy of inclusion in the model[1].  Remember, you can always suppress the derived relationship on diagrams (and Sparx provides functionality to do this without a lot of effort).  However, on an enterprise model, when a new user puts both ends of a derived relationship on a diagram, they get immediate feedback that a known relationship exists between the two, even if they aren't aware of it!  We have found this MOST useful.

As I mentioned above, there may be many paths between two arbitrary items on the network, so expecting Sparx to figure that out is both unreasonable and impossible.  Whether a (possible) derived relationship between two items is meaningful to the model or not is a modeller-level question, not a tool one.

That being said, it would be good if Sparx allowed ANY relationship type to be marked as derived (not just Associations). In our view, it would also be useful if one could indicate the nature of the derivation.  We now use a number:
  • Traversal
  • Union
  • Projection
  • Realization
  • Specialization
  • Generalization
  • Restriction
I won't detail the specifics at this time.

Derived relationships are not trivial to use.  Over two (but less than three) decades ago, I had the pleasure of escorting Jim Rumbaugh (of "Three Amigos" UML fame) around Sydney for a day - some time before UML was released.  I mentioned to him that one of the reasons I really liked his (original) methodology was that it defined derived relationships!  He cautioned me: "Don't say that; we haven't figured out how to make it work!".  A few decades on, we're comfortable that we've figured it out...

HTH,
Paolo

[1]Sparx, themselves, break that rule with Virtual Connector Ends and cause us grief (not themselves, apparently) trying to render them diagrams as we'd wish.
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!