Dbc Automation JML

Uploaded from authorPOINT Lite
Download as
 PPT
Presentation Description 

No description available

Views: 126
Like it  ( Likes) Dislike it  ( Dislikes)
Added: February 05, 2008 This Presentation is Public 
Presentation Category : Education All Rights Reserved
Presentation Transcript

Design by Contract Automation: JML: Design by Contract Automation: JML dan wilkin bit.stream@alum.com SevaJug 16 October 2007


Overview: Overview 2


Design by Contract: Design by Contract 3


Design by Contract (Briefly): Design by Contract (Briefly) 4


Design by Contract (Briefly): Design by Contract (Briefly) 5


LOGIC MECHANICS: LOGIC MECHANICS A Surface Exposure to 6


Logic: Logic Defined: reasoning within a domain of observations to establish premises that yield a deduction Involves: differentiating facts from assumptions proving deductions, eliminating failed deductions Formal Logic Defined: expressions about a domain based on explicitly stated observations and propositions from which additional expressions are drawn results in a knowledge base identifies axioms as basis of expressions axiom: a self-evident principle or rule that is accepted without proof as the basis for argument, a postulate - American Heritage Dictionary 7 JML most resembles First-Order Logic


First-Order Logic: Quantifiers - Universal (“for all [x]”) - Existential (“there exists [some x in]”) predicate: a statement describing the property or relationship of a subject quantifier: an operator on a subject in order that predicates may be created over collections of subjects having the same type First-Order Logic Defined: a descriptive formal logic adding subjects, predicates, and quantifiers to form expressions yielding deductions Syntax: ident - some variable/subject, e.g. x, y name(…) - some predicate operating on some subject 8 enhances Propositional Logic (which in turn enhances Boolean Logic) enhanced by Second-Order Logic as with the other logics, a formal syntax to describe propositions (state what we know or want to prove from observations) as with the other logics, all deductions are subject to proofs


Slide9: Satisfiablility An expression is satisfiable IFF there is at least one set of values that makes the expression true. All self-contradictory expressions are unsatisfiable by definition e.g. “There is a podium in front of me and there is not a podium in front of me.” Deductions truth of an expression = the interpretation and observations of the world e.g. Siblings(Tim, Tam) - what do we know about the family of Tim and Tam for this predicate to be true? 9


Logic Mechanics: Examples: Logic Mechanics: Examples “One’s father is one’s male parent” f, c Father(f, c) Male(f) Parent(f, c) “It is a crime for an American to sell weapons to hostile nations.” x, y, z American(x) Weapon(y) Nation(z) Hostile(z) Sells(x, z, y)  Criminal(x) f, c Father(c) = f Male(f) Parent(f, c) 10


Logic Mechanics: Examples: x, y, i0 Interval(Engaged(x, y), i0)  i1 (Meet(i0, i1) After(i1, i0)) Interval(Marry(x, y) BreakEngagement(x, y), i1) Logic Mechanics: Examples i, j Meet(i, j) Time(End(i)) = Time(Start(j)) i, j After(j, i) Time(End(i)) > Time(Start(j)) 11


JAVA MODELING LANGUAGE: JAVA MODELING LANGUAGE jmlspecs.org 12


Purpose & Benefits: Purpose & Benefits 13


Purpose & Benefits: Purpose & Benefits 14


Background: Background Possible XP-style JML integration 15


Language Features: The default expressions for the heavyweight specifications are moderately complex; in short, they operate in an apparent stricter fashion, demanding more from the spec writer Language Features 16


Language Features: Language Features instance and/or static fields instance and/or static methods overriding methods: superclass method specifications defined with code are not inherited to subclasses (similar to final keyword) overriding methods will inherit superclass specifications; compiler error w/o keyword also Exception: private methods declared with helper JML modifier are not subject to the invariants defined in the class 17 methods with no specification take the default lightweight behavior: assignable \everything, requires \nothing, etc. class body level specifications can be invariants and history constraints. History constraints define how object state is expected to change over the life of the instance. Model programming affords model only methods, fields, and JML code. Model programs can also be embedded within Java methods, e.g. //@ assert


Language Features: Language Features 18


Language Features: Language Features 19


Language Features: Language Features 20


Language Features: Language Features 21


Language Features: Language Features Contains JML specifications only with Java method signatures - even for concrete classes, e.g. in java.util.LinkedList: public String toString(); Follow-up refinements to “tighten” specification or e.g. add specs to less visible methods. Negotiate and define with interface-participant Engineering staff to obtain the best interface between systems. Implement specification Modifiable (owned) Java class with embedded JML specifications. Additional refinements can be applied over time. Or, the Java class may not contain any specifications and this refinement file provides them. 22


Tools: Tools 23


Tools: Tools 24


Tools: Tools 25


Tools: Tools 26


Install/Configuration: Install/Configuration 27


Install/Configuration: Install/Configuration 28 jmlenv.bat


Examples: Examples 29


Summary: Summary 30


Examples: Examples Person.java 31


Examples: Examples Queue.java Queue.java (continued) 32


Examples: Examples Queue.java (continued) 33


Examples: Examples Queue.java (continued) 34


Examples: Examples Store.java Store.java (continued) 35


Examples: Examples Store.java (continued) EmptyQueueException.java 36