Semi-automatic object-oriented software design using metaheuristic algorithms

The quality of software design always has a significant impact on the extendibility and maintainability of the final product. Automatic techniques may help designers to achieve better design. There are several ways for software design automation. Generally Search-based methods such as GA, ant colony, and ICA are used for problems with large search space in which finding the optimal solution is hard. In this paper a hybrid algorithm called ICA-TS (Imperialist Competitive Algorithm-Tabu Search) is presented to generate class diagram of the under design system automatically. The method has three phases: First, formal concept analysis (FCA) for preprocessing phase of the method is used as a mean to generate initial solution. Next a hybrid of ICA and TS is used to update solutions. The relationships between classes are determined in third phase. Three standard case studies are used for performance evaluation and the results are compared with results of genetic and simple ICA. The results show that the presented method has competitive results and it can generate more efficient class diagram in terms of cohesion, coupling and complexity of system.

[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]  Erkki Mäkinen,et al.  Genetic Synthesis of Software Architecture , 2008, SEAL.

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

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

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

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

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

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

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

[10]  Ian C. Parmee,et al.  Single and multi-objective genetic operators in object-oriented conceptual software design , 2006, GECCO.

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

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

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

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

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

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

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

[18]  Ian C. Parmee,et al.  User-centered, evolutionary search in conceptual software design , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).