An Experimental Study on Incremental Search-Based Software Engineering

  • Márcio de Oliveira Barros
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8084)


Since its inception, SBSE has supported many different software engineering activities, including some which aim on improving or correcting existing systems. In such cases, search results may propose changes to the organization of the systems. Extensive changes may be inconvenient for developers, who maintain a mental model about the state of the system and use this knowledge to be productive in their daily business. Thus, a balance between optimization objectives and their impact on system structure may be pursued. In this paper, we introduce incremental search-based software engineering, an extension to SBSE which suggests optimizing a system through a sequence of restricted search turns, each limited to a maximum number of changes, so that developers can become aware of these changes before a new turn is enacted. We report on a study addressing the cost of breaking a search into a sequence of restricted turns and conclude that, at least for the selected problem and instances, there is indeed huge penalty in doing so.


incremental optimization interactive optimization Hill Climbing software module clustering 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Harman, M.: The Current State and Future of Search Based Software Engineering. In: 29th International Conference on Software Engineering (ICSE 2007), Future of Software Engineering (FoSE), Minneapolis, USA, pp. 20–26 (May 2007)Google Scholar
  2. 2.
    Antoniol, G., Penta, M., Harman, M.: Search-based techniques applied to optimization of project planning for a massive maintenance project. In: 21st IEEE International Conference on Software Maintenance, Los Alamitos, California, USA, pp. 240–249 (2005)Google Scholar
  3. 3.
    Bagnall, A., Rayward-Smith, V., Whittley, I.: The next release problem. Information and Software Technology 43(14), 883–890 (2001)CrossRefGoogle Scholar
  4. 4.
    Dolado, J.J.: A validation of the component-based method for software size estimation. IEEE Transactions on Software Engineering 26(10), 1006–1021 (2000)CrossRefGoogle Scholar
  5. 5.
    Barreto, A., Barros, M., Werner, C.: Staffing a software project: A constraint satisfaction and optimization based approach. Computers and Operations Research (COR) focused issue on Search Based Software Engineeering 35(10), 3073–3089 (2008)zbMATHCrossRefGoogle Scholar
  6. 6.
    McMinn, P.: Search-based software test data generation: A survey. Software Testing, Verification and Reliability 14(2), 105–156 (2004)CrossRefGoogle Scholar
  7. 7.
    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
  8. 8.
    Durillo, J.J., Zhang, Y., Alba, E., Nebro, A.J.: A Study of the Multi-objective Next Release Problem. In: Proceedings of the 1st Symposium on Search-based Software Engineering, Windsor, UK, pp. 49–58 (2009)Google Scholar
  9. 9.
    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
  10. 10.
    Bavota, G., Carnevale, F., De Lucia, A., Di Penta, M., Oliveto, R.: Putting the Developer in-the-loop: an Interactive GA for Software Re-Modularization. In: Proc. of the 4th Symposium on Search-based Software Engineering, Riva del Garda, Italy, pp. 75–89 (2012)Google Scholar
  11. 11.
    Ferrucci, F., Gravino, C., Sarro, F.: How Multi-Objective Genetic Programming is Effective for Software Development Effort Estimation? In: Proceedings of the 3rd Symposium for Search-based Software Engineering, Szeged, HU, pp. 274–275 (2011)Google Scholar
  12. 12.
    Francescomarino, C., Marchetto, A., Tonella, P.: Cluster-based modularization of processes recovered from web applications. Journal of Software: Evolution and Process 25(2), 113–138 (2013)CrossRefGoogle Scholar
  13. 13.
    Magdaleno, A.: An optimization-based approach to software development process tailoring. In: Proc. of the 2nd Symposium for Search-based Software Engineering, Benevento, IT (2010)Google Scholar
  14. 14.
    Yoo, S., Harman, M.: Regression Testing, Minimisation, Selection and Prioritisation: A Survey. Software: Testing, Verification & Reliability 22(2), 67–120 (2012)CrossRefGoogle Scholar
  15. 15.
    Bowman, M., Briand, L., Labiche, Y.: Solving the Class Responsibility Assignment Problem in Object-oriented Analysis with Multi-Objective Genetic Algorithms. IEEE Transactions on Software Engineering 36(6), 817–837 (2010)CrossRefGoogle Scholar
  16. 16.
    O’Keeffe, M., Cinnéide, M.: Search-based Refactoring: An Empirical Study. Journal of Software Maintenance and Evolution: Research and Practice 20(5), 345–364 (2008)Google Scholar
  17. 17.
    Deligiannis, I., Shepperd, M., Roumeliotis, M., Stamelos, I.: An empirical investigation of an object-oriented design heuristic for maintainability. Journal of Systems and Software 65(2) (2003)Google Scholar
  18. 18.
    Gibbs, S., Tsichritzis, D., et al.: Class Management for Software Communities. Communications of the ACM 33(9), 90–103 (1990)CrossRefGoogle Scholar
  19. 19.
    Mancoridis, S., Mitchell, B.S., Chen, Y., Gansner, E.R.: Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures. In: Proceedings of the IEEE International Conference on Software Maintenance, pp. 50–59 (1999)Google Scholar
  20. 20.
    Praditwong, K., Harman, M., Yao, X.: Software Module Clustering as a Multiobjective Search Problem. IEEE Transactions on Software Engineering 37(2), 262–284 (2011)CrossRefGoogle Scholar
  21. 21.
    Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and the Unified Process. Prentice Hall, Upper Saddle River (2002)Google Scholar
  22. 22.
    Briand, L.C., Morasca, S., Basili, V.R.: Defining and Validating Measures for Object-based High-Level Design. IEEE Transactions on Software Engineering 25(5) (1999)Google Scholar
  23. 23.
    Harman, M., Swift, S., Mahdavi, K.: An Empirical Study of the Robustness of two Module Clustering Fitness Functions. In: Proceedings of the Genetic and Evolutionary Computing Conference (GECCO 2005), Washington, DC, USA (2005)Google Scholar
  24. 24.
    Tucker, A., Swift, S., Liu, X.: Grouping Multivariate Time Series via Correlation. IEEE Transactions on Systems, Man, & Cybernetics, B: Cybernetics 31(2), 235–245 (2001)CrossRefGoogle Scholar
  25. 25.
    LaToza, T.D., Venolia, G., DeLine, R.: Maintaining Mental Models: A Study of Developer Work Habits. In: Proc. of the 28th International Conference on Software Engineering, Shangai, CH (2006)Google Scholar
  26. 26.
    Ko, A., DeLine, R., Venolia, G.: Information Needs in Collocated Software Development Teams. In: Proc. of the 29th International Conference on Software Engineering, EUA (2007)Google Scholar
  27. 27.
    Miller, G.A.: The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychological Review 63(2), 81–97 (1956)CrossRefGoogle Scholar
  28. 28.
    Harman, M., Clark, J.A., Cinnédie, M.Ó.: Dynamic Adaptive Search Based Software Engineering Needs Fast Approximate Metrics. In: Proceedings of the 4th International Workshop on Emerging Trends in Software Metrics, San Francisco, USA (2013)Google Scholar
  29. 29.
    Harman, M., Burke, E., Clark, J.A., Yao, X.: Dynamic Adaptive Search Based Software Engineering. In: 6th IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM 2012), Lund, Sweden, pp. 1–8 (2012)Google Scholar
  30. 30.
    Harman, M., Clark, J.A.: Metrics are fitness functions too. In: Proceedings of the 10th International Symposium on Software Metrics, pp. 58–69 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Márcio de Oliveira Barros
    • 1
  1. 1.Post-graduate Information Systems ProgramPPGI/UNIRIORio de JaneiroBrazil

Personalised recommendations