FDD and Aspect-Oriented Programming


I am new to this discussion board, so I am going to shortly introduce myself first.
My name is Ivica Aracic, I am a research assistant in the Software Modularity Lab at Darmstadt University of Technology.

Recently I am working on a development methodology for the aspect oriented language CaesarJ (http://caesarj.org).
FDD seems to me like a very promissing starting point for my work, since its feature-driven organizational structure is pretty much compatible with the concept of aspects in AOP. Indeed one could say features are aspects of the considered system.

(What is Aspect-Oriented Programming (AOP)? AOP is a programming technique where concerns that cut across a software system can be described in modular way.)

Feature is a crosscutting construct in the object-oriented code. Hence, programmers have to map from they feature-driven model back to classes which are affected by those features. Furthermore, code of different features is tangled in one OO module (which is usually a class).

AOP provides the ability to modularize such crosscutting concern, in other words, we are able to modularize a coherent feature-set.

Modularizing feature-sets in code could have a positive impact on the development process.
At the moment I see the following points:

* Tracebility: since the code of a feature-set is modularized in a single module and not scattered across the system, it is easier for the developer to localize it. We could say, the cost of the mapping from feature-driven thinking to the organizational concepts of the OO code is reduced.

* Testability: since feature-sets are located in modules with clear dependencies and interfaces they are easier to test.

* Understandability and Reverse Engineering: Looking at the code it is possible to easily reconstruct the features of the system. (Each feature-set is in own module, the dependencies of the module are clear specified in the code.)

* Reusability: modularizing the feature-sets would make reuse, adaption and configuration of features easier.

So far my idea.
I am looking forward for your comments.

Ivica Aracic

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Jeff De Luca's picture


Thank you for the pointer.

Thank you for the pointer.
I will be carefully reading it.