skip to main content
10.1145/1830483.1830731acmconferencesArticle/Chapter ViewAbstractPublication PagesgeccoConference Proceedingsconference-collections
research-article

On the use of genetic programming for automated refactoring and the introduction of design patterns

Published:07 July 2010Publication History

ABSTRACT

Maintaining an object-oriented design for a piece of software is a difficult, time-consuming task. Prior approaches to automated design refactoring have focused on making small, iterative changes to a given software design. However, such approaches do not take advantage of composition of design changes, thus limiting the richness of the refactoring strategies that they can generate. In order to address this problem, this paper introduces an approach that supports composition of design changes and makes the introduction of design patterns a primary goal of the refactoring process. The proposed approach uses genetic programming and software engineering metrics to identify the most suitable set of refactorings to apply to a software design. We illustrate the efficacy of this approach by applying it to a large set of published models, as well as a real-world case study

References

  1. J. Bansiya and CG Davis. A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering, 28(1):4--17, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Marcel Birkner. Object-Oriented Design Pattern Detection using Static and Dynamic Analysis in Java Software. Master's thesis, University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin, Germany, 2007.Google ScholarGoogle Scholar
  3. M. Bowman, LC Briand, and Y. Labiche. Multi-objective genetic algorithm to support class responsibility assignment. In IEEE International Conference on Software Maintenance, 2007. ICSM 2007, pages 124--133, 2007.Google ScholarGoogle ScholarCross RefCross Ref
  4. J. Clarke, JJ Dolado, M. Harman, R. Hierons, B. Jones, M. Lumkin, B. Mitchell, S. Mancoridis, K. Rees, M. Roper, et al. Reformulating software engineering as a search problem. IEEE Proceedings - Software, 150(3):161--175, 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. France, J. Bieman, and B. H. C. Cheng. Repository for model driven development (ReMoDD). Lecture Notes in Computer Science, 4364:311, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Reading, MA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Gomes, F.C. Pereira, P. Paiva, N. Seco, P. Carreiro, J. L. Ferreira, and C. Bento. Using CBR for Automation of Software Design Patterns. Lecture Notes in Computer Science, pages 534--548, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. U. Nilsson and J. Maluszyński. Logic, programming and Prolog. Wiley, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Ó Cinnéide. Automated Application of Design Patterns: A Refactoring Approach. PhD thesis, University of Dublin, Trinity College, 2001.Google ScholarGoogle Scholar
  10. M. O'Keee and M. Ó Cinnéide. A stochastic approach to automated design improvement. In Proceedings of the 2nd international conference on Principles and practice of programming in Java, pages 59--62. Computer Science Press, Inc. New York, NY, USA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. O'Keee and M. Ó Cinnéide. Search-based refactoring: an empirical study. Journal of Software Maintenance and Evolution: Research and Practice, 20(5), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. L. Prechelt, B. Unger, W.F. Tichy, P. Br¨ossler, and L.G. Votta. A controlled experiment in maintenance comparing design patterns to simpler solutions. IEEE Transactions on Software Engineering, pages 1134--1144, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. O. Seng, J. Stammel, and D. Burkhart. Search-based determination of refactorings for improving the class structure of object-oriented systems. In Proceedings of the 8th annual conference on Genetic and evolutionary computation, pages 1909--1916. ACM New York, NY, USA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. G. Sunye, D. Pollet, Y. Le Traon, and J. M. Jezequel. Refactoring UML Models. Lecture Notes in Computer Science, pages 134--148, 2001.Google ScholarGoogle Scholar

Index Terms

  1. On the use of genetic programming for automated refactoring and the introduction of design patterns

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      GECCO '10: Proceedings of the 12th annual conference on Genetic and evolutionary computation
      July 2010
      1520 pages
      ISBN:9781450300728
      DOI:10.1145/1830483

      Copyright © 2010 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 7 July 2010

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate1,669of4,410submissions,38%

      Upcoming Conference

      GECCO '24
      Genetic and Evolutionary Computation Conference
      July 14 - 18, 2024
      Melbourne , VIC , Australia

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader