A new method based on formal concept analysis and metaheuristics to solve class responsibility assignment problem

The high-quality design has a significant impact on the extensibility and maintainability of a software system. Automatic techniques help designers to design high-quality software in a shorter time. Among different approaches for software design, automated search-based methods are very efficient when the problem’s search space is huge and finding the optimal solution is hard. In this paper, we present an automatic three-phase method for generating the class diagram of a software system. In the first phase, we use formal concept analysis for generating the initial solutions. Subsequently, in the second phase, we apply four meta-heuristic methods to improve the quality of the initial solutions. Finally, the third phase creates the relationships among classes. We design eight versions of the method using four meta-heuristic techniques in the second phase with and without using the first phase. The performance of the proposed method on the four case studies for generating efficient class diagrams in terms of design metrics is studied. We analyze the effect of formal concept analysis in the first phase for generating the initial solutions. Also, we compare the results of the four meta-heuristic techniques. The results show that Genetic Algorithm-Formal Concept Analysis (GA-FCA) and Imperialist Competitive Algorithm-Formal Concept Analysis (ICA-FCA) methods that use the first phase for generating initial solutions outperformed the other six methods presented in this paper.

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

[2]  Saeed Jalili,et al.  A clustering-based model for class responsibility assignment problem in object-oriented analysis , 2014, J. Syst. Softw..

[3]  Jim E. Smith,et al.  A comparison of meta-heuristic search for interactive software design , 2013, Soft Computing.

[4]  R. Venkata Rao,et al.  Teaching-Learning-Based Optimization: An optimization method for continuous non-linear large scale problems , 2012, Inf. Sci..

[5]  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.

[6]  Xin-She Yang,et al.  Cuckoo Search via Lévy flights , 2009, 2009 World Congress on Nature & Biologically Inspired Computing (NaBIC).

[7]  Stefan Schulz,et al.  Solving the Class Responsibility Assignment Case with Henshin and a Genetic Algorithm , 2016, TTC@STAF.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

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

[11]  Christopher L. Simons,et al.  Interactive ant colony optimization (iACO) for early lifecycle software design , 2012, Swarm Intelligence.

[12]  Erkki Mäkinen,et al.  Genetic Synthesis of Software Architecture , 2008, SEAL.

[13]  Santosh Singh Rathore,et al.  Coupling and Cohesion Metrics for Object-Oriented Software: A Systematic Mapping Study , 2018, ISEC.

[14]  Caro Lucas,et al.  Imperialist competitive algorithm: An algorithm for optimization inspired by imperialistic competition , 2007, 2007 IEEE Congress on Evolutionary Computation.

[15]  Omid Bushehrian,et al.  Semi-automatic object-oriented software design using metaheuristic algorithms , 2017, 2017 2nd Conference on Swarm Intelligence and Evolutionary Computation (CSIEC).

[16]  Albert Zündorf,et al.  The SDMLib Solution to the Class Responsibility Assignment Case for TTC2016 , 2016, TTC@STAF.

[17]  Saeed Jalili,et al.  Automated software design using ant colony optimization with semantic network support , 2015, J. Syst. Softw..

[18]  Craig Larman,et al.  "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development”, Third Edition, Pearson Education, 2005. , 2015 .

[19]  Renuka Nagpal,et al.  Complexity Metrics for Component-Based Software System , 2019 .

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

[21]  Peng Liang,et al.  Automatically exploiting implicit design knowledge when solving the class responsibility assignment problem , 2018, 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).

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

[23]  Wolfgang Hesse,et al.  Bridging the gap between Use Case Analysis and Class Structure Design by Formal Concept Analysis , 2001 .

[24]  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.

[25]  Caro Lucas,et al.  A GENETIC ALGORITHM APPROACH TO DESIGN EVOLUTION USING DESIGN PATTERN TRANSFORMATION , 2010 .

[26]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .