Component is one of the next steps for software evolution. There are today many component models. Most of them are proposed either for the modelling phase (composition architectures encaspsulated with provided and required interfaces compiled into classes skeletons) or for the deployment phase (Object containers such as jars or clusters). We believe this is just a transitional situation and wish to propose a component model and system that encompass them all and can be used in all phases of software development, including the programming one. Compo is the last result in that direction (see below).
Objects are primary components; objects containers (jars, clusters, etc) are just alternative presentations of objets, allowing for their deployment. The researches described here see components as old standard objets extended with additional properties, abstractions, control-stuctures, aspects, description (requirements, architecture), documentation. Two main additions to go from objects to component are to explicit requirements and architectures. The following research projects are been held to imagine and experiment with languages to develop software using components.
I have studied domain specific components in the fielf of mobile robotic in Collaboration with Robin Passama (Phd 2006), David Andreu, Thérèse Libourel. (LIRMM-ROB), Thérèse Libourel