Automated software design using ant colony optimization with semantic network support

Abstract Software design is an important task that needs to be well performed. In this paper, a method for automated software design using search-based software engineering approach is proposed. This approach can solve software engineering problems using search algorithms. Ant colony optimization is used as the meta-heuristic search algorithm in both single-objective and multi-objective modes. Input data are the analysis phase artifacts and the output is in the form of early life cycle class diagram. To provide human designer's background knowledge, a semantic network is used that is built upon the textual documents of analysis phase plus other resources like WordNet. This semantic network is used to name the output classes, and also to determine structural relations between classes. The proposed method is evaluated by some case studies and results are reported. The evaluation results show that using background knowledge beside optimization algorithm helps to achieve better results.

[1]  Z. S. Xu,et al.  An overview of operators for aggregating information , 2003, Int. J. Intell. Syst..

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

[3]  G. Rota The Number of Partitions of a Set , 1964 .

[4]  Jim Arlow,et al.  Uml and the Unified Process: Practical Object-Oriented Analysis and Design , 2005 .

[5]  W. Stadler Multicriteria Optimization in Engineering and in the Sciences , 1988 .

[6]  Thomas Stützle,et al.  Ant Colony Optimization , 2009, EMO.

[7]  Thomas Stützle,et al.  An experimental analysis of design choices of multi-objective ant colony optimization algorithms , 2012, Swarm Intelligence.

[8]  Thomas Stützle,et al.  The MAX–MIN Ant System and Local Search for Combinatorial Optimization Problems: Towards Adaptive Tools for Global Optimization , 1997 .

[9]  Khaled El Emam,et al.  The Optimal Class Size for Object-Oriented Software , 2002, IEEE Trans. Software Eng..

[10]  Ian M. Holland,et al.  Object-oriented programming: an objective sense of style , 1988, OOPSLA 1988.

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

[12]  Lionel C. Briand,et al.  Multi-Objective Genetic Algorithm to Support Class Responsibility Assignment , 2007, 2007 IEEE International Conference on Software Maintenance.

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

[14]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[15]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[16]  Erkki Mäkinen,et al.  Synthesizing Architecture from Requirements: A Genetic Approach , 2011, Relating Software Requirements and Architectures.

[17]  J. Rice Mathematical Statistics and Data Analysis , 1988 .

[18]  Lenhart K. Schubert Extending The Expressive Power Of Semantic Networks , 1976, IJCAI.

[19]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[20]  Ronald R. Yager,et al.  On ordered weighted averaging aggregation operators in multicriteria decisionmaking , 1988, IEEE Trans. Syst. Man Cybern..

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

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

[23]  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).

[24]  Herbert S. Wilf,et al.  Generating functionology , 1990 .

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

[26]  Poonam R.Kothari,et al.  Processing Natural Language Requirement to Extract Basic Elements of a Class , 2012 .

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

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

[29]  Alistair Cockburn,et al.  Writing Effective Use Cases , 2000 .

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

[31]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .

[32]  Bernd Bruegge,et al.  Object-Oriented Software Engineering: Using UML, Patterns and Java, Second Edition , 2003 .

[33]  R. Fullér On Obtaining OWA Operator Weights: A Sort Survey of Recent Developments , 2007, 2007 IEEE International Conference on Computational Cybernetics.

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

[35]  Luisa Mich,et al.  NL-OOPS: A Requirements Analysis Tool Based On Natural Language Processing , 2002 .

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

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

[38]  Dan Roth,et al.  The Importance of Syntactic Parsing and Inference in Semantic Role Labeling , 2008, CL.

[39]  Janusz Kacprzyk,et al.  Recent Developments in the Ordered Weighted Averaging Operators: Theory and Practice , 2011, Studies in Fuzziness and Soft Computing.

[40]  Ian Gorton,et al.  Essential software architecture , 2006 .

[41]  Robert J. Gaizauskas,et al.  CM-Builder: A Natural Language-Based CASE Tool for Object-Oriented Analysis , 2003, Automated Software Engineering.

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

[43]  Francisco Herrera,et al.  A taxonomy and an empirical analysis of multiple objective ant colony optimization algorithms for the bi-criteria TSP , 2007, Eur. J. Oper. Res..

[44]  Roger S. Pressman,et al.  Software Engineering Principles , 1989 .

[45]  Dov Dori,et al.  SMART: System Model Acquisition from Requirements Text , 2004, Business Process Management.

[46]  Goran Glavas,et al.  Solving the Class Responsibility Assignment Problem Using Metaheuristic Approach , 2011, J. Comput. Inf. Technol..

[47]  Leszek A. Maciaszek Requirements Analysis & System Design , 2007 .

[48]  Luisa Mich,et al.  NL-OOPS: from natural language to object oriented requirements using the natural language processing system LOLITA , 1996, Natural Language Engineering.

[49]  David L. Spooner,et al.  Automatic Generation of Floating-Point Test Data , 1976, IEEE Transactions on Software Engineering.

[50]  Horst Zuse,et al.  Software complexity: Measures and methods , 1990 .

[51]  Marco Dorigo,et al.  Ant algorithms and stigmergy , 2000, Future Gener. Comput. Syst..

[52]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[53]  Zhi-Hua Zhou,et al.  Artificial intelligence in medicine in China , 2004, Artif. Intell. Medicine.

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

[55]  Stéphane Ducasse,et al.  Object-Oriented Metrics in Practice , 2005 .

[56]  Dinesh Kumar Saini,et al.  Soft Computing Particle Swarm Optimization based Approach for Class Responsibility Assignment Problem , 2012 .

[57]  George A. Miller,et al.  WordNet 2 - A Morphologically and Semantically Enhanced Resource , 1999 .

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

[59]  Russ Abbott Program design by informal English descriptions , 1983, CACM.

[60]  Daniel Merkle,et al.  Bi-Criterion Optimization with Multi Colony Ant Algorithms , 2001, EMO.

[61]  Leszek A. Maciaszek,et al.  Requirements analysis and system design: developing information systems with UML , 2001 .