• DocumentCode
    2036233
  • Title

    Automated support for program refactoring using invariants

  • Author

    Kataoka, Yoshio ; Ernst, Michael D. ; Griswold, William G. ; Notkin, David

  • Author_Institution
    Dept. of Comput. Sci. & Eng., Washington Univ., Seattle, WA, USA
  • fYear
    2001
  • fDate
    2001
  • Firstpage
    736
  • Lastpage
    743
  • Abstract
    Program refactoring-transforming a program to improve readability, structure, performance, abstraction, maintainability, or other features-is not applied in practice as much as might be desired. One deterrent is the cost of detecting candidates for refactoring and of choosing the appropriate refactoring transformation. This paper demonstrates the feasibility of automatically finding places in the program that are candidates for specific refactorings. The approach uses program invariants: when a particular pattern of invariant relationships appears at a program point, a specific refactoring is applicable. Since most programs lack explicit invariants, an invariant detection tool called Daikon is used to infer the required invariants. We developed an invariant pattern matcher for several common refactorings and applied it to an existing Java code base. Numerous refactorings were detected, and one of the developers of the code base assessed their efficacy
  • Keywords
    program processors; software maintenance; software tools; Daikon; Java code base; invariant detection tool; invariant pattern matcher; invariant relationships; maintainability; program refactorings; software engineer; source-level transformations; Automation; Computer science; Costs; DH-HEMTs; Java; Maintenance engineering; Marine vehicles; Pattern matching; Programming; Software tools;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance, 2001. Proceedings. IEEE International Conference on
  • Conference_Location
    Florence
  • ISSN
    1063-6773
  • Print_ISBN
    0-7695-1189-9
  • Type

    conf

  • DOI
    10.1109/ICSM.2001.972794
  • Filename
    972794