A clustering-based model for class responsibility assignment problem in object-oriented analysis

Abstract Assigning responsibilities to classes is a vital task in object-oriented analysis and design, and it directly affects the maintainability and reusability of software systems. There are many methodologies to help recognize the responsibilities of a system and assign them to classes, but all of them depend greatly on human judgment and decision-making. In this paper, we propose a clustering-based model to solve the class responsibility assignment (CRA) problem. The proposed model employs a novel interactive graph-based method to find inheritance hierarchies, and two novel criteria to determine the appropriate number of classes. It reduces the dependency of CRA on human judgment and provides a decision-making support for CRA in class diagrams. To evaluate the proposed model, we apply three different hierarchical agglomerative clustering algorithms and two different types of similarity measures. By comparing the obtained results of clustering techniques with the models designed by multi-objective genetic algorithm (MOGA), it is revealed that clustering techniques yield promising results.

[1]  C. Tappert,et al.  A Survey of Binary Similarity and Distance Measures , 2010 .

[2]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

[3]  Johannes Stammel,et al.  Search-based determination of refactorings for improving the class structure of object-oriented systems , 2006, GECCO.

[4]  Bernd Bruegge,et al.  Object-Oriented Software Engineering Using UML, Patterns, and Java , 2009 .

[5]  Gerald Kowalski,et al.  Information Retrieval Systems: Theory and Implementation , 1997 .

[6]  Andries P. Engelbrecht,et al.  Computational Intelligence: An Introduction , 2002 .

[7]  Lionel C. Briand,et al.  Solving the Class Responsibility Assignment Problem in Object-Oriented Analysis with Multi-Objective Genetic Algorithms , 2010, IEEE Transactions on Software Engineering.

[8]  Spiros Mancoridis,et al.  On the evaluation of the Bunch search-based software modularization algorithm , 2007, Soft Comput..

[9]  Mohammad Alshayeb,et al.  Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm , 2010, Adv. Eng. Softw..

[10]  Ying Liang,et al.  From use cases to classes: a way of building object model with UML , 2003, Inf. Softw. Technol..

[11]  Jian Feng Cui,et al.  Applying agglomerative hierarchical clustering algorithms to component identification for legacy systems , 2011, Inf. Softw. Technol..

[12]  Hans-Erik Eriksson,et al.  UML 2 Toolkit , 2003 .

[13]  Mel Ó Cinnéide,et al.  Search-based refactoring: an empirical study , 2008 .

[14]  Erkki Mäkinen,et al.  Pattern-Based Genetic Model Refinements in MDA , 2008, Nord. J. Comput..

[15]  Mark Kent O'Keeffe,et al.  Search-based refactoring for software maintenance , 2008, J. Syst. Softw..

[16]  Bente Anda,et al.  Investigating the Role of Use Cases in the Construction of Class Diagrams , 2005, Empirical Software Engineering.

[17]  Christopher L. Simons,et al.  A cross-disciplinary technology transfer for search-based evolutionary computing: from engineering design to software engineering design , 2007 .

[18]  Carl G. Davis,et al.  A Hierarchical Model for Object-Oriented Design Quality Assessment , 2002, IEEE Trans. Software Eng..

[19]  Rudi Lutz,et al.  Evolving good hierarchical decompositions of complex systems , 2001, J. Syst. Archit..

[20]  Erkki Mäkinen,et al.  Generating software architecture spectrum with multi-objective genetic algorithms , 2011, 2011 Third World Congress on Nature and Biologically Inspired Computing.

[21]  Lionel C. Briand,et al.  A Unified Framework for Cohesion Measurement in Object-Oriented Systems , 2004, Empirical Software Engineering.

[22]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[23]  Chung-Horng Lung,et al.  Program restructuring using clustering techniques , 2006, J. Syst. Softw..

[24]  Hedley Apperly,et al.  Service- and component-based development : using Select Perspective and UML , 2003 .

[25]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[26]  Michele Lanza,et al.  Object-Oriented Metrics in Practice - Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems , 2006 .

[27]  Rui Xu,et al.  Clustering Algorithms in Biomedical Research: A Review , 2010, IEEE Reviews in Biomedical Engineering.

[28]  Mark Harman,et al.  Finding Building Blocks for Software Clustering , 2003, GECCO.

[29]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[30]  Hichem Frigui,et al.  A Robust Competitive Clustering Algorithm With Applications in Computer Vision , 1999, IEEE Trans. Pattern Anal. Mach. Intell..

[31]  Spiros Mancoridis,et al.  On the automatic modularization of software systems using the Bunch tool , 2006, IEEE Transactions on Software Engineering.

[32]  Saeed Jalili,et al.  Dynamic clustering using combinatorial particle swarm optimization , 2012, Applied Intelligence.

[33]  Outi Räihä,et al.  A survey on search-based software design , 2010, Comput. Sci. Rev..

[34]  Mohammad Alshayeb,et al.  Software refactoring at the package level using clustering techniques , 2011, IET Softw..

[35]  Goran Glavas,et al.  Metaheuristic approach to class responsibility assignment problem , 2011, Proceedings of the ITI 2011, 33rd International Conference on Information Technology Interfaces.

[36]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

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

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

[39]  Emden R. Gansner,et al.  Using automatic clustering to produce high-level system organizations of source code , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[40]  Oscar Pastor,et al.  Model-driven architecture in practice - a software production environment based on conceptual modeling , 2007 .

[41]  Ian C. Parmee,et al.  Interactive, Evolutionary Search in Upstream Object-Oriented Class Design , 2010, IEEE Transactions on Software Engineering.

[42]  Witold Pedrycz,et al.  Knowledge-Based Clustering , 2005 .

[43]  Erkki Mäkinen,et al.  Scenario-Based Genetic Synthesis of Software Architecture , 2009, 2009 Fourth International Conference on Software Engineering Advances.

[44]  Mark Harman,et al.  A multiple hill climbing approach to software module clustering , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..