Book a Demo

Author Topic: new associations or links in diagrams  (Read 15462 times)

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
new associations or links in diagrams
« on: October 02, 2009, 11:14:29 pm »
Hello,

we observe a very annoying behavior in EA.

Let`s say you have two ( e.g. component) diagrams D1 and D2.
Both contain components A and B.
A and B have no association or other kind of links.
Than add an association from A to B in one diagram (D1)
When we switch to D2, the new association is also visible in the other diagram D2.

This is not desired.
This is the more annoying the more diagrams you have.
In this case we have to parse through all other diagrams and hide the new connector.

Is this behavior configurable?
If not, please fix this.
Diagrams show context information and nobody wants do see every connector in every diagram.
And if somebody want's it, he can unhide the existing association in the relevant context.

Showing every new connector in every existing diagram automatically is pretty ugly, if it is not configurable.

Michael

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: new associations or links in diagrams
« Reply #1 on: October 02, 2009, 11:27:27 pm »
Michael,

Unfortunately this behaviour is not configurable, and you are right, it is ugly.
There were some previous topics that touched this issue, but It couldn't hurt to send another feature request down under.
(use the link on the bottom of the page)

Geert

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
Re: new associations or links in diagrams
« Reply #2 on: October 02, 2009, 11:35:59 pm »
Hello Geert (from Netherland?),

for me this is a bug, not a feature.
At least that the connectors always appear.

I will write a bug report with an addition, that they could add a feature for the configurability.

Michael

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: new associations or links in diagrams
« Reply #3 on: October 02, 2009, 11:39:31 pm »
Michael

tss don't insult me, I'm from Belgium  ;)
Bug or Feature, what's in a word, I guess the Sparxians will decide that for themselves.
They might argue that it works as designed and therefore it is not a bug.

Geert

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
Re: new associations or links in diagrams
« Reply #4 on: October 02, 2009, 11:49:54 pm »
Hello Geert,

I neither insult nor blame you,
but I have an opinion.

My parents are polish and czechian.
The result from this alliance is a person who is to lacy to steal,
so the only option they have is to insist on their opinion

Michael

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: new associations or links in diagrams
« Reply #5 on: October 02, 2009, 11:57:06 pm »
Quote
[size=18]...[/size]
They might argue that it works as designed and therefore it is not a bug.

Geert
For the present (and here I AM going to put words in the Sparxians mouth - let them correct me if I'm wrong) it does work as designed and it is not a bug (although in my view it could work better).

The question of whether a relationship should or should not appear on a diagram is complex.  The work we're doing on autoupdatable diagrams is showing us how the instructions to a tool (add-in) to manage this might be formulated.  We believe we will be able to come up with a specification of when and where relationships should or should not appear on which diagrams.  It definitely isn't trivial and varies by diagram type.  In the more general case, it might even vary by specific relationship.

Given the inherent complexities of the issue, the only viable solution (given the current lack of configurability), in my view, is to place the relationship on all diagrams where the ends are to be found.  (In effect the medical principle of "first, do least harm").  

The modeller can then decide whether to leave it or remove it.

HTH,
Paolo
« Last Edit: October 03, 2009, 12:41:16 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
Re: new associations or links in diagrams
« Reply #6 on: October 03, 2009, 12:09:24 am »
Hello Paolo,

i totally disagree, they do harm.
I currently parse through about 200 diagrams,
fixing this additional connectors shown and it hurts.

When somebody adds a NEW connector to a diagram, than the connector primarily belongs to this diagram context.

If I stick a note to an element, I want to stick it in this diagram.
If I want to add an element into a diagram, it belongs to this diagram context.

If I hide the elements, I want to hide it on this diagram.

This is straight forward, anything else hurts.
I would appreciate an option as I mentioned, but the current implementation is painful.

And even if it works as designed.
I don't care on which level the bug is. In my point of view if it is designed that way, that it is a design bug.

Michael

« Last Edit: October 03, 2009, 12:23:18 am by mizd »

Paul Lotz

  • EA User
  • **
  • Posts: 248
  • Karma: +1/-0
    • View Profile
Re: new associations or links in diagrams
« Reply #7 on: October 03, 2009, 03:57:03 am »
Quote
If I want to add an element into a diagram, it belongs to this diagram context.
...
This is straight forward, anything else hurts.
"

I don't agree it's quite that simple.  Actually, in the majority of cases (especially class diagrams) if I establish a relationship in one diagram I very definitely want the other diagrams to reflect this.  In the component diagrams I have done I still prefer this as the default as well, although I can see why it can be a nuisance in some circumstances.  (In particular, if we are drawing a component diagram for component C that talks to A and B, we don't necessarily want to see how A and B interact with one another on C's diagram.)  So I do agree it would be quite nice to have the option to show or not show relationships established on other diagrams by default.   My experience, however, is that in the majority of cases I do want them to be visible.

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
Re: new associations or links in diagrams
« Reply #8 on: October 03, 2009, 10:13:57 am »
Hello Paul,

so to sum it up, the configurability would solve your problem.
You can see it if you want, or not if you don't want, what I mean is default. I don't want to get messy diagrams poluted with assocations from other packages comming from other teams, etc.

And especially designing alternative scenarios where it is the key element to show different solutions with different architecture ist very cumbersone, when I heve in all scenarios all possible associations.

Again, the configurability would solve both apporaches.

The current implementation hurts, especially in large teams
Michael


Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: new associations or links in diagrams
« Reply #9 on: October 03, 2009, 11:30:44 am »
Quote
Hello Paolo,
Hi Michael,

Apologies in advance for the long reply, but I've used it to help organise my thoughts on the matter.
As I mentioned, we're looking into this problem ourselves.

Also, I note your subsequent response to Paul Lotz. I agree configurability is desirable - but ONLY if it is done right!
Quote
i totally disagree, they do harm.
I currently parse through about 200 diagrams,
fixing this additional connectors shown and it hurts.
I didn't say they don't harm, I said the current situation - such as it is - does the LEAST harm.  The alternative (again in the current situation - more below) of (say) NOT showing relationships by default is TOO dangerous from a model theoretic point of view.
Quote
When somebody adds a NEW connector to a diagram, than the connector primarily belongs to this diagram context.
This, perhaps, is where you and I may have to agree to disagree.  You appear to be taking a diagram centric approach to modelling.  The diagram IS the model (if I've misunderstood, apologies - but I submit that from your comments that was a reasonable deduction).

If fact, the diagram is a VIEW into the model.  That's why the UML specifications currently (except in very specific circumstances) don't mention diagrams at all!  So, the EA DB (where all the information is persisted) is the model.  

We should be able to look into the DB and "picture" what the data therein is telling us about the "Subject under model".  Notionally, we shouldn't need diagrams at all!  In a past life, I experimented with "verbalisers" that generated narrative descriptions of the model.

There's a saying (at least in English): "A picture is worth a thousand words".  But in modelling, at least, I've found I've had to modify this to add: "unless there's more than 6 boxes and 12 lines - in which case, all bets are off!"

From a model theoretic point of view each diagram should show everything that the model knows, otherwise the diagram is "lying" about the state of the model.

We humans can't handle the innate complexity of anything but a trivial model.  So we create multiple diagrams to show specific aspects of the model that allow us to focus on what WE (not the model or tool) consider important.

Again though, from a model theoretic point of view, the tool has no option but to (by default) show all the data that is in the model for the elements shown on the diagram.
Quote
If I stick a note to an element, I want to stick it in this diagram.
Well, when I add a note to an element, I'm adding that note to the model.  I frequently want to see that note on multiple diagrams.  So, since EA doesn't provide the notes in the browser I have to copy and paste from diagram to diagram.  However, like the relationships themselves, I want to see the note on some diagrams and not on others.
Quote
If I want to add an element into a diagram, it belongs to this diagram context.
Again, in our models, the same item can appear on many diagrams.  

The first autoupdatable diagram type we created was the "neighborhood" diagram (we succumbed and much to our regret used the American spelling).  
"For the specified 'root' item, create a diagram showing it as the central item (in great detail) and the items related to it by one relationship according to the defined algorithm (but rendered in summary)."  

So, the same item appears on many diagrams - sometimes in detail, sometimes in summary.  

As the model changes, the set of items on the diagram may change - the diagram adapts accordingly.
Quote
If I hide the elements, I want to hide it on this diagram.
Well, remember that with elements, due to EAUI you're not "hiding" the element, you're removing it from the diagram.  In other words, you are filtering the view to the set of items you are currently displaying.  (That's why there's no equivalent to the Diagram|Visible Relations... [Ctrl+Shift+I] for elements.)

With our neighborhood diagram, as the model changes, any given element on any given diagram may end up an "orphan" that is not connected to any other element on the diagram (at least for the set of relationships we've decided on).  The autoupdatable diagram manager will, therefore, remove the element for us.  

The point is, the diagram needs to adapt to the state of the model - not the other way round!!!  The diagram is an input/output mechanism.  It ISN'T the model.  There's a famous painting by Rene Magritte (cheers Geert!):  Ceci n'est pas une pipe. (This is not a pipe)  Of which I keep a copy up on my wall.  It's to remind me that the model isn't reality and that the diagram is not the model!
{see second part of response following}
« Last Edit: October 03, 2009, 11:53:38 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: new associations or links in diagrams
« Reply #10 on: October 03, 2009, 11:43:08 am »
{Second part of response}

Quote
This is straight forward, anything else hurts.
As I hope I've demonstrated (and Paul Lotz has also suggested) it ISN'T straight forward.
Quote
I would appreciate an option as I mentioned, but the current implementation is painful.

And even if it works as designed.
I don't care on which level the bug is. In my point of view if it is designed that way, that it is a design bug.

Michael
Well, as I indicated in my initial response, things could be done better.  Again with the proviso that - unless Sparx make the configurability work right  this area is best left alone - what could be done to reduce the acknowledged pain?

Well, for one thing, EA KNOWS when relationships are hidden on a diagram (see the aforementioned Diagram|Visible Relations...), then from a model theoretic point of view it should indicate that some relationships in the model have been suppressed on this diagram.  In fact, we are going to implement that for our add-in.  However, this should be available "out of the box".  

This is to inform the viewer: "Watch out!  What you are seeing is NOT everything the model knows - take care interpreting what you see".

Once Sparx have done that, as the user adds a relationship to the model, a dialog should appear asking (something like):

Where do you want to add this relationship?:
  • To the current diagram  {See note 1 below}
    [  ] To some/all existing diagrams [...]  {See note 2 below}
    [  ] To new instances of relation  {See note 3 below}
       (X) Always   (  ) Never   (  ) Ask
    Note 1:  Surprising as it may seem, it's not always a given that the relationship should appear on the diagram on which it is entered.  With the diagram types we now use, the diagram really does become an input-output mechanism and I've often used a diagram on which the relationship shouldn't appear to enter a relationship into the model then immediately deleted (hidden) it...

    Note 2: Here a multi-select showing the diagrams the relationship could be placed on would be displayed when the "builder" button was pressed.  By default, ALL the diagrams the relationship could appear on would be checked.  The dialog would include the usual
    (x) Select All, (  ) None
    buttons to aid selection (perhaps including diagram type/stereotype)

    Much of this technology already exists (see <Context Menu>|Visibility>).  I'm just suggesting it be enhanced a little and invoked at relationship creation time, rather than after the event.  
    In passing, judicious use of this functionality immediately after adding the relationship may make the pain easier to bear...

    Note 3:  I used new instances rather than diagrams - since as I explained, if I add an element to an existing diagram (such that both ends of this relationship are now on the diagram) I also want to choose whether to display this relationship or not.

    This information would be persisted into the model so that EA could use it to manage future instances.

    Lastly, there should be enhancements to the diagram metadata to better control the types of shapes and lines to be displayed on it.  But that's a second order issue.

    This way you get to choose the level of pain you want...   ;)

    Is this the kind of configurability you were after (since it seems the minimum amount to replace the current - safe, but painful -  situation).

    I don't think this will happen soon (it hasn't in the 5 years or so I've been using EA), so I'd suggest you investigate what Geert proposed and we have done - creating your own add-in.

    Thoughts? Votes?
    HTH,
    Paolo
« Last Edit: October 03, 2009, 11:50:28 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Mr. Sanders

  • EA User
  • **
  • Posts: 187
  • Karma: +0/-0
  • Dilbert for president
    • View Profile
Re: new associations or links in diagrams
« Reply #11 on: October 03, 2009, 07:52:17 pm »
Hello,

sorry, I still disagree.

A new association in a diagram has primarily to appear in that diagram.
Of course it is a view to the model, that's what I ment with the context of the diagram.

The diagram has to show the context the user added it to it, and of course not the complete information available in the model. This would be a totally overdrive.

On association added to one diagram is in that view and not visible anywhere else (See scenario situation). That's the context where it has to appear.

It is horrific to work in a team and to get all connectors from the other team members added to the diagram in a context I didn't wanted to show them.

If you want to, add it to the other diagrams. (be the way drag and drop would help here too) The dialog for the association is not very user friendly.

I don't want to switch back to rational rose, but it was excellent solved there, but again im am not using rose for 10 years, and I am lucky about that.

The context in a diagram /view has to be the same, regardless what's added else to the model via other diagrams.

Again I see, that the configurability solves the problem for most of the user and for other user the automation interface of the EA is still open.

Michael




Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: new associations or links in diagrams
« Reply #12 on: October 03, 2009, 09:05:53 pm »
Hi Michael,

As I said we'll have to agree to disagree  ;) - no problem as you said above, we all have the right to our opinions.

However, your diagram centric modelling technique (I think you'll concede that's what it is..) suggested a possible quick solution.

If the modeller is diagram centric (as - for the sake of argument - you are) then you should be able to tell EA:  "I control absolutely what goes on the diagram.  Don't add anything to this diagram."

Does locking a diagram stop this behaviour?  If not (and I would submit that it possibly should) then you can lock the diagram for relationship update.  Still, I would prefer that EA indicated that there were "hidden" relationships (with a small indicator glyph).

Perhaps there could be a global option [  ] Locking stops autoaddition of relationships.

Thoughts?
Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: new associations or links in diagrams
« Reply #13 on: October 05, 2009, 07:35:11 pm »
Paolo, Michael,

I too think there are multiple ways of modelling, and in one case you want to show relations on all diagrams, in another you want the relation to show only on one diagram.

I support the suggestion to somehow indicate when relations are "hidden" on a diagram, but that is somewhat useless if we don't have an option to "show hidden relations".
Maybe the those hidden relations can be shown in gray (or another color) so we can easely distinguish which relations are hidden and which aren't.
Of course this should be topped off by a context menu option to "unhide" the relation.

Geert

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: new associations or links in diagrams
« Reply #14 on: October 05, 2009, 09:34:04 pm »
Quote
I support the suggestion to somehow indicate when relations are "hidden" on a diagram, but that is somewhat useless if we don't have an option to "show hidden relations".Geert
The technology for this is pretty much already there...  To the Set Visible Relations [Ctrl+Shift+I] dialog you just need to add a button:  [Temporarily show all relations] (like a sort of apply button) that will cause the hidden relations to be shown while pressed.  When the button is released, the previously hidden relations are hidden again.

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!