An empirical investigation of search-based computational support for conceptual software engineering design

Conceptual software engineering design is an intensely people-oriented and non-trivial activity, yet current computational tool support is limited. While a number of search-based software engineering approaches to support software design have been reported, few empirical studies into their application have been described. This paper reports the findings of an observational study of conceptual design episodes in a UK higher education problem domain. When compared with a manual design episode, a design episode enabled by a user-interactive, search-based, evolutionary computation tool generates a large number of useful and interesting candidate designs, and provides enhanced qualitative and quantitative evaluation. It is also found that tool-supported visualization of UML class designs offers opportunities for sudden design discovery, and that designers respond positively to opportunities to explore and exploit multiple candidate designs. It appears therefore that search-based computational tool support offers high potential in the support of conceptual software engineering design.

[1]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[2]  Onaiza Maqbool,et al.  Hierarchical Clustering for Software Architecture Recovery , 2007, IEEE Transactions on Software Engineering.

[3]  Ian C. Parmee,et al.  Multiobjective Satisfaction within an Interactive Evolutionary Design Environment , 2000, Evolutionary Computation.

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

[5]  Raymonde Guindon Designing the design process: exploiting opportunistic thoughts , 1990 .

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

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

[8]  Mark Harman,et al.  Pareto optimal search based refactoring at the design level , 2007, GECCO '07.

[9]  Amaresh Chakrabarti,et al.  Towards an ‘ideal’ approach for concept generation , 2003 .

[10]  SHU-CHUAN LO,et al.  Application Of Clustering Techniques To Software Component Architecture Design , 2004, Int. J. Softw. Eng. Knowl. Eng..

[11]  Kalyanmoy Deb,et al.  Multi-objective optimization using evolutionary algorithms , 2001, Wiley-Interscience series in systems and optimization.

[12]  Ian C. Parmee,et al.  Agent-based support within an interactive evolutionary design system , 2002, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

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

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

[15]  Bryan Lawson,et al.  What designers know , 2018, The Design Student’s Journey.

[16]  Spiros Mancoridis,et al.  Using Heuristic Search Techniques To Extract Design Abstractions From Source Code , 2002, GECCO.

[17]  Yan Jin,et al.  Study of mental iteration in different design situations , 2006 .

[18]  Lerina Aversano,et al.  A genetiv programming approach to support the design of service compositions , 2006, Comput. Syst. Sci. Eng..