Skip to main content

A Sequence of Patterns for Reusable Aspect Libraries with Easy Configuration

  • Conference paper
Software Composition (SC 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6708))

Included in the following conference series:

Abstract

Using well-known AspectJ idioms has been shown to increase the reusability of aspect libraries. Availability of such reusable libraries is an important motivating factor to drive the further adoption of AspectJ in industry and aspect-oriented-programming in general. Existing work, however, mostly presents the existing AspectJ idioms as relatively independent solutions. As experience grows in using these idioms, it is possible to increasingly combine related idioms to form patterns and subsequently, pattern languages. A pattern language provides a structured process on how to apply a family of related patterns and idioms that cover a particular domain or discipline. This paper presents a first step towards a pattern language for building reusable aspect libraries in the form of a sequence of aspect-oriented patterns that each combine a set of idioms to achieve (i) a configurable core design of the aspect library, (ii) library-controlled mediation of the interactions between the different aspects in the library and (iii) flexible configuration by providing multiple alternative modes for binding the aspect library to an application. An initial evaluation of the pattern sequence in the context of a pricing library shows improved reusability and ease-of-configuration in comparison to an existing idiom-based implementation of the pricing library.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Buschmann, F., Henney, K., Schmidt, D.: Pattern Oriented Software Architecture: On Patterns and Pattern Languages. Wiley Software Patterns Series. John Wiley & Sons, Chichester (2007)

    Google Scholar 

  2. Bynens, M., Truyen, E., Joosen, W.: A system of patterns for reusable aspect libraries. Transactions on Aspect-Oriented Software Development  VIII (2011) (accepted), http://distrinet.cs.kuleuven.be/software/aodesignpatterns

  3. Cibrán, M.A., D’Hondt, M.: A slice of MDE with AOP: Transforming high-level business rules to aspects. In: Wang, J., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 170–184. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Clifton, C., Leavens, G.T., Aumann, Y.: MAO: Ownership and effects for more effective reasoning about aspects. In: Bateni, M. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 451–475. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  5. Cunha, C.A., Sobral, J.L., Monteiro, M.P.: Reusable aspectoriented implementations of concurrency patterns and mechanisms. In: AOSD, pp. 134–145. ACM, New York (2006)

    Chapter  Google Scholar 

  6. DHondt, M., Jonckers, V.: Hybrid aspects for weaving object-oriented functionality and rule-based knowledge. In: AOSD, pp. 132–140 (2004)

    Google Scholar 

  7. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    MATH  Google Scholar 

  8. Greenwood, P., Bartolomei, T., Figueiredo, E., Dosea, M., Garcia, A., Cacho, N., Sant’Anna, C., Soares, S., Borba, P., Kulesza, U., Rashid, A.: On the impact of aspectual decompositions on design stability: An empirical study. In: Bateni, M. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 176–200. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  9. Griswold, W.G., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., Rajan, H.: Modular software design with crosscutting interfaces. IEEE Softw. 23(1), 51–60 (2006)

    Article  Google Scholar 

  10. Hanenberg, S., Schmidmeier, A.: Idioms for building software frameworks in aspectj. In: AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (2003)

    Google Scholar 

  11. Hanenberg, S., Unland, R.: Using and Reusing Aspects in AspectJ. In: Workshop on Advanced Separation of Concerns, OOPSLA (2001)

    Google Scholar 

  12. Hanenberg, S., Unland, R., Schmidmeier, A.: AspectJ Idioms for Aspect- Oriented Software Construction. In: Proceedings of EuroPLoP, pp. 617–644 (2003)

    Google Scholar 

  13. Hoffman, K., Eugster, P.: Towards reusable components with aspects: an empirical study on modularity and obliviousness. In: ICSE, pp. 91–100. ACM, New York (2008)

    Chapter  Google Scholar 

  14. Kellens, A., Mens, K., Brichau, J., Gybels, K.: Managing the evolution of aspect-oriented software with model-based pointcuts. In: Hu, Q. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 501–525. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  15. Kiczales, G., Mezini, M.: Separation of concerns with procedures, annotations, advice and pointcuts. In: Gao, X.-X. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 195–213. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  16. Kienzle, J., Gélineau, S.: Ao challenge - implementing the acid properties for transactional objects. In: AOSD, pp. 202–213. ACM, New York (2006)

    Chapter  Google Scholar 

  17. Koppen, C., Stoerzer, M.: Pcdiff: Attacking the fragile pointcut problem. In: First European Interactive Workshop on Aspects in Software, EIWAS (2004)

    Google Scholar 

  18. Kuhlemann, M., Kästner, C.: Reducing the complexity of AspectJ mechanisms for recurring extensions. In: Proc. GPCE Workshop on Aspect- Oriented Product Line Engineering, AOPLE (2007)

    Google Scholar 

  19. Laddad, R.: AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Co, Greenwich (2003)

    Google Scholar 

  20. Lagaisse, B., Joosen, W.: Decomposition into elementary pointcuts: A design principle for improved aspect reusability. In: SPLAT (2006)

    Google Scholar 

  21. Li, W., Henry, S.M.: Object-oriented metrics that predict maintainability. Journal of Systems and Software 23(2), 111–122 (1993)

    Article  Google Scholar 

  22. Marot, A., Wuyts, R.: Composing aspects with aspects. In: AOSD, pp. 157–168. ACM, New York (2010)

    Google Scholar 

  23. Miles, R.: AspectJ Cookbook. O’Reilly Media, Inc, Sebastopol (2004)

    Google Scholar 

  24. Monteiro, M.P., Fernandes, J.M.: Towards a catalogue of refactorings and code smells for aspectj. T. Aspect-Oriented Software Development, 1, 214–258 (2006)

    Article  MATH  Google Scholar 

  25. Noble, J., Schmidmeier, A., Pearce, D.J., Black, A.P.: Patterns of aspect-oriented design. In: In Proceedings of European Conference on Pattern Languages of Programs (2007)

    Google Scholar 

  26. Rajan, H., Leavens, G.T.: Ptolemy: A language with quantified, typed events. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 155–179. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  27. Rashid, A., Chitchyan, R.: Persistence as an aspect. In: AOSD, pp. 120–129. ACM, New York (2003)

    Google Scholar 

  28. Rho, T., Kniesel, G., Appeltauer Fine-grained, M.: generic aspects. In: Foundations of Aspect-Oriented Languages (2006)

    Google Scholar 

  29. Santos, A.L., Koskimies, K.: Modular hot spots: A pattern language for developing high-level framework reuse interfaces. In: In Proceedings of European Conference on Pattern Languages of Programs (2008)

    Google Scholar 

  30. Schmidmeier, A.: Cooperating aspects. In: Proceedings of EuroPLoP (2005)

    Google Scholar 

  31. SpringSource. Spring roo, http://www.springsource.org/roo

  32. Steimann, F.: The paradoxical success of aspect-oriented programming. SIGPLAN Not., 41(10), 481–497 (2006)

    Article  Google Scholar 

  33. Tourwe, T., Brichau, J., Gybels, K.: On the Existence of the AOSD-Evolution Paradox. In: SPLAT Workshop, Boston, AOSD (2003)

    Google Scholar 

  34. Wiese, D., Meunier, R., Hohenstein, U.: How to convince industry of aop. In: AOSD, Industry Track (2007)

    Google Scholar 

  35. Zschaler, S., Rashid, A.: Aspect assumptions: a retrospective study of aspectj developers assumptions about aspect usage. In: AOSD, pp. 93–104. ACM, New York (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bynens, M., Truyen, E., Joosen, W. (2011). A Sequence of Patterns for Reusable Aspect Libraries with Easy Configuration. In: Apel, S., Jackson, E. (eds) Software Composition. SC 2011. Lecture Notes in Computer Science, vol 6708. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22045-6_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-22045-6_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-22044-9

  • Online ISBN: 978-3-642-22045-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics