Section 23.6. SUMMARY


23.6. SUMMARY

We report on two exploratory experiments we conducted to study the increased program modularization provided by AspectJ, an example of the emerging aspect-oriented programming approach. In these experiments, we compared the performance and experiences of a small number of participants working on two common programming tasks: debugging and change. Some participants worked with AspectJ; other participants used an object-oriented control language. These initial, albeit limited, results suggest that the aspect-oriented programming approach shows promise of being useful and is worthy of further, more detailed study.

We noted the following, typical results. In the first experiment, the AspectJ participants were able to finish the tasks faster than the participants using Java, the control language. The Java participants performed more semantic analysis, and switched the file they were viewing more often, than the AspectJ participants. In the second experiment, the AspectJ participants required more time to complete tasks than the participants using Emerald, the control language. Analysis of the AspectJ participants' activities showed that these participants spent more of their time coding their solutions and less of their time analyzing the existing code base than the Emerald participants.

These results suggest two key insights into aspect-oriented programming. First, programmers may be better able to understand an aspect-oriented program when the effect of the aspect code has a well-defined scope. Second, the presence of aspect code may alter the strategies programmers use to address tasks perceived to be associated with aspect code.

Builders of aspect-oriented approaches may benefit from considering these two key insights. The insights suggest particular characteristics an aspect language may need to exhibit in order to ease the performance of programming tasks. Specifically, aspect languages should enable the writing of aspect code that has a well-defined scope of effect on core functional code, and that suitably encapsulates a concern. These insights may also apply to other cross-cutting modularization techniques, such as subject-oriented programming.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net