Publication | Closed Access
Preliminary design of JML
781
Citations
42
References
2006
Year
EngineeringJava ExpressionsVerificationSoftware EngineeringSoftware AnalysisFormal VerificationSocial SciencesFormal TechniqueJava CodeObject-oriented DesignXml LibraryFormal SpecificationDesignComputer ScienceStatic Program AnalysisSoftware DesignXml LanguageSoftware VerificationArchitectural DesignSpecification LanguageAutomated ReasoningProgram AnalysisSoftware TestingFormal MethodsPreliminary DesignSystem SoftwareGreater Expressiveness
JML is a behavioral interface specification language for Java that blends Eiffel‑style assertions with a model‑based approach, allowing expressive pre/postconditions and interleaved assertions to aid verification and debugging. This paper discusses JML’s goals, overall approach, and basic features through examples. JML’s expressiveness surpasses Eiffel by adding quantifiers, specification‑only variables, and frame conditions, and by integrating Java expressions in assertions.
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1