skip to main content
10.1145/1636642.1636645acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

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

Published: 19 October 2008 Publication History

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.

References

[1]
Ittai Balaban, Frank Tip, and Robert Fuhrer. Refactoring support for class library migration. In OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pages 265--279, New York, NY, USA, 2005.
[2]
Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2nd edition, 2004.
[3]
Marat Boshernitsan and Susan L. Graham. ixj: interactive source-to-source transformations for java. In OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 212--213, New York, NY, USA, 2004.
[4]
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[5]
Jan Hannemann, Gail C. Murphy, and Gregor Kiczales. Role-based refactoring of crosscutting concerns. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 135--146, New York, NY, USA, 2005.
[6]
Jia Liu, Don Batory, and Christian Lengauer. Feature oriented refactoring of legacy applications. In ICSE '06: Proceeding of the 28th international conference on Software engineering, pages 112--121, New York, NY, USA, 2006.
[7]
Doug Orleans and Karl J. Lieberherr. Dj: Dynamic adaptive programming in java. In REFLECTION '01: Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, pages 73--80, London, UK, 2001. Springer-Verlag.
[8]
D. L. Parnas. On the criteria to be used in decomposing systems into modules. Commun. ACM, 15(12):1053--1058, 1972.
[9]
Macneil Shonle, William G. Griswold, and Sorin Lerner. Beyond refactoring: a framework for modular maintenance of crosscutting design idioms. In ESEC-FSE '07: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, pages 175--184, New York, NY, USA, 2007.
[10]
Michael VanHilst and David Notkin. Decoupling change from design. In SIGSOFT '96: Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering, pages 58--69, New York, NY, USA, 1996.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
WRT '08: Proceedings of the 2nd Workshop on Refactoring Tools
October 2008
50 pages
ISBN:9781605583396
DOI:10.1145/1636642
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Arcum
  2. design patterns
  3. refactoring

Qualifiers

  • Research-article

Funding Sources

Conference

OOPSLA08
Sponsor:

Acceptance Rates

Overall Acceptance Rate 9 of 9 submissions, 100%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media