Abstract
We describe how CSP-OZ, an integrated formal method combining the process algebra CSP with the specification language Object-Z, can be linked to standard software engineering languages, viz. UML and Java. Our aim is to generate a significant part of the CSP-OZ specification from an initially developed UML model using a UML profile for CSP-OZ, and afterwards transform the formal specification into assertions written in the Java Modelling Language JML complemented by CSP jassda . The intermediate CSP-OZ specification serves to verify correctness of the UML model, and the assertions control at runtime the adherence of a Java implementation to these formal requirements. We explain this approach using the case study of a “holonic manufacturing system” in which coordination of transportation and processing is distributed among stores, machine tools and agents without central control.
This research was partially supported by the DFG project ForMooS (grant Ol/98-3).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ábrahám-Mumm, E., de Boer, F.S., de Roever, W.-P., Steffen, M.: Verification for Java’s reentrant multithreading concept. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 4–20. Springer, Heidelberg (2002)
Bartetzko, D., Fischer, C., Möller, M., Wehrheim, H.: Jass – Java with Assertions. In: Havelund, K., Roşu, G. (eds.) ENTCS, vol. 55, Elsevier, Amsterdam (2001), http://www.elsevier.nl/locate/entcs/volume55.html
Breunesse, C.-B., Poll, E.: Verifying JML specifications with model fields. In: Workshop on Formal Techniques for Java-like Programs – FTfJP 2003. ETH Zürich, Technical Report 108 (July 2003)
Brörkens, M.: Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag. Master’s thesis, Univ. of Oldenburg, Dept. of Computing Science (January 2002)
Brörkens, M., Möller, M.: Dynamic Event Generation for Runtime Checking using the JDI. In: Havelund, K., Rosu, G. (eds.) ENTCS, vol. 70, Elsevier, Amsterdam (2002), http://www.elsevier.nl/locate/entcs/volume70.html
Cavalcanti, A., Sampaio, A.: From CSP-OZ to Java with Processes. In: Workshop on Formal Methods for Parallel Programming, held in conjunction with International Parallel and Distributed Processing Symposium, IEEE CS Press, Los Alamitos (2002), Contained in IPDPS collects proceedings CD-ROM
Davies, J., Crichton, C.: Concurrency and Refinement in the Unified Modeling Language. In: Derrick, J., Boiten, E., Woodcock, J., von Wright, J. (eds.) ENTCS, vol. 70, Elsevier, Amsterdam (2002)
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)
Duke, R., Rose, G., Smith, G.: Object-Z: A specification language advocated for the description of standards. Computer Standards and Interfaces 17, 511–533 (1995)
Dupuy, S., Ledru, Y., Chabre-Peccoud, M.: An overview of RoZ - a tool for integrating UML and Z specifications. In: Wangler, B., Bergman, L.D. (eds.) CAiSE 2000. LNCS, vol. 1789, p. 417. Springer, Heidelberg (2000)
Engels, G., Küster, J., Heckel, R., Groenewegen, L.: A Methodology for Specifying and Analyzing Consistency of Object-Oriented Behavioral Models. In: 9th ACM SigSoft Symposium on Foundations of Software Engineering, ACM Software Engineering Notes, vol. 26 (2001)
Fischer, C.: CSP-OZ: A combination of Object-Z and CSP. In: Bowman, H., Derrick, J. (eds.) Formal Methods for Open Object-Based Distributed Systems (FMOODS 1997), vol. 2, pp. 423–438. Chapman & Hall, Boca Raton (1997)
Fischer, C., Olderog, E.-R., Wehrheim, H.: A CSP view on UML-RT structure diagrams. In: Hussmann, H. (ed.) FASE 2001. LNCS, vol. 2029, pp. 91–108. Springer, Heidelberg (2001)
Fischer, C., Wehrheim, H.: Model-checking CSP-OZ specifications with FDR. In: Araki, K., Galloway, A., Taguchi, K. (eds.) Proc. 1st International Conference on Integrated Formal Methods (IFM), pp. 315–334. Springer, Heidelberg (1999)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn., June 2000. Addison-Wesley, Reading (2000)
Gullekson, G.: Designing for concurrency and distribution with Rational Rose RealTime. Technical report, Rational Software (2000)
Hatcliff, J., Dwyer, M.: Using the Bandera tool set to model-check properties of concurrent Java software. In: Larsen, K.G., Nielsen, M. (eds.) CONCUR 2001. LNCS, vol. 2154, p. 39. Springer, Heidelberg (2001)
Havelund, K., Rosu, G. (eds.): Monitoring Java Programs with Java Path Explorer. ENTCS, vol. 55. Elsevier, Amsterdam (2001)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)
Huisman, M., Jacobs, B.: Java Program Verification via a Hoare Logic with Abrupt Termination. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, pp. 284–303. Springer, Heidelberg (2000)
Jacobs, B., van den Berg, J., van Berkum, M.H.M., Hensel, U., Tews, H.: Reasoning about Java classes (preliminary report). In: Proc. OOPSLA 1998, October 1998. ACM SIGPLAN Notices, vol. 33, pp. 329–340 (1998)
Kramer, R.: iContract - the Java Design by Contract tool. Technical report, Reliable Systems (1998)
Latella, D., Majzik, I., Massink, M.: Automatic verification of a behavioural subset of UML statechart diagrams using the SPIN model-checker. Formal Aspects of Computing 11, 430–445 (1999)
Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary design of JML: A behavioral interface specification language for java. Technical Report 98-06v, Iowa State Univ., Dept. of Computer Science (May 2003), See, http://www.jmlspecs.org
Leavens, G.T., Cheon, Y., Clifton, C., Ruby, C., Cok, D.R.: How the design of JML accomodates both runtime assertion checking and formal verifikation. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.-P. (eds.) FMCO 2002. LNCS, vol. 2852, pp. 262–284. Springer, Heidelberg (2003) (to appear)
Leino, K.R.M.: Extended static checking: A ten-year perspective. In: Wilhelm, R. (ed.) Informatics: 10 Years Back, 10 Years Ahead. LNCS, vol. 2000, pp. 157–175. Springer, Heidelberg (2001)
Poetzsch-Heffter, A., Meyer, J.: Interactive verification environments for objectoriented languages. Journal of Universal Computer Science 5(3), 208–225 (1999)
Möller, M.: Specifying and Checking Java using CSP. In: Workshop on Formal Techniques for Java-like Programs – FTfJP 2002. Computing Science Department, University of Nijmegen, Technical Report NIII-R0204 (June 2002)
Rasch, H.: Translating UML state machines into CSP. Technical report, Universität Oldenburg (2003)
Rasch, H., Wehrheim, H.: Checking Consistency in UML Diagrams: Classes and State Machines. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 229–243. Springer, Heidelberg (2003)
Reggio, G., Astesiano, E., Choppy, C., Hussmann, H.: Analysing UML active classes and associated state machines – A lightweight formal approach. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, p. 127. Springer, Heidelberg (2000)
Roscoe, W.: The Theory and Practice of Concurrency. Prentice-Hall, Englewood Cliffs (1997)
Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual. Object Technology Series. Addison-Wesley, Reading (1999)
Schäfer, T., Knapp, A., Merz, S.: Model Checking UML State Machines and Collaborations. In: Stoller, S.D., Visser, W. (eds.). ENTCS, vol. 55, Elsevier, Amsterdam (2001)
Selic, B., Gullekson, G., Ward, P.T.: Real-Time Object-Oriented Modeling. John Wiley & Sons, Chichester (1994)
Selic, B., Rumbaugh, J.: Using UML for modeling complex real-time systems. Technical report, ObjecTime (1998)
Snook, C., Butler, M.: Tool-Supported Use of UML for Constructing B Specifications. Technical report, http://www.ecs.soton.ac.uk/~mjb/U2Bpaper2.pdf
OMG Unified Modeling Language specification, version 1.5 (March 2003), http://www.omg.org
Wehrheim, H.: Specification of an automatic manufacturing system – a case study in using integrated formal methods. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, pp. 334–348. Springer, Heidelberg (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Möller, M., Olderog, ER., Rasch, H., Wehrheim, H. (2004). Linking CSP-OZ with UML and Java: A Case Study. In: Boiten, E.A., Derrick, J., Smith, G. (eds) Integrated Formal Methods. IFM 2004. Lecture Notes in Computer Science, vol 2999. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24756-2_15
Download citation
DOI: https://doi.org/10.1007/978-3-540-24756-2_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21377-2
Online ISBN: 978-3-540-24756-2
eBook Packages: Springer Book Archive