Modular Software Design with Crosscutting Interfaces

By: William G. Griswold, Kevin J. 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. https://doi.org/10.1109/MS.2006.24.

BibTeX Reference

@article{GriswoldETAL2006,
  author = {William G. Griswold and Kevin J. 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},
  pages = {51--60},
  year = {2006},
  doi = {10.1109/MS.2006.24},
  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.},
}