  Providing assurances for self-adaptive systems is challenging. A primary
underlying problem is uncertainty that may stem from a variety of different
sources, ranging from incomplete knowledge to sensor noise and uncertain
behavior of humans in the loop. Providing assurances that the self-adaptive
system complies with its requirements calls for an enduring process spanning
the whole lifetime of the system. In this process, humans and the system
jointly derive and integrate new evidence and arguments, which we coined
perpetual assurances for self-adaptive systems. In this paper, we provide a
background framework and the foundation for perpetual assurances for
self-adaptive systems. We elaborate on the concrete challenges of offering
perpetual assurances, requirements for solutions, realization techniques and
mechanisms to make solutions suitable. We also present benchmark criteria to
compare solutions. We then present a concrete exemplar that researchers can use
to assess and compare approaches for perpetual assurances for self-adaptation.

Software Engineering