Verifying the Design of Dynamic Software Updating in the OTS/CafeOBJ Method

Dynamic Software Updating (DSU) is a technique for updating running software systems without incurring downtime. However, a challenging problem is how to design a correct dynamic update so that the system after being updated will run as expected instead of causing any inconsistencies or even crashes. The OTS/CafeOBJ method is an effective and practical approach to specifying and verifying the design of software. In this paper, we propose an algebraic way of specifying and verifying the design of dynamic updates in the OTS/CafeOBJ method. By verifying the design of a dynamic update, we can (1) gain a better understanding of the update, e.g., how the behavior of the running system is affected by the update, (2) identify updating points where the dynamic update can be safely applied, (3) detect potential errors, and hence (4) design a safer dynamic update.

[1]  Kazuhiro Ogata,et al.  Formal Verification of the Horn-Preneel Micropayment Protocol , 2003, VMCAI.

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

[3]  Haibo Chen,et al.  Dynamic Software Updating Using a Relaxed Consistency Model , 2011, IEEE Transactions on Software Engineering.

[4]  Kazuhiro Ogata,et al.  Some Tips on Writing Proof Scores in the OTS/CafeOBJ Method , 2006, Essays Dedicated to Joseph A. Goguen.

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

[6]  Michael Hicks,et al.  Contextual effects for version-consistent dynamic software updating and safe concurrent programming , 2008, POPL '08.

[7]  Razvan Diaconescu,et al.  Cafeobj Report - The Language, Proof Techniques, and Methodologies for Object-Oriented Algebraic Specification , 1998, AMAST Series in Computing.

[8]  Donald Sannella,et al.  Horizontal Composability Revisited , 2006, Essays Dedicated to Joseph A. Goguen.

[9]  Kazuhiro Ogata,et al.  A Specification Translation from Behavioral Specifications to Rewrite Specifications , 2008, IEICE Trans. Inf. Syst..

[10]  Feng Long Practical Dynamic Software Updating for C , 2007 .

[11]  Kazuhiro Ogata,et al.  Formal Analysis of the iKP Electronic Payment Protocols , 2002, ISSS.

[12]  Akinori Yonezawa,et al.  Software Security — Theories and Systems , 2003, Lecture Notes in Computer Science.

[13]  Kazuhiro Ogata,et al.  Verifying Design with Proof Scores , 2005, VSTTE.

[14]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[15]  Kazuhiro Ogata,et al.  Induction-Guided Falsification , 2006, ICFEM.

[16]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[17]  Kazuhiro Ogata,et al.  Simulation-based Verification for Invariant Properties in the OTS/CafeOBJ Method , 2008, Electron. Notes Theor. Comput. Sci..

[18]  Kazuhiro Ogata,et al.  Towards Reliable E-Government Systems with the OTS/CafeOBJ Method , 2010, IEICE Trans. Inf. Syst..

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

[20]  Kazuhiro Ogata,et al.  Translation of State Machines from Equational Theories into Rewrite Theories with Tool Support , 2011, IEICE Trans. Inf. Syst..

[21]  Ophir Frieder,et al.  On-the-fly program modification: systems for dynamic updating , 1993, IEEE Software.

[22]  Michael Hicks,et al.  Specifying and Verifying the Correctness of Dynamic Software Updates , 2012, VSTTE.

[23]  Dominic Duggan,et al.  Type-based hot swapping of running modules , 2005, Acta Informatica.

[24]  Kazuhiro Ogata,et al.  Formal Analysis of the Bakery Protocol with Consideration of Nonatomic Reads and Writes , 2008, ICFEM.

[25]  Gavin M. Bierman,et al.  Mutatis Mutandis: Safe and predictable dynamic software updating , 2007, TOPL.

[26]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[27]  Kazuhiro Ogata,et al.  Proof Scores in the OTS/CafeOBJ Method , 2003, FMOODS.

[28]  Kazuhiro Ogata,et al.  Compositionally Writing Proof Scores of Invariants in the OTS/CafeOBJ Method , 2013, J. Univers. Comput. Sci..

[29]  Michael Hicks,et al.  Kitsune: Efficient, General-Purpose Dynamic Software Updating for C , 2014 .

[30]  Kazuhiro Ogata,et al.  Formalization and Verification of Behavioral Correctness of Dynamic Software Updates , 2013, Electron. Notes Theor. Comput. Sci..

[31]  Ajitha Rajan,et al.  Requirements Coverage as an Adequacy Measure for Conformance Testing , 2008, ICFEM.