Author Topic: «trace» relation has changed type from Abstraction to Dependency  (Read 262 times)

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 8627
  • Karma: +211/-26
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
When I create a «trace» relation in v12.1.1230 I get a connector of type Abstraction with stereotype «trace»
When I create the exact same «trace» relation in v14.1.1427 I get a connector of type Dependency with stereotype «trace»

WTF! >:(

Who?/Why?/What?

So now we are getting a nice mix of abstractions and dependencies in our models.
Not to mention the countless queries that are now broken, and a number of add-ins that depend on this relation being an Abstraction.

Was this an intentional change (I didn't see anything about it in the release notes) or a mistake?
In case of the latter I hope it gets rectified real soon.

Geert

PS. I'm not arguing Abstraction is better somehow than Dependency.

Simon M

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 6500
  • Karma: +57/-6
    • View Profile
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #1 on: October 12, 2018, 08:52:35 am »
Trace has probably been a mix of abstraction and dependency connectors in your model since the Abstraction connector type was added to EA 10. Before that it was always a dependency because abstraction was also a stereotyped dependency.

I just tried creating a trace from the quicklinker, from the common relationships toolbox and from the extended requirements toolbox. All have a base connector type of abstraction.
Simon

support@sparxsystems.com

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 8627
  • Karma: +211/-26
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #2 on: October 12, 2018, 03:35:35 pm »
Did some more testing.
Disabled all add-ins and MDG's and actually removed the MDG's loaded in the model (apparently disabling them doesn't "really" disable them as I can still select the toolboxes from those MDG's. But that's a different issue)

Then tried it again using the quicklink and still a Dependency.
Then tried it with the trace connector from the common relationships toolbox and that creates an Abstraction ???

I'm using it on a class diagram from a class to another class and from a package to another package. Both Class as Package have the same results.

Then to be sure I created a new empty .eap file.
Disabled all but Basic UML2 technology MDG
Created a class diagram
Created a trace relationship using the quicklinker with "Filter to toolbox" checked => Abstraction
Created a trace relationship using the quicklinker with "Filter to toolbox" unchecked => Dependency

The same test (except that "Fitler to toolbox" doesn't exist) in v12.1.1230 results in Abstraction.

So I guess the bug is in the Filter to toolbox functionality

Geert

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6330
  • Karma: +109/-91
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #3 on: October 12, 2018, 03:47:06 pm »
Did some more testing.
[SNIP]

So I guess the bug is in the Filter to toolbox functionality

Geert
Actually, Geert, I think the problem is elsewhere.  You may find you have a «trace» relationship in the "Common" stereotype list.  Filter to Toolbox should exclude it (only the MDG version is selected), whereas unmarked Filter to Toolbox, doesn't - because the common one "kicks in" first.

That's why we purge ANY common stereotype that matches our MDG defined stereotypes in our overnight processing.

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: 8627
  • Karma: +211/-26
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #4 on: October 12, 2018, 04:02:59 pm »
Did some more testing.
[SNIP]

So I guess the bug is in the Filter to toolbox functionality

Geert
Actually, Geert, I think the problem is elsewhere.  You may find you have a «trace» relationship in the "Common" stereotype list.  Filter to Toolbox should exclude it (only the MDG version is selected), whereas unmarked Filter to Toolbox, doesn't - because the common one "kicks in" first.

That's why we purge ANY common stereotype that matches our MDG defined stereotypes in our overnight processing.

Paolo

Hmm, but in v12, where the Filter to toolbox doesn't exist I never have this problem.
Did they then change the default stereotype loading order?

Deleting the default trace stereotype from the common stereotypes list doesn't influence the behavior.

Geert

qwerty

  • EA Guru
  • *****
  • Posts: 9842
  • Karma: +190/-155
  • I'm no guru at all
    • View Profile
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #5 on: October 12, 2018, 06:53:48 pm »
I was trying to post this yesterday, but there was a forum issue. So here it goes:

Honestly, I was 100% sure that it has been Dependency all time, but you're right. It was Abstraction. Now, that change seems not plausible. The 2.5 specs states on p. 38:
Quote
7.7.3.3 Abstraction
An Abstraction is a Dependency that relates two NamedElements or sets of NamedElements that represent the same concept at different levels of abstraction or from different viewpoints. The relationship may be defined as a mapping between the suppliers and the clients. Depending on the specific stereotype of Abstraction, the mapping may be formal or informal, and it may be unidirectional or bidirectional. Abstraction has predefined stereotypes (such as «Derive», «Refine», and «Trace») that are defined in the Standard Profile (see Clause 22). If an Abstraction has more than one client, the supplier maps into the set of clients as a group. For example, an analysis-level Class might be split into several design-level Classes. The situation is similar if there is more than one supplier.

q.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 8627
  • Karma: +211/-26
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #6 on: October 12, 2018, 07:38:26 pm »
So it seems like in a very distant past (v10?) the trace was a stereotypes dependency.
Then they seem to have introduced the Abstraction connector type and trace because a stereotyped Abstraction, just like the UML specs say.

It now going back to dependency when you don't have "Filter to Toolbox" checked then seems like a regression, where the v10 behavior somehow pops up again from beyond the grave.

Geert

qwerty

  • EA Guru
  • *****
  • Posts: 9842
  • Karma: +190/-155
  • I'm no guru at all
    • View Profile
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #7 on: October 12, 2018, 09:16:12 pm »
Just checked: in V9.3 it was Dependency (and IIRC ever since before). From V10 on it was Abstraction.

q.

Simon M

  • EA Administrator
  • EA Guru
  • *****
  • Posts: 6500
  • Karma: +57/-6
    • View Profile
Re: «trace» relation has changed type from Abstraction to Dependency
« Reply #8 on: October 15, 2018, 09:01:43 am »
Created a trace relationship using the quicklinker with "Filter to toolbox" checked => Abstraction
Created a trace relationship using the quicklinker with "Filter to toolbox" unchecked => Dependency

That is feasible. It would imply that a trace extending dependency is added first. The quicklinker then only displays the first record with that label. When the filter is applied, only the one in the common toolbox is shown, so it comes out correctly.
Simon

support@sparxsystems.com