Hi guys,
Today I imported a smalltalk project in Moose/Softwarenaut.
I have more than 3500 invocations with multiple candidates in the
candidates list. I decided that I will ignore those dependencies. I
would rather see fewer dependencies but be sure that the ones I see
are for real (some kind of the lower-bounds of inter-package
dependencies).
The problem is that after removing the ambiguous invocations, I still
have spurious invocations. Two examples:
- In the project, there is a class which defines the #includes:
method. In the resulting model, I have 64 invocations to this class's
#include. However, if you look at the code, you see that the
overwhelming majority of them are actually invocking List>>includes:.
In fact, the model sais that several classes from the VisualWorks Base
are depending on my code because they call includes:.
- The same situation with the #with. I have it defined in one class,
and all the invocations are attributed to the class although almost
all are actually invoking the WATagBrush>>with: from Seaside.
I am thinking that I should ignore the dependencies that have as
target methods that I will define in a blacklist. I would put in there
methods which are frequently used like: for: with: contains: etc... I
guess I can remove a lot of noise this way. Then i could probably
allow the user to further filter methods from the UI of S*naut.
However, the user would have to know the system in order to be able to
filter out these invocations. And the point of S*naut was that the
user did not know the system... :)
Does anybody have a better approach to making sure that the
dependencies in the model are for real?
Cheers,
Mircea.