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]