What is the design and decision-making problem to solve, when engineering adaptive systems?
With Alexander Borgida at Rutgers, Neil Ernst at the Software Engineering Institute Carnegie Mellon University, and John Mylopoulos at University of Trento, I proposed a statement of this problem, and a formal language to represent the problem and its solutions. The paper will be published at the ACM Transactions on Management Information Systems.
The abstract is below. I will post the paper as soon as ACM publishes it.
Requirements Engineering (RE) focuses on eliciting, modelling, and analysing the requirements and environment of a system-to-be in order to design its specification. The design of the specification, known as the Requirements Problem (RP), is a complex problem solving task, as it involves, for each new system, the discovery and exploration of, and decision making in a new problem space.
A system is adaptive if it can detect deviations between its runtime behaviour and its requirements, specifically situations where its behaviour violates one or more of its requirements. Given such a deviation, an Adaptive System uses feedback mechanisms to analyse these changes and decide, with or without human intervention, how to adjust its behaviour as a result.
We are interested in defining the Requirements Problem for Adaptive Systems (RPAS). In our case, we are looking for a configurable specification such that whenever requirements fail to be fulfilled, the system can go through a series of adaptations that change its configuration and eventually restore fulfilment of the requirements.
From a theoretical perspective, this paper formally shows the fundamental differences between standard RE (notably Zave & Jackson) and RE for Adaptive Systems (see the seminal work by Fickas & Feather, Letier & van Lamsweerde, Whittle et al.). The main contribution of this paper is to introduce the RPAS as a new RP class that is specific to Adaptive Systems. We relate the RPAS to RE research on the relaxation of requirements, the evaluation of their partial satisfaction, and the monitoring and control of requirements, all topics of particular interest in research on adaptive systems.
From an engineering perspective, we define a proto-framework for solving RPAS, which illustrates features needed in future frameworks for adaptive software systems.