Supported by AITO. These pages are currently maintained by Alex Potanin |
|
Progressive implementation with aspect-oriented programming
Centro de Informática, Universidade Federal de Pernambuco, Caixa Postal 7851, CEP 50732-970, Recife - PE, BRAZIL. tel: fax: scbs@cin.ufpe.br Keywords:concurrency frameworks patterns software engineering separation of concerns aspect--oriented programming
Abstract:The need for developing quality software increased the use of object-orientation looking for greater reuse and better maintainability, increasing the development productivity and supporting requirements changes. However, the object-oriented paradigm has some limitations, such as tangled code and code spread over several units, making harder software maintainability. Some of these limitations maybe compensated by design patterns and implementation methods.On the other hand, extensions of the object-oriented paradigm, such as aspect-oriented programming, subject-oriented programming, and adaptive programming, new programming techniques, are trying to solve the object-oriented limitations. These techniques allow easer software reuse and maintainability in practical situation where the object-oriented paradigm, design patterns, and implementation methods do not offer an adequate support. The aim of this work is to adapt and analyzing the Progressive Implementation Method (Pim) to use aspect-oriented programming, resulting in a implementation method that provides software of quality with development productivity. Pim is a method for systematic implementation of complex object-oriented applications in Java. In particular, this method supports a progressive approach for object-oriented implementation, where persistence, distribution, and concurrency control are not initially considered in the implementation activities, but are gradually introduced, preserving the application's functional requirements. We are using a general-purpose aspect-oriented extension to Java, called AspectJ to define these crosscutting concerns (persistence, distribution and concurrency control) separated from the system core (functional requirements). This separation of concerns allows better modularity, by avoiding tangled code and code spread over several units. The system maintainability is also increased, since we just need to implement a new aspect and then weaving (recomposition process that composes aspects with the original system to create the final system) it with the system adding a new concern, or a new implementation of a concern.
HTML3 JAVA
Last modified on Mon Aug 15 14:59:24 2005 |