Designing Self-Adaptive Systems Involving Humans
The future “smart world” is being designed as a complex eco-system made of a wide variety of devices and distributed services which interact each other and that are controlled by a great number of computing elements and users (humans). These systems are crucial to support citizen’s mobility, quality of life, and well-being as well as the prosperity and sustainability of our society, opening up a wide variety of possibilities in different application domains such as the Smart Cities and the Autonomous Vehicles.
This type of systems are characterized for being capable of adapting themselves autonomously at run time to: new environment conditions, unpredictable situations, user changing needs, new types of devices, new technologies to interact with or new services to consume. Even though these adaptations have to be managed autonomously, the capability of these systems to provide reliable services in presence of (internal and external) changes is affected for its increasing complexity and the dynamic and unpredictable nature of the environments where adaptations take place. For this reason, in many situations it is interesting that humans take part in the adaptation process to help the system to face conflicts that are difficult to solve autonomously and to improve the adaptation strategy with their feedback (“human in the loop”).
The development of systems of this kind, due to its nature and complexity, requires a new approach from the traditional bases of Software Engineering: on the one hand, these systems need to be designed with information enough about themselves and their surroundings so that they can react autonomously to face dynamic and unpredictable situations; on the other hand, humans play an important role in both the conception and design of these systems, and the interaction with them once they are deployed. So, the feedback provided by humans is considered during the lifecycle of these systems to achieve a wide acceptance and a better user experience.
The main objective of this project is to provide solutions within the scope of the Software Engineering field (methods, techniques and tools) to allow the systematic design and development of software systems with autonomous computation capabilities involving humans from early engineering stages. It will provide solutions that allow software engineers to face more efficiently and effectively the activities that arise during the construction of such systems, focusing on reaching the following specific objectives: 1) involving humans within the “control loop” of these systems so they can participate taking adaptation decisions, but always maximizing the system autonomy and avoiding intrusive and annoying systems; and 2) designing a generic, personalized and configurable adaptation framework inspired by the “control theory” that implements the necessary mechanisms to endow the system with autonomous computing capabilities and to support and monitor the interaction with humans.
The intended results of this project consist of methods, tools, and techniques to improve the design and development of autonomous systems where humans participate in the different stages of the development process. The results will be validated by means of prototypes developed within the scope of the Smart Buildings and Autonomous Vehicles areas, and will be applied in real scenarios such as Valencia Ciudad Inteligente (VLCi).
Main Researcher:
Vicente Pelechano Ferragut
Period: 2017 -2020
References: TIN2017-84094-R
Funding Organization:
Ministerio de Economía y Competitividad