Advertisement

Integration of informal and formal development of object-oriented safety-critical software

  • Richard BubelEmail author
  • Reiner Hähnle
Special section on formal methods for industrial critical systems

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.

Keywords

Formal specification Safety-critical software UML OCL Design patterns  

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abrial J-R (1996) The B Book: assigning programs to meanings. Cambridge University Press, Cambridge, UKGoogle Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    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 2000Google Scholar
  4. 4.
    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–404Google Scholar
  5. 5.
    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.gzGoogle Scholar
  6. 6.
    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–226Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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–439Google Scholar
  9. 9.
    Ciancarini P, Cimato S, Mascolo C (1997) Engineering formal requirements: an analysis and testing method for Z documents. Ann Softw Eng 3:189–219CrossRefGoogle Scholar
  10. 10.
    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–87Google Scholar
  11. 11.
    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–223Google Scholar
  12. 12.
    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, LondonGoogle Scholar
  13. 13.
    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–15Google Scholar
  14. 14.
    Finger F (2000) Design and implementation of a modular OCL compiler. Diplomarbeit, Technische Universität Dresden, Fakultät für Informatik, March 2000Google Scholar
  15. 15.
    Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading, MAGoogle Scholar
  16. 16.
    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.Google Scholar
  17. 17.
    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–153Google Scholar
  18. 18.
    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–206Google Scholar
  19. 19.
    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.pdfGoogle Scholar
  20. 20.
    Meyer J, Müller P, Poetzsch-Heffter A (2000) The jive system – implementation description. http://softech.informatik.uni-kl.de/softechGoogle Scholar
  21. 21.
    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–334Google Scholar
  22. 22.
    Object Modeling Group (1997) Object Constraint Language Specification, version 1.1, September. http://www.omg.org/cgi-bin/doc?ad/97-08-08Google Scholar
  23. 23.
    Ranta A (2004) Grammatical framework: A type-theoretical grammar formalism. J Function Programm 14(2):145–189MathSciNetCrossRefGoogle Scholar
  24. 24.
    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.orgGoogle Scholar
  25. 25.
    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/Google Scholar
  26. 26.
    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/Google Scholar
  27. 27.
    Transport-, Informatik- und Logistik-Consulting GmbH (2001) DELTA: Gemeinsame Fahrplandatenhaltung, Produktbeschreibung Redesign SbF (SbF-R), October 2001Google Scholar
  28. 28.
    von Oheimb D (2001) Analyzing Java in Isabelle/HOL. PhD thesis, Institut für Informatik, Technische Universität München, January 2001Google Scholar
  29. 29.
    Warmer J, Kleppe A (2003) The Object Constraint Language: getting your models ready for MDA. Object Technology Series. Addison-Wesley, Reading, MAGoogle Scholar
  30. 30.
    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–32Google Scholar
  31. 31.
    Wieringa RJ (2003) Design methods for reactive systems: Yourdon, Statemate, and the UML. Morgan Kaufmann, San FranciscoGoogle Scholar

Copyright information

© Springer-Verlag 2004

Authors and Affiliations

  1. 1.Department of Computer ScienceUniversity of KarlsruheKarlsruheGermany
  2. 2.Department of Computing ScienceChalmers University of TechnologyGothenburgSweden

Personalised recommendations