DistributionMap and SmallLint rules

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

DistributionMap and SmallLint rules

Andre Hora
Hello,

I just created some visualizations (Marcus's idea) using DistributionMap with SmallLint rules to check how distributed are the lint problems in a class. I enclosed some figures with the distribution for some packages of Moose.
So, the small boxes represent methods. The red color is a method with more than 3 lint problems, the orange 2 problems, green 1 problem and white no problem.
We can clearly see a lot of "lint problems" in Famix package. Of course, we have some false-positives mainly for Glamour and Mondrian as we can check in [1].

Btw, I also created a job in Hudson to generate a simple report with smallLint rules in Moose (and Pharo):
Job: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose
Report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml

regards,

[1] Lukas Renggli, Stéphane Ducasse, Tudor Gîrba and Oscar Nierstrasz, “Domain-Specific Program Checking,” Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS’10)

--
Andre Hora


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

Moose-Dsm.png (16K) Download Attachment
Moose-Algos.png (93K) Download Attachment
Moose-Core.png (41K) Download Attachment
Merlin.png (82K) Download Attachment
EyeSee.png (104K) Download Attachment
Glamour.png (194K) Download Attachment
Mondrian.png (171K) Download Attachment
Fame.png (89K) Download Attachment
Famix.png (140K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: DistributionMap and SmallLint rules

jfabry
Hi Andre,

distribution maps are cool. I just added them to AspectMaps as an alternate visualization and I think some of the ideas could be applied to your visualization as well. You have a large amount of classes, making it difficult to get an overview / navigate. In AspectMaps this is addressed as follows: you start from a high level view on packages and then zoom in where you want, revealing more detail.

An example is below. The distribution map shows for each aspect where it applies, so for example in the first hierarchy root the two squares mean that the blue aspect applies twice. By clicking on it you get a zoomed in view, in the example these are Robot and Player. (here instvars = diamonds, methods = rectangles) There you see the same, but at method granularity. (I have no packages in this example, you can imagine what it looks like). 

In my experience, this allows you to quickly pinpoint interesting namespaces / classes / methods by interacting with the visualization.

Also, I dont put borders around the distribution map rectangles, as there is no information conveyed by the borders they add clutter.



On 11 May 2011, at 12:04, Andre Hora wrote:

Hello,

I just created some visualizations (Marcus's idea) using DistributionMap with SmallLint rules to check how distributed are the lint problems in a class. I enclosed some figures with the distribution for some packages of Moose.
So, the small boxes represent methods. The red color is a method with more than 3 lint problems, the orange 2 problems, green 1 problem and white no problem.
We can clearly see a lot of "lint problems" in Famix package. Of course, we have some false-positives mainly for Glamour and Mondrian as we can check in [1].

Btw, I also created a job in Hudson to generate a simple report with smallLint rules in Moose (and Pharo):
Job: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose
Report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml

regards,

[1] Lukas Renggli, Stéphane Ducasse, Tudor Gîrba and Oscar Nierstrasz, “Domain-Specific Program Checking,” Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS’10)

--
Andre Hora

<Moose-Dsm.png><Moose-Algos.png><Moose-Core.png><Merlin.png><EyeSee.png><Glamour.png><Mondrian.png><Fame.png><Famix.png>_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
Johan Fabry   
PLEIAD Lab - Computer Science Department (DCC) - University of Chile




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: DistributionMap and SmallLint rules

Nicolas Anquetil
In reply to this post by Andre Hora
Nice! (or not very nice actually, but useful)

I t seems a bit strange that all methods of FamixClass, FamixPackages, ... even FamixEntity, are coloured.
It would be interesting to know what are the rules that are violated.

nicolas


De: "Andre Hora" <[hidden email]>
À: "Moose-related development" <[hidden email]>, "Marcus Denker" <[hidden email]>
Envoyé: Mercredi 11 Mai 2011 18:04:21
Objet: [Moose-dev] DistributionMap and SmallLint rules

Hello,

I just created some visualizations (Marcus's idea) using DistributionMap with SmallLint rules to check how distributed are the lint problems in a class. I enclosed some figures with the distribution for some packages of Moose.
So, the small boxes represent methods. The red color is a method with more than 3 lint problems, the orange 2 problems, green 1 problem and white no problem.
We can clearly see a lot of "lint problems" in Famix package. Of course, we have some false-positives mainly for Glamour and Mondrian as we can check in [1].

Btw, I also created a job in Hudson to generate a simple report with smallLint rules in Moose (and Pharo):
Job: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose
Report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml

regards,

[1] Lukas Renggli, Stéphane Ducasse, Tudor Gîrba and Oscar Nierstrasz, “Domain-Specific Program Checking,” Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS’10)

--
Andre Hora


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: DistributionMap and SmallLint rules

Stéphane Ducasse
Yes I think that we should really learn how to evaluate the rules and reconsider the ones having too many false positives.
In fact this is part of the experience
Andre what would be fun is to keep all the results so that we can also see
how we are actually fixing the code and also improving the lint rules.
        Co evolution of rules checking and code :)

Stef

On May 11, 2011, at 10:50 PM, Nicolas Anquetil wrote:

> Nice! (or not very nice actually, but useful)
>
> I t seems a bit strange that all methods of FamixClass, FamixPackages, ... even FamixEntity, are coloured.
> It would be interesting to know what are the rules that are violated.
>
> nicolas
>
> De: "Andre Hora" <[hidden email]>
> À: "Moose-related development" <[hidden email]>, "Marcus Denker" <[hidden email]>
> Envoyé: Mercredi 11 Mai 2011 18:04:21
> Objet: [Moose-dev] DistributionMap and SmallLint rules
>
> Hello,
>
> I just created some visualizations (Marcus's idea) using DistributionMap with SmallLint rules to check how distributed are the lint problems in a class. I enclosed some figures with the distribution for some packages of Moose.
> So, the small boxes represent methods. The red color is a method with more than 3 lint problems, the orange 2 problems, green 1 problem and white no problem.
> We can clearly see a lot of "lint problems" in Famix package. Of course, we have some false-positives mainly for Glamour and Mondrian as we can check in [1].
>
> Btw, I also created a job in Hudson to generate a simple report with smallLint rules in Moose (and Pharo):
> Job: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose
> Report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml
>
> regards,
>
> [1] Lukas Renggli, Stéphane Ducasse, Tudor Gîrba and Oscar Nierstrasz, “Domain-Specific Program Checking,” Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS’10)
>
> --
> Andre Hora
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: DistributionMap and SmallLint rules

Andre Hora
Hello,

Johan, thanks for the pointer. I will have a look. In fact, with AspectMaps I can have a hierarchic view (package, classes, methods) of the problems.  It is interesting.

Nicolas, in fact most of these problems are related to the RBSpellingRule. This rule produces a lot of problems and most of them are false positives. I think I should not use it.

Stef, as I said in the previous email, I created a job in Hudson to generate a simple report with smallLint rules for Moose and Pharo. These reports are generated every day with the last version of Moose/Pharo and stored..

Moose report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml

Pharo report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportPharo1.3/lastSuccessfulBuild/artifact/Pharo-1.3-WithLint/AllPackages-Simple.xml

regards,

On Wed, May 11, 2011 at 11:13 PM, Stéphane Ducasse <[hidden email]> wrote:
Yes I think that we should really learn how to evaluate the rules and reconsider the ones having too many false positives.
In fact this is part of the experience
Andre what would be fun is to keep all the results so that we can also see
how we are actually fixing the code and also improving the lint rules.
       Co evolution of rules checking and code :)

Stef

On May 11, 2011, at 10:50 PM, Nicolas Anquetil wrote:

> Nice! (or not very nice actually, but useful)
>
> I t seems a bit strange that all methods of FamixClass, FamixPackages, ... even FamixEntity, are coloured.
> It would be interesting to know what are the rules that are violated.
>
> nicolas
>
> De: "Andre Hora" <[hidden email]>
> À: "Moose-related development" <[hidden email]>, "Marcus Denker" <[hidden email]>
> Envoyé: Mercredi 11 Mai 2011 18:04:21
> Objet: [Moose-dev] DistributionMap and SmallLint rules
>
> Hello,
>
> I just created some visualizations (Marcus's idea) using DistributionMap with SmallLint rules to check how distributed are the lint problems in a class. I enclosed some figures with the distribution for some packages of Moose.
> So, the small boxes represent methods. The red color is a method with more than 3 lint problems, the orange 2 problems, green 1 problem and white no problem.
> We can clearly see a lot of "lint problems" in Famix package. Of course, we have some false-positives mainly for Glamour and Mondrian as we can check in [1].
>
> Btw, I also created a job in Hudson to generate a simple report with smallLint rules in Moose (and Pharo):
> Job: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose
> Report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml
>
> regards,
>
> [1] Lukas Renggli, Stéphane Ducasse, Tudor Gîrba and Oscar Nierstrasz, “Domain-Specific Program Checking,” Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS’10)
>
> --
> Andre Hora
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--
Andre Hora


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: DistributionMap and SmallLint rules

Tudor Girba
Hi Andre,

You should also install the correspondent plugin to see the result :).

Cheers,
Doru


On 12 May 2011, at 01:03, Andre Hora wrote:

> Hello,
>
> Johan, thanks for the pointer. I will have a look. In fact, with AspectMaps I can have a hierarchic view (package, classes, methods) of the problems.  It is interesting.
>
> Nicolas, in fact most of these problems are related to the RBSpellingRule. This rule produces a lot of problems and most of them are false positives. I think I should not use it.
>
> Stef, as I said in the previous email, I created a job in Hudson to generate a simple report with smallLint rules for Moose and Pharo. These reports are generated every day with the last version of Moose/Pharo and stored..
>
> Moose report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml
>
> Pharo report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportPharo1.3/lastSuccessfulBuild/artifact/Pharo-1.3-WithLint/AllPackages-Simple.xml
>
> regards,
>
> On Wed, May 11, 2011 at 11:13 PM, Stéphane Ducasse <[hidden email]> wrote:
> Yes I think that we should really learn how to evaluate the rules and reconsider the ones having too many false positives.
> In fact this is part of the experience
> Andre what would be fun is to keep all the results so that we can also see
> how we are actually fixing the code and also improving the lint rules.
>        Co evolution of rules checking and code :)
>
> Stef
>
> On May 11, 2011, at 10:50 PM, Nicolas Anquetil wrote:
>
> > Nice! (or not very nice actually, but useful)
> >
> > I t seems a bit strange that all methods of FamixClass, FamixPackages, ... even FamixEntity, are coloured.
> > It would be interesting to know what are the rules that are violated.
> >
> > nicolas
> >
> > De: "Andre Hora" <[hidden email]>
> > À: "Moose-related development" <[hidden email]>, "Marcus Denker" <[hidden email]>
> > Envoyé: Mercredi 11 Mai 2011 18:04:21
> > Objet: [Moose-dev] DistributionMap and SmallLint rules
> >
> > Hello,
> >
> > I just created some visualizations (Marcus's idea) using DistributionMap with SmallLint rules to check how distributed are the lint problems in a class. I enclosed some figures with the distribution for some packages of Moose.
> > So, the small boxes represent methods. The red color is a method with more than 3 lint problems, the orange 2 problems, green 1 problem and white no problem.
> > We can clearly see a lot of "lint problems" in Famix package. Of course, we have some false-positives mainly for Glamour and Mondrian as we can check in [1].
> >
> > Btw, I also created a job in Hudson to generate a simple report with smallLint rules in Moose (and Pharo):
> > Job: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose
> > Report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml
> >
> > regards,
> >
> > [1] Lukas Renggli, Stéphane Ducasse, Tudor Gîrba and Oscar Nierstrasz, “Domain-Specific Program Checking,” Proceedings of the 48th International Conference on Objects, Models, Components and Patterns (TOOLS’10)
> >
> > --
> > Andre Hora
> >
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
> >
> > _______________________________________________
> > Moose-dev mailing list
> > [hidden email]
> > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
>
> --
> Andre Hora
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Presenting is storytelling."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: DistributionMap and SmallLint rules

Andre Hora
Yes Doru, I will check it ASAP (the problem was that only *now* our Hudson is updated and able to deal with report plugins)
The message of Marcus below:

On May 12, 2011, at 1:03 AM, Andre Hora wrote:

> Hello,
>
> Johan, thanks for the pointer. I will have a look. In fact, with AspectMaps I can have a hierarchic view (package, classes, methods) of the problems.  It is interesting.
>
> Nicolas, in fact most of these problems are related to the RBSpellingRule. This rule produces a lot of problems and most of them are false positives. I think I should not use it.
>
Yes, far too many false positives.

> Stef, as I said in the previous email, I created a job in Hudson to generate a simple report with smallLint rules for Moose and Pharo. These reports are generated every day with the last version of Moose/Pharo and stored..
>
> Moose report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportMoose/lastSuccessfulBuild/artifact/Moose-WithLint/AllPackages-Simple.xml
>
> Pharo report: https://pharo-ic.lille.inria.fr/hudson/view/LintReport/job/LintReportPharo1.3/lastSuccessfulBuild/artifact/Pharo-1.3-WithLint/AllPackages-Simple.xml
>
The current Hudson should already have the violations plugin installed:

- in the "Post-build Actions" section, enable "Report Violations" (requires the Violations plugin to be installed)
- enter "**/*-Lint.xml" into the text input labelled "pmd XML filename pattern"

--
Marcus Denker  -- http://www.marcusdenker.de
INRIA Lille -- Nord Europe. Team RMoD.



--
Andre Hora


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev