Specification of a transacted memory for smart cards in Java and JML
|
|
- Julius Malone
- 5 years ago
- Views:
Transcription
1 Specification of a transacted memory for smart cards in Java and JML Erik Poll University of Nijmegen, NL Pieter Hartel Eduard de Jong Joint work with University of Twente Sun Microsystems Transacted Memory - Erik Poll p.1/30
2 Outline Case study in the use of Java and the specification language JML to implement/model/specify part of a smartcard OS. Reasoning about JavaCard code subject to card tears. Transacted Memory - Erik Poll p.2/30
3 Background Transacted Memory - Erik Poll p.3/30
4 Smart cards A smart card is a miniature computer with with limited resources (ROM,RAM,EEPROM) very limited I/O (ISO7816) Smartcard contains a miniature operating system (OS). JavaCard smartcard contains VM that can execute applets. Transacted Memory - Erik Poll p.4/30
5 Java Card Superset of a subset of Java for programming smart cards but no threads, floats,..., very limited API persistent and transient objects (EEPROM and RAM) transaction mechanism and increased security: standard sandbox + firewall between applets. Interesting target for formal methods: small programs, simple language, correctness of crucial importance Transacted Memory - Erik Poll p.5/30
6 Card tears & transactions Tricky issue for smartcards: Possible power loss at any moment due to card tear OS must support transactions: atomic writes consisting of several EEPROM writes On power-up: OS performs clean-up of any unfinished transaction NB this clean-up can be interrupted by a card tear... Transacted Memory - Erik Poll p.6/30
7 Challenges 1. How to implement a transaction mechanism? Smartcard constraints limited RAM (eg 512 bytes) EEPROM behaviour: atomic write of given word size limited life 2. How to specify and verify and model this? 3. How to specify and verify code that uses transactions? Transacted Memory - Erik Poll p.7/30
8 An implementation of Transacted Memory Transacted Memory - Erik Poll p.8/30
9 Transacted Memory Idea for transacted memory by de Jong & Bos. NB not as implemented in the JavaCard API. x 4 6 EEP ROM x 5 7 x 6 9 Logging for free! Transacted Memory - Erik Poll p.9/30
10 Interface Tag InfoSeq void void InfoSeq void DNewTag(Size) Read(Tag) Write(Tag, InfoSeq) Commit(Tag) ReadGeneration(Tag, Gen) Tidy() Transacted Memory - Erik Poll p.10/30
11 Earlier work abstract Z spec abstract Z spec C/Promela impl Deficiencies: Z specs do not include card tears Big gap and no real link between Z specs and implementation Transacted Memory - Erik Poll p.11/30
12 This work Initial idea: Translate C code to Java By hand; easy but boring. Translate Z specs to JML By hand; easy but boring. Uses JML Tie the two together Transacted Memory - Erik Poll p.12/30
13 Java Modeling Language JML Specification language by Gary Leavens (Iowa Univ.) for annotating Java programs with pre- and postconditions } cf. Eiffel and invariants Design by Contract frame conditions (modifiability constraints) specification-only variables (model/ghost variables)... Pre-, postconditions, and invariants in JML are Java boolean expressions, extended with \forall, \exists, ==>, \old( ),... Transacted Memory - Erik Poll p.13/30
14 Translating abstract Z spec Transacted Memory - Erik Poll p.14/30
15 Z spec Commit MemSys t? : tags t? dom assoc assoc t? committed = committed {t?} Transacted Memory - Erik Poll p.15/30
16 JML spec Using JML library for sets, functions, relations, etc. Z specs can be translated to JML public void ACommit(Tag t) /*@ requires assocs.domain().has(t) assocs.apply(t).isempty() ensures Transacted Memory - Erik Poll p.16/30
17 Z vs JML Z vs JML: Z looks much prettier JML distinguishes pre- and postcondition JML can be easily be made executable Transacted Memory - Erik Poll p.17/30
18 Modelling card tears in Java card tear is like an exception clean-up is like the exception handler card tear is uncatchable exception, caught only in the main repetition of the OS Modelling card tear inside language, allows testing, specification, and verification Transacted Memory - Erik Poll p.18/30
19 annotated Java implementation ensures TidyRead(tag).equals(is) public void Write (Tag tag, InfoSeq is) throws CardTearException Expresses atomicity of write operation Specs still incomplete: nothing said about previous generations JML assertion checker can cope with this. Transacted Memory - Erik Poll p.19/30
20 Java impl with JML assertions Bugs found: one typo - giving version number instead of generation number Found during typechecking Java code clumsy interface - 4 write operations with disjoint preconditions Found writing JML assertions one serious error - card tear at certain point Found using runtime assertion testing Transacted Memory - Erik Poll p.20/30
21 Java impl with JML specs By translating 1. abstract Z spec to (executable) JML spec 2. C implementation to Java implementation abstract spec & implementation in same language. We can tie them together, by running same test scenario on 1. and 2. including 1. in 2. using ghost/model variables Conventional programming language (Java) useful to built formal model (of VHDL implementation). Transacted Memory - Erik Poll p.21/30
22 Using Transacted Memory Transacted Memory - Erik Poll p.22/30
23 The LOOP project Currrent JavaCard API offers transactions begintransaction(); begintransaction(); aborttransaction(); Transacted Memory - Erik Poll p.23/30
24 The LOOP project Verification of JML-annotated Java(Card) programs based on a denotational semantics for sequential Java, a compiler the LOOP tool which translates A.java to A.pvs describing its semantics. a Hoare logic for reasoning about JML, associated WP calculus, All formalised in PVS: ie. a shallow embedding of Java and JML in PVS How to allow for card tears? Transacted Memory - Erik Poll p.24/30
25 Trick to model card tear as an exception also work when specifying and verifiying Java Card code. For example ensures \old(x+y) == signals void bla(){ x++ ; y--; } \old(x+y) <= x+y; Transacted Memory - Erik Poll p.25/30
26 Invariants Java: Invariant may temporarily be violated, but must hold at end of method - also if an exception is thrown JavaCard: Invariant may never be violated, except during transactions Transacted Memory - Erik Poll p.26/30
27 requires = P statement = s 1 ensures = P Q signals = Q requires = P statement = s 1 ; s 2 ensures = Q signals = Q requires = P statement = s 2 ensures = Q signals = Q Transacted Memory - Erik Poll p.27/30
28 Syntactic desugaring begintransaction(); x++ ; y--; endtransaction(); can be desugared into x =x; y =y; try { x++ ; y--; } catch (CardException e) { x=x ; y=y ; throw e; } Transacted Memory - Erik Poll p.28/30
29 Limits of this approach It can t deal with void mn() { m(); n(); } void m() { begintransaction(); x++ } void n() { y--; endtransaction(); } Transacted Memory - Erik Poll p.29/30
30 Alternative Alternative approach: including transactions in denotational semantics Easy enough, but coming up with associated proof rules isn t. Transacted Memory - Erik Poll p.30/30
31 Conclusions Conventional programming language (Java) maybe an interesting formal model Future work: fixing bug verification of Transacted Memory using PVS & LOOP coping with model variables in LOOP verification of applets incl. card tears VHDL implementation Worry: ensuring C code = Java code = VHDL code Transacted Memory - Erik Poll p.31/30
A Java Reference Model of Transacted Memory for Smart Cards
Erik Poll p.1/23 A Java Reference Model of Transacted Memory for Smart Cards Erik Poll University of Nijmegen Joint work with Pieter Hartel Eduard de Jong University of Twente Sun Microsystems Erik Poll
More informationJML tool-supported specification for Java Erik Poll Radboud University Nijmegen
JML tool-supported specification for Java Erik Poll Radboud University Nijmegen Erik Poll - JML p.1/41 Overview The specification language JML Tools for JML, in particular runtime assertion checking using
More informationA Java Reference Model of Transacted Memory for Smart Cards
A Java Reference Model of Transacted Memory for Smart Cards Erik Poll University of Nijmegen, the Netherlands Pieter Hartel University of Twente, the Netherlands Eduard de Jong Sun Microsystems, Inc.,
More informationProceedings of the 5th Smart Card Research and Advanced Application Conference
USENIX Association Proceedings of the 5th Smart Card Research and Advanced Application Conference San Jose, California, USA November 21 22, 2002 THE ADVANCED COMPUTING SYSTEMS ASSOCIATION 2002 by The USENIX
More informationIntroduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen
Introduction to JML David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial p.1/30
More informationAssertions & Design-by-Contract using JML Erik Poll University of Nijmegen
Assertions & Design-by-Contract using JML Erik Poll University of Nijmegen Erik Poll - JML p.1/39 Overview Assertions Design-by-Contract for Java using JML Contracts and Inheritance Tools for JML Demo
More informationESC/Java2 extended static checking for Java Erik Poll Radboud University Nijmegen
ESC/Java2 extended static checking for Java Erik Poll Radboud University Nijmegen Erik Poll - JML p.1/19 Extended static checker for Java ESC/Java by Rustan Leino et.al. Extension ESC/Java2 by David Cok
More informationProgram Verification (6EC version only)
Program Verification (6EC version only) Erik Poll Digital Security Radboud University Nijmegen Overview Program Verification using Verification Condition Generators JML a formal specification language
More informationJava Card. Erik Poll. Digital Security Radboud University Nijmegen
Java Card Erik Poll Digital Security Radboud University Nijmegen 1 Contents Java Card architecture Java vs Java Card APDUs & RMI transient and persistent data transactions crypto fun with transactions
More informationVerifying JML specifications with model fields
Verifying JML specifications with model fields Cees-Bart Breunesse and Erik Poll Department of Computer Science, University of Nijmegen Abstract. The specification language JML (Java Modeling Language)
More informationJava Modelling Language (JML) References
Java Modelling Language (JML) References G. T. Leavens and Y. Cheon. Design by Contract with JML, August 2005. L. Burdy, Y. Cheon, D. Cok, M. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll.
More informationAdvances in Programming Languages
T O Y H Advances in Programming Languages APL4: JML The Java Modeling Language David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Thursday 21 January 2010
More informationFormal Methods for Java
Formal Methods for Java Lecture 1: Introduction Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg October 26, 2011 Jochen Hoenicke (Software Engineering) Formal Methods for Java October
More informationVerifying Java Programs Verifying Java Programs with KeY
Verifying Java Programs Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at
More informationVerifying Java Programs Verifying Java Programs with KeY
Verifying Java Programs Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at
More informationOverview The Java Modeling Language (Part 1) Related Work
Overview The Java Modeling Language (Part 1) Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at
More informationCover Page. The handle holds various files of this Leiden University dissertation
Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue
More informationFormale Entwicklung objektorientierter Software
Formale Entwicklung objektorientierter Software Praktikum im Wintersemester 2008/2009 Prof. P. H. Schmitt Christian Engel, Benjamin Weiß Institut für Theoretische Informatik Universität Karlsruhe 5. November
More informationAdvances in Programming Languages
O T Y H Advances in Programming Languages APL8: ESC/Java2 David Aspinall (including slides by Ian Stark and material adapted from ESC/Java2 tutorial by David Cok, Joe Kiniry and Erik Poll) School of Informatics
More informationContents. Program 1. Java s Integral Types in PVS (p.4 of 37)
Java s Integral Types in PVS Bart Jacobs bart@cs.kun.nl www.cs.kun.nl/ bart www.verificard.org. Dep. Computer Science, Univ. Nijmegen, NL Contents I. Example programs II. Integral types in Java (implementations)
More informationJava Bytecode Specification and Verification
Java Bytecode Specification and Verification Lilian Burdy INRIA Sophia-Antipolis 2004, Route des Lucioles, BP 93, 06902 Sophia-Antipolis, France Lilian.Burdy@sophia.inria.fr Mariela Pavlova INRIA Sophia-Antipolis
More informationVerifying Java Programs with KeY
Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang
More informationAdvanced JML. and more tips and pitfalls. David Cok, Joe Kiniry, and Erik Poll
Advanced JML and more tips and pitfalls David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2
More informationSIM Smart Card Overview
SIM Smart Card Overview Smart Card Introduction 2 Java Card Java Card Based SIM Development Environment Service Examples 3 Smart Cards? A smart card is a plastic card that contains an embedded integrated
More informationAdvanced JML Erik Poll Radboud University Nijmegen
JML p.1/23 Advanced JML Erik Poll Radboud University Nijmegen JML p.2/23 Core JML Remember the core JML keywords were requires ensures signals invariant non null pure \old, \forall, \result JML p.3/23
More informationFormal Methods for Java
Formal Methods for Java Lecture 30: Conclusion Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Feb 17, 2012 Jochen Hoenicke (Software Engineering) FM4J Feb 17, 2012 1 / 21 Topics
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationJML. Outline. Métodos Formais em Engenharia de Software. MI, Braga these slides were prepared by adopting/adapting teaching material
Métodos Formais em Engenharia de Software JML José Carlos Bacelar Almeida Departamento de Informática Universidade do Minho MI, Braga 2008 Outline Design by Contract and JML Design by Contract Java Modeling
More informationJava Card 3 Platform. Peter Allenbach Sun Microsystems, Inc.
Java Card 3 Platform Peter Allenbach Sun Microsystems, Inc. Agenda From plastic to Java Card 3.0 Things to know about Java Card 3.0 Introducing Java Card 3.0 Java Card 3.0 vs. Java SE Java Card 3.0 vs.
More informationPart II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?
Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare
More informationVerification Condition Generation
Verification Condition Generation Jorge Sousa Pinto Departamento de Informática / Universidade do Minho jsp@di.uminho.pt www.di.uminho.pt/~jsp Outline (1) - From Hoare Logic to VCGen algorithms: an architecture
More informationJava Modeling Language (JML)
CIS 771: Software Specifications Introduction to JML Java Modeling Language (JML) A behavioral interface specification language for Java supporting design-by-contract (DBC)... invented by Gary T. Leavens
More informationThe Java Modeling Language JML
The Java Modeling Language JML Néstor Cataño ncatano@puj.edu.co Faculty of Engineering Pontificia Universidad Javeriana The Java Modelling Language JML p.1/47 Lecture Plan 1. An Introduction to JML 2.
More informationTesting Library Specifications by Verifying Conformance Tests
Testing Library Specifications by Verifying Conformance Tests Joseph R. Kiniry, Daniel M. Zimmerman, Ralph Hyland ITU Copenhagen, UW Tacoma, UCD Dublin 6th International Conference on Tests & Proofs Prague,
More informationAdvances in Programming Languages
Advances in Programming Languages Lecture 12: Practical Tools for Java Correctness Ian Stark School of Informatics The University of Edinburgh Friday 31 November 2014 Semester 1 Week 7 http://www.inf.ed.ac.uk/teaching/courses/apl
More informationJML and Aspects: The Benefits of
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for
More informationESC/Java extended static checking for Java Erik Poll, Joe Kiniry, David Cok University of Nijmegen; Eastman Kodak Company
ESC/Java extended static checking for Java Erik Poll, Joe Kiniry, David Cok University of Nijmegen; Eastman Kodak Company Erik Poll - JML p.1/?? ESC/Java Extended static checker by Rustan Leino et.al.
More informationESC/Java2 Use and Features
ESC/Java2 Use and Features The ESC/Java2 tool David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2
More informationSmartcards. ISO 7816 & smartcard operating systems. Erik Poll Digital Security Radboud University Nijmegen
Smartcards ISO 7816 & smartcard operating systems Erik Poll Digital Security Radboud University Nijmegen 1 Standard for contact smartcards ISO7816 7816-1 Physical characteristics 7816-2 Dimension & size
More informationESC/Java2 Use and Features
ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial
More informationThe Java Modeling Language (Part 1)
The Java Modeling Language (Part 1) Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at
More informationThe JML Tool. Faculty of Engineering Pontificia Universidad Javeriana. The JML Tool p.1/23
The JML Tool Néstor Cataño ncatano@puj.edu.co Faculty of Engineering Pontificia Universidad Javeriana The JML Tool p.1/23 Tools for JML 1. Parsing and type-checking 2. Checking assertions at runtime 3.
More informationFormally Proved Anti-tearing Properties of Embedded C Code
Formally Proved Anti-tearing Properties of Embedded C Code June Andronick Security Labs Gemalto june.andronick@gemalto.com Abstract In smart card embedded programs, some operations must not be suddenly
More informationJML. Java Modeling Language
JML Java Modeling Language Overview About the JML Project DBC Design By Contract JML concepts, examples, syntax and capabilities Basics Exceptions Invariants Assertions Quantifiers Other keywords JML hiding
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationThe Java Modeling Language (Part 2)
The Java Modeling Language (Part 2) Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at
More informationFormal Specification and Verification
Formal Specification and Verification Formal Specification, Part III Bernhard Beckert Adaptation of slides by Wolfgang Ahrendt Chalmers University, Gothenburg, Sweden Formal Specification and Verification:
More informationLectures 20, 21: Axiomatic Semantics
Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics
More informationReasoning About Imperative Programs. COS 441 Slides 10
Reasoning About Imperative Programs COS 441 Slides 10 The last few weeks Agenda reasoning about functional programming It s very simple and very uniform: substitution of equal expressions for equal expressions
More informationShared Variables and Interference
Solved Shared Variables and Interference CS 536: Science of Programming, Fall 2018 A. Why Parallel programs can coordinate their work using shared variables, but it s important for threads to not interfere
More informationChecking Program Properties with ESC/Java
Checking Program Properties with ESC/Java 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich 1 ESC/Java A checker for Java programs Finds null pointers, array dereferences Checks Hoare logic
More informationSpecifying and Verifying a Decimal Representation in Java for Smart Cards
Specifying and Verifying a Decimal Representation in Java for Smart Cards Cees-Bart Breunesse, Bart Jacobs, and Joachim van den Berg Computing Science Institute, University of Nijmegen Toernooiveld 1,
More informationhwu-logo.png 1 class Rational { 2 int numerator ; int denominator ; 4 public Rational ( int numerator, int denominator ) {
Code Contracts in C# Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2017/18 Motivation Debugging programs is time-consuming
More informationCode Contracts in C#
Code Contracts in C# Hans-Wolfgang Loidl School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh Semester 1 2018/19 H-W. Loidl (Heriot-Watt Univ) F20SC/F21SC
More informationESC/Java 2. Checker for Java 2. Extended. Static. B y K ats man Andrey S oftware E ngineering S em inar
ESC/Java 2 Extended Static Checker for Java 2 B y K ats man Andrey S oftware E ngineering S em inar 2 0 0 8 Background ESC/Java - Original development by Compaq Systems Research Center (1997) as a successor
More informationRuntime assertion checking of multithreaded Java programs
Master Thesis Runtime assertion checking of multithreaded Java programs An extension of the STROBE framework Author: Jorne Kandziora Supervisors: dr. M. Huisman dr. C.M. Bockisch M. Zaharieva-Stojanovski,
More informationJML Class Specifications The Java Modeling Language (Part 2) A Java Class
JML Class Specifications The Java Modeling Language (Part 2) Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria
More informationDesign by Contract: An Overview
: An Overview CSCI 5828 Michael M. Vitousek University of Colorado at Boulder michael.vitousek@colorado.edu March 21, 2012 1 / 35 Outline 1 Introduction Motivation and Introduction Simple Example Contract
More informationMotivation. Correct and maintainable software Cost effective software production Implicit assumptions easily broken
Spec# Andreas Vida Motivation Correct and maintainable software Cost effective software production Implicit assumptions easily broken Need more formal f specification Integration into a popular language
More informationShared Variables and Interference
Illinois Institute of Technology Lecture 24 Shared Variables and Interference CS 536: Science of Programming, Spring 2018 A. Why Parallel programs can coordinate their work using shared variables, but
More informationSPECIFICATION OF THE JAVACARD API IN JML
SPECIFICATION OF THE JAVACARD API IN JML Towards formal specification and verification of applets and API implementations Erik Poll, Joachim van den Berg, Bart Jacobs Computing Science Institute, University
More informationESC/Java2 Warnings David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen
ESC/Java2 Warnings David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial p.1/??
More informationAn overview of JML tools and applications
Int J Softw Tools Technol Transfer (2004) / Digital Object Identifier (DOI) 10.1007/s10009-004-0167-4 An overview of JML tools and applications Lilian Burdy 1,YoonsikCheon 2,DavidR.Cok 3, Michael D. Ernst
More informationT Smart Card Application Development. Spring 2003 Lecture 3: Applet development basics
T-110.497 Smart Card Application Development Spring 2003 Lecture 3: Applet development basics Development process Java files Java compiler Class files Java Card simulator Export files Java Card converter
More informationOn the Interplay between the Semantics of Java s Finally Clauses and the JML Run-Time Checker
On the Interplay between the Semantics of Java s Finally Clauses and the JML Run-Time Checker M. Huisman University of Twente Netherlands ABSTRACT This paper discusses how a subtle interaction between
More informationOOP Design by Contract. Carsten Schuermann Kasper Østerbye IT University Copenhagen
OOP Design by Contract Carsten Schuermann Kasper Østerbye IT University Copenhagen 1 Today's schedule Design by Contract why the term contract what design issue is captured, and why bother what is a pre-condition
More informationJAVA BASICS II. Example: FIFO
JAVA BASICS II Example: FIFO To show how simple data structures are built without pointers, we ll build a doubly-linked list ListItem class has some user data first refers to that ListItem object at the
More informationA Causality-Based Runtime Check for (Rollback) Atomicity
A Causality-Based Runtime Check for (Rollback) Atomicity Serdar Tasiran Koc University Istanbul, Turkey Tayfun Elmas Koc University Istanbul, Turkey RV 2007 March 13, 2007 Outline This paper: Define rollback
More informationRuntime Checking for Program Verification Systems
Runtime Checking for Program Verification Systems Karen Zee, Viktor Kuncak, and Martin Rinard MIT CSAIL Tuesday, March 13, 2007 Workshop on Runtime Verification 1 Background Jahob program verification
More informationCITS5501 Software Testing and Quality Assurance Formal methods
CITS5501 Software Testing and Quality Assurance Formal methods Unit coordinator: Arran Stewart May 1, 2018 1 / 49 Sources Pressman, R., Software Engineering: A Practitioner s Approach, McGraw-Hill, 2005
More informationSpecification tips and pitfalls
Specification tips and pitfalls David Cok, Joe Kiniry, and Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML
More informationUnit Testing in Java with an Emphasis on Concurrency Corky Cartwright Rice and Halmstad Universities Summer 2013
Unit Testing in Java with an Emphasis on Concurrency Corky Cartwright Rice and Halmstad Universities Summer 2013 Software Engineering Culture Three Guiding Visions Data-driven design Test-driven development
More informationESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen
ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial
More informationSpecification and Verification of Garbage Collector by Java Modeling Language
Specification and Verification of Garbage Collector by Java Modeling Language Wenhui Sun, Yuting Sun, Zhifei Zhang Department of Computer Science and Technology Beijing Jiaotong University Beijing, China
More informationAdvances in Programming Languages
T O Y H Advances in Programming Languages APL14: Practical tools for Java Correctness David Aspinall (slides originally by Ian Stark) School of Informatics The University of Edinburgh Friday 12 November
More informationFormal Specification and Verification
Formal Specification and Verification Proof Obligations Bernhard Beckert Based on a lecture by Wolfgang Ahrendt and Reiner Hähnle at Chalmers University, Göteborg Formal Specification and Verification:
More informationOverview of the KeY System
22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Overview of the KeY System Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally developed by Reiner Hähnle
More informationHow the Design of JML Accommodates Both Runtime Assertion Checking and Formal Verification
Computer Science Technical Reports Computer Science 3-2004 How the Design of JML Accommodates Both Runtime Assertion Checking and Formal Verification Gary T. Leavens Iowa State University Yoonsik Cheon
More informationUC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara
CS189A - Capstone Christopher Kruegel Department of Computer Science http://www.cs.ucsb.edu/~chris/ Design by Contract Design by Contract and the language that implements the Design by Contract principles
More informationA Type System for Checking Applet Isolation in Java Card
A Type System for Checking Applet Isolation in Java Card Peter Müller ETH Zürich Joint work with Werner Dietl and Arnd Poetzsch-Heffter Applet Isolation 2 Applet Context 1 Firewall Applet Context 2 SIO
More informationThe JML and JUnit Way of Unit Testing and its Implementation
Computer Science Technical Reports Computer Science 2-2004 The JML and JUnit Way of Unit Testing and its Implementation Gary T. Leavens Iowa State University Yoonsik Cheon Iowa State University Follow
More informationLecture 10 Design by Contract
CS 5959 Writing Solid Code Fall 2015 Nov-23 Lecture 10 Design by Contract Zvonimir Rakamarić University of Utah Design by Contract Also called assume-guarantee reasoning Developers annotate software components
More informationJML and ESC/Java2 Homework Exercises
This document contains a set of homework exercises for those that wish to learn JML and ESC/Java2. It was begun by Joseph R. Kiniry in May 2004 for the tutorial Design by Contract and
More informationIntegrating verification in programming languages
Integrating verification in programming languages Thomas Jensen, INRIA Seminar INRIA Rennes, 04/11/2015 Collège de France Chaire Algorithmes, machines et langages x / y Types For division to make sense,
More informationOn Preserving Domain Consistency for an Evolving Application
On Preserving Domain Consistency for an Evolving Application João Roxo Neves and João Cachopo INESC-ID / Instituto Superior Técnico, Universidade Técnica de Lisboa, Portugal {JoaoRoxoNeves,joao.cachopo}@ist.utl.pt
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming t ::= x x. t t t Call-by-value big-step Operational Semantics terms variable v ::= values abstraction x.
More informationProgramming with Contracts. Juan Pablo Galeotti, Alessandra Gorla Saarland University, Germany
Programming with Contracts Juan Pablo Galeotti, Alessandra Gorla Saarland University, Germany Contract A (formal) agreement between Method M (callee) Callers of M Rights Responsabilities Rights Responsabilities
More informationAn Extensible Programming Language for Verified Systems Software. Adam Chlipala MIT CSAIL WG 2.16 meeting, 2012
An Extensible Programming Language for Verified Systems Software Adam Chlipala MIT CSAIL WG 2.16 meeting, 2012 The status quo in computer system design DOM JS API Web page Network JS API CPU Timer interrupts
More informationFrom JML to BCSL (Draft Version)
From JML to BCSL (Draft Version) Lilian Burdy, Mariela Pavlova July 18, 2005 Contents 1 Introduction 3 2 General Conditions 3 2.1 Restrictions on the Java compiler.................. 3 3 Class annotation
More informationSpecifying JAVACARD API in OCL
Specifying JAVACARD API in OCL Daniel Larsson 1 Wojciech Mostowski 2 Computing Science Department Chalmers University of Technology Göteborg, Sweden Abstract We discuss the development of an OCL specification
More informationClosures. Mooly Sagiv. Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming
Closures Mooly Sagiv Michael Clarkson, Cornell CS 3110 Data Structures and Functional Programming Summary 1. Predictive Parsing 2. Large Step Operational Semantics (Natural) 3. Small Step Operational Semantics
More informationAn Aspect-Oriented Approach. Henrique Rebêlo Informatics Center
An Aspect-Oriented Approach to implement JML Features Henrique Rebêlo Informatics Center Federal University of Pernambuco Summary jmlc problems bigger code, slower code, no suppport for Java ME, and bad
More informationFormal Methods for Java
Formal Methods for Java Lecture 6: Introduction to JML Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg May 15, 2017 Jochen Hoenicke (Software Engineering) Formal Methods for Java
More informationJava Modelling Language (JML) References
Java Modelling Language (JML) References www.jmlspecs.org G. T. Leavens and Y. Cheon, Design by Contract with JML, August 2005. C. Marché, C. Paulin-Mohring, and X. Urbain, The Krakatoa Tool for Cerification
More informationAssertions. Assertions - Example
References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,
More informationAssertions, pre/postconditions
Programming as a contract Assertions, pre/postconditions Assertions: Section 4.2 in Savitch (p. 239) Specifying what each method does q Specify it in a comment before method's header Precondition q What
More informationThe Use of JML in Embedded Real-Time Systems
The Use of JML in Embedded Real-Time Systems Joseph Kiniry Technical University of Denmark JTRES 2012 24 October 2012 Acknowledgements Some content based on an OOPSLA tutorial by: Gary T. Leavens, Curtis
More informationRecent Trends in OO Modelling Languages
JML,, Institute for Software Technology Graz University of Technology Graz, Austria United Nations University International Institute for Software Technology Macao S.A.R. China Overture 2006 Outline JML
More informationCSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation Hal Perkins Spring 2017 Exceptions and Assertions 1 Outline General concepts about dealing with errors and failures Assertions: what, why, how For things you believe
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More information