Detecting software design defects using relational association rule mining

In this paper, we are approaching, from a machine learning perspective, the problem of automatically detecting defective software entities (classes and methods) in existing software systems, a problem of major importance during software maintenance and evolution. In order to improve the internal quality of a software system, identifying faulty entities such as classes, modules, methods is essential for software developers. As defective software entities are hard to identify, machine learning-based classification models are still developed to approach the problem of detecting software design defects. We are proposing a novel method based on relational association rule mining for detecting faulty entities in existing software systems. Relational association rules are a particular type of association rules and describe numerical orderings between attributes that commonly occur over a dataset. Our method is based on the discovery of relational association rules for identifying design defects in software. Experiments on open source software are conducted in order to detect defective classes in object-oriented software systems, and a comparison of our approach with similar existing approaches is provided. The obtained results show that our method is effective for software design defect detection and confirms the potential of our proposal.

[1]  Naouel Moha,et al.  Detection and correction of design defects in object-oriented designs , 2007, OOPSLA '07.

[2]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[3]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[4]  M.J. Munro,et al.  Product Metrics for Automatic Identification of "Bad Smell" Design Problems in Java Source-Code , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[5]  Wei Li,et al.  Object-Oriented Metrics Which Predict Maintainability , 1993 .

[6]  Jiawei Han,et al.  Data Mining: Concepts and Techniques , 2000 .

[7]  Frank S. C. Tseng,et al.  An Integration of Fuzzy Association Rules and WordNet for Document Clustering , 2009, PAKDD.

[8]  Amel Borgi,et al.  An ensemble method for fuzzy rule-based classification systems , 2012, Knowledge and Information Systems.

[9]  Daniel T. Larose,et al.  Discovering Knowledge in Data: An Introduction to Data Mining , 2005 .

[10]  Martin Hitz,et al.  Measuring coupling and cohesion in object-oriented systems , 1995 .

[11]  George Karypis,et al.  Algorithms for Mining the Evolution of Conserved Relational States in Dynamic Networks , 2011, ICDM.

[12]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[13]  Stphane Tuffry,et al.  Data Mining and Statistics for Decision Making , 2011 .

[14]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[15]  Claus Lewerentz,et al.  Metrics Based Refactoring , 2001, CSMR.

[16]  Robert B. Grady,et al.  Practical Software Metrics for Project Management and Process Improvement , 1992 .

[17]  Z. Marian Aggregated metrics guided software restructuring , 2012, 2012 IEEE 8th International Conference on Intelligent Computer Communication and Processing.

[18]  Foutse Khomh,et al.  A Bayesian Approach for the Detection of Code and Design Smells , 2009, 2009 Ninth International Conference on Quality Software.

[19]  Andrian Marcus,et al.  Ordinal association rules for error identification in data sets , 2001, CIKM '01.

[20]  정인기,et al.  [서평]「Applying UML and Patterns - An Introduction to Object-Oriented Analysis and Design」 , 1998 .

[21]  Zsuzsanna Marian,et al.  Using Software Metrics for Automatic Software Design Improvement , 2012 .

[22]  James M. Bieman,et al.  Cohesion and reuse in an object-oriented system , 1995, SSR '95.

[23]  Pierre Poulin,et al.  Visual Detection of Design Anomalies , 2008, 2008 12th European Conference on Software Maintenance and Reengineering.

[24]  Jesús S. Aguilar-Ruiz,et al.  Searching for rules to detect defective modules: A subgroup discovery approach , 2012, Inf. Sci..

[25]  Alexander Chatzigeorgiou,et al.  Evaluation and Improvement of Software Architecture: Identification of Design Problems in Object-Oriented Systems and Resolution through Refactorings , 2010 .

[26]  Radu Marinescu,et al.  Measurement and Quality in Object-Oriented Design , 2005, ICSM.

[27]  Preecha P. Yupapin,et al.  Analytical Learning Based on a Meta-programming Approach for the Detection of Object-oriented Design Defects , 2012 .

[28]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[29]  Eleni Stroulia,et al.  Identification and application of Extract Class refactorings in object-oriented systems , 2012, J. Syst. Softw..

[30]  Terry A. McKee,et al.  OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications , 1989 .

[31]  Frank J. Mitropoulos,et al.  Aspect mining using Self-Organizing Maps with method level dynamic software metrics as input vectors , 2010, 2010 2nd International Conference on Software Technology and Engineering.

[32]  Stéphane Tufféry,et al.  Data Mining and Statistics for Decision Making: Tufféry/Data Mining and Statistics for Decision Making , 2011 .

[33]  李幼升,et al.  Ph , 1989 .

[34]  Yann-Gaël Guéhéneuc,et al.  Automatic Generation of Detection Algorithms for Design Defects , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[35]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[36]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[37]  Houari A. Sahraoui,et al.  Search-Based Design Defects Detection by Example , 2011, FASE.

[38]  Zhi-Hua Zhou,et al.  Software Defect Detection with Rocus , 2011, Journal of Computer Science and Technology.

[39]  Vipin Kumar,et al.  Introduction to Data Mining, (First Edition) , 2005 .

[40]  Cristina Marinescu,et al.  iPlasma: An Integrated Platform for Quality Assessment of Object-Oriented Design , 2005, ICSM.

[41]  Ramakrishnan Srikant,et al.  Fast Algorithms for Mining Association Rules in Large Databases , 1994, VLDB.

[42]  Yann-Gaël Guéhéneuc,et al.  From a domain analysis to the specification and detection of code and design smells , 2010, Formal Aspects of Computing.

[43]  Andrian Marcus,et al.  An Algorithm for the Discovery of Arbitrary Length Ordinal Association Rules , 2006, DMIN.

[44]  David Lo,et al.  Mining indirect antagonistic communities from social interactions , 2012, Knowledge and Information Systems.

[45]  Abdus Salam,et al.  Mining top−k frequent patterns without minimum support threshold , 2010, Knowledge and Information Systems.