The influence of search components and problem characteristics in early life cycle class modelling

We pose the identification of class models in early stage software design as a search problem.We conduct empirical studies to see how various search components affect solution quality.We identify key characteristics of problem landscapes for constructing test-suites. This paper examines the factors affecting the quality of solution found by meta-heuristic search when optimising object-oriented software class models. From the algorithmic perspective, we examine the effect of encoding, choice of components such as the global search heuristic, and various means of incorporating problem- and instance-specific information. We also consider the effect of problem characteristics on the (estimated) cost of the global optimum, and the quality and distribution of local optima. The choice of global search component appears important, and adding problem and instance-specific information is generally beneficial to an evolutionary algorithm but detrimental to ant colony optimisation. The effect of problem characteristics is more complex. Neither scale nor complexity have a significant effect on the global optimum as estimated by the best solution ever found. However, using local search to locate 100,000 local optima for each problem confirms the results from meta-heuristic search: there are patterns in the distribution of local optima that increase with scale (problem size) and complexity (number of classes) and will cause problems for many classes of meta-heuristic search.

[1]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[2]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[3]  Ivar Jacobson,et al.  Object Design: Roles, Responsibilities, and Collaborations , 2002 .

[4]  James E. Smith,et al.  Self-Adaptation of Mutation Operator and Probability for Permutation Representations in Genetic Algorithms , 2010, Evolutionary Computation.

[5]  A. E. Eiben,et al.  Introduction to Evolutionary Computing , 2003, Natural Computing Series.

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

[7]  Christopher L. Simons,et al.  A comparison of evolutionary algorithms and ant colony optimization for interactive software design , 2012 .

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

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

[10]  Michael W. Godfrey,et al.  Concept identification in object-oriented domain analysis: why some students just don't get it , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[11]  Erkki Mäkinen,et al.  Simulated Annealing for Aiding Genetic Algorithm in Software Architecture Synthesis , 2013, Acta Cybern..

[12]  Robert L. Glass,et al.  Facts and fallacies of software engineering , 2002 .

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

[14]  James Smith,et al.  A tutorial for competent memetic algorithms: model, taxonomy, and design issues , 2005, IEEE Transactions on Evolutionary Computation.

[15]  Gang Wang,et al.  Ant Colony metaheuristics for fundamental architectural design problems , 2007 .

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

[17]  Marian Petre,et al.  Insights from expert software design practice , 2009, ESEC/SIGSOFT FSE.

[18]  Jim Smith,et al.  A comparison of two memetic algorithms for software class modelling , 2013, GECCO '13.

[19]  S Vathsavayi,et al.  Interleaving human and search-based software architecture design , 2013 .

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

[21]  Hans-Georg Beyer,et al.  Self-Adaptation in Evolutionary Algorithms , 2007, Parameter Setting in Evolutionary Algorithms.

[22]  Ian C. Parmee,et al.  Elegant Object-Oriented Software Design via Interactive, Evolutionary Computation , 2012, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[23]  Thomas Stützle,et al.  MAX-MIN Ant System , 2000, Future Gener. Comput. Syst..

[24]  Rhyd Lewis,et al.  Revisiting the Restricted Growth Function Genetic Algorithm for Grouping Problems , 2011, Evolutionary Computation.