thank you very much for your detailed answer.
On Jul 13, 2007, at 19:52 PM, Toon Verwaest wrote:
> On (13/07/07 18:23), Hani ABDEEN wrote:
>> From: Hani ABDEEN <hani.abdeen(a)univ-savoie.fr>
>> To: Toon Verwaest <tverwaes(a)infogroep.be>
>> Subject: Re: [Moose-dev] Class clustering (Bug:Exceptions)
>> Date: Fri, 13 Jul 2007 18:23:04 +0200
>>
>> Hi,
>> thank you,
>> yes It works correctly now :-) and I try to understand and to
>> discover what we can do with this plugin.
>> Just somethings that I would point out:
>> - I have seen that when the clustering algorithm take place, all the
>> classes, the packages, and the namespaces in the model under-
>> consideration will be considered in the same way by the algorithm.
>> What about the classes and the packages which do not really belong to
>> the system that we would analyze it (stubs entities)? Such entities
>> are used (accessed) by the considered system, and we have this
>> information in moose model, but we have not any information about
>> what these entities access?. may be they access our system, and may
>> be not!!
>
> It is true that we don't have information, but in the case that the
> system would try to put such classes together with classes in our
> system, this should probably fail since we don't want to find software
> components in libraries. This is where the "Fixating" tab comes in
> handy, were we can exclude results library classes. If we do this,
> even while they were clustered together, we exclude those results.
That was what I would tell you indirectly: It is the best simple
solution...
I understand perfectly the following of your mail, and I know that a
clustering algorithm is not a kind of magic which could give us an
ideal solution without any user's intervention!!! The objective was
simply pointing out this point which does not occurs only in the case
of -System under analysis and Platform library-. Ok I will not discus
now the problem of inter-systems collaboration and system's plugins...
>
> Important is to think that most of the algorithms, just present the
> basic results without automatically combining them, to the user,
> who can then manually validate clustering information before merging
> it. The reason why this is done like this, is because a lot of the
> basic algorithms (for example the "By Reference") will definitaly
> cause false positives because of the way the algorithm is adapted.
>
> Next to that, the ones which do already combine results, like the
> hierarchical clustering based on delta-ic and interface, can
> automatically be filtered for "false positives", be automatically
> removing nodes in the hierarchies which only add information about
> "ignored classes", which we can ignore in the "fixating tab".
>
> But well, it might be useful to already provide a checkbox which
> automatically exludes these classes, so the user doesn't have to find
> out which ones are part of the subject system and which ones aren't..
>
>>
>> - this is a very small thing that may be it does not cause any
>> problem now, but it could do that latter: According to your
>> implementation of FAMIXClass>>accessedByClasses and
>> FAMIXClass>>allClassAccesses, a class could be accessed be it self.
>>
>
> I guess you are right, that in some situations this could lead to a
> problem. I will move the addition of the class itself to the
> algorithms that use it.
>
> One of the basic things you can do with the program now, is using the
> different visualizations to analyse user-defined clusters. In other
> words how packages are organized in the system. Like this you can see
> for example, that the package "Kernel-Objects" contains "green
> classes" which are "ghostclasses" or classes which probably should be
> in the cluster, but are not. Of course since it is a core package and
> since the class causing the effect is the Object-class it might
> not be that relevant, but it shows how easy you can find things like
> this.
again thank you very much for this details, and before all, for this
useful plugin.
Note that if I interest on this plugin is because that the next step
of my work will be around clustering algorithms and software graphs.
So surely such plugin to Moose will be very useful for me.
bests,
Hani
>
> regards,
> Toon