Department of Computer Science

Laboratory for Software Design


The research and educational activities described on these pages has been supported in part by the US National Science Foundation (NSF) under grants CNS-06-27354, CNS-07-09217, and CAREER-08-46059.

Got a question?

Got a question or comment? Contact us at (515) 294-6168 or hridesh@cs.iastate.edu.

Information hiding interfaces for aspect-oriented design

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

Abstract

The growing popularity of aspect-oriented languages, such as AspectJ, and of corresponding design approaches, makes it important to learn how best to modularize programs in which aspect-oriented composition mechanisms are used. We contribute an approach to information hiding modularity in programs that use quantified advising as a module composition mechanism. Our approach rests on a new kind of interface: one that abstracts a crosscutting behavior, decouples the design of code that advises such a behavior from the design of the code to be advised, and that can stipulate behavioral contracts. Our interfaces establish design rules that govern how specific points in program execution are exposed through a given join point model and how conforming code on either side should behave. In a case study of the HyperCast overlay network middleware system, including a real options analysis, we compare the widely cited oblivious design approach with our own, showing significant weaknesses in the former and benefits in the latter.

Bibliographic Information

@inproceedings{XPI-ESEC-FSE-2005,
 author = {Kevin Sullivan and William G. Griswold and Yuanyuan Song and 
           Yuanfang Cai and Macneil Shonle and Nishit Tewari and 
	   Hridesh Rajan},
 title = {Information hiding interfaces for aspect-oriented design},
 booktitle = {ESEC/FSE-13: Proceedings of the 10th European software 
   engineering conference held jointly with 13th ACM SIGSOFT 
   international symposium on Foundations of software engineering},
 year = {2005},
 pages = {166--175},
 location = {Lisbon, Portugal},
 publisher = {ACM},
 address = {New York, NY, USA},
 }

Latest Version:[PDF].