Skip to main content
Log in

Interactive ant colony optimization (iACO) for early lifecycle software design

  • Published:
Swarm Intelligence Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

Notes

  1. 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.

    Google Scholar 

  • 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.

    Chapter  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Brooks, F. P, Jr. (1987). No silver bullet: Essence and accidents of software engineering. Computer, 20(4), 10–19.

    Article  MathSciNet  Google Scholar 

  • Buchanan, J. T., & Daellenbach, H. G. (1997). The effects of anchoring in interactive MCDM solution methods. Computers and Operations Research, 24(10), 907–918.

    Article  MATH  Google Scholar 

  • Caleb-Solly, P., & Smith, J. E. (2007). Adaptive surface inspection via interactive evolution. Image and Vision Computing, 25(7), 1058–1072.

    Article  Google Scholar 

  • Cockburn, A. (2002). Agile software development. Boston: Addison-Wesley.

    Google Scholar 

  • 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.

    Google Scholar 

  • Dorigo, M., & Stützle, T. (2004). Ant colony optimization. Cambridge: MIT Press.

    Book  MATH  Google Scholar 

  • Eiben, A. E., & Smith, J. E. (2003). Introduction to evolutionary computing. Heidelberg: Springer.

    Book  MATH  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Harman, M. (2011). Software engineering meets evolutionary computation. Computer, 44(10), 31–39.

    Article  Google Scholar 

  • Harman, M., & Jones, B. J. (2001). Search-based software engineering. Information and Software Technology, 43(14), 833–839.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Maiden, N. (2011). Requirements and aesthetics. IEEE Software, 28(3), 20–21.

    Article  Google Scholar 

  • McMinn, P. (2004). Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2), 105–156.

    Article  Google Scholar 

  • Miettinen, K. M. (1998). Nonlinear multiobjective optimization. Norwell, MA: Kluwer.

    Book  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  MATH  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Simons, C. L., & Smith, J. E. (2013). A comparison of meta-heuristic search for interactive software design. Soft Computing, 17, 2147–2162.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Weimer, W., Forrest, S., Le Goues, C., & Nguyen, T. (2010). Automatic program repair with evolutionary computing. Communications of the ACM, 53(5), 109–116.

    Article  Google Scholar 

  • 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/.

Download references

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

Authors

Corresponding author

Correspondence to Christopher L. Simons.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11721-014-0094-2

Keywords

Navigation