Leveraging component-based software engineering with Fraclet

  • Romain RouvoyEmail author
  • Philippe Merle


Component-based software engineering has achieved wide acceptance in the domain of software engineering by improving productivity, reusability and composition. This success has also encouraged the emergence of a plethora of component models. Nevertheless, even if the abstract models of most of lightweight component models are quite similar, their programming models can still differ a lot. This drawback limits the reuse and composition of components implemented using different programming models. The contribution of this article is to introduce Fraclet as a programming model common to several lightweight component models. This programming model is presented as an annotation framework, which allows the developer to annotate the program code with the elements of the abstract component model. Then, using a generative approach, the annotated program code is completed according to the programming model of the component model to be supported by the component runtime environment. This article shows that this annotation framework provides a significant simplification of the program code by removing all dependencies on the component model interfaces. These benefits are illustrated with the Fractal and OpenCOM component models.


Component-based software engineering Fractal Annotation-oriented programming 



The authors wish to thank Denis Conan, Carlos Noguera, Nicolas Pessemier and Renaud Pawlak for their contributions to the Fraclet programming model and its implementations. The authors also thank the reviewers for their valuable comments.


  1. 1.
    Aldrich J, Chambers C, Notkin D (2002) ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th international conference on software engineering (ICSE’02). ACM, Orlando, pp 187–197Google Scholar
  2. 2.
    Baduel L, Baude F, Caromel D, Contes A, Huet F, Morel M, Quilici R (2006) Grid computing: software environments and tools, chapter programming, deploying, composing, for the grid. Springer, HeidelbergGoogle Scholar
  3. 3.
    Batista T, Joolia A, Coulson G (2005) Managing dynamic reconfiguration in component-based systems. In: Proceedings of the 2nd European workshop on software architecture (EWSA’05), Lecture notes in computer science, vol 3527. Springer, Pisa, pp 1–17Google Scholar
  4. 4.
    Blair GS, Coulson G, Andersen A, Blair L, Clarke M, Costa FM, Duran-Limon HA, Fitzpatrick T, Johnston L, Moreira RS, Parlavantzas N, Saikoski KB (2001) The design and implementation of open ORB 2. IEEE Distrib Syst Online 2(6)Google Scholar
  5. 5.
    Bruneton E, Coupaye T, Leclercq M, Quéma V, Stefani JB (2006) The Fractal component model and its support in java. Softw Prac Exp 36(11–12):1257–1284. doi:10.1002/spe.767 (Special issue on experiences with auto-adaptive and reconfigurable systems)CrossRefGoogle Scholar
  6. 6.
    Coulson G, Blair G, Grace P, Taiani F, Joolia A, Lee K, Ueyama J, Sivaharan T (2008) A generic component model for building systems software. ACM Trans Comput Syst 26(1):1–42. doi:10.1145/1328671.1328672 CrossRefGoogle Scholar
  7. 7.
    Dashofy EM, van der Hoek A, Taylor RN (2002) An infrastructure for the rapid development of XML-based architecture description languages. In: Proceedings of the 22rd international conference on software engineering (ICSE’02). ACM, Orlando, pp 266–276. doi:10.1145/581339.581374 Google Scholar
  8. 8.
    DeMichiel L, Keith M (2005) Enterprise JavaBeans (EJB) specification, 3.0 edition. Sun Microsystems, Santa ClaraGoogle Scholar
  9. 9.
    Ecma International (2005) C# language specification, 3.0 edition. Ecma International, GenevaGoogle Scholar
  10. 10.
    Eichberg M, Schäfer T, Mezini M (2005) Using annotations to check structural properties of classes. In: Proceedings of the 8th international conference on fundamental approaches to software engineering (FASE’05), Lecture notes in computer science, vol 3442. Springer, Edinburgh, pp 237–252Google Scholar
  11. 11.
    Fassino JP, Stefani JB, Lawall JL, Muller G (2002) Think: a software framework for component-based operating system kernels. In: USENIX annual technical conference, general track, Monterey, June 2002, pp 73–86Google Scholar
  12. 12.
    Flissi A, Dubus J, Dolet N, Merle P (2008) Deploying on the grid with DeployWare. In: Proceedings of the 8th international symposium on cluster computing and the grid (CCGrid’08), Lyon, 19–22 May 2008, pp 177–184Google Scholar
  13. 13.
    Gosling J, Joy B, Steele G, Bracha G (2005) The Java language specification, third edition. Addison-Westley Professional Computing, Santa ClaraGoogle Scholar
  14. 14.
    Hamilton G (1997) JavaBeans specification, 1.01 edition. Sun Microsystems, Palo AltoGoogle Scholar
  15. 15.
    Johnson R, Hoeller J, Arendsen A, Sampaleanu C, Harrop R, Risberg T, Davison D, Kopylenko D, Pollack M, Templier T, Vervaet E, Tung P, Hale B, Colyer A, Lewis J, Leau C, Evans R (2007) The spring framework—reference documentation, 2.0.6 editionGoogle Scholar
  16. 16.
    Leclercq M, Özcan AE, Quéma V, Stefani JB (2007) Supporting heterogeneous architecture descriptions in an extensible toolset. In: Proceedings of the 29th international conference on software engineering (ICSE’07). IEEE Computer Society, Minneapolis, pp 209–219. doi:10.1109/ICSE.2007.82 CrossRefGoogle Scholar
  17. 17.
    Leclercq M, Quéma V, Stefani JB (2005) DREAM: a component framework for constructing resource-aware configurable middleware. IEEE Distrib Syst Online 6(9)Google Scholar
  18. 18.
    Louis A (2006) Use JBI components for integration.
  19. 19.
    Medvidovic N, Taylor RN (2000) A classification and comparison framework for software architecture description languages. IEEE Trans Softw Eng 26(1):70–93CrossRefGoogle Scholar
  20. 20.
    Noguera C, Duchien L (2008) Annotation framework validation using domain models. In: Proceedings of the 4th European conference on model driven architecture foundations and applications (ECMDA’08). Springer, BerlinGoogle Scholar
  21. 21.
    OMG (2002) CORBA component model (CCM) specification, 3.0 edition. OMG, NeedhamGoogle Scholar
  22. 22.
    Open service oriented architecture (2007) SCA: service component architecture, 1.0 edition. Java Common Annotations and APIsGoogle Scholar
  23. 23.
    Pawlak R (2006) Spoon: compile-time annotation processing for middleware. IEEE Distrib Syst Online 7(11)Google Scholar
  24. 24.
    Rouvoy R, Conan D, Seinturier L (2008) Software architecture patterns for a context-processing middleware framework. IEEE Distrib Syst Online 9(6)Google Scholar
  25. 25.
    Rouvoy R, Merle P (2006) Leveraging component-oriented programming with attribute-oriented programming. In: Proceedings of the 11th international ECOOP workshop on component-oriented programming (WCOP’06), technical report, vol 2006–11. Karlsruhe University, NantesGoogle Scholar
  26. 26.
    Rouvoy R, Pessemier N, Pawlak R, Merle P (2006) Using attribute-oriented programming to leverage Fractal-based developments. In: Proceedings of the 5th international ECOOP workshop on Fractal component model, Nantes, July 2006Google Scholar
  27. 27.
    Rouvoy R, Serrano-Alvarado P, Merle P (2006) Towards context-aware transaction services. In: Proceedings of the 6th international IFIP conference on distributed applications and interoperable systems (DAIS), Lecture notes in computer science, vol 4025. Springer, Bologna, pp 272–288Google Scholar
  28. 28.
    Schiavoni V, Quéma V (2006) A posteriori defensive programming: an annotation toolkit for DoS-Resistant component-based architectures. In: Proceedings of the 21st ACM symposium on applied computing (SAC’06). ACM, Dijon, pp 1734–1738CrossRefGoogle Scholar
  29. 29.
    Seinturier L, Pessemier N, Duchien L, Coupaye T (2006) A component model engineered with components and aspects. In: Proceedings of the 9th international SIGSOFT symposium on component-based software engineering (CBSE’06), Lecture notes in computer science, vol 4063. Springer, Stockholm, pp 139–153Google Scholar
  30. 30.
    Stahl T, Volter M, Stockfleth BV (2006) Model-driven software development: technology, engineering, management. Wiley, New YorkGoogle Scholar
  31. 31.
    Wada H, Suzuki J (2005) Modeling turnpike frontend system: a model-driven development framework leveraging UML metamodeling and attribute-oriented programming. In: Proceedings of the 8th international conference on model driven engineering languages and systems (MoDELS’05), Lecture notes in computer science, vol 3713. Springer, Montego Bay, pp 584–600Google Scholar
  32. 32.
    Walls C, Richards N (2003) XDoclet in action. In: Actions series. Manning, Bellows FallsGoogle Scholar

Copyright information

© Institut TELECOM and Springer-Verlag 2008

Authors and Affiliations

  1. 1.Department of InformaticsUniversity of OsloOsloNorway
  2. 2.ADAM Project-TeamINRIA-USTL-CNRSVilleneuve d’AscqFrance

Personalised recommendations