Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Specifying and Verifying a Decimal Representation in Java for Smart Cards
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
An Architecture for Interactive Program Provers
TACAS '00 Proceedings of the 6th International Conference on Tools and Algorithms for Construction and Analysis of Systems: Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS 2000
Towards a Full Formal Specification of the JavaCard API
E-SMART '01 Proceedings of the International Conference on Research in Smart Cards: Smart Card Programming and Security
Extending JML Specifications with Temporal Logic
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Specifying and Verifying a Decimal Representation in Java for Smart Cards
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
CHASE: A Static Checker for JML's Assignable Clause
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Formal methods for smart cards: an experience report
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
A java reference model of transacted memory for smart cards
CARDIS'02 Proceedings of the 5th conference on Smart Card Research and Advanced Application Conference - Volume 5
Static Program Analysis for Java Card Applets
CARDIS '08 Proceedings of the 8th IFIP WG 8.8/11.2 international conference on Smart Card Research and Advanced Applications
Executing JML specifications of Java card applications: a case study
Proceedings of the 2009 ACM symposium on Applied Computing
Elimination of ghost variables in program logics
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
Towards formal specification and verification of a role-based authorization engine using JML
Proceedings of the 2010 ICSE Workshop on Software Engineering for Secure Systems
Formalisation and verification of the globalplatform card specification using the b method
CASSIS'05 Proceedings of the Second international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
PLDI 2002: Extended static checking for Java
ACM SIGPLAN Notices - Supplemental issue
Hi-index | 0.00 |
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.