Book a Demo

Author Topic: Automatically show dependencies between packages  (Read 4204 times)

Tuser

  • EA User
  • **
  • Posts: 45
  • Karma: +0/-0
  • So much stuff to do, so little time...
    • View Profile
Automatically show dependencies between packages
« on: January 26, 2006, 02:06:04 am »
Is there any way to automatically create a diagram showing dependencies between package?

We have defined multiple libraries (packages containing classes). The libraries depend on each other, i.e. a class in one library, may contain an instance of a classifier from another library.

(and yes; we have limited cross dependencies to a minimum and have layered the libraries ;))

It would be nice to 'press a button' and get the dependencies shown between the packages... ? Would save some manual work and ensure consistency.
« Last Edit: January 26, 2006, 02:06:51 am by Tuser »

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Automatically show dependencies between packag
« Reply #1 on: January 26, 2006, 05:47:51 pm »
Strangely enough, I was contemplating the high-church meaning of this type of thing myself yesterday.   8)

At the end of the day, there is no real dependency between two UML packages of this nature.  The dependency only exists btweeen the package contents  and given the way you have described it ... only in a particular implementation of a model.

IOW in the high-church of UML, AFAICT, the dependency of the contents of one package on some other package is to be expressed as a/some "required interfaces".  When the beast is created, other packages will provide these services via "provided interfaces".  Now strangely enough, these do exist - as adornments for component elements, and even further strangely enough the UML definition of a component "that which may be deployed separately"  sounds 'zactly like a library package to me.

What I'm meandering around trying to say is that the dependancy only exists at the implementation level.  Only when you create that specific version of that specific library do you get a dependancy or, if you like, I'll replace your library with mine and c.p. all will still be well (or we'll get dll hell  ;) ).

The "provided" and "required" interfaces on components are not the same thing as exposed interfaces at the code level i.e. they are not contractual items.  They are at best "a group of required/provided services that will be needed at implementation for the entire beast to function properly".

So, in short, I doubt whether there would be a "automatic" way to create these things.

hth  ???

bruce
"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

Tuser

  • EA User
  • **
  • Posts: 45
  • Karma: +0/-0
  • So much stuff to do, so little time...
    • View Profile
Re: Automatically show dependencies between packag
« Reply #2 on: January 27, 2006, 01:37:49 am »
I think we are working on the same type of thing; create the specification of libraries/component which may be realized in different ways, by different groups.

As you state

Quote
... dependency of the contents of one package on some other package is to be expressed as a/some "required interfaces".  


Exactly. The 'interface' of a class (vs. function) library is simply the class specifications. And it should of cause hide all internal processing and dependencies, and only allow access through operations.

But then you state

Quote
I'm meandering around trying to say is that the dependancy only exists at the implementation level.


We do use a profile with 'core' and 'simple' non-platform specific types, which will be mapped to specific platforms.

However, dependencies will still exist between packages even at the specification level, due to the parameters and return types of the operations of the classes.

Consider the model below



PackageB contains 'ClassA'. PackageA contains 'ClassB', whos interface uses ClassA. In other words, PackageA depneds on PackageB.

So dependencies may exist between the packages at specification level, not only at realization level.

And therefore it would still be nice to have an automatic dependency resolver. ;)
« Last Edit: January 27, 2006, 01:43:07 am by Tuser »

thomaskilian

  • Guest
Re: Automatically show dependencies between packag
« Reply #3 on: January 27, 2006, 03:47:02 am »
One should be able to create such a resolver with an add-in: traverse all packages and the classes therein. You just have to reflect cross-package dependencies from class to packages.

Any volunteers?

Tuser

  • EA User
  • **
  • Posts: 45
  • Karma: +0/-0
  • So much stuff to do, so little time...
    • View Profile
Re: Automatically show dependencies between packag
« Reply #4 on: January 27, 2006, 04:00:25 am »
Yes...

But I have no clue how to do this. However I need to learn about EA plug-ins anyway, so why not now.

I need support though...

thomaskilian

  • Guest
Re: Automatically show dependencies between packag
« Reply #5 on: January 27, 2006, 04:04:06 am »
You'll have it here in this forum :D Did I publish my short Perl add-in on the EA Usergroup? That should give you a nice start.

Tuser

  • EA User
  • **
  • Posts: 45
  • Karma: +0/-0
  • So much stuff to do, so little time...
    • View Profile
Re: Automatically show dependencies between packag
« Reply #6 on: January 27, 2006, 04:25:47 am »
Ahh! Perl...

Well, then I'm on my own turf. Just need to figure out how EA handles plug-ins. I will take a look.