Book a Demo

Author Topic: Quicklinkers using abstract metatypes  (Read 11367 times)

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Quicklinkers using abstract metatypes
« Reply #15 on: May 12, 2021, 07:34:56 am »
LOL. Well, I managed (sort of) creating MDGs without that stupid mts. Was a long way and I still have to export the basic profiles. But neither diagrams, nor toolboxes which get generated directly from the model. Meanwhile (I hopped very late on the 15.2 train) I found out that after soooo many years they implemented my suggestion of saving the profile file location. Don't need that any more (though it does not hurt and is an extra security).

I still don't get why the QL is so important to you. Touching it even with pliers always made my hands feel shattered. So I decided to live without which was just a question of good user training (use the toolbox, not the QL). I will see how the new QL works once I got time to take a closer look.

q.

Jayson

  • EA User
  • **
  • Posts: 363
  • Karma: +1/-0
    • View Profile
Re: Quicklinkers using abstract metatypes
« Reply #16 on: May 12, 2021, 07:58:48 am »
I want to be able to support both legacy (QL) and current (stereo & meta relationships).

I DO love the pliers comment tho!!!!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Quicklinkers using abstract metatypes
« Reply #17 on: May 12, 2021, 09:37:39 am »
[SNIP]
I still don't get why the QL is so important to you. Touching it even with pliers always made my hands feel shattered. So I decided to live without which was just a question of good user training (use the toolbox, not the QL). I will see how the new QL works once I got time to take a closer look.

q.
(my emphasis)
One aspect of the new QuickLinker mechanism is that we use it to validate our evolving metamodelIf the metamodel is valid, then the list of possible relationships the QuickLinker offers up between any two specific metatypes will be what we expect, if it's invalid it won't.1  I spent much of last week doing exactly that!  Our metamodel is very complex since we are trying to model all aspects of the enterprise (at times at a very fine granularity) and so we need an in-process self-test to ensure the metamodel is correct.  The QuickLinker mechanism suits that use case very well!

As to Jayson's point about supporting existing legacy QuickLinker definitions; in our case (possibly not universally), we found that the vast bulk of them could be handled by suitable high-level and some lower-level abstract definitions - which were related to the nature of the metatype (for example "is Class", "Is Activity", "can compose", "is composable" etc.) with appropriate relationships between them and then inheritance down to the concrete metatypes.  Very soon we were able to (effectively) duplicate the legacy QuickLinker definitions with a MUCH HIGHER degree of consistency and so we're able to dispense with the legacy QuickLinker definitions entirely!

As I said previously, apart from some defects which are currently (quite) irritating but not show-stopping, we haven't looked back since converting.  Once Sparx fixes the process, we will have a VERY POWERFUL mechanism for creating valid models quickly and easily.

Paolo

1 We also use the creation of the correct metatype properties (Tags) as a further check on the validity of the metamodel.
« Last Edit: May 12, 2021, 09:40:39 am by Paolo F Cantoni »
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: Quicklinkers using abstract metatypes
« Reply #18 on: May 17, 2021, 10:04:38 am »
1. You said that QuickLinkers only accept "@" in column C, but the documentation says that Column A will accept @ as well. A mistype?
According to my understanding of how the quicklinker works the documentation is wrong. I rate my confidence as high, but not absolute.

If I put @TemplateableElement in Column A (or C), does that mean that any of it's CONCRETE metaclasses (such as Operation) will evaluate true for the QuickLinker?
For column C, yes I would expect that if the target is a concrete specialization it should show that item in the menu. Operation is a bit of an odd one because it's not a box though. I can't remember if you need to do something special to target features.

For column A, I don't think you will ever see that item represented in the quicklinker menu. If you try it and do see something let me know.

For Column H (new link metaclass), if we have a Stereotype (MyStereo) with an abstract connector metaclass (such as Realization).

Is is correct that I can put any CONCRETE metaclass in column H?
For example, if I put Substitution in Column H then this Quick Linker will create a New Connector MyStereo:Substitution. Is that correct?
I believe so. Have you tried? Seems like you could try it in as much time as it would take to write the query?

If I put Association into columns A or C, does that mean that it will also accept any of it's sub-classes?
Or does it only work with abstract metaclasses?
The feature is not restricted to abstract metaclasses. However, there is a special syntax 'link:Association' that you need to create a relationship to or from another relationship. I'm not sure how the two features combine. Again, the metamodel version will handle the combination for you.

When you say "it will be automatically expanded", I'm assuming you mean that it will include all the direct and indirect sub-classes of the abstract metaclass?
Yes, the metamodel method for defining valid links works with all direct and indirect sub-classes at either end, regardless of whether the the actual target is abstract or not.

If we look at ActionExecutionSpecification as an example, it is Abstract and the UML specification shows no direct sub-classes.
If it has no CONCRETE subclasses, what can we possibly use this metaclass for?
You probably can't use it. I'm not familiar with how that is intended to be used within UML either.

The CollaborationLink metaclass doesn't appear in the UML specification at all. Whats up with that?
From memory that's the EA connector type corresponding to communication messages. In UML 2 I think that's the same metaclass as on sequence diagrams, but my memory doesn't tell me if they were different before that.

As far as I can see, Action is listed in the UML specification as Abstract but is not shown in the "Abstract Metaclass" section in the profile helper. Once again, wassup with that?
EA allows creating an Action without specifying a type, so it's in the core elements section.

Eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeve? Are you able to point this out to me?
If you can only see it by searching the binary for specific text you're not meant to see it. It's not even there these days, having been replaced by the metamodel relationships.

PS. Best not to rely on replies by specific Sparx employees, thankfully I'm not chained to my desk handling support.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: Quicklinkers using abstract metatypes
« Reply #19 on: May 17, 2021, 05:46:07 pm »
PS. Best not to rely on replies by specific Sparx employees, thankfully I'm not chained to my desk handling support.
Though I'm not a Sparx employee you should put me in that row. Just set your confidence level to how you rank the person but (like some Sparx employee said) never to 100%.

q.

Jayson

  • EA User
  • **
  • Posts: 363
  • Karma: +1/-0
    • View Profile
Re: Quicklinkers using abstract metatypes
« Reply #20 on: May 18, 2021, 01:14:05 pm »
Hey Eve

Fair point about targeting (or is that victimizing?) particular Sparx peeps.
Its just that there are a core of Sparx and mom Sparx peeps including q, Geert and Paolo that are the source of most of the answers I am after.

Thanks for these ones, I will try to digest them without too much damage to my poor feeble brain.