Section: New Results
Software Components for Embedded Systems
Components-Based Software Engineering for Embedded Systems
Participants : Frédéric Loiret, Guillaume Libersat, Philippe Merle, Lionel Seinturier.
As embedded systems must constantly integrate new functionalities, their development cycles must be based on high-level abstractions, making the software design more flexible. Component-Based Software Engineering (CBSE) provides an approach to these new requirements. However, low-level services provided by operating systems are an integral part of embedded applications, furthermore deployed on resource-limited devices. Therefore, the expected benefits of CBSE must not impact on the constraints imposed by the targeted domain, such as memory footprint, energy consumption, and execution time. According to these considerations, two new results can be put forward:
-
we have "componentized" a legacy industry-established Real-Time Operating System (microC/OS-II) and provided a design space for component-based applications built on top for it [22] . We used the Think framework that allows the creation of flexible systems while paying for flexibility only where desired. We have performed experimentations showing that the induced overhead by the component-based design is negligible.
-
we have proposed a tool-assisted methodology based on the notions of multi-view specification and model refinement that aims at providing a way for the operating system developers to use these technologies while still being able to stick to the strict requirements of operating systems.
Constructing Domain-Specific Component Frameworks
Participants : Frédéric Loiret, Guillaume Libersat, Philippe Merle, Aleš Plšek, Lionel Seinturier.
The success of Component-Based Software Engineering has been proved by the variety of its applications, from the general component frameworks, such as Fractal, to domain specific component frameworks (DSCF) addressing a wide scale of challenges such as embedded or real-time constraints, dynamic adaptability, distribution support. DSCF offers a domain-specific component model and a tool-support that allow developers to address domain-specific challenges by using appropriate abstractions available at the component-model level. Although, the ad-hoc nature of these frameworks hamper the reuse of features across different domains. According to our experience in this field, we believe that DSCFs actually share many architectural concepts, design patterns, and principles that are applied when designing and implementing the domain-specific parts of these frameworks. From this observation, we proposed Hulotte [21] for the specification and implementation of arbitrary domain-specific concerns in a unified way, which is easily extensible towards different application domains. Hulotte relies on a generic component model for which the architectural artifacts are annotated by domain-specific annotations. The latter are then implemented by dedicated runtime infrastructures within extensible component containers. Moreover, Hulotte allows the definition and checking of domain-specific constraints from components' architecture to their implementations [25] . Hulotte has been experimented for RTSJ-based systems (Real-Time Specification for Java), distributed and reconfigurable component-based systems.