A framework to support consistent design and evolution of adaptive systems

Marco Mori
Nowadays software systems in the ubiquitous environment have to consider variability as their main characteristic. The ever-changing environment affects these systems and their ability of satisfying functional and non-functional requirements. It is challenging to create and to support the variability of such applications taking into account different variability dimensions. Traditional software processes are not suited for adaptive applications since they consider a fixed definition of context
more » ... nd a clear division between design-time and runtime activities. Attempts to manage variability are only focused at specific phases of the process while it is missing a comprehensive process to face variability at all phases thus supporting the complete creation and the evolution of adaptive applications. The thesis aims to give a possible solution to these problems by defining a new software lifecycle process for building and evolving adaptive applications in a consistent manner. A system is represented following a feature engineering perspective which considers together requirements and code artifacts. We have identified which are the inconsistencies for evolving a system and we have discovered that in order to keep the correctness of the evolution it is necessary to consider system models ranging from the model space to the solution space. The proposed process encompasses two different kinds of evolution: design-time and run-time evolutions. Design-time evolutions are planned before running the system by means of a set of variants whose behavior consistently fit a set of predefined contexts. These alternatives are checked for inconsistencies at design time whereas reconfiguration decisions are taken at run-time based on the current context. Results shows that it is promising to consider predictive information for selecting the best reconfiguration especially in the presence of multiple competing objectives. Runtime evolutions are enacted by enhancing the system with new requirements that may be introduced by the user [...]
doi:10.6092/imtlucca/e-theses/35 fatcat:ghaqsjwrcrf2tlk7sc2u6d55me