skip to main content
10.1145/1134285.1134304acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Aspectual mixin layers: aspects and features in concert

Published:28 May 2006Publication History

ABSTRACT

Feature-Oriented Programming (FOP) decomposes complex software into features. Features are main abstractions in design and implementation. They reflect user requirements and incrementally refine one another. Although, features crosscut object-oriented architectures they fail to express all kinds of crosscutting concerns. This weakness is exactly the strength of aspects, the main abstraction mechanism of Aspect-Oriented Programming (AOP). In this article we contribute a systematic evaluation and comparison of both paradigms, AOP and FOP, with focus on incremental software development. It reveals that aspects and features are not competing concepts. In fact AOP has several strengths to improve FOP in order to implement crosscutting featuresSymmetrically, the development model of FOP can aid AOP in implementing incremental designs. Consequently, we propose the architectural integration of aspects and features in order to profit from both paradigms. We introduce aspectual mixin layers (AMLs), an implementation approach that realizes this symbiosis. A subsequent evaluation and a case study reveal that AMLs improve the crosscutting modularity of features as well as aspects become well integrated into incremental development style.

References

  1. J. Aldrich. Open Modules: Modular Reasoning About Advice. In ECOOP, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Apel and K. Böhm. Towards the Development of Ubiquitous Middleware Product Lines. In ASE'04 SEM Workshop, volume 3437 of LNCS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Apel et al. FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In GPCE, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Apel, T. Leich, and G. Saake. Aspect Refinement and Bounding Quantification in Incremental Designs. In APSEC, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Apel, T. Leich, and G. Saake. Mixin-Based Aspect Inheritance. Technical Report 10, Department of Computer Science, University of Magdeburg, Germany, 2005.Google ScholarGoogle Scholar
  6. D. Batory and S. O'Malley. The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM TOSEM, 1(4), 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Batory, J. N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE TSE, 30(6), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. J. Bosch. Superimposition: A Component Adaptation Technique. Information and Software Technology, 41(5), 1999.Google ScholarGoogle Scholar
  9. A. Colyer and A. Clement. Large-Scale AOSD for Middleware. In AOSD, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Colyer, A. Rashid, and G. Blair. On the Separation of Concerns in Program Families. Technical report, Computing Department, Lancaster University, 2004.Google ScholarGoogle Scholar
  11. K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Hanenberg and A. Schmidmeier. Idioms for Building Software Frameworks in AspectJ. In AOSD ACP4IS Workshop, 2003.Google ScholarGoogle Scholar
  13. S. Hanenberg and R. Unland. Parametric Introductions. In AOSD, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Herrmann. Object Teams: Improving Modularity for Crosscutting Collaborations. In NetObjectDays, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Kiczales et al. Aspect-Oriented Programming. In ECOOP, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  16. G. Kiczales and M. Mezini. Aspect-Oriented Programming and Modular Reasoning. In ICSE, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. Kniesel, T. Rho, and S. Hanenberg. Evolvable Pattern Implementations Need Generic Aspects. In ECOOP RAM-SE Workshop, 2004.Google ScholarGoogle Scholar
  18. T. Leich, S. Apel, and G. Saake. Using Step-Wise Refinement to Build a Flexible Lightweight Storage Manager. In ADBIS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. Lieberherr, D. Lorenz, and M. Mezini. Programming with Aspectual Components. Technical report, College of Computer Science, Northeastern University, 1999.Google ScholarGoogle Scholar
  20. K. Lieberherr, D. H. Lorenz, and J. Ovlinger. Aspectual Collaborations: Combining Modules and Aspects. The Computer Journal, 46(5), 2003.Google ScholarGoogle Scholar
  21. D. Lohmann, G. Blaschke, and O. Spinczyk. Generic Advice: On the Combination of AOP with Generative Programming in AspectC++. In GPCE, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  22. R. Lopez-Herrejon, D. Batory, and W. Cook. Evaluating Support for Features in Advanced Modularization Technologies. In ECOOP, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Lopez-Herrejon, D. Batory, and C. Lengauer. A Disciplined Approach to Aspect Composition. In ACM SIGPLAN PEPM Workshop, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. N. Loughran and A. Rashid. Framed Aspects: Supporting Variability and Configurability for AOP. In ICSR, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  25. N. McEachen and R. T. Alexander. Distributing Classes with Woven Concerns: An Exploration of Potential Fault Scenarios. In AOSD, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Mezini and K. Lieberherr. Adaptive Plug-and-Play Components for Evolutionary Software Development. In OOPSLA, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Mezini and K. Ostermann. Conquering Aspects with Caesar. In AOSD, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Mezini and K. Ostermann. Variability Management with Feature-Oriented Programming and Aspects. ACM SIGSOFT FSE-12, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Mezini, L. Seiter, and K. Lieberherr. Component Integration with Pluggable Composite Adapters. Software Architectures and Component Technology: The State of the Art in Research and Practice, 2000.Google ScholarGoogle Scholar
  30. D. L. Parnas. Designing Software for Ease of Extension and Contraction. IEEE TSE, SE-5(2), 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. E. Pulvermüller, A. Speck, and A. Rashid. Implementing Collaboration-Based Designs Using Aspect-Oriented Programming. In TOOLS, 2000.Google ScholarGoogle ScholarCross RefCross Ref
  32. Y. Smaragdakis and D. Batory. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM, 11(2), 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. O. Spinczyk, D. Lohmann, and M. Urban. AspectC++: An AOP Extension for C++. Software Developer's Journal, 2005(5), 2005.Google ScholarGoogle Scholar
  34. P. Tarr et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In ICSE, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. N. Wirth. Program Development by Stepwise Refinement. CACM, 14(4), 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Aspectual mixin layers: aspects and features in concert

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ICSE '06: Proceedings of the 28th international conference on Software engineering
        May 2006
        1110 pages
        ISBN:1595933751
        DOI:10.1145/1134285

        Copyright © 2006 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 28 May 2006

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate276of1,856submissions,15%

        Upcoming Conference

        ICSE 2025

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader