When refactoring acts like modularity: keeping options open with persistent condition checking

  • Authors:
  • Macneil Shonle;William G. Griswold;Sorin Lerner

  • Affiliations:
  • UC San Diego, La Jolla, CA;UC San Diego, La Jolla, CA;UC San Diego, La Jolla, CA

  • Venue:
  • Proceedings of the 2nd Workshop on Refactoring Tools
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Oftentimes the changes required to improve the design of code are crosscutting in nature and thus easier to perform with the assistance of automated refactoring tools. However, the developers of such refactoring tools cannot anticipate every practical transformation, particularly those that are specific to the program's domain. We demonstrate Arcum, a declarative language for describing and performing both general and domain-specific transformations. Because Arcum works directly with declarative descriptions of crosscutting code it can ensure that code written or modified after the transformation also satisfies the design's requirements. As a result, preconditions and postconditions are persistently checked, making the crosscutting code (such as the use of a design idiom or programming style) behave more like a module with respect to checkability and substitutability. Bringing such capabilities into the IDE allows for code to be decomposed closer to the programmer's intentions and less coupled to specific implementations.