Selected

Pluggable AOP: Designing Aspect Mechanisms for Third-party Composition

Studies of Aspect-Oriented Programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. Languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the …

Coupling Aspect-Oriented and Adaptive Programming

Adaptive Programming (AP) is a programming technique for developing concern shy programs. AP can be viewed as a special case of Aspect-Oriented Programming (AOP), and vice-versa. In this book chapter, we examine the close relationship between AP and …

Domain Driven Web Development With WebJinn

Web-application development cuts across the HTTP protocol, the client-side data presentation languages (HTML, XML), the server-side technology (Servlets, JSP, ASP, PHP), and the underlying resource (files, database, information system). Consequently, …

Pluggable Reflection: Decoupling Meta-Interface and Implementation

Reflection remains a second-class citizen in current programming models, where it's assumed to be imperative and tightly bo und to its implementation. In contrast, most object-oriented APIs all ow interfaces to vary independently of their …

A Case for Statically Executable Advice: Checking the Law of Demeter with AspectJ

We define a generic join point model for checking the Law of Demeter (LoD). Join points are trees, pointcuts are predicates over join points, and advice is checked statically similar to how declare warning is checked in AspectJ. We illustrate how a …

Aspects and Polymorphism in AspectJ

There are two important points of view on inclusion or subtype polymorphism in object-oriented programs, namely polymorphic access and dynamic dispatch. These features are essential for object-oriented programming, and it is worthwhile to consider …

Designing Components versus Objects: A Transformational Approach

A good object-oriented design does not necessarily make a good component-based design, and vice versa. What design principles do components introduce? This paper examines component-based programming and how it expands the design space in the context …

Programming with Aspectual Components

Aspect-oriented programming (AOP) controls tangling of concerns by isolating aspects that cross-cut each other into building blocks. Component-based programming (CBP) supports software development by isolating reusable building blocks that can be …

Tiling Design Patterns: A Case Study Using the Interpreter Pattern

This paper explains how patterns can be used to describe the implementation of other patterns. It is demonstrated how certain design patterns can describe their own design. This is a fundamental reflexive relationship in pattern relationships. The …

Environmental Acquisition — A New Inheritance-Like Abstraction Mechanism

The class of an object is not necessarily the only determiner of its runtime behaviour. Often it is necessary to have an object behave differently depending upon the other objects to which it is connected. However, as it currently stands, …