Toward reliable modular programs
Toward reliable modular programs
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
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 Specification and Static Checking of Gemplus' Electronic Purse Using ESC/Java
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
A Modular Checker for Multithreaded Programs
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
PVS: Combining Specification, Proof Checking, and Model Checking
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Verification of non-functional programs using interpretations in type theory
Journal of Functional Programming
Factorising temporal specifications
CATS '05 Proceedings of the 2005 Australasian symposium on Theory of computing - Volume 41
JML-based verification of liveness properties on a class in isolation
Proceedings of the 2006 conference on Specification and verification of component-based systems
Compositional verification of sequential programs with procedures
Information and Computation
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
Certification of smart-card applications in common criteria
Proceedings of the 2009 ACM symposium on Applied Computing
Certification of Smart-Card Applications in Common Criteria
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Teaching Formal Methods for the Unconquered Territory
TFM '09 Proceedings of the 2nd International Conference on Teaching Formal Methods
Preliminary design of BML: a behavioral interface specification language for java bytecode
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
JACK: a tool for validation of security and behaviour of Java applications
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
Towards the formalisation of object-oriented methodologies
Proceedings of the South African Institute of Computer Scientists and Information Technologists Conference on Knowledge, Innovation and Leadership in a Diverse, Multidisciplinary Environment
Matelas: a predicate calculus common formal definition for social networking
ABZ'10 Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z
Safety property driven test generation from JML specifications
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
Poporo: a formal methods tool for fast-checking of social network privacy policies
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
A case study on the lightweight verification of a multi-threaded task server
Science of Computer Programming
Hi-index | 0.00 |
This paper presents a case study in the formal specification and verification of a smart card application. The application is an electronic purse implementation, developed by the smart card producer Gemplus as a test case for formal methods for smart cards. It has been annotated (by the authors) with specifications using the Java Modeling Language (JML), a language designed to specify the functional behavior of Java classes. The reason for using JML as a specification language is that several tools are available to check (parts of) the specification w.r.t, an implementation. These tools vary in their level of automation and in the level of correctness they ensure. Several of these tools have been used for the Gemplus case study. We discuss how the usage of these different tools is complementary: large parts of the specification can be checked automatically, while more precise verification methods can be used for the more intricate parts of the specification and implementation. We believe that having such a range of tools available for a single specification language is an important step towards the acceptance of formal methods in industry.