Ensuring consistent dynamic adaptation: an approach from design to runtime
Résumé
Adaptive software is a class of software which is able to dynamically modify at run-time its own internal structure and hence its behavior in response to changes in its operating environment. Adaptive software development has been an emerging research area of software engineering in the last decade. Many existing approaches use techniques issued from software product line to develop adaptive software. They use models to specify variability and architecture of a product family and generate product architecture. These models are also used in a generation process to deduce reconfiguration actions carried out at runtime. However, the replacement of components by another ones at runtime remains a complex task since it must ensure the validity of new version, in addition to preserving the correct completion of ongoing activities. In this paper, we propose an approach to specify the necessary information at design time for identifying the best moment to reconfigure the system. Moreover, we define an adaptation mechanism to take this information and realize a consistent dynamic adaptation to guarantee the system consistency.