Skip to main content
Log in

Formal development of industrial-scale systems in Circus

  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

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.

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. Abrial J-R (1996) The B-book: assigning programs to meanings Cambridge University Press, London

  2. Börger E, Stärk RF (2003) Abstract state machines—a method for high-level system design and analysis. Springer, Berlin Heidelberg New York

  3. 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

  4. Cavalcanti ALC, Sampaio ACA, Woodcock JCP (2003) A refinement strategy for circus. Formal Aspects Comput 15(2–3):146–181

    Google Scholar 

  5. Cavalcanti ALC, Woodcock JCP (1999) ZRC—a refinement calculus for Z. Formal Aspects Comput 10(3):267–289

    Google Scholar 

  6. 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

  7. Fischer C (2000) Combination and implementation of processes and data: from CSP-OZ to Java. PhD thesis, Fachbereich Informatik, Universität Oldenburg, Oldenburg, Germany

  8. Hilderink G, Broenink J, Vervoort W, Bakkers A (1997) Communicating java threads. In: Parallel programming and Java conference

  9. Hoare CAR (1985) Communicating sequential processes. Prentice-Hall, Englewood Cliffs

  10. Hoare CAR, He J (1998) Unifying theories of programming. Prentice-Hall, Englewood Cliffs

  11. Jones CB (1986) Systematic software development using VDM. Prentice-Hall International

  12. Milner R (1989) Communication and concurrency. Prentice-Hall, Englewood Cliffs

  13. Morgan C (1994) Programming from specifications. Prentice-Hall, Englewood Cliffs

  14. Oliveira MVM (2005) A refinement calculus for circus. PhD Thesis, Additional Material, http://www.cs.york.ac.uk/~marcel/phd/

  15. 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

  16. 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

  17. Welch PH, Stiles GS, Hilderink GH, Bakkers AP CSP forjava:multithreading for a ll

  18. Roscoe AW (1998) The theory and practice of concurrency. Prentice-Hall Series in Computer Science. Prentice-Hall, Englewood Cliffs

  19. 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

  20. 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

  21. Spivey JM (1992) The Z notation: a reference manual, 2nd edn. Prentice-Hall, Englewood Cliffs

  22. 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

  23. 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

  24. Woodcock JCP, Davies J (1996) Using Z – specification refinement and proof. Prentice-Hall, Englewood Cliffs

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marcel Oliveira.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-005-0014-0

Keywords

Navigation