Classpects in Practice: A Test of the Unified Aspect Model
The most successful model of aspect-oriented modularity to date is that embodied in the AspectJ language. We have shown that the AspectJ notions of aspect and class can be unified in a new module construct that we called the classpect, and that this new model is significantly simpler and able to accommodate a broader set of requirements for modular solutions to complex integration problems. We embodied our unified model in the Eos language design, in which the basic unit of modularity is a classpect ; and we realized the model in a concrete and usable form in the Eos compiler. The main contribution of this paper is a fairly demanding experimental evaluation of the Eos component model, language, and compiler in terms of their application to two significant systems: ConcernCov, a tool for concern-based code coverage analysis of test suites (20K LOC), and the Eos compiler, a near-industrial strength classpect-oriented extension to the CSharp language (50K LOC). Our assessments of the resulting designs provides evidence for the potential design structuring benefits of the Eos model, the usability of the Eos language, and the practical utility of our language implementation in the Eos compiler. In a nutshell, we contribute a demonstration of the immediate practical value of our conceptual work.