This Article 
 Bibliographic References 
 Add to: 
Interactive, Evolutionary Search in Upstream Object-Oriented Class Design
November/December 2010 (vol. 36 no. 6)
pp. 798-816
Christopher L. Simons, University of the West of England, Frenchay
Ian C. Parmee, University of the West of England, Frenchay
Rhys Gwynllyw, University of the West of England, Frenchay
Although much evidence exists to suggest that early life cycle software engineering design is a difficult task for software engineers to perform, current computational tool support for software engineers is limited. To address this limitation, interactive search-based approaches using evolutionary computation and software agents are investigated in experimental upstream design episodes for two example design domains. Results show that interactive evolutionary search, supported by software agents, appears highly promising. As an open system, search is steered jointly by designer preferences and software agents. Directly traceable to the design problem domain, a mass of useful and interesting class designs is arrived at which may be visualized by the designer with quantitative measures of structural integrity, such as design coupling and class cohesion. The class designs are found to be of equivalent or better coupling and cohesion when compared to a manual class design for the example design domains, and by exploiting concurrent execution, the runtime performance of the software agents is highly favorable.

[1] F.P. BrooksJr., The Mythical Man Month, 20th anniversary ed. Addison-Wesley, 1995.
[2] R. Guindon, "Designing the Design Process: Exploiting Opportunistic Thoughts," Human-Computer Interaction, vol. 5, nos. 2-3, pp. 305-344, 1990.
[3] C. Zannier, M. Chiasson, and F. Maurer, "A Model of Design Decision Making Based on Empirical Results of Interviews with Software Designers," Information and Software Technology, vol. 49, no. 6, pp. 637-653, June 2007.
[4] R.L. Glass, Facts and Fallacies of Software Engineering, pp. 81-84. Addison-Wesley, 2003.
[5] D. Svetinovic, D.M. Barry, and M. Godfrey, "Concept Identification in Object-Oriented Domain Analysis: Why Some Students Just Don't Get It," Proc. 13th Ann. IEEE Int'l Conf. Requirements Eng., pp. 189-198, 2005.
[6] R.J. Wirfs-Brock and A. McKean, Object Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, 2003.
[7] E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2004.
[8] D. Damian, J. Chisan, L. Vaidyanathasamy, and Y. Pal, "Requirements Engineering and Downstream Software Development: Findings from a Case Study," Empirical Software Eng., vol. 10, no. 3, pp. 255-283, 2005.
[9] A. Bhagwat, Object-Oriented Analysis and Design: Tools, http://www.cetus-links.orgoo_ooa_ood_tools.html , 2003.
[10] IBM Rational Software Architect, softwarerational /, 2009.
[11] Enterprise Architect, index.html , 2009.
[12] Select Architect, design select-architect, 2009.
[13] G.S. Ananda Mala and G.V. Uma, "Automatic Construction of Object-Oriented Design Models [UML Diagrams] from Natural Language Requirements Specification," Proc. Ninth Pacific Rim Int'l Conf. Artificial Intelligence, pp. 1155-1159, 2006.
[14] D. Lui, K. Subramaniam, E. Eberlien, and H. Behrouz, "Natural Language Requirements Analysis and Class Model Generation Using UCDA," Proc. 17th Int'l Conf. Industrial and Eng. Application of Artificial Intelligence and Expert Systems, pp. 295-304, 2004.
[15] L. Mich and R. Garigliano, "NL-OOPS: A Requirements Analysis Tool Based on Natural Language Processing," Proc. Third Int'l Conf. Data Mining, pp. 321-330, 2002.
[16] I.C. Parmee, "Towards Interactive Evolutionary Design Systems," Proc. Evolutionary and Adaptive Computing in Eng. Design, pp. 205-232, 2001.
[17] I.C. Parmee, D. Cvetkovic, C. Bonham, and A.H. Watson, "Interactive Evolutionary Conceptual Design Systems," Proc. Sixth Int'l Conf. Artificial Intelligence in Design, pp. 249-268, 2002.
[18] I.C. Parmee and J.A. Abraham, "User-Centric Evolutionary Design," Proc. Eighth Int'l Design Conf., pp. 1441-1446, 2004.
[19] J. Rech, E. Ras, and B. Becker, "Intelligent Assistance in German Software Development: A Survey," IEEE Software, vol. 24, no. 4, pp. 72-79, Aug. 2007.
[20] R. Milner, "Computing and Communication," Interactive Computation: The New Paradigm, D. Goldin, S.A. Smolka, and P. Wegner, eds., pp. 1-8, Springer-Verlag, 2006.
[21] F. Arbab, "Computing and Interaction," Interactive Computation: The New Paradigm, D. Goldin, S.A. Smolka, and P. Wegner, eds., pp. 9-23, Springer-Verlag, 2006.
[22] D. Goldin and P. Wegner, "Principles on Interactive Computation," Interactive Computation: The New Paradigm, D. Goldin, S.A. Smolka, and P. Wegner, eds., pp. 25-37, Springer-Verlag, 2006.
[23] I.C. Parmee, Evolutionary and Adaptive Computing in Engineering Design. Springer-Verlag, 2001.
[24] I.C. Parmee, "Improving Problem Definition through Interactive Evolutionary Computing," Artificial Intelligence for Eng. Design, Analysis, and Manufacturing, vol. 16, no. 3, pp. 185-202, June 2002.
[25] D. Cvetkovic and I.C. Parmee, "Agent-Based Support within an Interactive Evolutionary Design System," Artificial Intelligence for Eng. Design, Analysis, and Manufacturing, vol. 16, no. 5, pp. 331-342, Nov. 2002.
[26] I.C. Parmee, "Human-Centric Intelligent Systems for Exploration and Knowledge Discovery," Analyst, vol. 130, pp. 29-34, 2005.
[27] B. Sharma, I.C. Parmee, M. Whittaker, and A. Sedwell, "Drug Discovery: Exploring the Utility of Cluster Oriented Genetic Algorithms in Virtual Library Design," Proc. IEEE Congress Evolutionary Computation, pp. 668-675, 2005.
[28] A.T. Machwe and I.C. Parmee, "Integrating Aesthetic Criteria with Evolutionary Processes in Complex, Free-Form Design—An Initial Investigation," Proc. IEEE Congress Evolutionary Computation, pp. 165-172, 2006.
[29] A.T. Machwe and I.C. Parmee, "Introducing Machine Learning within an Interactive Evolutionary Design Environment," Proc. Ninth Int'l Design Conf., pp. 283-290, 2006.
[30] M. Harman and B. Jones, "Search-Based Software Engineering," Information and Software Technology, vol. 43, no. 14, pp. 833-839, Dec. 2001.
[31] Y. Zhang, Repository of Publications on Search Based Software Engineering,, 2008.
[32] M. Harman and L. Tratt, "Pareto Optimal Search-Based Refactoring at the Design Level," Proc. Genetic and Evolutionary Computation Conf., pp. 1106-1113, 2007.
[33] M. O'Keefe and M.O. Cinnaide, "Search-Based Refactoring for Software Maintenance," J. Systems and Software, vol. 81, no. 4, pp. 502-516, Apr. 2008.
[34] O. Maqbool and H.A. Babri, "Hierarchical Clustering for Software Architecture Recovery," IEEE Trans. Software Eng., vol. 33, no. 11, pp. 759-780, Nov. 2007.
[35] K. Beck, Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000.
[36] M. Fowler, Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
[37] S.-C. Lo and J.-H. Chang, "Application of Clustering Techniques to Software Component Architecture Design," Int'l J. Software Eng. and Knowledge Eng., vol. 14, no. 4, pp. 429-439, Aug. 2004.
[38] A. Egyed and D.S. Wile, "Support for Managing Design Time Decisions," IEEE Trans. Software Eng., vol. 32, no. 5, pp. 299-314, May 2006.
[39] P. Maes, "Agents that Reduce Work and Information Overload," Comm. ACM, vol. 37, no. 7, pp. 31-40, Jul. 1994.
[40] N. Negroponte, Being Digital. Hodder and Stoughton, 1995.
[41] M. Wooldridge, An Introduction to Multi-Agent Systems, Wiley, 2002.
[42] J.M. Bradshaw, "Making Agents Acceptable to People," Proc. Third Int'l/Central and Eastern European Conf. Multi-Agent Systems, pp. 1-3, 2003.
[43] G. Klein, D.D. Woods, J.M. Bradshaw, R.R. Hoffman, and P.J. Feltovich, "Ten Challenges for Making Automation a 'Team Player' in Joint Human-Agent Activity," IEEE Intelligent Systems, vol. 19, no. 6, pp. 91-95, Nov./Dec. 2004.
[44] I. Jacobson, M. Christerson, P. Jonsson, and G. Overgaard, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, 1992.
[45] C.L. Simons and I.C. Parmee, "A Cross-Disciplinary Technology Transfer for Search-Based Evolutionary Computing: From Engineering Design to Software Engineering Design," Eng. Optimization, vol. 39, no. 5, pp. 631-648, 2007.
[46] R. Harrison, S. Councell, and R. Nithi, "An Investigation into the Applicability and Validity of Object-Oriented Design Metrics," Empirical Software Eng., vol. 3, no. 3, pp. 255-273, Sept. 1998.
[47] L.C. Briand, J.W. Daly, and J.K. Wust, "A Unified Framework for Coupling Measurements in Object-Oriented Systems," IEEE Trans. Software Eng., vol. 25, no. 1, pp. 91-121, Jan. 1999.
[48] C.L. Simons, Use Case Specifications for Cinema Booking System, Cinema BookingSystem.htm, 2009.
[49] C.L. Simons, Use Case Specifications for Graduate Development Program, GraduateDevelopmentProgram.htm, 2009.
[50] B. Lawson, What Designers Know, pp. 17-18. Architectural Press (Elsevier), 2004.
[51] C.L. Simons and I.C. Parmee, "User-Centered, Evolutionary Search in Conceptual Software Design," Proc. IEEE Congress Evolutionary Computation at IEEE World Congress Computational Intelligence, pp. 869-876, 2008.
[52] K. Deb, Multi-Objective Optimization Using Evolutionary Algorithms. John Wiley and Sons, 2001.
[53] C.A. Coello Coello, G.B. Lamont, and D.A. Van VelderHuizen, Evolutionary Algorithms for Solving Multi-Objective Problems, second ed., Springer, 2007.
[54] C.L. Simons, Example Event Log for Design Episode, http://www. ExampleEventLog.htm, 2008.
[55] H. Tagaki, "Interactive Evolutionary Computation: Fusion of the Capabilities of EC Optimization and Human Evaluation," Proc. IEEE, vol. 89, no. 9, pp. 1275-1296, Sept. 2001.
[56] M. O'Keefe and M.O. Cinneide, "Towards Automated Design Improvement through Combinatorial Optimisation," Proc. 26th Int'l Conf. Software Eng. and Workshop Directions in Software Eng. Environments, pp. 75-82, 2004.
[57] S.-J. Huang, N.-H. Chiu, and L.-W. Chen, "Integration of the Grey Relation Analysis with Genetic Algorithm for Software Effort Estimation," European J. Operational Research, vol. 188, no. 3, pp. 898-909, 2008.
[58] I. Hermadi and M.A. Ahmed, "Genetic Algorithm Based Test Data Generator," Proc. IEEE Congress on Evolutionary Computation, pp. 85-91, 2003.
[59] R.C. Bryce and C.J. Colburne, "The Density Algorithm for Pairwise Interaction Testing," Software Testing, Verification and Reliability, vol. 17, no. 3, pp. 159-182, 2007.
[60] T.M. Khoshgoftar and Y. Liu, "A Multi-Objective Software Quality Classification Model Using Genetic Programming," IEEE Trans. Reliability, vol. 56, no. 2, pp. 237-245, June 2007.
[61] J.J. Durillo, Y. Zhang, E. Alba, A.J. Nebro, "A Study of the Multi-Objective Next Release Problem," Proc. First Int'l Symp. Search-Based Software Eng., pp. 49-58, 2009.
[62] K. Lakhotia, M. Harman, P. McMinn, "A Multi-Objective Approach to Search-Based Test Data Generation," Proc. Genetic and Evolutionary Computation Conf., pp. 1098-1105, 2007.
[63] Y. Zhang, M. Harman, and S.A. Mansouri, "The Multi-Objective Next Release Problem," Proc. Genetic and Evolutionary Computation Conf., pp. 1129-1137, 2007.
[64] A.E. Eiben, R. Hinterding, and Z. Michalewicz, "Parameter Control in Evolutionary Algorithms," IEEE Trans. Evolutionary Computation, vol. 3, no. 2, pp. 124-141, July 1999.
[65] Parameter Setting in Evolutionary Algorithms, F.G. Lobo, C.F. Lima, and Z. Michalewicz, eds. Springer, 2007.
[66] C.L. Simons and I.C. Parmee, "An Empirical Investigation of Search-Based Computational Support for Conceptual Software Engineering Design," Proc. IEEE Int'l Conf. Systems, Man, and Cybernetics, pp. 2577-2582, 2009.

Index Terms:
Software design, evolutionary computation, interactive search.
Christopher L. Simons, Ian C. Parmee, Rhys Gwynllyw, "Interactive, Evolutionary Search in Upstream Object-Oriented Class Design," IEEE Transactions on Software Engineering, vol. 36, no. 6, pp. 798-816, Nov.-Dec. 2010, doi:10.1109/TSE.2010.34
Usage of this product signifies your acceptance of the Terms of Use.