I want to reimplement software engineering metrics using moose chef instead of moose cook.
for example to compute cohesion I would do (among other things):
self queryAllOutgoingDependencies atClassScope withinMyPackage
i.e. :
1- from a package (self)
2- get all its "outgoingdependencies" (outgoing does not mean going outside the
package, this includes dependencies within th package)
3- put that at class level (because we are interested in dependencies between classes
within or outside the package)
4- and filter those that are inside self
I want the result to be all dependencies from classes within package self going to classes
within package self .
but (from the moose chef documentation):
"The scope operators exclude self loops by default (this was also the default in
Moose Cook). That is, the query result will not contain the receiver scope itself: you
will not get something like PackageX -> PackageX in the result (the reason for this is
that in general algorithms do not like graphs with self loops)."
So:
- should we change that default?
- should I change my query?
I believe if there is a method to exclude self loops (withoutSelfLoop), it should not be
done automatically in some case let those who want it do it themselves.
What say you?
nicolas