Skip to main content

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

  • Chapter
Specification, Algebra, and Software

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8373))

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hicks, M., Nettles, S.: Dynamic software updating. ACM TOPLAS 27, 1049–1096 (2005)

    Article  Google Scholar 

  2. Duggan, D.: Type-based hot swapping of running modules. In: Functional Programming, vol. 36, pp. 62–73. ACM (2001)

    Google Scholar 

  3. Stoyle, G., Hicks, M., Bierman, G., et al.: Mutatis mutandis: safe and predictable dynamic software updating. ACM TOPLAS 40, 183–194 (2005)

    Google Scholar 

  4. Neamtiu, I., Hicks, M., Foster, J., et al.: Contextual effects for version-consistent dynamic software updating and safe concurrent programming. In: POPL, vol. 43, pp. 37–49. ACM (2008)

    Google Scholar 

  5. Gupta, D., Jalote, P., Barua, G.: A formal framework for on-line software version change. IEEE Transactions on Software Engineering 22(2), 120–131 (1996)

    Article  Google Scholar 

  6. Hayden, C.M., Magill, S., Hicks, M., Foster, N., Foster, J.S.: Specifying and verifying the correctness of dynamic software updates. In: Joshi, R., Müller, P., Podelski, A. (eds.) VSTTE 2012. LNCS, vol. 7152, pp. 278–293. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  7. Zhang, M., Ogata, K., Futatsugi, K.: Formalization and verification of behavioral correctness of dynamic software updates. Electr. Notes Theor. Comput. Sci. 294, 12–23 (2013)

    Article  Google Scholar 

  8. Futatsugi, K., Goguen, J.A., Ogata, K.: Verifying design with proof scores. In: Meyer, B., Woodcock, J. (eds.) Verified Software. LNCS, vol. 4171, pp. 277–290. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  9. Ogata, K., Futatsugi, K.: Proof scores in the OTS/CafeOBJ method. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 170–184. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  10. Ogata, K., Futatsugi, K.: Compositionally writing proof scores of invariants in the OTS/CafeOBJ method. J. UCS 19, 771–804 (2013)

    Google Scholar 

  11. Ogata, K., Futatsugi, K.: Simulation-based verification for invariant properties in the OTS/CafeOBJ method. Electr. Notes Theor. Comput. Sci. 201, 127–154 (2008)

    Article  Google Scholar 

  12. Kong, W., Ogata, K., Futatsugi, K.: Towards reliable E-Government systems with the OTS/CafeOBJ method. IEICE Transactions 93-D, 974–984 (2010)

    Article  Google Scholar 

  13. Hasebe, K., Okada, M.: Formal analysis of the ikp electronic payment protocols. In: Okada, M., Babu, C. S., Scedrov, A., Tokuda, H. (eds.) ISSS 2002. LNCS, vol. 2609, pp. 441–460. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  14. Ogata, K., Futatsugi, K.: Formal verification of the horn-preneel micropayment protocol. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol. 2575, pp. 238–252. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. Ogata, K., Futatsugi, K.: Formal analysis of the bakery protocol with consideration of nonatomic reads and writes. In: Liu, S., Araki, K. (eds.) ICFEM 2008. LNCS, vol. 5256, pp. 187–207. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  16. Gupta, D., Jalote, P.: On-line software version change using state transfer between processes. Software: Practice and Experience 23, 949–964 (1993)

    Google Scholar 

  17. Neamtiu, I., Hicks, M.W., Stoyle, G., et al.: Practical dynamic software updating for c. In: PLDI, ACM SIGPLAN, pp. 72–83 (2006)

    Google Scholar 

  18. Chen, H., Yu, J., Hang, C., et al.: Dynamic software updating using a relaxed consistency model. IEEE Transactions on Software Engineering (99), 679–694 (2011)

    Google Scholar 

  19. Segal, M., Frieder, O.: On-the-fly program modification: Systems for dynamic updating. IEEE Software 10, 53–65 (1993)

    Article  Google Scholar 

  20. Hayden, C.M., Smith, E.K., Denchev, M., Hicks, M., Foster, J.S.: Kitsune: Efficient, general-purpose dynamic software updating for c. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, pp. 249–264. ACM (2012)

    Google Scholar 

  21. Diaconescu, R., Futatsugi, K.: CafeOBJ report: The language. In: Proof Techniques, and Methodologies for Object-Oriented Algebraic Specification, vol. 6 (1998)

    Google Scholar 

  22. Ogata, K., Futatsugi, K.: Some tips on writing proof scores in the OTS/CafeOBJ method. In: Futatsugi, K., Jouannaud, J.-P., Meseguer, J. (eds.) Goguen Festschrift. LNCS, vol. 4060, pp. 596–615. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  23. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  24. Zhang, M., Ogata, K., Nakamura, M.: Translation of state machines from equational theories into rewrite theories with tool support. IEICE Transactions on Information and Systems 94-D, 976–988 (2011)

    Article  Google Scholar 

  25. Nakamura, M., Kong, W., et al.: A specification translation from behavioral specifications to rewrite specifications. IEICE Transactions 91-D, 1492–1503 (2008)

    Article  Google Scholar 

  26. Ogata, K., Nakano, M., Kong, W., Futatsugi, K.: Induction-guided falsification. In: Liu, Z., Kleinberg, R.D. (eds.) ICFEM 2006. LNCS, vol. 4260, pp. 114–131. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  27. Zhang, J., Cheng, B.H.C.: Model-based development of dynamically adaptive software. In: ICSE, pp. 371–380. IEEE (2006)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Zhang, M., Ogata, K., Futatsugi, K. (2014). Verifying the Design of Dynamic Software Updating in the OTS/CafeOBJ Method. In: Iida, S., Meseguer, J., Ogata, K. (eds) Specification, Algebra, and Software. Lecture Notes in Computer Science, vol 8373. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-54624-2_28

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-54624-2_28

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-54623-5

  • Online ISBN: 978-3-642-54624-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics