Skip to Main Content
Many software-intensive systems are expected to run continuously while their environments change and their requirements evolve, so their implementation must be updated dynamically to satisfy changing requirements while coping with changing environment properties. Techniques for developing dynamically updating systems exist, but thus far almost no attention has been paid to defining when updates are correct with respect to a changing specification, i.e., when a system can safely disregard its current obligations and change its behavior to satisfy the new specification. Based on an intuitive example, we elaborate a formal definition for correct updates of a current implementation with respect to specification changes. Moreover, we present an approach for synthesizing a dynamically updating controller from the current implementation and changes in a scenario-based specification that updates to the new behavior as soon as possible. The presented technique is a first step towards the specification-driven development of safe dynamically updating controllers.