If I works
with Eclipse project, at some point I will want to handle plugins as entities.
example, if the application is very big, or if I want to think about the architecture, I
will want to work with plugins (components) rather than packages.
So now I want plugins in Moose.
Yes now I would just extend FAMIX for that
Of course, I can extend the metamodel, but this means
I have to think where to put it, may be implement metrics, create the MooseChef queries,
Yes which to me is good no?
How do you identify a plugin?
Whereas by using MooseGroup I can instantly prototype
components without changing Famix, so I have some guarantee that things will just work.
Except that to work, many things require bidirectional navigation (from group to members
and members back to its group(s) ) ...
> Or may be not: I used Moose-Groups (of class
because one package can
> be spread over different plugins) and it is not that bad.
> the main issue, in my case, was that classes don't know to what
> group they have been assigned...
Groups are not meant to work bidirectionally.
But, perhaps it would be
an interesting addition to try to add this information.
> So computing dependencies could be very
> I solved that by creating a dictionary on the side, but maybe we
> should think on a better solution.
> And then of course integrate this with all
Interesting. I would be interested in hearing the
Two concrete cases that are cited above:
- when computing metrics on eclipse, I wanted the metrics at the level of plugins.
Instead of defining a FamixEclipsePlugin entity, I created each plugin has a class group,
and implemented the few metrics I needed on that (which required bidirectional
- we are supposed to look soon at a big eclipse
"application" where the guy is interested in looking at the dependences between
plugins because there are too many classes and packages to work at that level.
This implies having bidirectional navigation.
If DSM, metrics, MooseChef where already working on MooseGroups, I would have an instant
poor man component ...
Yes that too :)
- It could be used to define application layers and
reason about them. We had the issue recently for a paper, where we wanted to look at
dependencies between a package and itself, the package with its application, and the
package with the underlying layer(s) (e.g. a framework on which the application is
defined). For this we had to hack some dependency queries ...
- I could also maybe test various possible system decomposition using groups (somehow
similar to what Orion can do).
Moose-dev mailing list