Book a Demo

Author Topic: Reflexive assoc wrong in IE notation  (Read 7756 times)

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Reflexive assoc wrong in IE notation
« on: August 29, 2008, 02:57:45 pm »
Reflexive associations display multiplicity even in IE notation

They shouldn't.  Non-reflexive ones don't.

The whole inconsistency thing between the rendering and manipluation of reflexive versus non-reflexive relationships is beyond a joke...  Why does it have to be so hard?

Create both a non-reflexive and a reflexive association.  
Place multiplicities on both.  
Change connector notation to Information Engineering.
Observe the multiplicity rendering inconsistency.
Bug reported.

Paolo
« Last Edit: August 29, 2008, 02:58:17 pm by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #1 on: August 29, 2008, 08:59:54 pm »
Actually the labels can become inconsistent whenever any of several changes to connector ends are made. I reported this in detail a long time ago.

No response at all.
No, you can't have it!

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #2 on: September 01, 2008, 08:20:08 am »
I just made up a test, and it works for me.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #3 on: September 01, 2008, 11:14:45 am »
Quote
I just made up a test, and it works for me.
Hi Simon,

What EXACTLY works for you?  Since I can't see how it can work for you due to a further inconsistency in the way non-reflexive relationships are rendered in IE notation.

I was going to detail that here, but I thought I'd check your assertion first.

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

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #4 on: September 01, 2008, 12:02:26 pm »
I followed your instructions, except that I had added the foreign key information to both associations.  I got identical results for both connectors.

I've now tried again with vanilla associations without specifying a foreign key and you'll be happy to know I have reproduced the error.

« Last Edit: September 01, 2008, 12:03:57 pm by simonm »

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #5 on: September 01, 2008, 02:48:23 pm »
Quote
I followed your instructions, except that I had added the foreign key information to both associations.  I got identical results for both connectors.

I've now tried again with vanilla associations without specifying a foreign key and you'll be happy to know I have reproduced the error.

Consistency, Consistency, Consistency! TM

Now to the further inconsistency between reflexive and non-reflexive edges.

In reflexive edges, the multiplicity is in the "top" labels.
In Non-reflexive, the multiplicities are inthe "bottom" labels.

This needs to be fixed.  I can't see any good reason why they should be different.  It makes interim rectification of the bug even more difficult.

Also, while the non-reflexive multiplicites are not displayed in IE notation they are marked as displayed in the  Set Label Visibility... dialog.  What's a user to make of that?  

My recommendation is to set the visibility to no for IE notation.  That way, if the user needs to show a particular (typically non-standard) multiplicity, they can.

Paolo

« Last Edit: September 01, 2008, 02:55:10 pm by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #6 on: September 01, 2008, 09:34:27 pm »
This goes back to some bug reports dating back to the EA 7.0 beta.

At least there's finally an acknowledgment that the problem can be reproduced.
No, you can't have it!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #7 on: September 02, 2008, 11:46:07 am »
More on the dichotomy between reflexive and non-reflexive relationships...  If you declare a shape script on the main shape, for a non-reflexive relationship you get one "shape".  For a reflexive relationship, you three for the price of one!

If it wasn't so tragic, it would be funny!  I did actually burst out laughing when I saw this one (but it was hysterical laughter ::)).

Do I need to submit a separate bug report or will it be considered in the fix for the previous one?

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

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #8 on: September 02, 2008, 12:46:15 pm »
Don't leave that to chance; submit the report. If Sparx can resolve both together so much the better. If not, they at least have both issues on record.
No, you can't have it!

Eve

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 8110
  • Karma: +119/-20
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #9 on: September 02, 2008, 02:14:36 pm »
No dichotomy there, the main shape happens for each line segment.  Desirable in some circumstances, not in others.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #10 on: September 02, 2008, 05:01:03 pm »
Quote
No dichotomy there, the main shape happens for each line segment.  Desirable in some circumstances, not in others.
I hope that's documented somewhere...

I see now that if I have a single segment line, then I get one shape.  If I bend the line with <edge context menu>|Bend Line at Cursor [Ctrl+Q] I get two shapes!  If I bend it again, I get three shapes!  And so on...

Now I ask my fellow users: who among you would have considered this to be a valid use case?  And even if I were to accept that this might be a valid use case - why should it be considered desirable and, therefore, be the default behaviour?  

I would submit that the default behaviour should be 1 shape per line, irrespective of the number of segments.  The current behaviour is pure EAUI!

Also, why when I bend an assembly do I NOT get two assembly shapes?

Paolo
« Last Edit: September 02, 2008, 11:41:00 pm by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #11 on: September 02, 2008, 09:15:46 pm »
I once thought this behavior - having multiple line shapes when there was inflection - would let me actually accomplish something useful. My intent had been to create ER models in Barker's Notation (a la David Hay et al). This notation requires connectors to be drawn such that source and destination 'halves' may use different line patterns (solid, dashed). I figured I'd just force a line inflection (even if the line ended up 'looking' straight, and let a shape script take care of each segment as required.]

[Yes, I hear you, using a side effect of a design quirk is bad. But finally we had a rigorous treatment of metamodels in the context of Zachman, and that's just about the only thing we really have to come up with, and here was a major stumbling block for using EA. It seemed that this unintended behavior might actually let me get things moving again.]

Anyway, not only does EA create two 'shapes' and draw them without 'telling' the designer, it seems that this behavior is completely 'canned' from the designer's point of view. We cannot get at the 'inner' shape engine and provide our scripts for line style. So both (or all) of the shapes used in the line are the same.

[So EA saved us from the bad way of going about things after all. The result is that we simply cannot do the job with EA, at least not in the way that the only (modern, rigorous) published treatment out there uses. Not good; not good at all.]

So, ideally we want the 'bug' resolved, but not by removing the extra segments. What we really need is the ability to define the portions of the line differently (or at least provide the shape script the ability to see the start, end, and any middle portions as different line shapes, and to provide scripts for each of these. We also need some means of referencing the line segments created by inflection points. This could be indirectly through the shape script, or ideally through both the script and an extension to the API. [This latter case could be handled without changing the schema. The segments could be under the control of EA, and not treated as a 'first line' collection.]

Another great benefit would be that finally we would have a predictable means for breaking a line between two widely separated elements and 'removing' the middle segment from the display. When using automation or profiles this would be far cleaner than the current situation.

I need to stop dreaming now. It's time to wake up...
No, you can't have it!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Reflexive assoc wrong in IE notation
« Reply #12 on: September 02, 2008, 11:43:57 pm »
David,

You don't need this quirk to do Barker (Oracle) type notation; just two lineto()'s.  I tried that and it seemed to work OK although I now realize it was for a single segment line...

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