Book chapters details

  • Aspect-Oriented Refactoring of Java Programs
  • Jan 2011
  • Aspect-Oriented Programming (AOP) is an emerging programming paradigm providing novel constructs to improve the overall modularity of a software system. The primary contribution of AOP is the modularization of crosscutting concerns (CCCs), which give rise to the negative symptoms of scattering and tangling, which make a system hard to reason with, maintain and evolve. The Java language and platform played a central role in the early years of research and development of AOP. Most aspect-oriented programming languages (AOPLs) proposed throughout the years are backwards compatible extensions to existing languages and the majority of such extensions use Java as the base language. Some of the proposed Java extensions were proof-of-concept projects whose development was later discontinued, but a few of them kept pace with the subsequent development of their base language and evolved into robust, full-fledged industrial languages in their own right. Refactoring is the task of modifying the internal structure of a software system without changing its externally observable behaviour. The availability of AOPLs that are backwards compatible extensions to Java opens the way to aspectize Java systems, i.e., refactor a Java system to turn it into an aspect-oriented version of that system. This is the task of aspect-oriented refactoring. Aspectizing systems with symptoms of crosscutting concerns (CCCs) promises to bring several benefits, namely improved modularity and evolvability and the removal of negative symptoms associated to the presence of CCCs. Availability of robust, up-to-date, aspect-oriented extensions to Java makes it worthwhile to reengineer existing Java systems this way. The purpose of this chapter is twofold. First, it provides a short overview of aspect-oriented programming in general. Second, it provides a survey of the current state-of-the-art in aspect-oriented refactoring.
  • Java in Academia and Research
  • iConcept
  • Miguel Monteiro, João Miguel Lobo Fernandes
  • 978-0-9807330-0-6
  • 0 to 0
  • 1 Jan 2011