Abstract
This paper presents a case study in formal specification of smart card programs, using ESC/Java. It discusses an electronic purse application, provided by Gemplus, that we have annotated with functional specifications (i.e. pre- and postconditions, modifies clauses and class invariants), that are as detailed as possible. The specification is based on the informal documentation of the application. Using ESC/Java, the implementation has been checked w.r.t. the specification. This revealed several errors or possibilities for improvement in the source code (e.g. removing unnecessary tests).
Our paper shows that a relatively lightweight use of formal specification techniques can already have a serious impact on the quality of a program and its documentation. Furthermore, we also present some ideas on how ESC/Java could be further improved, both w.r.t. specification and verification.
Our paper shows that a relatively lightweight use of formal specification techniques can already have a serious impact on the quality of a program and its documentation. Furthermore, we also present some ideas on how ESC/Java could be further improved, both w.r.t. specification and verification.
Original language | English |
---|---|
Title of host publication | FME 2002: Formal Methods - Getting IT Right, International Symposium of Formal Methods Europe, Copenhagen, Denmark, July 22-24, 2002, Proceedings |
Editors | Lars-Henrik Eriksson, Peter A. Lindsay |
Publisher | Springer |
Pages | 272-289 |
Number of pages | 18 |
DOIs | |
Publication status | Published - 2002 |
Externally published | Yes |
Event | 11th International Symposium of Formal Methods Europe, FME 2002: Formal Methods - Getting IT Right - Copenhagen, Denmark Duration: 22 Jul 2002 → 24 Jul 2002 Conference number: 11 |
Publication series
Name | Lecture Notes in Computer Science |
---|---|
Publisher | Springer |
Volume | 2391 |
Conference
Conference | 11th International Symposium of Formal Methods Europe, FME 2002 |
---|---|
Abbreviated title | FME |
Country/Territory | Denmark |
City | Copenhagen |
Period | 22/07/02 → 24/07/02 |