Synthesizing dynamically updating controllers from changes in scenario-based specifications

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.

[1]  David Harel,et al.  Assert and negate revisited: modal semantics for UML sequence diagrams , 2006, SCESM.

[2]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[3]  Jon Whittle,et al.  On the role of the user in monitoring the environment in self-adaptive systems: a position paper , 2010, SEAMS '10.

[4]  Holger Giese,et al.  Modular design and verification of component-based mechatronic systems with online-reconfiguration , 2004, SIGSOFT '04/FSE-12.

[5]  Sagar Chaki,et al.  Verification of Evolving Software , 2004 .

[6]  Sameer Ajmani,et al.  Automatic software upgrades for distributed systems , 2004 .

[7]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[8]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[9]  Kim Guldstrand Larsen,et al.  UPPAAL-Tiga: Timed Games for Everyone , 2006 .

[10]  Theo D'Hondt,et al.  Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates , 2007, IEEE Transactions on Software Engineering.

[11]  Luciano Baresi,et al.  Version-consistent dynamic reconfiguration of component-based distributed systems , 2011, ESEC/FSE '11.

[12]  David Harel,et al.  Synthesizing State-Based Object Systems from LSC Specifications , 2000, Int. J. Found. Comput. Sci..

[13]  Julian Rathke,et al.  Migrating protocols in multi-threaded message-passing systems , 2009, HotSWUp '09.

[14]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[15]  Deepak Gupta,et al.  On‐line software version change using state transfer between processes , 1993, Softw. Pract. Exp..

[16]  Sagar Chaki,et al.  Verification of evolving software via component substitutability analysis , 2008, Formal Methods Syst. Des..

[17]  Jeffrey S. Foster,et al.  Efficient systematic testing for dynamically updatable software , 2009, HotSWUp '09.

[18]  Martin S. Feather,et al.  Requirements monitoring in dynamic environments , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[19]  Scenario-Based Design and Simulation of Mechatronic Systems , 2009 .

[20]  Insup Lee,et al.  DYMOS: a dynamic modification system , 1983 .