Skip to main content
Log in

Formally specifying CARA in Java

  • Special section: Analysis of requirements for a medical device – the computer-assisted resuscitation algorithm (CARA) experience
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

A restricted dialect of Java is proposed as a language for writing formal specifications for reactive systems. Specifications written in this dialect have one Java class per system module. Each class uses static fields to record module state, uses synchronized static methods as entry points for services provided by the module, and communicates with other modules by method calls. Specifications written in this form are directly executable, can serve as a reference model for subsequent implementations, and can also be used as a target for formal verification techniques. Application of the method to construct an executable specification of the CARA (Computer-Assisted Resuscitation Algorithm) system is described.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Allen R, Garlan D (1997) A formal basis for architectural connection. ACM Trans Softw Eng Methodol 6(3):213–249

    Article  Google Scholar 

  2. Bernardo M, Ciancarini P, Donatiello L (2000) On the formalization of architectural types with process algebras. In: Rosenblum D (ed) Proceedings of the ACM/IEEE international conference on fundamentals of software engineering (FSE-8), San Diego. ACM Press, New York, pp 140–148

  3. Cleaveland R, Sims S (1996) The NCSU concurrency workbench. In: Alur R, Henzinger TA (eds) Computer aided verification (CAV’96), New Brunswick, NJ, July 1996. Lecture notes in computer science, vol 1102. Springer, Berlin Heidelberg New York, pp 394–397

  4. Corbett JC, Dwyer MB, Hatcliff J, Laubach S, Păsăreanu CS, Robby, Zheng H (2000) Bandera: extracting finite-state models from Java source code. In: Proceedings of the 22nd international conference on software engineering, Limerick, Ireland, month 2000. IEEE Press, New York, pp 439–448

  5. Hatcliff J, Dwyer M (2001) Using the Bandera tool set to model-check properties of concurrent Java software. In: Proceedings of the 12th international conference on concurrency theory (CONCUR’01), location, day month 2001. Lecture notes in computer science, vol 2154. Springer, Berlin Heidelberg New York, pp 39–58

  6. Inverardi P, Wolf AL, Yankelevich D (2000) Static checking of system behaviors using derived component assumptions. ACM Trans Softw Eng Methodol 9(3):239–272

    Article  Google Scholar 

  7. Kwiatkowska M (2003) Model checking for probability and time: from theory to practice. In: Proceedings of the 18th IEEE symposium on logic in computer science (LICS’03), location, June 2003, pages

  8. Kwiatkowska M, Norman G, Parker D (2002) PRISM: Probabilistic symbolic model checker. In: Field T, Harrison P, Bradley J, Harder U (eds) Proceedings of the 12th international conference on modelling techniques and tools for computer performance evaluation (TOOLS’02), location, day month 2002. Lecture notes in computer science, vol 2324. Springer, Berlin Heidelberg New York, pp 200–204

  9. Larsen KG, Pettersson P, Yi W (1997) UPPAAL in a nutshell. Int J Softw Tools Technol Transfer 1:134–152

    Article  MATH  Google Scholar 

  10. Lynch NA, Tuttle M (1987) Hierarchical correctness proofs for distributed algorithms. In: Proceedings of the 6th annual ACM symposium on principles of distributed computing, location, day month 1987, pp 137–151

  11. Magee J, Dulay N, Eisenbach S, Kramer J (1995) Specifying distributed software architectures. In: Schafer W, Botella P (eds) Proceedings of the 5th European software engineering conference (ESEC ’95), Sitges, Spain, day month 1995. Lecture notes in computer science, vol 989. Springer, Berlin Heidelberg New York, pp 137–153

  12. Milner R (1989) Communication and concurrency. International series in computer science. Prentice-Hall, Upper Saddle River, NJ

  13. Stark EW, Pemmasani G (1999) Implementation of a compositional performance analysis algorithm for probabilistic I/O automata. In: Proceedings of the 7th international workshop on process algebra and performance modelling (PAPM’99), Zaragoza, Spain, September 1999, (in press)

  14. Stark E, Cleaveland R, Smolka S (2003) A process-algebraic language for probabilistic I/O automata. In: Proceedings of the 14th international conference on concurrency theory (CONCUR’03), Marseilles, France, September 2003

  15. Wu S-H, Smolka SA, Stark EW (1997) Composition and behaviors of probabilistic I/O automata. Theor Comput Sci 176(1–2):1–38

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eugene W. Stark.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Stark, E. Formally specifying CARA in Java. STTT 5, 331–350 (2004). https://doi.org/10.1007/s10009-003-0124-7

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-003-0124-7

Keywords

Navigation