logoFEUP
Engineering Faculty, University of Porto
Doctoral Programme in Informatics Engineering
  ProDEI
Menu Principal

André Restivo

Contact: arestivo 'at' fe.up.pt

Admission Date: September, 2005
Status: In progress

Advisor: Prof. Ademar Aguiar (DEEC/FEUP)

Disciplined Composition of Aspects

Achieving greater software modularity has always been one of the main goals of Software Engineering (SE). Better modularity allows better reusability, in this way shortening the development time and improving software dependability. A big step has been done in this direction with the advent of Object Oriented Programming (OOP). OOP simplifies component-based development, helps to achieve high levels of design and code reuse, and enables the construction of complex and large scale systems through incremental composition of reusable software parts.

Another important advance in SE has been the introduction of application frameworks. OO frameworks can be defined as reusable, semi-defined application that can be specialized to produce custom applications. Through design and code reuse, frameworks help developers achieve higher productivity, shorter time-to-market and improved compatibility and consistency. However, despite all these advances in OO technology and other SE techniques, some concerns are still inevitably tangled in the software code.

These concerns are normally referred to as crosscutting concerns, as they can spread throughout an entire or a large part of a software system. The most trivial example of such a concern, is the logging module of an application. Aspect Oriented Programming (AOP) is a recent SE methodology whose main objective is to allow the separation of crosscutting concerns into separate units of modularity. This is achieved by allowing these concerns to be coded separately and then weaved into the correct places of the application by means of special programming keywords.

Being a recent methodology, AOP still suffers some fundamental issues that are currently under heavy research. One of these issues is the possibility of interference between aspects, specially in large scale applications where a large number of aspects are introduced. AOP aims for a characteristic called obliviousness that states that developers should be able to implement application modules without any knowledge of previously implemented aspects or any future implementations. This makes aspect interferences an obstacle that must be dealt with before AOP becomes mainstream. However some interferences between aspects are desired, normally revealing that an aspect depends on another aspect to perform its task.

The main objective of this thesis is to develop an approach to cope with aspect interferences in a disciplined way, which will comprise specification of aspects (including desired interferences), interference detection and interference removal activities.

In order to help developers on easily taking advantage of the proposed approach, a supporting tool will be developed and provided as an extension of an open integrated development environment for AOP. This tool will be both a proof of concept for the approach and a big aid for validating the thesis results.


Publications

Towards Detecting and Solving Aspect Conflicts and Interferences Using Unit Tests. André Restivo, Ademar Aguiar, "Towards Detecting and Solving Aspect Conflicts and Interferences Using Unit Tests", Software Engineering Properties of Languages and Aspect Technologies (SPLAT'07), Vancouver, B.C., Canada, 2007 (To Be Presented)
Contact Web Master Updated in: 2011-09-12