Modular Aspect-Oriented Design with XPIs

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

PDF Download Download Paper

Abstract

The emergence of aspect-oriented programming (AOP) languages has provided software designers with new mechanisms and strategies for decomposing programs into modules and composing modules into systems. What we do not yet fully understand is how best to use such mechanisms consistent with common modularization objectives such as the comprehensibility of programming code, its parallel development, dependability, and ease of change. The main contribution of this work is a new form of information hiding interface for AOP that we call the crosscut programming interface, or XPI. XPIs abstract crosscutting behaviors and make these abstractions explicit. XPIs can be used, albeit with limited enforcement of interface rules, with existing AOP languages, such as AspectJ. To evaluate our notion of XPIs, we have applied our XPI-based design methodology to a medium-sized network overlay application called Hypercast. A qualitative and quantitative analysis of existing AO design methods and XPI-based design method shows that our approach produces improvements in program comprehensibility, in opportunities for parallel development, and in the ease with which code can be developed and changed.

ACM Reference

Sullivan, K.J. et al. 2010. Modular Aspect-Oriented Design with XPIs. ACM Trans. Softw. Eng. Methodol. 20, 2 (2010), 5:1–5:42. https://doi.org/10.1145/1824760.1824762.

BibTeX Reference

@article{SullivanETAL2009,
  author = {Kevin J. Sullivan and William G. Griswold and Hridesh Rajan and Yuanyuan Song and Yuanfang Cai and Macneil Shonle and Nishit Tewari},
  title = {Modular Aspect-Oriented Design with XPIs},
  journal = {{ACM} Trans. Softw. Eng. Methodol.},
  volume = {20},
  number = {2},
  pages = {5:1--5:42},
  year = {2010},
  doi = {10.1145/1824760.1824762},
  abstract = {
  The emergence of aspect-oriented programming (AOP) languages has provided
  software designers with new mechanisms and strategies for decomposing programs
  into modules and composing modules into systems. What we do not yet fully
  understand is how best to use such mechanisms consistent with common
  modularization objectives such as the comprehensibility of programming code,
  its parallel development, dependability, and ease of change. The main
  contribution of this work is a new form of information hiding interface for
  AOP that we call the crosscut programming interface, or XPI. XPIs abstract
  crosscutting behaviors and make these abstractions explicit. XPIs can be used,
  albeit with limited enforcement of interface rules, with existing AOP
  languages, such as AspectJ. To evaluate our notion of XPIs, we have applied
  our XPI-based design methodology to a medium-sized network overlay application
  called Hypercast. A qualitative and quantitative analysis of existing AO
  design methods and XPI-based design method shows that our approach produces
  improvements in program comprehensibility, in opportunities for parallel
  development, and in the ease with which code can be developed and changed.},
}