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.
Similar content being viewed by others
References
Allen R, Garlan D (1997) A formal basis for architectural connection. ACM Trans Softw Eng Methodol 6(3):213–249
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
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
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
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
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
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
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
Larsen KG, Pettersson P, Yi W (1997) UPPAAL in a nutshell. Int J Softw Tools Technol Transfer 1:134–152
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
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
Milner R (1989) Communication and concurrency. International series in computer science. Prentice-Hall, Upper Saddle River, NJ
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)
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
Wu S-H, Smolka SA, Stark EW (1997) Composition and behaviors of probabilistic I/O automata. Theor Comput Sci 176(1–2):1–38
Author information
Authors and Affiliations
Corresponding author
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-003-0124-7