What Can a Big Program Teach Us about Optimization?

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8084)


In this paper we report on the evolution of Apache Ant, a build automation tool developed in Java. We observed a typical case of architectural mismatch in this system: its original simple design was lost due to maintenance and addition of new features. We have applied SBSE techniques to determine whether the search would be able to recover at least parts of the original design, in a metrics-based optimization. We observed that current SBSE techniques produce complex designs, but they also allow us to study the limitations of present design metrics. In the end, we propose a new research perspective joining software clustering and refactoring selection to improve software evolution.


Apache Ant Hill Climbing search software module clustering 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Fowler, M.: Continuous Integration, (last accessed on March 26, 2013)
  2. 2.
    Mitchell, B., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software Engineering 32(3), 193–208 (2006)CrossRefGoogle Scholar
  3. 3.
    Harman, M., Swift, S., Mahdavi, K.: An Empirical Study of the Robustness of two Module Clustering Fitness Functions. In: Proceedings of GECCO 2005, Washington, USA (2005)Google Scholar
  4. 4.
    Barros, M.: An Analysis of the Effects of Composite Objectives in Multiobjective Software Module Clustering. In: Proceedings of the Genetic and Evolutionary Computation Conference (GECCO 2012), Philadelphia, USA (2012)Google Scholar
  5. 5.
    Simons, C.L., Parmee, I.C.: Elegant Object-Oriented Software Design via Interactive, Evolutionary Computation. IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews) 42(6), 1797–1805 (2012), doi:10.1109/TSMCC.2012.2225103CrossRefGoogle Scholar
  6. 6.
    Henderson-Sellers, B.: Software Metrics. Prentice Hall, Hemel Hempstead (1996)Google Scholar
  7. 7.
    Chidamber, S., Kemerer, C.: A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)CrossRefGoogle Scholar
  8. 8.
    Lanza, M., Marinescu, R.: Object-oriented Metrics in Practice: using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems. Springer, Heidelberg (2006)Google Scholar
  9. 9.
    Garlan, D., Allen, R., Ockerbloom, J.: Architectural Mismatch or, Why it’s hard to build systems out of existing parts. IEEE Software 12(6), 17–26 (1995)CrossRefGoogle Scholar
  10. 10.
    Sangal, N., Waldman, F.: Dependency Models to Manage Software Architecture. CROSSTALK: The Journal of Defense Software Engineering, 8–12 (November 2005)Google Scholar
  11. 11.
    Cinnéide, M.Ó., Tratt, L., Harman, M., Counsell, S., Moghadam, I.H.: Experimental Assessment of Software Metrics Using Automated Refactoring. In: Proc. of the 6th Int. Symposium on Empirical Software Engineering and Measurement, Sweden, pp. 49–58 (2012)Google Scholar
  12. 12.
    Hall, M., Walkinshaw, N., McMinn, P.: Supervised Software Modularisation. In: Proc. of the International Conference on Software Maintenance, Riva del Garda, pp. 472–481 (2012)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  1. 1.Post-graduate Information Systems ProgramPPGI/UNIRIOUrca – Rio de JaneiroBrazil
  2. 2.Computers and System Engineering ProgramCOPPE/UFRJRio de JaneiroBrazil

Personalised recommendations