Modular Software Design with Crosscutting Interfaces

By: William G. Griswold, Kevin Sullivan, Yuanyuan Song, Macneil Shonle, Nishit Tewari, Yuanfang Cai, and Hridesh Rajan

PDF Download Download Paper

Abstract

Aspect-oriented programming languages such as AspectJ offer new mechanisms for decomposing systems into modules and composing modules into systems. Common ways of using these mechanisms couple aspects to complex, changeable implementation details, which can compromise modularity. The crosscut programming interface (XPI) can significantly improve modularity in the design of programs employing AspectJ-style AOP. The use of XPIs doesn’t limit the use of existing AOP mechanisms or require new ones, and the approach appears to generalize to other languages.This article is part of a special issue on aspect-oriented programming.

ACM Reference

Griswold, W.G. et al. 2006. Modular Software Design with Crosscutting Interfaces. IEEE Softw. 23, 1 (2006), 51–60.

BibTeX Reference

@article{griswold2006modular,
  author = {William G. Griswold and Kevin Sullivan and Yuanyuan Song
            and Macneil Shonle and Nishit Tewari and Yuanfang Cai and
            Hridesh Rajan},
  title = {Modular Software Design with Crosscutting Interfaces},
  journal = {IEEE Softw.},
  volume = {23},
  number = {1},
  year = {2006},
  pages = {51--60},
  publisher = {IEEE Computer Society Press},
  address = {Los Alamitos, CA, USA},
  abstract = {
    Aspect-oriented programming languages such as AspectJ offer new mechanisms for
    decomposing systems into modules and composing modules into systems. Common
    ways of using these mechanisms couple aspects to complex, changeable
    implementation details, which can compromise modularity. The crosscut
    programming interface (XPI) can significantly improve modularity in the design
    of programs employing AspectJ-style AOP. The use of XPIs doesn't limit the use
    of existing AOP mechanisms or require new ones, and the approach appears to
    generalize to other languages.This article is part of a special issue on
    aspect-oriented programming.
  }
}