And it'd be interesting to see a comparison of your tool to checkstyle
and PMD, both fairly well-established and good tools for the same
purpose...

On 2/25/06, Scott Deboy <[EMAIL PROTECTED]> wrote:
> That is a very old version of log4j.  Feel free to analyze a recent release 
> (or the current release), we'd be happy to hear your results.
>
> Thanks
>
> Scott Deboy
> COMOTIV SYSTEMS
> 111 SW Columbia Street Ste. 950
> Portland, OR  97201
>
> Telephone:      503.224.7496
> Cell:           503.997.1367
> Fax:            503.222.0185
>
> [EMAIL PROTECTED]
>
> www.comotivsystems.com
>
>
>
> -----Original Message-----
> From: Yann-Gaël Guéhéneuc [mailto:[EMAIL PROTECTED]
> Sent: Sat 2/25/2006 2:54 PM
> To: log4j-dev@logging.apache.org; Naouel Moha
> Subject: Detection of design defects
>
>
>        Dear log4j developers,
>
>        We are a team of software engineers doing research on design
> defects (antipatterns, codesmells...) in the Departement of Informatics
> and Operations Research at University of Montreal. We develop a
> framework to describe design defects synthetically and to detect these
> in program source code automatically. We are currently performing
> experiments to assess our detection algorithms.
>
>        We selected log4j as an obvious case study because it is a
> well-known, widely spread, and mature software. Also, we use log4j for
> our own teaching and research projects.
>
>        Would you be interested in helping us assessing our detection
> algorithms? We would be very grateful if you could provide us with your
> expertise on the development of log4j to help us in understanding why
> certain classes are erroneously highlighted as design defects by our
> algorithms. It is important for us to have your comments because we are
> by no means experts in the implementation of log4j and we would be bias
> by our own implementation of the detection algorithms. Also, you might
> find our detection algorithms useful to improve the design and
> implementation of certain classes and, thus, to ease the maintenance and
> evolution of log4j. Of course, we will make our detection algorithms
> available to you and your community when they are validated.
>
>        We applied our algorithms on log4j v1.2.1 and generated potential
> candidate classes for the follwing design defects (from the Brown's
> AntiPatterns book):
> - Blob, a large class doing all the work, only using small Data Class to
> store/to retrieve data.
> - Functional Decomposition, a class that does not conform fully to the
> OO paradigm, such as not using inheritance and polymorphism.
> - Spaghetti Code, a class with long methods and too many "global" variables.
> - Swiss Army Knife, a class implementing too many functionnalities
> and-or providing too many services.
>
>        We attach to this message some results of our detection
> algorithms. The classes named in these files are *candidate* design
> defects and we already found manually many false positive cases (i.e.,
> class highlighted as design defects which are not). We cannot provide
> you now with the complete results as your anti-spam filter rejects .zip
> files, let us know if we can transfer you the results in another way.
> Would it be possible that you kindly help us in improving our algorithms
> or point us to someone
> who could help us?
>
>        If you have any questions or comments, please feel free to contact
> either myself or Naouel Moha, Ph.D. student working full-time on this
> project.
>
>        Best regards,
>        Yann-Gaël
>
> --
>
> # Results of the detection
>
>
> ############################## Results of the detection of the Blob #
> DataClass
> 1.100.DataClass.1.Name = org.apache.log4j.chainsaw.ControlPanel
> 1.100.DataClass.1.NAD = 2.0
> 1.100.DataClass.1.NMD = 2.0
> # ControllerClass
> 1.100.ControllerClass.2.Name = org.apache.log4j.chainsaw.ControlPanel
>
> ############################## Results of the detection of the Blob #
> DataClass
> 2.100.DataClass.1.Name = org.apache.log4j.lf5.LogLevelFormatException
> 2.100.DataClass.1.NAD = 0.0
> 2.100.DataClass.1.NMD = 1.0
> # LargeClass
> 2.100.LargeClass.2.Name = org.apache.log4j.lf5.LogLevel
> 2.100.LargeClass.2.NAD = 19.0
> 2.100.LargeClass.2.NMD = 18.0
>
> ############################## Results of the detection of the Blob #
> LargeClass
> 3.100.LargeClass.1.Name = org.apache.log4j.lf5.viewer.LogBrokerMonitor
> 3.100.LargeClass.1.NAD = 29.0
> 3.100.LargeClass.1.NMD = 105.0
> # DataClass
> 3.100.DataClass.2.Name = org.apache.log4j.lf5.viewer.LogFactor5ErrorDialog
> 3.100.DataClass.2.NAD = 0.0
> 3.100.DataClass.2.NMD = 1.0
>
> --
> Yann-Gaël Guéhéneuc, Ph.D.
> Professeur adjoint / Assistant professor
> Ptidej Project Team Leader
> GEODES - Group of Open and Distributed Systems,
>             Experimental Software Engineering
> DIRO, Université de Montréal         1-514-343-6782 (Téléphone / Phone)
> C.P. 6128, succursale Centre-Ville   1-514-343-5834 (Télécopie / Fax)
> Montréal, QC, H3C 3J7, Canada        www.ptidej.net
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Yoav Shapira
System Design and Management Fellow
MIT Sloan School of Management
Cambridge, MA, USA
[EMAIL PROTECTED] / www.yoavshapira.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to