On the Use of Formal Specifications as Part of Running Programs

  • Giovanna Di Marzo Serugendo
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3914)


Issues related to large scale systems made of autonomous components encompass interoperability among independently developed software and adaptability to changing environmental conditions. Formal specifications are traditionally used at design time for software engineering tasks. However, recently, several attempts of using formal specifications at run-time have been realised that let envisage a future use of formal specifications at run-time that will enhance interoperability and adaptability of autonomous components.

This paper intends to highlight the potentialities of the use of formal specifications at run-time as a support for the correct execution of such components. This paper reviews and discusses the use of formal specifications at run-time from different perspectives: software engineering, run-time code evolution, adaptive middleware, trust and security, or business applications. It highlights the potentialities of the use of formal specifications at run-time as a support for interoperability and adaptability of interacting autonomous components. It identifies as well application domains and open issues related to the combination of specifications and code in the framework of large scale systems.


Model Check Formal Method Business Application Exception Handling Autonomic Computing 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anlauff, M., Pavlovic, D., Smith, D.R.: Composition and refinement of evolving specifications. In: Proceedings of Workshop on Evolutionary Formal Software Development (2002)Google Scholar
  2. 2.
    Appel, A.W., Felten, E.W.: Proof-carrying authentication. In: 6th ACM Conference on Computer and Communications Security (1999)Google Scholar
  3. 3.
    Balze, M., Feigenbaum, J., Lacy, J.: Decentralized trust management. In: IEEE Conference on Security and Privacy (1996)Google Scholar
  4. 4.
    Barnett, M., Schulte, W.: Spying on components: A runtime verification technique. In: Workshop on Specification and Verification of Component-Based Systems (2001)Google Scholar
  5. 5.
    Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 44–57. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  6. 6.
    Bauer, L., Schneider, M.A., Felten, E.W.: A proof-carrying authorization s stem. Technical Report TR-638-01, Princeton University Computer Science (2001)Google Scholar
  7. 7.
    Beaufour, A.: Using Bluetooth-based Smart-Tags for Data Dissemination. In: Pervasive Computing 2002 (2002)Google Scholar
  8. 8.
    Beaufour, A., Leopold, M., Bonnet, P.: Smart-tag based data dissemination. In: ACM International Workshop on Wireless Sensor Networks and Applications, WSNA 2002 (2002)Google Scholar
  9. 9.
    Bellur, U., Narendra, N.: Towards a Programming Model and Middleware Architecture for Self-Configuring Systems. In: The First International Conference on Communication Systems Software and Middleware (2006)Google Scholar
  10. 10.
    Bodden, E.: A Lightweight LTL Runtime Verification Tool for Java. In: Vlissides, J., Schmidt, D. (eds.) OOPSLA Companion, pp. 306–307 (2004)Google Scholar
  11. 11.
    Cahill, V., et al.: Using trust for secure collaboration in uncertain environments. IEEE Pervasive Computing Magazine 2(3), 52–61 (2003); Special issue Dealing with UncertaintyCrossRefGoogle Scholar
  12. 12.
    Di Marzo Serugendo, G., Deriaz, M.: A social semantic infrastructure for decentralised systems based on specification-carrying code and trust. In: Hales, D., Edmonds, B. (eds.) Socially-Inspired Computing (2005)Google Scholar
  13. 13.
    Di Marzo Serugendo, G., Deriaz, M.: Specification-Carrying Code for Self- Managed Systems. In: International Workshop on Self-Managed Systems & Services (2005)Google Scholar
  14. 14.
    Drusinsky, D.: The Temporal Rover and the ATG Rover. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 323–330. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  15. 15.
    Fensel, D.: Ontologies: A Silver Bullet for Knowledge Management and Electronic Commerce. Springer, Heidelberg (1998)MATHGoogle Scholar
  16. 16.
    Havelund, K., Rosu, G. (eds.): Proceedings of The Run-Time Verification Workshop (RV 2001). Electronic Notes in Theoretical Computer Science 55(2) (2001)Google Scholar
  17. 17.
    Havelund, K., Rosu, G. (eds.): Proceedings of The Run-Time Verification Workshop (RV 2002). Electronic Notes in Theoretical Computer Science 70(4) (2002)Google Scholar
  18. 18.
    Havelund, K., Rosu, G.: An overview of the runtime verification tool java pathexplorer. Formal Methods in System Design 24(2), 189–215 (2004)CrossRefMATHGoogle Scholar
  19. 19.
    Johnson, M., Dampney, C.N.G.: On Category Theory as a (meta) Ontology for Information Systems Research. In: International Conference On Formal Ontology in Information Systems, FOIS 2001 (2001)Google Scholar
  20. 20.
    Kephart, J.O., Chess, D.M.: The Vision of Autonomic Computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  21. 21.
    Kutvonen, L., Ruokolainen, T., Metso, J., Haataja, J.: Interoperability middleware for federated enterprise applications in Web-Pilarcos. In: Konstantas, D., Bourrires, J.-P., Lonard, M., Boudjlida, N. (eds.) Interoperability of Enterprise Software and Applications, pp. 185–196 (2005)Google Scholar
  22. 22.
    Li, N., Feigenbaum, J., Grosof, B.N.: A logic-based knowledge representation for authorization with delegation. In: 12th IEEE Computer Security Foundations Workshop (1999)Google Scholar
  23. 23.
    Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1991)MATHGoogle Scholar
  24. 24.
    Meyer, B.: Applying Design by Contract. IEEE Computer 25(10), 40–51 (1992)CrossRefGoogle Scholar
  25. 25.
    Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, Englewood Cliffs (1997)MATHGoogle Scholar
  26. 26.
    Meyer, B.: The grand challenge of trusted components. In: ICSE, pp. 660–667. IEEE, Los Alamitos (2003)Google Scholar
  27. 27.
    Meyer, B., Mingins, C., Schmidt, H.: Providing trusted components to the industry. IEEE Computer 31(5), 104–105 (1998)CrossRefGoogle Scholar
  28. 28.
    Necula, G.: Proof-carrying code. In: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 1997), pp. 106–119 (1997)Google Scholar
  29. 29.
    Necula, G., Lee, P.: Proof-carrying code. Technical Report CMU-CS-96-165, School of Computer Science, Carnegie Mellon University (September 1996)Google Scholar
  30. 30.
    Oriol, M., Di Marzo Serugendo, G.: A disconnected service architecture for unanticipated run-time evolution of code. IEE Proceedings-Software, Special Issue on Unanticipated Software Evolution (2004)Google Scholar
  31. 31.
    Pavlovic, D.: Towards semantics of self-adaptive software. In: Robertson, P., Shrobe, H.E., Laddaga, R. (eds.) IWSAS 2000. LNCS, vol. 1936, pp. 50–65. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  32. 32.
    Sokolsky, O., Viswanathan, M. (eds.): Proceedings of The Run-Time Verification Workshop (RV-2003). Electronic Notes in Theoretical Computer Science, vol. 89(2). Elsevier Science B. V, Amsterdam (2003)Google Scholar
  33. 33.
    Venkatasubramanian, N.: Safe Composability of Middleware Services. Communications of the ACM 45(6), 49–52 (2002)CrossRefGoogle Scholar
  34. 34.
    Weeks, S.: Understanding trust management systems. In: 2001 IEEE Symposium on Security and Privacy (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Giovanna Di Marzo Serugendo
    • 1
  1. 1.Department of Information SystemsUniversity of Geneva (CUI)Geneva 4Switzerland

Personalised recommendations