Writing Larch interface language specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
ANNA: a language for annotating Ada programs
ANNA: a language for annotating Ada programs
Inheritance and subtyping in a parallel object-oriented language
European conference on object-oriented programming on ECOOP '87
A calculus of refinements for program derivations
Acta Informatica
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming in the 1990s: an introduction to the calculation of programs
Programming in the 1990s: an introduction to the calculation of programs
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Eiffel: the language
The Z notation: a reference manual
The Z notation: a reference manual
Typing references by effect inference
ESOP'92 Symposium proceedings on 4th European symposium on programming
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
The type and effect discipline
Information and Computation
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Interface language for supporting programming styles
IDL '94 Proceedings of the workshop on Interface definition languages
Object-oriented specification case studies
Object-oriented specification case studies
Object-oriented specification case studies
Part I: the RESOLVE framework and discipline: a research synopsis
ACM SIGSOFT Software Engineering Notes
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS
IEEE Transactions on Software Engineering
Forcing behavioral subtyping through specification inheritance
Proceedings of the 18th international conference on Software engineering
Mathematical Notation in Formal Specification: Too Difficult for the Masses?
IEEE Transactions on Software Engineering
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reasoning about Java classes: preliminary report
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Integrating functional and imperative programming
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Safely creating correct subclasses without seeing superclass code
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An axiomatic basis for computer programming
Communications of the ACM
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Using data groups to specify and check side effects
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Formal Specification Techniques for Engineering Modular C Programs
Formal Specification Techniques for Engineering Modular C Programs
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Specification Case Studies
Executing Formal Specifications with Concurrent Constraint Programming
Automated Software Engineering
Computer
On the Frame Problem in Procedure Specifications
IEEE Transactions on Software Engineering
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Protective Interface Specifications
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Polymorphic Subtyping for Effect Analysis: The Static Semantics
Selected papers from the 5th LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages
Upgrading the Pre- and Postcondition Technique
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
Towards Reliable Modular Programs
Towards Reliable Modular Programs
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
Modeling Component Environments and Interactive Programs Using Iterative Choice
Modeling Component Environments and Interactive Programs Using Iterative Choice
A contextual interpretation of undefinedness for runtime assertion checking
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Purity and side effect analysis for java programs
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Translating the Object Constraint Language into the Java Modelling Language
Proceedings of the 2004 ACM symposium on Applied computing
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Information Hiding and Visibility in Interface Specifications
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Dynamic purity analysis for java programs
PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
An Efficient, Parametric Fixpoint Algorithm for Analysis of Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
A Prolog-oriented extension of Java programming based on generics and annotations
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Modular verification of higher-order methods with mandatory calls specified by model programs
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Status report on JSR-305: annotations for software defect detection
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
Tutorial on JML, the java modeling language
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Separation logic, abstraction and inheritance
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enhancing modular OO verification with separation logic
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended interface grammars for automated stub generation
Proceedings of the second workshop on Automated formal methods
Efficient runtime invariant checking: a framework and case study
WODA '08 Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008)
Checking Well-Formedness of Pure-Method Specifications
FM '08 Proceedings of the 15th international symposium on Formal Methods
JML Runtime Assertion Checking: Improved Error Reporting and Efficiency Using Strong Validity
FM '08 Proceedings of the 15th international symposium on Formal Methods
Separation Logic Contracts for a Java-Like Language with Fork/Join
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
Verification of Java Programs with Generics
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
Efficient Well-Definedness Checking
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Modeling Relations between Inputs and Dynamic Behavior for General Programs
Languages and Compilers for Parallel Computing
jStar: towards practical verification for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
A Flexible, (C)LP-Based Approach to the Analysis of Object-Oriented Programs
Logic-Based Program Synthesis and Transformation
Snapshot Generation in a Constructive Object-Oriented Modeling Language
Logic-Based Program Synthesis and Transformation
Mostly-Functional Behavior in Java Programs
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Predicate Abstraction in a Program Logic Calculus
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Checking semantic usage of frameworks
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
Specification and Verification of Invariants by Exploiting Layers in OO Designs
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
Contract Specification in Java: Classification, Characterization, and a New Marker Method
IEICE - Transactions on Information and Systems
Tisa: A Language Design and Modular Verification Technique for Temporal Policies in Web Services
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
In-field healing of integration problems with COTS components
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Improving API documentation usability with knowledge pushing
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Guaranteeing correctness of component bindings in dynamic adaptive systems based on runtime testing
Proceedings of the 4th international workshop on Services integration in pervasive environments
A comparative study of programmer-written and automatically inferred contracts
Proceedings of the eighteenth international symposium on Software testing and analysis
A Tool for Automated Certification of Java Source Code in Maude
Electronic Notes in Theoretical Computer Science (ENTCS)
Information and Software Technology
Generating Verified Java Components through RESOLVE
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Checking Framework Interactions with Relationships
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Are We Ready for a Safer Construction Environment?
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Automatic Inference of Frame Axioms Using Static Analysis
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
An Assume Guarantee Verification Methodology for Aspect-Oriented Programming
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Security Analysis of a Biometric Authentication System Using UMLsec and JML
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Contract Observation in Web Services Environments
SOCASE '09 Proceedings of the AAMAS 2009 International Workshop on Service-Oriented Computing: Agents, Semantics, and Engineering
Practical reasoning about invocations and implementations of pure methods
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Business process monitoring for dependability
Architecting dependable systems IV
A JML tutorial: modular specification and verification of functional behavior for java
CAV'07 Proceedings of the 19th international conference on Computer aided verification
A representation-independent behavioral semantics for object-oriented components
FMOODS'07 Proceedings of the 9th IFIP WG 6.1 international conference on Formal methods for open object-based distributed systems
Proceedings of the 2010 ACM Symposium on Applied Computing
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
Automatic certification of Java source code in rewriting logic
FMICS'07 Proceedings of the 12th international conference on Formal methods for industrial critical systems
Null dereference analysis in practice
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Proceedings of the 5th Workshop on Automation of Software Test
Modular aspect-oriented design with XPIs
ACM Transactions on Software Engineering and Methodology (TOSEM)
The design of SafeJML, a specification language for SCJ with support for WCET specification
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Reasoning about multiple related abstractions with MultiStar
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Verifying executable object-oriented specifications with separation logic
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Falling back on executable specifications
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Dafny meets the verification benchmarks challenge
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Integrating types and specifications for secure software development
MMM-ACNS'10 Proceedings of the 5th international conference on Mathematical methods, models and architectures for computer network security
Abstract certification of global non-interference in rewriting logic
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
RV'10 Proceedings of the First international conference on Runtime verification
Verification of software product lines with delta-oriented slicing
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
Specification and verification: the Spec# experience
Communications of the ACM
Enabling the runtime assertion checking of concurrent contracts for the Java modeling language
Proceedings of the 33rd International Conference on Software Engineering
Predicate abstraction in a program logic calculus
Science of Computer Programming
Types, regions, and effects for safe programming with object-oriented parallel frameworks
Proceedings of the 25th European conference on Object-oriented programming
WP semantics and behavioral subtyping
ICTAC'11 Proceedings of the 8th international conference on Theoretical aspects of computing
Lightweight verification of a multi-task threaded server: a case study with the plural tool
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Specifying subtypes in SCJ programs
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
Towards client-aware interface specifications
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Supporting data consistency in concurrent process execution with assurance points and invariants
RuleML'11 Proceedings of the 5th international conference on Rule-based modeling and computing on the semantic web
Specification-based sketching with Sketch
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
On the interplay of exception handling and design by contract: an aspect-oriented recovery approach
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Monitoring method call sequences using annotations
FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
A separation logic for OO programs
FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
A lightweight technique for distributed and incremental program verification
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Science of Computer Programming
Translating B machines to JML specifications
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Applying design by contract to feature-oriented programming
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Components monitoring through formal specifications
Proceedings of the 17th international doctoral symposium on Components and Architecture
CoMA: conformance monitoring of java programs by abstract state machines
RV'11 Proceedings of the Second international conference on Runtime verification
Verification of information flow properties of java programs without approximations
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Specification and Verification of Invariants by Exploiting Layers in OO Designs
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
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
Family-based deductive verification of software product lines
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
Predicate abstraction of Java programs with collections
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Reducing the barriers to writing verified specifications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Verification rules for exception handling in eiffel
SBMF'12 Proceedings of the 15th Brazilian conference on Formal Methods: foundations and applications
Formal semantics of model fields in annotation-based specifications
KI'12 Proceedings of the 35th Annual German conference on Advances in Artificial Intelligence
Modular verification of OO programs with interfaces
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Demonic testing of concurrent programs
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Model transformation testing: the state of the art
Proceedings of the First Workshop on the Analysis of Model Transformations
Design pattern-based extension of class hierarchies to support runtime invariant checks
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Past expression: encapsulating pre-states at post-conditions by means of AOP
Proceedings of the 12th annual international conference on Aspect-oriented software development
On exceptions, events and observer chains
Proceedings of the 12th annual international conference on Aspect-oriented software development
Modular aspect-oriented design rule enforcement with XPIDRs
Proceedings of the 12th workshop on Foundations of aspect-oriented languages
Formal verification of side-channel countermeasures using self-composition
Science of Computer Programming
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Science of Computer Programming
Runtime verification of service-oriented systems: a well-rounded survey
International Journal of Web and Grid Services
A test suite for safety-critical Java using JML
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
A design rule language for aspect-oriented programming
Journal of Systems and Software
Client-aware checking and information hiding in interface specifications with JML/ajmlc
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Identifying and specifying crosscutting contracts with AspectJML
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Exception handlers for healing component-based systems
ACM Transactions on Software Engineering and Methodology (TOSEM) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance
Modular reasoning about heap paths via effectively propositional formulas
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Separation logic for object-oriented programming
Aliasing in Object-Oriented Programming
A case study on the lightweight verification of a multi-threaded task server
Science of Computer Programming
Hi-index | 0.02 |
JML is a behavioral interface specification language tailored to Java(TM). Besides pre- and postconditions, it also allows assertions to be intermixed with Java code; these aid verification and debugging. JML is designed to be used by working software engineers; to do this it follows Eiffel in using Java expressions in assertions. JML combines this idea from Eiffel with the model-based approach to specifications, typified by VDM and Larch, which results in greater expressiveness. Other expressiveness advantages over Eiffel include quantifiers, specification-only variables, and frame conditions.This paper discusses the goals of JML, the overall approach, and describes the basic features of the language through examples. It is intended for readers who have some familiarity with both Java and behavioral specification using pre- and postconditions.