skip to main content
10.1145/2351676.2351760acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article

Identifying refactoring sequences for improving software maintainability

Authors Info & Claims
Published:03 September 2012Publication History

ABSTRACT

Refactoring is a well-known technique that preserves software behaviors and improves its bad structures or bad smells. In most cases, more than one bad smell is found in a program. Consequently, developers frequently apply refactorings more than once. Applying appropriate refactoring sequences, an ordered list of refactorings, developers can remove bad smells as well as reduce improvement time and produce highly maintainable software. According to our 2011 survey, developers consider four main criteria to select an optimal refactoring sequence: 1) the number of removed bad smells, 2) maintainability, 3) the size of refactoring sequence and 4) the number of modified program elements. A refactoring sequence that satisfies these four criteria produces code without bad smells, with higher maintainability, using the least improvement effort and time, and providing more traceability. Some existing works suggest a list of refactorings without ordering, and others suggest refactoring sequences. However, these works do not consider the four criteria discussed earlier. Therefore, our research proposes an approach to identify an optimal refactoring sequence that meets these criteria. In addition, it is expected that the findings will reduce maintenance time and cost, increase maintainability and enhance software quality.

References

  1. Fowler, M. Refactoring: Improving the Design of Existing Programs. Addison-Wesley Publishing Company, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Meananeatra, P., Rongviriyapanish S., Apiwattanapong T. A Survey on the Maintaining of Software Structure in Thai Software Industries. In Computer Science and Information Technology,International Conference on Information and Digital Engineering, September 2011.Google ScholarGoogle Scholar
  3. Qayum, F., and Heckel, R. Search-Based Refactoring based on Unfolding of GraphTransformation Systems. In the Fifth International Conference on Graph Transformation - Doctoral Symposium Proceedings, September 2010.Google ScholarGoogle Scholar
  4. Touryw, T., and Mens, T. Identifying Refactoring Opportunities Using Logic Meta Programming. In the Seventh European Conference on Software Maintenance and Reengineering Proceedings, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Yang, L., Liu, H., and Niu, Z. Identify Fragments to Be Extracted from Long Method. In the 2009 16th Asia-Pacific Software Engineering Conference , December 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Tsantalis, N., Chatzigeorgiou, A. Identification of Extract Method Refactoring Opportunities. In Software Maintenance and Reengineering Proceedings, March 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Tsantalis, N., Chaikalis, T., and Chatzigeorgiou, A. JDeodorant: Identi?cation and Removal of Type-Checking Bad Smells. In European Conference on Software Maintenance and Refactoring Proceedings, April 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Meananeatra, P., Rongviriyapanish S., Apiwattanapong T. Using software metrics to select refactoring for long method bad smell. In 8th International Conference on Electrical Engineering/ Electronics, Computer, Telecommunications and Information Technology Proceedings, May 2011.Google ScholarGoogle ScholarCross RefCross Ref
  9. Meananeatra, P., Rongviriyapanish S., Apiwattanapong T. Identifying Refactoring through Formal Model Based on Data Flow Graph. In 5th Malaysian Conference in Software Engineering Proceedings, December 2011.Google ScholarGoogle ScholarCross RefCross Ref
  10. Schneider, J., Vasa, R. and Hoon, L. Do metrics help to identify refactoring? In the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution Proceedings, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Piveta, E., Araujo, J., Pimenta, M., Moreira, A., Guerreiro, P., and Price, R.T. Searching for Opportunities of Refactoring Sequences: Reducing the Search Space. In 32nd Annual IEEE International Computer Software and Applications Conference Proceedings, July 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Kuhlemann, M., Liang, L. and Saake, G. Algebraic and Cost-based Optimization of Refactoring Sequences. In 2nd International Workshop on Model-driven Product Line Engineering held in conjunction with ECMFA 2010 Proceedings, June 2010.Google ScholarGoogle Scholar
  13. Kanellopoulos, Y., Antonellis, P., Antoniou, D., Makris, C., Theodoridis, E., Tjortjis, C., and Tsirakis, N. Code quality evaluation methodology using the ISO/IEC 9126 standard. International Journal of Software Engineering and Applications, July 2010.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Identifying refactoring sequences for improving software maintainability

      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
        ASE '12: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
        September 2012
        409 pages
        ISBN:9781450312042
        DOI:10.1145/2351676

        Copyright © 2012 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: 3 September 2012

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate82of337submissions,24%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader