Safety assurance of a complex system cannot be completely ensured at design/development time since most uncertainties and unknowns are revealed when the system is deployed in a real environment. Safety assurance at runtime can be addressed by using models formalizing those safety assertions the system has to guarantee during operation, and specifying enforcement strategies aimed at preserving or eventually restoring safety.This paper presents an approach to runtime safety enforcement of software systems based on the MAPE-K control loop architecture for system monitoring and control, and on the State Machine as runtime model to specify safety assertions and enforcement strategies for steering the correct system behavior. The enforcer software is designed to act as a proxy system which wraps around the software system to realize safety enforcement, both as black-box enforcement on unsafe I/O events and as gray-box enforcement on unsafe internal system changes. The proposed approach is supported by a component framework called RSE (Runtime Safety Enforcement) that is here illustrated by means of two real case studies in the health-care domain.
Read full abstract