PhD Thesis

On June 22nd, 2012, I presented my PhD thesis and obtained the degree of “Dottore in Ricerca in Informatica e Telecomunicazioni” (PhD in Informatics and Telecommunications) from the Information Engineering and Computer Science department of the University of Trento, Italy. You can download the final version of the thesis below or directly from the University of Trento ePrints archive.

If you’re a PhD student at DISI/Unitn like I was and if you use LaTeX for writing papers and intends to do so for your thesis as well, you might be interested in a template that already includes all the necessary formatting, cover, table of contents, etc. This template is by no means official, but I used it for my thesis and there were no complaints from the department. The main file [cci]phd-thesis.tex[/cci] contains comments with instructions of how to use the template, based on a file sent to me by a colleague, Fabiano Dalpiaz.


Thesis title: Requirements-based Software System Adaptation

Abstract:

Nowadays, there are more and more software systems operating in highly open, dynamic and unpredictable environments. Moreover, as technology advances, requirements for these systems become ever more ambitious. We have reached a point where system complexity and environmental uncertainty are major challenges for the Information Technology industry. A solution proposed to deal with this challenge is to make systems (self-)adaptive, meaning they would evaluate their own behavior and performance, in order to re-plan and reconfigure their operations when needed.

In order to develop an adaptive system, one needs to account for some kind of feedback loop. A feedback loop constitutes an architectural prosthetic to a system proper, introducing monitoring and adaptation functionalities to the overall system. Even if implicit or hidden in the system’s architecture, adaptive systems must have a feedback loop among their components in order to evaluate their behavior and act accordingly. In this thesis, we take a Requirements Engineering perspective to the design of adaptive software systems and, given that feedback loops constitute an (architectural) solution for adaptation, we ask the question: what is the requirements problem this solution is intended to solve?

To answer this question, we define two new classes of requirements: Awareness Requirements prescribe the indicators of requirements convergence that the system must strive to achieve, whereas Evolution Requirements represent adaptation strategies in terms of changes in the requirements models themselves. Moreover, we propose that System Identification be conducted to elicit parameters and analyze how changes in these parameters affect the monitored indicators, representing such effect using differential relations.

These new elements represent the requirements for adaptation, making feedback loops a first-class citizen in the requirements specification. Not only they assist requirements engineers in the task of elicitation and communication of adaptation requirements, but with the proper machine-readable representations, they can serve as input to a framework that implements the generic functionalities of a feedback loop, reasoning about requirements at runtime. We have developed one such framework, called Zanshin, and validated our proposals through experiments based on a well-known case study adopted from the literature.