Technical Report PHD-2010-05

Title: Using Aspects to Support the Software Process
Authors: Oren Mishali
Supervisors: Shmuel Katz
Abstract: Aspect-Oriented Programming (AOP) allows augmenting existing systems with additional functionality in a modular fashion by introducing new language types called aspects. In this research aspects are used to support the software process. Aspects encapsulating support for process methods and practices are defined, and integrated into a development environment to achieve better conformance with the desired way of work. The aspects identify significant events during the development process, and then take an appropriate action, e.g., provide real-time process guidance and training, enforce policies and standards, and automate procedures.

We found that many of the development events of interest are expressed in high-level domain terms, and often depend on several other low-level events. Since AspectJ, the most popular aspect-oriented language, is not capable of naturally treating such events, a dedicated software framework that is based on AspectJ was created to treat high-level events -- the HighspectJ framework. High-level events are identified by specially structured 'event aspects', and other 'response aspects' take an appropriate action. In addition, The framework provides extensive code generation facilities and reuse, and facilitates a layered definition of events, which allows viewing a system at multiple levels of abstraction.

The second research part is concerned with how to define adequate process support of this kind, i.e., support that is effective, correct, and adopted by the developers. The method we use is inspired from agile methodologies that advocate iterative software development, and emphasize the human aspect. Several related activities were conducted, where in the main one support for the Test-Driven Development practice (TDD) was implemented in an agile fashion, starting from basic and simple support that was iteratively refined through several experiments done with student developers.

CopyrightThe above paper is copyright by the Technion, Author(s), or others. Please contact the author(s) for more information

Remark: Any link to this technical report should be to this page (, rather than to the URL of the PDF files directly. The latter URLs may change without notice.

To the list of the PHD technical reports of 2010
To the main CS technical reports page

Computer science department, Technion