Modular-Like Transformations and Style Checking for Crosscutting Programming Concepts

  • Authors:
  • Macneil Shonle

  • Affiliations:
  • UC San Diego, USA

  • Venue:
  • ICSE COMPANION '07 Companion to the proceedings of the 29th International Conference on Software Engineering
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programmers resort to design patterns, micro-architectures, and other idioms when their design ideas can't be expressed directly in the programming language. The crosscutting code that appears as a result makes it harder to ensure a correct implementation of the idiom, and complicates software evolution when the idiom's implementation cannot be modularly substituted or extended like a method or class. We propose Concepts, an IDE-based mechanism for declaring, checking, and evolving crosscutting design idioms. Programmers code their design idioms as before, but also declare their fundamental properties in supplemental files. A concept's behavior and implementation are described separately. This separation permits describing a new implementation for a concept and then having the concept tool mechanically transform the concept's current implementation into the new one. As a result we aim to get many of the same benefits for concepts that we get for classes: checking of key behaviors and substitutability.