Advertisement

Innovations in Systems and Software Engineering

, Volume 3, Issue 4, pp 281–289 | Cite as

Pointcuts, advice, refinements, and collaborations: similarities, differences, and synergies

  • Sven ApelEmail author
  • Christian Kästner
  • Martin Kuhlemann
  • Thomas Leich
Original Paper

Abstract

Aspect-oriented programming (AOP) is a novel programming paradigm that aims at modularizing complex software. It embraces several mechanisms including (1) pointcuts and advice as well as (2) refinements and collaborations. Though all these mechanisms deal with crosscutting concerns, i.e., a special class of design and implementation problems that challenge traditional programming paradigms, they do so in different ways. In this article we explore their relationship and their impact on modularity, which is an important prerequisite for reliable and maintainable software. Our exploration helps researchers and practitioners to understand their differences and exposes which mechanism is best used for which problem.

Keywords

Crosscutting Concern Public Void Chat Application Code Replication Dynamic Crosscut 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alexander R (2003). The real costs of aspect-oriented programming. IEEE Softw 20(6): 92–93 CrossRefGoogle Scholar
  2. 2.
    Apel S (2007) The role of features and aspects in software development. PhD thesis, School of Computer Science, University of MagdeburgGoogle Scholar
  3. 3.
    Apel S, Batory D (2006) When to use features and aspects? A case study. In: Proceedings of the international conference on generative programming and component engineering (GPCE), ACM Press, New York, pp 59–68Google Scholar
  4. 4.
    Apel S, Rosenmüller M, Leich T, Saake G (2005) FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming. In: Proceedings of the international conference on generative programming and component engineering (GPCE), Lecture Notes in Computer Science, vol 3676. Springer, Heidelberg, pp 125–140Google Scholar
  5. 5.
    Apel S, Leich T, Saake G (2006) Aspectual mixin layers: aspects and features in concert. In: Proceedings of the International conference on software engineering (ICSE), ACM Press, New York, pp 122–131Google Scholar
  6. 6.
    Apel S, Kästner C, Trujillo S (2007) On the necessity of empirical studies in the assessment of modularization mechanisms for crosscutting concerns. In: ICSE workshop on assessment of contemporary modularization techniques (ACoM’07)Google Scholar
  7. 7.
    Aracic I, Gasiunas V, Mezini M and Ostermann K (2006). An overview of CaesarJ. Transactions on aspect-oriented software development I. Lect Notes Comput Sci 3880: 135–173 CrossRefGoogle Scholar
  8. 8.
    Batory D, Sarvela JN and Rauschmayer A (2004). Scaling step-wise refinement. IEEE Trans Softw Eng (TSE) 30(6): 355–371 CrossRefGoogle Scholar
  9. 9.
    Bergel A, Ducasse S, Nierstrasz O (2005) Classbox/J: controlling the scope of change in Java. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA), ACM Press, New York, pp 177–189Google Scholar
  10. 10.
    Bracha G, Cook WR (1990) Mixin-Based Inheritance. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA) and the European conference on object-oriented programming (ECOOP), ACM Press, New York, pp 303–311Google Scholar
  11. 11.
    Colyer A, Rashid A, Blair G (2004) On the separation of concerns in program families. Tech Rep COMP-001-2004, Computing Department, Lancaster UniversityGoogle Scholar
  12. 12.
    Dijkstra EW (1976). A discipline of programming. Prentice Hall, Englewood Cliffs zbMATHGoogle Scholar
  13. 13.
    Filman RE, Friedman DP (2005) Aspect-oriented programming is quantification and obliviousness. In: Aspect-oriented software development, Addison-Wesley, Reading, pp 21–35Google Scholar
  14. 14.
    Flatt M, Krishnamurthi S, Felleisen M (1998) Classes and Mixins. In: Proceedings of the international symposium on principles of programming languages (POPL), ACM Press, New York, pp 171–183Google Scholar
  15. 15.
    Hilsdale E, Hugunin J (2004) Advice weaving in AspectJ. In: Proceedings of the international conference on aspect-oriented software development (AOSD), ACM Press, New York, pp 26–35Google Scholar
  16. 16.
    Kästner C, Apel S, Batory D (2007) A case study implementing features using AspectJ. In: Proceedings of the international software product line conference (SPLC)Google Scholar
  17. 17.
    Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes CV, Loingtier JM, Irwin J (1997) Aspect-oriented programming. In: Proceedings of the European conference on object-oriented programming (ECOOP), lecture notes in computer science, vol 1241. Springer, Heidelberg, pp 220–242Google Scholar
  18. 18.
    Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An overview of AspectJ. In: Proceedings of the European conference on object-oriented programming (ECOOP), lecture notes in computer science, vol 2072. Springer, Heidelberg, pp 327–353Google Scholar
  19. 19.
    Liu J, Batory D, Lengauer C (2006) Feature-oriented refactoring of legacy applications. In: Proceedings of the international conference on software engineering (ICSE), ACM Press, New York, pp 112–121Google Scholar
  20. 20.
    Lopez-Herrejon R (2006) Understanding feature modularity. PhD thesis, Department of Computer Sciences, The University of Texas at AustinGoogle Scholar
  21. 21.
    Lopez-Herrejon R, Batory D (2006) From crosscutting concerns to product lines: a function composition approach. Tech Rep TR-06-24, Department of Computer Sciences, The University of Texas at AustinGoogle Scholar
  22. 22.
    Lopez-Herrejon R, Batory D, Cook WR (2005) Evaluating support for features in advanced modularization technologies. In: Proceedings of the European conference on object-oriented programming (ECOOP), lecture notes in computer science, vol 3586. Springer, Heidelberg, pp 169–194Google Scholar
  23. 23.
    Madsen OL, Moller-Pedersen B (1989) Virtual classes: a powerful mechanism in object-oriented programming. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA), ACM Press, New York, pp 397–406Google Scholar
  24. 24.
    Masuhara H, Kiczales G (2003) Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of the European conference on object-oriented programming (ECOOP), lecture notes in computer science, vol 2743, Springer, Heidelberg, pp 2–28Google Scholar
  25. 25.
    McDirmid S, Flatt M, Hsieh WC (2001) Jiazzi: New-age components for old-fashioned Java. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA), ACM Press, New York, pp 211–222Google Scholar
  26. 26.
    Mezini M, Ostermann K (2004) Variability management with feature-oriented programming and aspects. In: Proceedings of the international symposium on foundations of software engineering (FSE), ACM Press, New York, pp 127–136Google Scholar
  27. 27.
    Nystrom N, Chong S, Myers AC (2004) Scalable extensibility via nested inheritance. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA), ACM Press, New York, pp 99–115Google Scholar
  28. 28.
    Odersky M, Zenger M (2005) Scalable component abstractions. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA), ACM Press, New York, pp 41–57Google Scholar
  29. 29.
    Parnas DL (1972). On the criteria to be used in decomposing systems into modules. Commun ACM (CACM) 15(12): 1053–1058 CrossRefGoogle Scholar
  30. 30.
    Rajan H, Sullivan KJ (2005) Classpects: unifying aspect- and object-oriented language design. In: Proceedings of the international conference on software engineering (ICSE), ACM Press, New York, pp 59–68Google Scholar
  31. 31.
    Spinczyk O, Lohmann D, Urban M (2005) AspectC++: an AOP extension for C++. Softw Developer’s J, 68–74Google Scholar
  32. 32.
    Steimann F (2005) Domain models are aspect free. In: Proceedings of the international conference on model driven engineering languages and systems (MoDELS/UML), lecture notes in computer science, vol 3713. Springer, Heidelberg, pp 171–185Google Scholar
  33. 33.
    Steimann F (2006) The paradoxical success of aspect-oriented programming. In: Proceedings of the international conference on object-oriented programming, systems, languages, and applications (OOPSLA), ACM Press, New York, pp 481–497Google Scholar
  34. 34.
    Störzer M, Graf J (2005) Using pointcut delta analysis to support evolution of aspect-oriented software. In: Proceedings of the international conference on software maintenance (ICSM), IEEE Computer Society, pp 653–656Google Scholar
  35. 35.
    Tarr P, Ossher H, Harrison W, Stanley M Sutton Jr (1999) N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of the international conference on software engineering (ICSE), IEEE Computer Society, pp 107–119Google Scholar
  36. 36.
    Wand M, Kiczales G and Dutchyn C (2004). A semantics for advice and dynamic join points in aspect-oriented programming. ACM Trans Program Lang Syst (TOPLAS) 26(5): 890–910 CrossRefGoogle Scholar
  37. 37.
    Xin B, McDirmid S, Eide E, Hsieh WC (2004) A comparison of Jiazzi and AspectJ for feature-wise decomposition. Tech Rep UUCS-04-001, School of Computing, The University of UtahGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2007

Authors and Affiliations

  • Sven Apel
    • 1
    Email author
  • Christian Kästner
    • 2
  • Martin Kuhlemann
    • 2
  • Thomas Leich
    • 3
  1. 1.Department of Informatics and MathematicsUniversity of PassauPassauGermany
  2. 2.School of Computer ScienceUniversity of MagdeburgMagdeburgGermany
  3. 3.Department of Applied InformaticsMetop Research InstituteMagdeburgGermany

Personalised recommendations