The complexity of software and software-enabled systems and the need to reduce and master this complexity has led the software quality community to look for inspiration in diverse fields such as robotics, control theory and biology. Self-adaptive systems, i.e., systems that are able to adjust their behavior at run-time in response to the perception of the environment and the system itself have become an important topic within the software engineering community.
Fail-operational systems must continue to operate even in the case of a critical failure. Such systems place themselves automatically into a safe mode by fulfilling specific safety requirements. On the other hand, the connection of different distributed machines and people into an integrated network results in the emergence of cyber-physical-social systems. Elastic computing is applied in run-time systems with high availability, especially when there is need for dynamic scaling of resources. Here unneeded resources are removed whereas others are added on demand in an automated manner.
In such context, the task of verification and validation (V&V) is to provide suitable processes and evidence-based methods as well as techniques to guarantee a number of functional and non-functional properties during the operation of the system.
Additionally, runtime verification and monitoring can be applied to ensure the safety of non-functional properties of a system during run-time. The quality assurance and measurement of non-functional properties, such as performance and scalability, must be realized with the help of corresponding metrics and simulations.
Requirements engineering, testing and diagnosis represent a major challenge for every of these systems, mainly because of the high number of interacting elements and its indeterministic character.