Book a Demo

Author Topic: relationship between component versions  (Read 14396 times)

micdev42

  • EA Novice
  • *
  • Posts: 13
  • Karma: +0/-0
    • View Profile
relationship between component versions
« on: October 21, 2008, 09:05:45 pm »
Hi.
What's the best way to model the relationship between a generic component and specific versions of that component?
Let’s look at Microsoft Team Foundation Server (TFS) as an example:
The ‘generic’ component would be: TFS
Specific versions would be: TFS 2005, TFS 2008 and TFS 2010.

On some diagrams I would just like to show the generic TFS component, to indicate for example that TFS integrates with Microsoft Project Server. On others I would be interested in the particular versions to show that TFS 2008 integrates with Project Server Pro 2007.
How would I define the component structure to create meaningful relationships between them? In particular, would TFS 2005, TFS 2008 etc. be children of [generic] TFS?
Or am I looking at this from the wrong angle?
Thanks
Michael

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: relationship between component versions
« Reply #1 on: October 24, 2008, 11:58:43 am »
Quote
Hi.
What's the best way to model the relationship between a generic component and specific versions of that component?
Let’s look at Microsoft Team Foundation Server (TFS) as an example:
The ‘generic’ component would be: TFS
Specific versions would be: TFS 2005, TFS 2008 and TFS 2010.

On some diagrams I would just like to show the generic TFS component, to indicate for example that TFS integrates with Microsoft Project Server. On others I would be interested in the particular versions to show that TFS 2008 integrates with Project Server Pro 2007.
How would I define the component structure to create meaningful relationships between them? In particular, would TFS 2005, TFS 2008 etc. be children of [generic] TFS?
Or am I looking at this from the wrong angle?
Thanks
Michael
Hi Michael,

No I think you're looking at it from the right angle...  

What I've done in similar circumstances (and feedback is welcome) is to introduce the notion of «implicit» relationships.

Firstly, you create a Generalization between the specific and the general.  Then you decide whether the relationship between your other vertexes is to the general or the specific.  Whichever one you choose, you create a similar relationship to the other one and stereotype the second relationship: «implicit».  I've created a shape script that changes the form of the «implicit» relationship so it's clear.

So the outcome of this is that the model "says": I have a direct relationship at one level and an implicit relationship (due to generalization) with the other level.

The neat thing about this solution is that if you drag the non-directly related items onto the same diagram, you get the «implicit» relationship visible to alert you that there is such a second-order relationship between the two vertexes!

Does that help?

BTW: you can create DB queries to automagically create implicit relationships for you in the background.  I still have to create some automation to automatically suppress the «implicit» relationship when the basic vertexes (and, presumably, relationships) are visible...

Paolo


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

micdev42

  • EA Novice
  • *
  • Posts: 13
  • Karma: +0/-0
    • View Profile
Re: relationship between component versions
« Reply #2 on: October 28, 2008, 01:53:13 am »
Paulo,
Thanks, Yes, that does help.
I'm not convinced about the <<implicit>> link though: now you need to keep two relationships in sync. instead of the single generalisation relationship. I can see your motivation for it though.
I use the <<generic>> stereotype on the general component so that's normally good enough to act as a visual cue that there are specific versions of the component elsewhere. I suppose I could use <<abstract>> rather than inventing the <<generic>> stereotype.
Either way, thanks for the ideas.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 8626
  • Karma: +259/-129
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: relationship between component versions
« Reply #3 on: October 28, 2008, 01:27:36 pm »
Quote
I'm not convinced about the <<implicit>> link though: now you need to keep two relationships in sync. instead of the single generalization relationship. I can see your motivation for it though.
Yes, it requires automation to do it... It would be really neat if EA supported the notion.  Perhaps we could discuss the concept and then present Sparx with a consolidated user view.

I'm going to be investigating this on my own behalf anyway.

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: relationship between component versions
« Reply #4 on: October 28, 2008, 09:28:23 pm »
Perhaps you could keep me in the loop on this as well. I think the manual process is a bit fragile at best.
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: relationship between component versions
« Reply #5 on: October 28, 2008, 10:36:37 pm »
Should I start a new topic?

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: relationship between component versions
« Reply #6 on: October 29, 2008, 11:03:43 am »
IMHO yes. This would focus the discussion on the 'inner' issue that's shown up here.

And perhaps leave a link at the bottom of this thread...
« Last Edit: October 29, 2008, 11:10:02 am by Midnight »
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: relationship between component versions
« Reply #7 on: October 29, 2008, 12:30:55 pm »
Quote
IMHO yes. This would focus the discussion on the 'inner' issue that's shown up here.

And perhaps leave a link at the bottom of this thread...
OK,  I'll have a think and try to generate a new topic in a few days.

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