Font Size: a A A

Unifying aspect- and object-oriented program design

Posted on:2006-09-11Degree:Ph.DType:Dissertation
University:University of VirginiaCandidate:Rajan, HrideshFull Text:PDF
GTID:1458390005994771Subject:Computer Science
Abstract/Summary:
The dominant family of aspect-oriented programming (AOP) languages, namely the family of languages based on the AspectJ model, provides aspects as a new abstraction mechanism separate from classes. Aspects are promoted as means to modularize certain traditionally non-modularized concerns. The design decision to separate aspects and classes, however, reduces the conceptual integrity of the language model. The resulting language model is non-orthogonal and asymmetric with respect to the key capabilities of aspects and classes. Furthermore, these asymmetries impair our ability to easily separate important classes of concerns namely, integration and higher-order concerns, and distorts our conceptual model of how to structure software systems with AOP.; In this dissertation, I show that aspects as a separate abstraction mechanism are not essential to aspect-oriented programming. Instead a new construct, quantified binding, similar to the event-handler binding in the implicit invocation style, is at the core of aspect-oriented programming. I present a language model in which aspects and classes are unified. Key technical contributions include: support for aspect instantiation under program control, instance-level advising, advising as a general alternative to object-oriented method invocation and overriding, and the provision of a separate join-point-method binding construct. The new language model is at once simpler and more expressive. The simplification is manifested by the reduction of specialized constructs in favor of uniform orthogonal constructs. The expressiveness is manifested by the improvement in the modularization of integration and higher-order concerns.
Keywords/Search Tags:Aspect-oriented programming, Model, Aspects, Concerns
Related items