Abstract
Circus is a new notation that may be used to specify both data and behavioural aspects of a system, and has an associated refinement calculus. In this work, we present rules to translate Circus programs to Java programs that use JCSP, a library that implements Communicating Sequential Processes constructs. These rules can be used as a complement to the Circus algebraic refinement technique, or as a guideline for implementation. They are a link between the results on refinement in the context of Circus and a practical programming language in current use. The rules can also be used as the basis for a tool that mechanises the translation. Although a few case studies are already available in the literature, the industrial fire control system, whose refinement and implementation is discussed in this paper, is, as far as we know, the largest case study on the Circus refinement strategy.
Similar content being viewed by others
References
Abrial J-R (1996) The B-book: assigning programs to meanings Cambridge University Press, London
Börger E, Stärk RF (2003) Abstract state machines—a method for high-level system design and analysis. Springer, Berlin Heidelberg New York
Cavalcanti ALC, Sampaio ACA (2000) From CSP-OZ to Java with Processes (Extended Version). Technical report, Centro de Informática/UFPE, http://www.cin.ufpe.br/~lmf
Cavalcanti ALC, Sampaio ACA, Woodcock JCP (2003) A refinement strategy for circus. Formal Aspects Comput 15(2–3):146–181
Cavalcanti ALC, Woodcock JCP (1999) ZRC—a refinement calculus for Z. Formal Aspects Comput 10(3):267–289
Fischer C (1997) CSP-OZ: a combination of object-Z and CSP. In: Bowmann H, Derrick J (eds.) Formal methods for open object-based distributed systems (FMOODS’97), vol. 2. Chapman & Hall, London, pp. 423–438
Fischer C (2000) Combination and implementation of processes and data: from CSP-OZ to Java. PhD thesis, Fachbereich Informatik, Universität Oldenburg, Oldenburg, Germany
Hilderink G, Broenink J, Vervoort W, Bakkers A (1997) Communicating java threads. In: Parallel programming and Java conference
Hoare CAR (1985) Communicating sequential processes. Prentice-Hall, Englewood Cliffs
Hoare CAR, He J (1998) Unifying theories of programming. Prentice-Hall, Englewood Cliffs
Jones CB (1986) Systematic software development using VDM. Prentice-Hall International
Milner R (1989) Communication and concurrency. Prentice-Hall, Englewood Cliffs
Morgan C (1994) Programming from specifications. Prentice-Hall, Englewood Cliffs
Oliveira MVM (2005) A refinement calculus for circus. PhD Thesis, Additional Material, http://www.cs.york.ac.uk/~marcel/phd/
Oliveira MVM, Cavalcanti ALC (2004) From circus to JCSP. In: Davies et al J (eds) 6th international conference on formal engineering methods, vol. 3308 of LNCS. pp. 320–340. Springer, Berlin Heidelberg New York
Oliveira MVM, Cavalcanti ALC, Woodcock JCP (2004) Refining industrial scale systems in circus. In: East I, Martin J, Welch P, Duce D, Green M (eds.) Communicating process architectures, Vol. 62 concurrent systems engineering series, IOS, pp. 281–309
Welch PH, Stiles GS, Hilderink GH, Bakkers AP CSP forjava:multithreading for a ll
Roscoe AW (1998) The theory and practice of concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood Cliffs
Roscoe AW, Woodcock JCP, Wulf L (1994) Non-interference through determinism. In: Gollmann D (ed) ESORICS 94, vol. 1214 of LNCS. Springer, Berlin Heidelberg New York, pp. 33–54
Sampaio ACA, Woodcock JCP, Cavalcanti ALC (2002) Refinement in circus. In: Eriksson L, Lindsay PA (eds) FME 2002: formal methods - getting IT right, vol 2391 of LNCS. Springer, Berlin Heidelberg New York, pp. 451–470
Spivey JM (1992) The Z notation: a reference manual, 2nd edn. Prentice-Hall, Englewood Cliffs
Taguchi K, Araki K (1997) The State-based CCS Semantics for concurrent Z specification. In: Hinchey M, Liu S (eds.) International conference on formal engineering methods, IEEE, pp. 283–292
Woodcock JCP (2003) Using circus for safety-critical applications. In: VI Brazilian workshop on formal methods 12th–14st October. Campina Grande, Brazil, pp. 1–15
Woodcock JCP, Davies J (1996) Using Z – specification refinement and proof. Prentice-Hall, Englewood Cliffs
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Oliveira, M., Cavalcanti, A. & Woodcock, J. Formal development of industrial-scale systems in Circus. Innovations Syst Softw Eng 1, 125–146 (2005). https://doi.org/10.1007/s11334-005-0014-0
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-005-0014-0