Writing Larch interface language specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Inheritance and subtyping in a parallel object-oriented language
European conference on object-oriented programming on ECOOP '87
Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Eiffel: the language
Interfaces and specifications for the Smalltalk-80 collection classes
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Specifications and their use in defining subtypes
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Part I: the RESOLVE framework and discipline: a research synopsis
ACM SIGSOFT Software Engineering Notes
Part II: specifying components in RESOLVE
ACM SIGSOFT Software Engineering Notes
The Larch/Smalltalk interface specification language
ACM Transactions on Software Engineering and Methodology (TOSEM)
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Toward reliable modular programs
Toward reliable modular programs
Forcing behavioral subtyping through specification inheritance
Proceedings of the 18th international conference on Software engineering
Theory and Practice of Object Systems - Special issue: type systems
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Behavioral subtyping in object-oriented languages
Behavioral subtyping in object-oriented languages
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
Joining specification statements
Theoretical Computer Science
A semantic foundation for specification matching
Foundations of component-based systems
Concepts of behavioral subtyping and a sketch of their extension to component-based systems
Foundations of component-based systems
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
Calculating sharp adaptation rules
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
Design by contract, by example
Design by contract, by example
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A Discipline of Programming
On the Frame Problem in Procedure Specifications
IEEE Transactions on Software Engineering
Object Orientation in Z
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Behavioral Compatibility of Self-Typed Theories
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
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
Object Orientation in Z
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
Enhancing the Pre- and Postcondition Technique for More Expressive Specifications
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
The Greybox Approach: When Blackbox Specifications Hide Too Much
The Greybox Approach: When Blackbox Specifications Hide Too Much
Bogor: an extensible and highly-modular software model checking framework
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Towards imperative modules: reasoning about invariants and sharing of mutable state
Theoretical Computer Science - Components and objects
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
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
A verification methodology for model fields
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Information Hiding and Visibility in Interface Specifications
ICSE '07 Proceedings of the 29th international conference on Software Engineering
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
Tutorial on JML, the java modeling language
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Implementing Java modeling language contracts with AspectJ
Proceedings of the 2008 ACM symposium on Applied computing
Verified Software: Theories, Tools, Experiments
Modelling with Relational Calculus of Object and Component Systems - rCOS
The Common Component Modeling Example
Refinement and verification in component-based model-driven design
Science of Computer Programming
Typestate protocol specification in JML
Proceedings of the 8th international workshop on Specification and verification of component-based systems
Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Harnessing rCOS for tool support: the CoCoME experience
Formal methods and hybrid real-time systems
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
Specifying subtypes in SCJ programs
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
rCOS: a formal model-driven engineering method for component-based software
Frontiers of Computer Science in China
ACM Transactions on Programming Languages and Systems (TOPLAS)
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Modular verification of OO programs with interfaces
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Modular aspect-oriented design rule enforcement with XPIDRs
Proceedings of the 12th workshop on Foundations of aspect-oriented languages
Science of Computer Programming
Identifying and specifying crosscutting contracts with AspectJML
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Contracts for First-Class Classes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
The Java Modeling Language (JML) is used to specify detailed designs for Java classes and interfaces. It has a particularly rich set of features for specifying methods. This paper describes those features, with particular emphasis on the features related to specification inheritance. It shows how specification inheritance in JML forces behavioral subtyping, through a discussion of semantics and examples. It also describes a notion of modular reasoning based on static type information, supertype abstraction, which is made valid in JML by methodological restrictions on invariants, history constraints, and initially clauses and by behavioral subtyping.