Despite the automated refactoring support provided by today's IDEs many program transformations that are easy to conceptualize-such as improving the implementation of a design pattern--are not supported and are hence hard to perform. We propose an extension to the refactoring paradigm that provides for the modular maintenance of crosscutting design idioms, supporting both substitutability of design idiom implementations and the checking of essential constraints. We evaluate this new approach through the design and use of Arcum, an IDE-based mechanism for declaring, checking, and evolving crosscutting design idioms. Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Architectures--Domainspecific architectures, languages, patterns General Terms Languages, Design. Keywords Refactoring, design patterns.
Macneil Shonle, William G. Griswold, Sorin Lerner