Language Features for Software Evolution and Aspect-oriented Interfaces: An Exploratory Study

By: Robert Dyer, Hridesh Rajan, and Yuanfang Cai

PDF Download Download Paper

Abstract

A variety of language features to modularize crosscutting concerns have recently been discussed, e.g. open modules, annotation-based pointcuts, explicit join points, and quantified-typed events. All of these ideas are essentially a form of aspect-oriented interface between object-oriented and crosscutting modules, but the representation of this interface differs. Previous works have studied maintenance benefits of AO programs compared to OO programs, by usually looking at a single AO interface. Other works have looked at several AO interfaces, but only on relatively small systems or systems with only one type of aspectual behavior. Thus there is a need for a study that examines large, realistic systems for several AO interfaces to determine what problems arise and in which interface(s). The main contribution of this work is a rigorous empirical study that evaluates the effectiveness of these proposals for 4 different AO interfaces by applying them to 35 different releases of a software product line called MobileMedia and 50 different releases of a web application called Health Watcher. In total over 400k lines of code were studied across all releases. Our comparative analysis using quantitative metrics proposed by Chidamber and Kemerer shows the strengths and weaknesses of these AO interface proposals. Our change impact analysis shows the design stability provided by each of these recent proposals for AO interfaces.

ACM Reference

Dyer, R. et al. 2013. Language Features for Software Evolution and Aspect-oriented Interfaces: An Exploratory Study. Transactions on Aspect-Oriented Software Development (TAOSD): Special issue, best papers of AOSD 2012. 10, (2013), 148–183.

BibTeX Reference

@article{dyer2013language,
  author = {Robert Dyer and Hridesh Rajan and Yuanfang Cai},
  title = {Language Features for Software Evolution and Aspect-oriented
           Interfaces: An Exploratory Study},
  journal = {Transactions on Aspect-Oriented Software Development (TAOSD): Special
             issue, best papers of AOSD 2012},
  volume = {10},
  year = {2013},
  pages = {148--183},
  series = {Lecture Notes in Computer Science},
  publisher = {Springer Berlin Heidelberg},
  abstract = {
    A variety of language features to modularize crosscutting concerns have
    recently been discussed, e.g. open modules, annotation-based pointcuts,
    explicit join points, and quantified-typed events. All of these ideas are
    essentially a form of aspect-oriented interface between object-oriented and
    crosscutting modules, but the representation of this interface differs.
    Previous works have studied maintenance benefits of AO programs compared to OO
    programs, by usually looking at a single AO interface. Other works have looked
    at several AO interfaces, but only on relatively small systems or systems with
    only one type of aspectual behavior. Thus there is a need for a study that
    examines large, realistic systems for several AO interfaces to determine what
    problems arise and in which interface(s). The main contribution of this work
    is a rigorous empirical study that evaluates the effectiveness of these
    proposals for 4 different AO interfaces by applying them to 35 different
    releases of a software product line called MobileMedia and 50 different
    releases of a web application called Health Watcher. In total over 400k lines
    of code were studied across all releases. Our comparative analysis using
    quantitative metrics proposed by Chidamber and Kemerer shows the strengths and
    weaknesses of these AO interface proposals. Our change impact analysis shows
    the design stability provided by each of these recent proposals for AO
    interfaces.
  }
}