Skip to Main content Skip to Navigation

Bridging the Gap between Component-based Design and Implementation with a Reflective Programming Language

Abstract : Component-based Software Engineering studies the design, development and maintenance of software constructed upon sets of connected components. Existing component-based models are frequently transformed into non-component-based programs, most of the time object-oriented, for runtime execution and then many component-related concepts, e.g. explicit architecture, vanish at the implementation stage. The main reason why is that with objects the component related concepts are treated implicitly and therefore the original intentions and qualities of the component-based design are hidden. This paper presents a reflective component-based programming and modeling language, which proposes the following original contributions: 1) Components are seen as objects in which requirements, architecture descriptions, connection points, etc. are explicit. This core idea aids in bridging the gap between component-based modeling and programming; 2) It revisits standard solutions for reification in the context of components when using the component-oriented reification to build up an executable meta-model designed on the idea of "everything is a component", allowing intercession on component descriptors and their instances; 3) It integrates reflection capabilities, making it possible to develop standard component-based application, but also to perform advanced architecture checking, code refactoring or model transformations using the same language.
Complete list of metadata

Cited literature [27 references]  Display  Hide  Download
Contributor : Petr Spacek <>
Submitted on : Monday, September 16, 2013 - 5:27:14 PM
Last modification on : Thursday, March 4, 2021 - 6:20:02 PM
Long-term archiving on: : Thursday, April 6, 2017 - 9:00:18 PM


Files produced by the author(s)


  • HAL Id : lirmm-00862477, version 1


Petr Spacek, Christophe Dony, Chouki Tibermacine, Luc Fabresse. Bridging the Gap between Component-based Design and Implementation with a Reflective Programming Language. RR-13028, 2013. ⟨lirmm-00862477⟩



Record views


Files downloads