Abstract
Finding good designs in the early stages of the software development lifecycle is a demanding multi-objective problem that is crucial to success. Previously, both interactive and non-interactive techniques based on evolutionary algorithms (EAs) have been successfully applied to assist the designer. However, recently ant colony optimization was shown to outperform EAs at optimising quantitative measures of software designs with a limited computational budget. In this paper, we propose a novel interactive ACO (iACO) approach, in which the search is steered jointly by an adaptive model that combines subjective and objective measures. Results show that iACO is speedy, responsive and effective in enabling interactive, dynamic multi-objective search. Indeed, study participants rate the iACO search experience as compelling. Moreover, inspection of the learned model facilitates understanding of factors affecting users’ judgements, such as the interplay between a design’s elegance and the interdependencies between its components.
Similar content being viewed by others
Notes
The use of anthropocentric language is deliberate here, and mimics users’ vocal responses during interaction sessions.
References
Albakour, M.-D., Kruschwitz, U., Nanas, N., Song, D., Fasli, M., & De Roeck, A. (2011). Exploring ant colony optimisation for adaptive interactive search. In Proceedings of Advances in Information Retrieval Theory. Lecture notes in computer science (Vol. 6931, pp. 213–224). Heidelberg: Springer.
Avigad, G., Moshaiov, A., & Brauner, N. (2005). Interactive concept-based search using MOEA: The hierarchical preference case. International Journal of Computational Intelligence, 2(3), 182–191.
Belton, V., Branke, J., Eskelinen, P., Greco, S., Molina, J., Ruiz, F., et al. (2008). Interactive multiobjective optimization from a learning Perspective. In J. Branke, K. Deb, K. Miettinen, & R. Słowiński (Eds.), Multiobjective optimization: Interactive and evolutionary approaches (pp. 405–433). Heidelberg: Springer.
Boudjeloud, L., & Poulet, F. (2005). Visual interactive evolutionary algorithm for high dimensional data clustering and outlier detection. In 9th Pacific-Asia Conference on Advances in Knowledge Discovery and Design (pp. 428–43). Heidelberg: Springer.
Bowman, M., Briand, L. C., & Labiche, Y. (2010). Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. IEEE Transactions on Software Engineering, 36(6), 817–837.
Brintrup, A., Ramsden, J., Takagi, H., & Tiwari, A. (2008). Ergonomic chair design by fusing qualitative and quantitative criteria using interactive genetic algorithms. IEEE Transactions on Evolutionary Computation, 12(3), 343–354.
Brooks, F. P, Jr. (1987). No silver bullet: Essence and accidents of software engineering. Computer, 20(4), 10–19.
Buchanan, J. T., & Daellenbach, H. G. (1997). The effects of anchoring in interactive MCDM solution methods. Computers and Operations Research, 24(10), 907–918.
Caleb-Solly, P., & Smith, J. E. (2007). Adaptive surface inspection via interactive evolution. Image and Vision Computing, 25(7), 1058–1072.
Cockburn, A. (2002). Agile software development. Boston: Addison-Wesley.
Deb, K. (2012). Advances in evolutionary multi-objective optimization. In proceedings of 4th International Symposium on Search-based Software Engineering. LNCS (Vol. 7515, pp. 1–26). Heidelberg: Springer.
Dorigo, M., & Stützle, T. (2001). An experimental study of the simple ant colony optimization algorithm. In N. Mastorakis (Ed.), Advances in fuzzy systems and evolutionary computation (pp. 253–258). Dallas, TX: World Scientific and Engineering Society Press.
Dorigo, M., & Stützle, T. (2004). Ant colony optimization. Cambridge: MIT Press.
Eiben, A. E., & Smith, J. E. (2003). Introduction to evolutionary computing. Heidelberg: Springer.
Harrison, R., Councell, S., & Nithi, R. (1998). An investigation into the applicability and validity of object-oriented design metrics. Empirical Software Engineering, 3(3), 255–273.
Harman, M. (2011). Software engineering meets evolutionary computation. Computer, 44(10), 31–39.
Harman, M., & Jones, B. J. (2001). Search-based software engineering. Information and Software Technology, 43(14), 833–839.
Jaszkiewicz, A. and Branke, J. (2008). Interactive multiobjective evolutionary algorithms. In J. Branke (Ed.), MultiObjective optimisation: Interactive and evolutionary approaches. LNCS (pp. 179–193). Heidelberg: Springer.
Jin, Y., & Branke, J. (2005). Evolutionary optimization in uncertain environments—a survey. IEEE Transactions on Evolutionary Computation, 9(3), 303–317.
Kubota, N., Nojima, Y., Kojima, F., & Fukuda, T. (2006). Multiple fuzzy state-value functions for human evaluation through interactive trajectory planning of a partner robot. Soft Computing, 10(10), 891–901.
Lee, J.-Y., & Cho, S.-B. (1998). Interactive genetic algorithm with wavelet coefficients for emotional image retrieval. In 5th International Conference on Soft Computing and Information/Intelligent Systems (Vol. 2, pp. 829–832). Singapore: World Scientific.
Martin, R. C. (2003). Agile software development: Principles, patterns and practices. Upper Saddle River, NJ: Prentice-Hall.
Maiden, N. (2011). Requirements and aesthetics. IEEE Software, 28(3), 20–21.
McMinn, P. (2004). Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2), 105–156.
Miettinen, K. M. (1998). Nonlinear multiobjective optimization. Norwell, MA: Kluwer.
Miller, G. (1956). The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychology Review, 63(2), 81–97.
Object Management Group. (2013). Unified modelling language resource page. Retrieved August 28, 2013, from http://www.uml.org/.
Ohsaki, M., Takagi, H., & Ohya, K. (1998). An input method using discrete fitness values for interactive genetic algorithms. Journal of Intelligent and Fuzzy Systems, 6(1), 131–145.
O’Keeffe, M., & Cinnéide, O. M. (2008). Search-based refactoring for software maintenance. Journal of Systems and Software, 81(4), 502–516.
Pauplin, O., Caleb-Solly, P., & Smith, J. E. (2010). User-centric image segmentation using an interactive parameter adaptation tool. Pattern Recognition, 43(2), 519–529.
Ren, J., Harman, M., & Di Penta, M. (2011). Cooperative co-evolutionary optimisation of software project assignments and job scheduling. In 3rd International Symposium on Search-based Software Engineering (SSBSE, 2011). LNCS (Vol. 6956, pp. 127–141). Heidelberg: Springer.
Salkind, N. J. (2010). Encyclopaedia of research design (Vol. 2). Thousand Oaks: Sage Publications.
Simons, C. L. (2014). Use case specifications and related study information. Retrieved April 14, 2014, from http://www.cems.uwe.ac.uk/clsimons/iACO.
Simons, C. L., & Parmee, I. C. (2009). An empirical investigation of search-based computational support for conceptual software engineering design. 2009 IEEE International Conference on Systems, Man, and Cybernetics, (SMC ’09) (pp. 2577–2582). IEEE Press: Piscataway.
Simons, C. L., & Parmee, I. C. (2012). Elegant, object-oriented software design via interactive evolutionary computation. IEEE Transactions on Systems, Man, and Cybernetics: Part C, 42(6), 1979–1805.
Simons, C. L., Parmee, I. C., & Gwynllyw, R. (2010). Interactive, evolutionary search in upstream object-oriented software design. IEEE Transactions on Software Engineering, 33(6), 798–816.
Simons, C. L., & Smith, J. E. (2012). A comparison of evolutionary algorithms and ant colony optimisation for interactive software design. In Fast Abstract (Ed.), Collection of the 4th Symposium of Search-Based Software Engineering, (SSBSE 2012) (pp. 37–42). Italy: FBK-Press.
Simons, C. L., & Smith, J. E. (2013). A comparison of meta-heuristic search for interactive software design. Soft Computing, 17, 2147–2162.
Smith, J. E., & Fogarty, T. C. (1996). Evolving software test data—GAs learn self-expression. In Evolutionary Computing (Ed.), Fogarty (pp. 137–146). Heidelberg: Springer.
Stützle, T., & Hoos, H. (2000). MAX–MIN ant system. Future Generation Computer Systems, 16(8), 889–914.
Takagi, H. (2001). Interactive evolutionary computation: Fusion of the capabilities of EC optimization and human evaluation. Proceedings of the IEEE, 89(9), 1275–1298.
Uǧur, A., & Aydin, D. (2009). Interactive simulation and analysis software for solving TSP using ant colony optimization algorithms. Advances in Engineering Software, 40(5), 341–348.
Weimer, W., Forrest, S., Le Goues, C., & Nguyen, T. (2010). Automatic program repair with evolutionary computing. Communications of the ACM, 53(5), 109–116.
Xanthakis, S., Ellis, C., Skourlas, C., Le Gall, A., Katsikas, S., & Karapoulios, K. (1992). Application of genetic algorithms to software testing. In: 5th IASTED International Conference on Software Engineering and Applications (pp. 625–636). Innsbruck: ACTA Press.
Xing, L.-N., Chen, Y.-W., & Yang, K.-W. (2007). Interactive fuzzy multi-objective ant colony optimisation with linguistically quantified decision functions for flexible job shop scheduling problems. Frontiers in the Convergence of Bioscience and Information (FBIT 2007) (pp. 801–806). IEEE Press: Piscataway.
Zhang, Y. (2014). Repository of publications on search-based software engineering. Retrieved April 15, 2014, from http://crestweb.cs.ucl.ac.uk/resources/sbse_repository/.
Acknowledgments
The authors would like to very much thank the editorial staff and the anonymous reviewers for their professional and constructive comments.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Simons, C.L., Smith, J. & White, P. Interactive ant colony optimization (iACO) for early lifecycle software design. Swarm Intell 8, 139–157 (2014). https://doi.org/10.1007/s11721-014-0094-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11721-014-0094-2