Using Programming Tools to Extend the Reach of Modularity

Macneil Shonle
University of California, San Diego


Modularity is a fundamental technique used for the composition of large software systems, where design decisions that are likely-to-change are encapsulated within individual modules. However, programmers also employ idiomatic structures, such as design patterns and coding styles, which cannot be effectively modularized. Consequently, these idiomatic structures can be expensive to change, even when their implementations are well-structured. In this talk, I will describe an extension to the refactoring paradigm that provides for the modular maintenance of idiomatic structures, supporting both substitutability of idiom implementations and the checking of essential constraints. This extension was realized through the Arcum framework, a plug-in for Eclipse that allows programmers to describe the use of their idioms with a declarative language. I will present the conceptual underpinnings of the Arcum approach, and show how Arcum can be used to address several classical software engineering problems. I will also present evidence from a user study of three pairs of programmers showing that Arcum is easily learnable and useable. Finally, I will show how the presence of such a tool can change the process of programming in a positive way.