Software has a vital role in our society and the qualities of many software systems are of crucial importance. Examples are the availability of software for media and the robustness of software for manufacturing. Due to the ever-growing complexity of software, ensuring the required qualities constitutes a tremendous challenge. Self-adaptation has been widely recognized as an effective approach to manage the complexity and dynamicity of modern software systems. Self-adaptation endows a system with the capability to adapt itself autonomously to changes in its environment to achieve particular quality objectives. Despite substantial achievements in the field, major scientific and technical gaps must be addressed to deal with the progressing distribution and integration of software systems. In particular, existing approaches only support centralized or hierarchical control of adaptation. In a growing class of software systems, central control is not an option, e.g. large-scale sensor networks, integrated supply chains, and federated cloud infrastructures. The overall goal of this project is to study and develop a scientific foundation for engineering decentralized self-adaptive systems. Concretely, the project will study and develop: (1) a set of formally founded high-level design models for decentralized self-adaptation, (2) a set of supporting coordination mechanisms, and (3) an approach for formal analysis of decentralized self-adaptation that combines static with runtime verification. The focus will be on support for two important qualities of modern software systems: robustness and openness. To fundamentals will be applied to concrete applications in the robotics domain, and the research results will be validated in an empirical study. The applicant’s objective is to establish a research team with three Ph.D students. The grant would support the integration of the applicant, who recently started to work at Linnaeus University, Sweden, with establishing this team.
Fields of science
Call for proposal
See other projects for this call