Abstract
The KeY system allows for the integrated informal and formal development of object-oriented Java software. In this paper we report on a major industrial case study involving safety-critical software for the computation of a particular kind of railway timetable used by train conductors. Our case study includes formal specification of requirements both on the analysis and the implementation level. Particular emphasis in our research is placed on the challenge to make authoring and maintenance of formal specifications easier. We demonstrate that the technique of specification patterns as implemented in KeY for the language OCL yields significant improvements.
Similar content being viewed by others
References
Abrial J-R (1996) The B Book: assigning programs to meanings. Cambridge University Press, Cambridge, UK
Ahrendt W, Baar T, Beckert B, Bubel R, Giese M, Hähnle R, Menzel W, Mostowski W, Roth A, Schlager S, Schmitt PH (2004) The KeY tool. Softw Syst Model (in press)
Baar T, Hähnle R (2000) An integrated metamodel for OCL types. In: France R, Rumpe B, Whittle J (eds) Proc. OOPSLA 2000 workshop refactoring the UML: in search of the core, Minneapolis, MI, October 2000
Baar T, Hähnle R, Sattler T, Schmitt PH (2000) Entwurfsmustergesteuerte Erzeugung von OCL-Constraints. In: Mehlhorn K, Snelting G (eds) Softwaretechnik-Trends, Informatik Aktuell. Springer, Berlin Heidelberg New York, pp 389–404
Beckert B, Keller U, Schmitt PH (2002) Translating the Object Constraint Language into first-order predicate logic. In Proc. VERIFY, workshop at federated logic conferences (FLoC), Copenhagen. http://www.key-project.de/∼key/doc/2002/BeckertKellerSchmitt02.ps.gz
Beckert B, Schlager S (2004) Software verification with integrated data type refinement for integer arithmetic. In: Boiten EA, Derrick J, Smith G (eds) Proc. international conference on integrated formal methods, Canterbury, UK, Lecture notes in computer science, vol 2999. Springer, Berlin Heidelberg New York, pp 207–226
Bubel R (2002) Formale Spezifikation und Verifikation sicherheitskritischer Software mit dem KeY-System. Diplomarbeit, Fakultät für Informatik, Universität Karlsruhe, December 2002. (in English with German abstract)
Burdy L, Requet A, Lanet J-L (2003) Java applet correctness: a developer-oriented approach. In: Proc. Formal Methods Europe, Pisa, Italy, Lecture notes in computer science, vol 2805. Springer, Berlin Heidelberg New York, pp 422–439
Ciancarini P, Cimato S, Mascolo C (1997) Engineering formal requirements: an analysis and testing method for Z documents. Ann Softw Eng 3:189–219
Clavel M, Durán F, Eker S, Lincoln P, Martí-Oliet N, Meseguer J, Talcott C (2003) The Maude 2.0 System. In: Nieuwenhuis R (ed) Rewriting techniques and applications (RTA 2003). Lecture notes in computer science, vol 2706. Springer, Berlin Heidelberg New York, pp 76–87
Corbett JC, Dwyer MB, Hatcliff J, Robby (2000) A language framework for expressing checkable properties of dynamic software. In: Proc. SPIN software model checking workshop. Lecture notes in computer science, vol 1885. Springer, Berlin Heidelberg New York, pp 205–223
Crocker D (2002) Perfect Developer: a tool for rigorous object-oriented software development. In: Clark T, Evans A, Lano K (eds) Proc. 4th workshop on rigorous object-oriented methods, London
Dwyer MB, Avrunin GS, Corbett JC (1998) Property specification patterns for finite-state verification. In: Ardis M (ed) Proc. 2nd workshop on formal methods in software practice (FMSP-98). ACM Press, New York, pp 7–15
Finger F (2000) Design and implementation of a modular OCL compiler. Diplomarbeit, Technische Universität Dresden, Fakultät für Informatik, March 2000
Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, MA
Hähnle R, Johannisson K, Ranta A (2002) An authoring tool for informal and formal requirements specifications. In: Kutsche R-D, Weber H (eds) Fundamental approaches to software engineering (FASE), part of joint European conferences on theory and practice of software (ETAPS), Grenoble, France. Lecture notes in computer science, vol 2306. Springer, Berlin Heidelberg New York, pp 233–248.
Jacobs B, Poll E (2004) Java program verification at Nijmegen: developments and perspective. In: 2nd Mext-NSF-JSPS international symposium on software security – theories and systems. Lecture notes in computer science, vol 3233. Springer, Berlin Heidelberg New York, pp 134–153
Lano K, Clark D, Androutsopoulos K (2004) UML to B: Formal verification of object-oriented models. In: Boiten EA, Derrick J, Smith G (eds) Proc. international conference on integrated formal methods, Canterbury, UK. Lecture notes in computer science, vol 2999. Springer, Berlin Heidelberg New York, pp 187–206
Leavens GT, Poll E, Clifton C, Cheon Y, Ruby C, Cok D, Kiniry J (2004) JML reference manual, March Draft. ftp://ftp.cs.iastate.edu/pub/leavens/JML/jmlrefman.pdf
Meyer J, Müller P, Poetzsch-Heffter A (2000) The jive system – implementation description. http://softech.informatik.uni-kl.de/softech
Nickl F, Wirsing M (1993) A formal approach to requirements engineering. In: Bjoerner D, Broy M, Pottosin IV (eds) Formal methods in programming and their applications, July 1993. Lecture notes in computer science, vol 735. Springer, Berlin Heidelberg New York, pp 312–334
Object Modeling Group (1997) Object Constraint Language Specification, version 1.1, September. http://www.omg.org/cgi-bin/doc?ad/97-08-08
Ranta A (2004) Grammatical framework: A type-theoretical grammar formalism. J Function Programm 14(2):145–189
Roth A (2002) Deduktiver Softwareentwurf am Beispiel des Java Collections Framework. Diplomarbeit, Fakultät für Informatik, Universität Karlsruhe, June. http://www.key-project.org
Snook C, Wheeler P, Butler M (2003) Preliminary tool extensions for integration of UML and B. IST-2000-30103 project deliverable D4.1.2 http://www.keesda.com/pussee/
Stenzel K (2001) Verification of JavaCard programs. Technical report 2001-5, Institut für Informatik, Universität Augsburg, Germany. http://www.Informatik.Uni-Augsburg.DE/swt/fmg/papers/
Transport-, Informatik- und Logistik-Consulting GmbH (2001) DELTA: Gemeinsame Fahrplandatenhaltung, Produktbeschreibung Redesign SbF (SbF-R), October 2001
von Oheimb D (2001) Analyzing Java in Isabelle/HOL. PhD thesis, Institut für Informatik, Technische Universität München, January 2001
Warmer J, Kleppe A (2003) The Object Constraint Language: getting your models ready for MDA. Object Technology Series. Addison-Wesley, Reading, MA
Wieringa R, Dubois E, Huyts S (1997) Integrating semi-formal and formal requirements. In: Olivé A, Pastor J (eds) Advanced information systems engineering. Lecture notes in computer science, vol 1250. Springer, Berlin Heidelberg New York, pp 19–32
Wieringa RJ (2003) Design methods for reactive systems: Yourdon, Statemate, and the UML. Morgan Kaufmann, San Francisco
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bubel, R., Hähnle, R. Integration of informal and formal development of object-oriented safety-critical software. Int J Softw Tools Technol Transfer 7, 197–211 (2005). https://doi.org/10.1007/s10009-004-0166-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-004-0166-5