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 and 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 as a consequence of unpredicted context situations. In this case the consistency check for a new alternative behavior is performed directly at run-time. The proposed process is supported by an evolution framework. The framework is defined in terms of a generic definition and one possible instantiation. The generic interface architecture describes the interfaces that should be provided to support the software process for adaptive systems. A possible instantiation with current technologies shows the feasibility of supporting the process.

A framework to support consistent design and evolution of adaptive systems

2012

Abstract

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 and 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 as a consequence of unpredicted context situations. In this case the consistency check for a new alternative behavior is performed directly at run-time. The proposed process is supported by an evolution framework. The framework is defined in terms of a generic definition and one possible instantiation. The generic interface architecture describes the interfaces that should be provided to support the software process for adaptive systems. A possible instantiation with current technologies shows the feasibility of supporting the process.
2012
Inglese
QA75 Electronic computers. Computer science
Inverardi, Prof. Paola
Scuola IMT Alti Studi di Lucca
File in questo prodotto:
File Dimensione Formato  
Mori_phdthesis.pdf

accesso aperto

Tipologia: Altro materiale allegato
Dimensione 15.26 MB
Formato Adobe PDF
15.26 MB Adobe PDF Visualizza/Apri

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14242/152249
Il codice NBN di questa tesi è URN:NBN:IT:IMTLUCCA-152249