Aspect-oriented Component Composition in PacoSuite Through Invasive Composition Adapters

  • Wim VanderperrenEmail author
  • Davy Suvée
  • Bruno De Fraine
  • Viviane Jonckers
Special Section on Fundamental Approaches to Software Engineering


This work investigates the combination of aspect-oriented and component-based software development. For integrating aspects within component -based applications, we propose two main strategies: (1) integrating the behavior of aspects at the component composition level and (2) integrating the behavior of the aspects within the involved components themselves. We illustrate how the proposed strategies are incorporated in the PacoSuite component-based model, which introduces explicit and reusable protocol descriptions, called composition patterns. Aspects are integrated at the composition level by modularizing them as composition adapters. Composition adapters are visually applied onto a composition pattern and the changes they describe are automatically inserted. Invasive composition adapters are proposed to express aspects that require invasive changes to the internal behavior of the involved components. These changes are automatically inserted into the concerned components and composition patterns. For implementing the invasive adaptations of a composition adapter, we propose to employ aspect-oriented techniques. The proposed approach is implemented in a visual component composition environment and validated by presenting a small e-commerce case-study where three crosscutting concerns are successfully modularized as composition adapters.


Adapter Usage Scenario Component Composition Composition Pattern Message Sequence Chart 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Achermann F., Lumpe M., Schneider J.G., Nierstrasz O. (2001) Piccola–a small composition language. In: Bowman H., Derrick J. (eds). Formal Methods for Distributed Processing–A Survey of Object-Oriented Approaches. Cambridge University Press, Cambridge, pp. 403–426Google Scholar
  2. 2.
    Allen, R., Garlan, D. Formalizing architectural connection. In: Proceedings of the Sixteenth International Conference on Software Engineering, pp. 71–80. Sorrento, Italy (1994)Google Scholar
  3. 3.
    Aßmann U. (2003) Invasive Software Composition. 1st edn. Springer, Berlin Heidelberg New YorkzbMATHGoogle Scholar
  4. 4.
    Attie, P., Lorenz, D. Correctness of model-based component composition without state explosion. In: Proceedings of the ECOOP Workshop on Correctness of Model-Based Software Composition. Darmstadt, Germany (2003)Google Scholar
  5. 5.
    Bergmans L., Akşit M. (2001) Composing crosscutting concerns using composition filters. Comm. ACM 44(10): 51–57CrossRefGoogle Scholar
  6. 6.
    Bergmans, L., Akşit, M., Tekinerdoğan, B. Aspect composition using composition filters. In: Kluwer (ed.) Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development (2001)Google Scholar
  7. 7.
    den Bos J., Laffra C. (1991) Procol a concurrent objectoriented language with protocols delegation and constraints. Actua Inf. 28, 511–538zbMATHCrossRefGoogle Scholar
  8. 8.
    Campbell, R., Habermann, A. The specification of process synchronisation by path expressions. In: Proceedings of an International Symposium on Operating Systems (1974)Google Scholar
  9. 9.
    Cibran, M., D’Hondt, M., Jonckers, V. Aspect-oriented programming for connecting business rules. In: Proceedings of BIS 2003. Colorado Springs, USA (2003)Google Scholar
  10. 10.
    Douence, R., Fradet, P., Südholt, M. A framework for the detection and resolution of aspect interactions. In: Proceedings of the Iternational Conference on Generative Programming and Component Engineering. Pittsburgh, USA (2002)Google Scholar
  11. 11.
    Douence, R., Motelet, O., Südholt, M. A formal definition of crosscuts. In: Proceedings of the 3rd International Conference on Reflection. Kyoto, Japan (2001)Google Scholar
  12. 12.
    Ducasse S., Richner T. (1997). Executable connectors: towards reusable design elements. SIGSOFT Softw. Eng. Notes 22(6): 483–499 DOI Scholar
  13. 13.
    F. Duclos, J.E., Morat, P. Describing and using non functional aspects in component-based applications. In: Proceedings of the 1st International Conference on Aspect-Oriented Software Development. Enschede, The Netherlands (2002)Google Scholar
  14. 14.
    Filman, R. Applying aspect-oriented programming to intelligent systems. In: Proceedings of the ECOOP 2000 workshop on Aspects and Dimensions of Concerns. Cannes, France (2000)Google Scholar
  15. 15.
    Hopcroft J.E., Ullman J.D. (1979) Introduction to Automata Theory, Languages and Computation. Addison-Wesley, ReadingzbMATHGoogle Scholar
  16. 16.
    ITU-TS, Geneva, Swiss: ITU-TS Recommendation Z.120: Message Sequence Chart (MSC) (1993)Google Scholar
  17. 17.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersen, M., Palm, J., Griswold, G. An overview of aspectj. In: Proceedings European Conference on Object-Oriented Programming. Budapest, Hungary (2001)Google Scholar
  18. 18.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J. Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) 11th Europeen Conf. Object-Oriented Programming, LNCS, vol. 1241, pp. 220–242. Springer, New York Berlin Heidelberg (1997)Google Scholar
  19. 19.
    Lam S. (1988) Protocol conversion. IEEE Trans. on Softw. Eng. 14, 353–362CrossRefGoogle Scholar
  20. 20.
    Luckham, D., Kenney, J., Augustin, L., Vera, D., Bryan, D., Mann, W. Specification and analysis of system architecture using rapide. IEEE Trans. Softw. Eng. 21 (1995)Google Scholar
  21. 21.
    Ludwig, A., Heuzeroth, D. Metaprogramming in the large. In: Proceedings of the Iternational Conference on Generative Programming and Component Engineering (2000)Google Scholar
  22. 22.
    McIlroy, M.D. “Mass produced” software components. In: P. Naur, B. Randell (eds.) Software Engineering, pp. 138–155. Scientific Affairs Division, NATO, Brussels (1969). Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968Google Scholar
  23. 23.
    Object Management Group, Inc: Corba Component Model http://www.omg.orgGoogle Scholar
  24. 24.
    Okumura, K. A formal protocol conversion method. In: Proceedings of the ACM SIGCOMM ’86 Symposium, pp. 30–37 (1992)Google Scholar
  25. 25.
    Ossher H., Tarr P. (2001) Using multidimensional separation of concerns to (re)shape evolving software. Commu. ACM 44(10): 43–50CrossRefGoogle Scholar
  26. 26.
    Parnas D.L. (1972) On the criteria to be used in decomposing systems into modules. Comm. ACM 15(12): 1053–1058CrossRefGoogle Scholar
  27. 27.
    Pintado, X., Junod, B. Gluons: Support for software component cooperation. Object Frameworks pp. 311–346 (1992)Google Scholar
  28. 28.
    Pülvermuller, E., Speck, A., Coplien, J., D’Hondt, M., Meuter, W.D. Proceedings of workshop on feature interaction in composed systems. In: Proceedings European Conference on Object-Oriented Programming. Budapest, Hungary (2001)Google Scholar
  29. 29.
    Reussner R.H. (2003) Automatic Component Protocol Adaptation with the CoCoNut Tool Suite. Future Generation Computer Systems 19(5): 627–639CrossRefGoogle Scholar
  30. 30.
    Shu, J., Liu, M. A synchronization model for protocol conversion. In: Proceedings of IEEE Infocom ’89 (1998)Google Scholar
  31. 31.
    Suvée, D., Vanderperren, W., Jonckers, V. Jasco: an aspect-oriented approach tailored for component based software development. In: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development. Boston, USA (2003)Google Scholar
  32. 32.
    Szyperski C. (1998) Component Software: Beyond Object-Oriented Programming. 1st edn. Addison Wesley, ReadingGoogle Scholar
  33. 33.
    Szyperski, C., Pfister, C. Workshop on component-oriented programming, summary. In: M. Muhlhauser (ed.) Special Issues in Object-Oriented Programming – ECOOP96 Workshop Reader. dpunkt Verlag, Heidelberg (1996)Google Scholar
  34. 34.
    Thatte, S. Automated synthesis of interface adapters for reusable classes. In: Proceedings of the ACM SIGPANSIGACT POPL 94 Conference, pp. 174–487 (1994)Google Scholar
  35. 35.
    Vanderperren, W. Combining aspect-oriented and component-based software development. Ph.D. thesis, Vrije Brussel (2004). Http:// Scholar
  36. 36.
    Vanderperren, W., Suvée, D. Optimizing jasco dynamic aop through hotswap and jutta. In: Proceedings the first international workshop on dynamic aspects. Lancaster, UK (2004)Google Scholar
  37. 37.
    Vanderperren, W., Suvée, D., Jonckers, V. Adaptive programming in jasco. In: Proceedings of the 4nd International Conference on Aspect-Oriented Software Development. Chicago, USA (2005)Google Scholar
  38. 38.
    Vanderperren, W., Wydaeghe, B. Towards a new component composition process. In: Proceedings of Engineering of Computer Based Systems (ECBS) International Conference, IEEE Computer Society. Washington, USA (2001)Google Scholar
  39. 39.
    Win, B.D., Vanhaute, B., Decker, B.D. How aspect-oriented programming can help to build secure software. Informatica (Slovenia) 26(2), (2002)Google Scholar
  40. 40.
    Wydaeghe, B. Pacosuite: Component composition based on composition patterns and usage scenarios. Ph.D. thesis, Vrije Universiteit Brussel (2001). Http:// Scholar
  41. 41.
    Wydaeghe, B., Vanderperren, W. Visual component composition using composition patterns. In: Proceedings of Tools International Conference, IEEE Computer Society. Santa Barbara, USA (2001)Google Scholar
  42. 42.
    Yellin, D.M., Strom, R.E. Protocol specifications and component adaptors. ACM Trans. Program. Lang. Syst. 19(2), 292–333 (1997). DOI Scholar

Copyright information

© Springer-Verlag 2006

Authors and Affiliations

  • Wim Vanderperren
    • 1
    Email author
  • Davy Suvée
    • 1
  • Bruno De Fraine
    • 1
  • Viviane Jonckers
    • 1
  1. 1.System and Software Engineering LabVrije Universiteit BrusselBrusselsBelgium

Personalised recommendations