Design of a translation tool from OCL into JML by translating the iterate feature into Java methods [10, 11]

Size: px
Start display at page:

Download "Design of a translation tool from OCL into JML by translating the iterate feature into Java methods [10, 11]"

Transcription

1 OCL JML Design of a translation tool from OCL into JML by translating the iterate feature into Java methods Summary. The paper presents design of a translation library from OCL (Object Constraint Language) into JML (Java Modelling Language). Several approaches have proposed automatic generation methods of Java skeleton files from UML class diagrams. Some of them are publicized as plug-ins for Eclipse. On the other hand, less papers are found for automatic generation of JML from OCL. They deal with not all of the standard OCL library. Especially, some features of collections including iterate feature are not implemented. We resolve the problem by translating the iterate feature into Java methods. This paper also provides a concrete translation algorithm. The advantages of the proposed approach are as follows: 1. it helps to develop in Model Driven Development (MDD) with formal approach; 2. it conforms to test first which is often used in agile development, because designers can generate test cases using Java skeleton files with JML using JML standard tools; and 3. it helps to verify correctness of the program using model checking tools such as ESC/Java2. 1 UML MDA OMG OCL OCL UML OMG UML [10, 11] OCL UML Java OCL JML (Java Modeling Language) [7,8] JML OCL DbC (Design by Contract) (light-weight formal approach) OCL JML UML Java [19,20] EMF Eclipse [12] OCL JML Moiseev Russo [5] OCL JML Hamie [6] OCL JML Masayuki Owashi, Kozo Okano, Shinji Kusumoto,

2 FOSE2009 Collection iterate Eclipse OCL OCL JML OCL OCL [2] OMG 1 OCL UML OCL UML Design by Constract [9] 2.2 JML JML [4, 7, 8] Java Design by Constract [9] Java Java JML Java bool JML ensure, requrire, invariat signal, pure, assignable, assert JML Java JML Java ESC/Java2 [1] ( ) ESC/Java2 ESC/Java2 Simplify [3] 2.3 UML JML Engels [19] Harrison [20] UML OCL Moiseev Russo [5] OCL JML Hamie [6] OCL JML Collection iterate [6] ( 1) Collection Java UML OCL OCL

3 Design of a translation tool from OCL into JML by translating the iterate feature into Java methods 1 Feature Moiseev Russo Hamie Collection - Iterate (forall etc) Iterate (collect) - Iterate (iterate) - - Structures (Set etc) Structures (tuple) - OCL Spec. but partially Message OCL JML [6] JML 3.1 OCL 1. OCL Basic Collection OCL Essential 2. ( ) ( ) Bool, Integer, Real, String, Collection, Set, OrderedSet, Sequence, Bag Java(JML) ( ) 3. OCL 4. Message message 5. OclVoid Undefined Java(JML) null OCL OCL OCL OCL JML Collection OCL (feature call) iterate OCL Collection Java Collection Framework Java 1.5 ESC/Java [6] [6] OCL JML µ

4 FOSE µ Collection loop features µ(c 1 >exists(a 1 a 2 )) = µ(c 1 >iterate( a 1 ; res : Boolean = false res or a 2 )) µ(c 1 >forall(a 1 a 2 )) = µ(c 1 >iterate( a 1 ; res : Boolean = true res and a 2 )) µ(c 1 >isunique(a 1 a 2 )) = µ(c 1 >collect( a 1 Tuple {iter=tuple{a 1 }, value=a 2 } ) > forall(x, y (x.iter <> y.iter) implies x.value <> y.value) µ(c 1 >any(a 1 a 2 )) = µ(c 1 >select( a 1 a 2 ) >assequence() >first()) µ(c 1 >one(a 1 a 2 )) = µ(c 1 >select( a 1 a 2 ) >size()=1) µ(c 1 >collect(a 1 a 2 )) = µ(c 1 >collectnested( a 1 a 2 ) >flatten()) 3 µ Collection loop features Set µ(st 1 >select(a 1 a 2 )) = µ(st 1 >iterate( a 1 ; res : Set(T ) = Set {} if a 2 then res >includeing (a 1 ) else res endif)) µ(st 1 >reject(a 1 a 2 )) = µ(st 1 >select( a 1 not a 2 )) µ(st 1 >collectnested(a 1 a 2 )) = µ(st 1 >iterate( a 1 ; res : Bag(a 2.type)= Bag{} res >including(a 2 ))) µ(st 1 >sortedby(a 1 a 2 )) = µ(st 1 >iterate( a 1 ; res : OrderedSet(T )= OrderedSet{} if res >isempty() then res.append(a 1 ) else res.insertat(res >indexof( res >select(i a 2 (i) > a 2 (a 1 ) >first())),a 1 ) endif )) [6] µ µ Iterate Bool, Integer, Real, String, Collection, Set, OrederedSet, Sequence, Bag b m, i m, r m, s m, c m, st m, os m, sq m, bg m, u m (m = 1, 2, 3,...) a m Set 3 feature iterate collectnested() OCL featurecall [exp] UML OCL JML \old OCL primaryexp primaryexp literalcollection literal, (expression), ifexp, letexp, tupleexp if ifexp OCL JML Java Java cond?exp1:exp2 literalcollection 4 let OCL literalcollection Collection

5 Design of a translation tool from OCL into JML by translating the iterate feature into Java methods 4 µ Primary Expression µ(a 1 ) = a 1 µ(if b 1 then a 1 else a 2 endif) = (µ(b 1 )?µ(a 1 ):µ(a 2 )) µ((a 1 )) = (µ(a 1 )) 5 µ Primary Expression µ(collection {a 1 }) = (new ArrayList({µ e (a 1 )})) µ e (a 1, a 2 ) = µ(a 1 ), µ e (a 2 ) µ e (a 1 ) = µ(a 1 ) µ e (i 1..i 2 ) = seq(µ(i 1 ), µ(i 2 )) 6 µ(enum {a 1 }) = Enumn µ enumeration seq(i,j) i j Set OrderedSet Bag Sequence Collection OCL enumeratatype enum Java 1.5 enum enum OCL enum Enum{ kind, name } Java enum Enum01 { kind, name } enum Enumn ( 6) 1.4 String Set OCL ::. JML OclType JML Class 3.3 tuple tuple Java OCL tuple tuple Java field OCL tuple Java Tuple{name(: String), id= i } public final class Tuple_01 { public static String name; public static String id = "i023454" } 3.4 iterate iterate naive iterate feature OCL L L ( ) [17] JML Java OCL

6 FOSE2009 iterate feature OCL iteration m µ iterate feature OCL m OCL Java (JML ) m m body m JML Java private Java 1.5 for-each iterate feature for-each JML m 2 µ OCL OCL iterate feature (s) navigation (t) t s > OCL t t JML Context[] iterate feature init res for-each res Context[µ(a 1 >iterate(e; init body))] init T 2 res iterate res, JML private T 2 mprivateuseforjml01() { µ(init); for (T e: µ(a 1 )){ res = µ(body)} return res; } Context[mPrivateUseForJML01()] 2 Context[µ(a 1 >iterate(e; body))] a 1 T 2 JML private T 2 mprivateuseforjml01() { µ(init); for (T e: µ(a 1 )){ µ(body)} return µ(a 1 ); } Context[mPrivateUseForJML01()] [21] Java 1.4 for Iterator

7 Design of a translation tool from OCL into JML by translating the iterate feature into Java methods 1 Tool implementation as Eclipse plugin 3.5 OCL OCL Collection Java CF OCL OCL Java CF JML [16] OCL Java CF JML JML sum,includes Java CF size(), isempty(), notempty(), union(), intersection(), including(), excluding() ( ), as OrderedSet loop feature OCL interate Iteration Java 3.6 ( ) OCL Octopus tool [13], EMF OCL OCL OCL (ABST; Abstract Syntax Tree) ABST NTS: OCL Type: NodeList: token:,feature, token tokentype: token OCL SML 1 + a Integer a Integer if a > 0 then a + b else a endif OCL a, b Integer Real

8 FOSE Signatures of TranslationCore public static JMLNode transexpression(oclnode n); static JMLNode translogicalexp(oclnode n); static JMLNode transrelationalexp(oclnode n); static JMLNode transpostfixexp(oclnode n); static JMLNode transprimaryexp(oclnode n); static JMLNode transfeaturecallexp(oclnode n); OCL SML [15] JML ( ) signature OCL JML OCLNode, JMLNode( ) µ UML OCL UML 7 signature UML UML Java EclipseUML UML UML OCL UML 1 Eclpse IVE [18] JML4 [18] OCL UML OCL OCL UML Java OCL Java OCL UML JML Java JML Java JML ESC/Java2

9 Design of a translation tool from OCL into JML by translating the iterate feature into Java methods Eclipse 4 JML Java UML JML Java JML ESC/Java2 JML OCL 3.1 5

10 FOSE2009 OCL JML(Java Modeling Language) OCL JML [ 1 ] L. Burdy, Y. Cheon, D. R. Cok, M. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll: An overview of JML tools and applications, In T. Arts and W. Fokkink, editors, Eighth International Workshop on Formal Methods for Industrial Critical Systems (FMICS 03), Electronic Notes in Theoretical Computer Science, Vol.80, pp.73 89, [ 2 ] Object Management Group: OCL 2.0 Specification, [ 3 ] D. Detlefs: Simplify : A Theorem Prover for Program Checking, JACM, Vol.52 No.3, pp , [ 4 ] D. R. Cok: Specifying java iterators with JML and Esc/Java2, In Proceedings of the 2006 conference on Specification and verification of component-based systems pp.71 74, [ 5 ] R. Moiseev and A. Russo: Implementing an OCL to JML Translation Tool,, Vol.106, No.426, pp.13 17, 2006 [ 6 ] A. Hamie: Translating the Object Constraint Language into the Java Modelling Language, In Proceedings of the 2004 ACM symposium on Applied computing, pp , [ 7 ] G. Leavens, A. Baker, and C. Ruby: JML: A notation for detailed design, In Behavioral Specifications of Businesses and Systems (H. Kilov, B. Rumpe, and I.Simmonds, editors), pp , Kluwer Academic Publishers, Boston, [ 8 ] G. Leavens, A. Baker, and C. Ruby: Preliminary Design of JML: A Behavioral Interface Specification Language for Java, TR98-06, revised version [ 9 ] B. Meyer: Eiffel: the language, Prentice-Hall, Inc., Upper Saddle River, NJ, [10] M. Elaasar, and L.C. Briand: An Overview of UML Consistency Management, Technical Report SCE-04-18, Carleton University, [ 11] C. Lange, M.R.V. Chaudron, J. Muskens, L.J. Somers, and H.M. Dortmans: An Empirical Investigation in Quantifying Inconsistency and Incompleteness of UML Designs, In Proceedings of Workshop on Consistency Problems in UML-based Software Development II, pp.26 34, [ 12] Eclipse Foundation: Eclipse Modeling Framework, [ 13] K. Objecten: Octopus (OCL Tool for Precise UML Specifications), [ 14] J. Warner, and A. Kleppe: The Object Constraint Language Getting Your Models Ready for MDA, 2nd Ed. Pearson Education Inc., [ 15] B.C. Pierce: Types and Programming Languages, MIT press, [ 16] Samples of JML specifications leavens/jml/examples.shtml [ 17] M. Fowler: MF Bliki: Closure [ 18] P. Chalin, P. R. James, and G. Karabotsos: JML4: Towards an Industrial Grade IVE for Java and Next Generation Research Platform for JML, Proceedings of the International Conference on Verified Software: Theories, Tools, Experiments (VSTTE),2008 [ 19] G. Engels, R. Hücking, S. Sauer, A. Wagner: UML Collaboration Diagrams and Their Transformation to Java, UML1999 -Beyond the Standard, Second International Conference, pp , [ 20] W. Harrison, C. Barton, M. Raghavachari: Mapping UML designs to Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp , [21],, : iterate, m-owasi/ocljmltrans.pdf

JML OCL. Java. iterate

JML OCL. Java. iterate 1 OCL JML OCL (Object Constraint Language) JML (Java Modelling Language) UML/OCL JML Java OCL JML iterate iterate Java OCL JML The paper presents a translation method from OCL (Object Constraint Language)

More information

Implementation of a Prototype Bi-directional Translation Tool between OCL and JML

Implementation of a Prototype Bi-directional Translation Tool between OCL and JML Implementation of a Prototype Bi-directional Translation Tool between OCL and JML Kentaro Hanada, Hiroaki Shimba, Kozo Okano and Shinji Kusumoto, Graduate School of Information Science and Technology,

More information

Implementation of a Prototype Bi-directional Translation Tool between OCL and JML

Implementation of a Prototype Bi-directional Translation Tool between OCL and JML International Journal of Informatics Society, VOL.5, NO.2 (2013) 89-95 89 Implementation of a Prototype Bi-directional Translation Tool between OCL and JML Kentaro Hanada, Hiroaki Shinba, Kozo Okano and

More information

Practical Application of a Translation Tool from UML/OCL to Java Skeleton with JML Annotation

Practical Application of a Translation Tool from UML/OCL to Java Skeleton with JML Annotation Title Author(s) Practical Application of a Translation Tool from UML/OCL to Java Skeleton with JML Annotation Hanada, Kentaro; Okano, Kozo; Kusumoto, Shinji; Miyazawa, Kiyoyuki Citation Issue Date 2012

More information

Java Modelling Language (JML) References

Java 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 information

Index. business modeling syntax 181 business process modeling 57 business rule 40

Index. business modeling syntax 181 business process modeling 57 business rule 40 OCL.book Page 203 Tuesday, July 22, 2003 9:48 PM Index Symbols OclAny, of 167 = OclAny, of 167 @pre 34, 86, 155 ^ 34, 156 ^^ 157 A abstract syntax 93 accumulator 153 action in statechart 56 activity

More information

Canica: An IDE for the Java Modeling Language

Canica: An IDE for the Java Modeling Language Canica: An IDE for the Java Modeling Language Angelica B. Perez, Yoonsik Cheon, and Ann Q. Gates TR #06-36 August 2006 Keywords: Integrated development environment, specification tool, programming tool,

More information

A Library-Based Approach to Translating OCL Constraints to JML Assertions for Runtime Checking

A Library-Based Approach to Translating OCL Constraints to JML Assertions for Runtime Checking A Library-Based Approach to Translating OCL Constraints to JML Assertions for Runtime Checking Carmen Avila, Guillermo Flores, Jr., and Yoonsik Cheon TR #08-05 February 2008; revised May 2008 Keywords:

More information

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Profiles 166 Usage scenarios Metamodel customization for adapting terminology to a specific platform or domain adding (visual) notation adding and specializing semantics adding

More information

Introduction 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 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 information

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL

TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL TIME-BASED CONSTRAINTS IN THE OBJECT CONSTRAINT LANGUAGE OCL Ali Hamie, John Howse School of Computing, Mathematical and Information Sciences, University of Brighton, Brighton, UK. {a.a.hamie@brighton.ac.uk,

More information

A Class-Level Unit Testing Tool for Java

A Class-Level Unit Testing Tool for Java A Class-Level Unit Testing Tool for Java Tz-Fan Hu and Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi 621, Taiwan, R.O.C. Email: {htf97m,naiwei}@cs.ccu.edu.tw

More information

JML tool-supported specification for Java Erik Poll Radboud University Nijmegen

JML 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 information

Software Engineering

Software Engineering Software Engineering Lecture 15: OCL Peter Thiemann University of Freiburg, Germany 01.07.2013 Peter Thiemann (Univ. Freiburg) Software Engineering 01.07.2013 1 / 28 What is OCL? OCL = Object Constraint

More information

Object Oriented Program Correctness with OOSimL

Object Oriented Program Correctness with OOSimL Kennesaw State University DigitalCommons@Kennesaw State University Faculty Publications 12-2009 Object Oriented Program Correctness with OOSimL José M. Garrido Kennesaw State University, jgarrido@kennesaw.edu

More information

A Small Survey of Java Specification Languages *

A Small Survey of Java Specification Languages * Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 409 416. A Small Survey of Java Specification Languages * Gábor Kusper a, Gergely

More information

Appendix A OCL 2.0 Grammar

Appendix A OCL 2.0 Grammar Appendix A OCL 2.0 Grammar In this appendix we summarise the concrete syntax of OCL [113] using an extended Backus-Naur format [8]. The grammar in [113] is different from the grammar presented here. It

More information

Research Paper on Implementation of OCL Constraints in JAVA

Research Paper on Implementation of OCL Constraints in JAVA ISSN No. 0976-5697 Volume 8, No. 5, May June 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at www.ijarcs.info Research Paper on Implementation of OCL

More information

Formal Specification and Verification

Formal 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 information

Specification with OCL

Specification with OCL Specification with OCL Jurriaan Hage Slides adapted from Birgit Demuth, TU Dresden e-mail: jur@cs.uu.nl homepage: http://www.cs.uu.nl/people/jur/ Department of Information and Computing Sciences, Universiteit

More information

Static program checking and verification

Static 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 information

Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming

Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming Automatic Black-Box Method-Level Test Case Generation Based on Constraint Logic Programming i-tin Hu and ai-wei Lin Department of Computer Science and Information Engineering ational Chung Cheng University

More information

Specification and Verification of Garbage Collector by Java Modeling Language

Specification 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 information

Java-MOP: A Monitoring Oriented Programming Environment for Java

Java-MOP: A Monitoring Oriented Programming Environment for Java Java-MOP: A Monitoring Oriented Programming Environment for Java Feng Chen and Grigore Roşu Department of Computer Science, University of Illinois at Urbana - Champaign, USA {fengchen, grosu}@uiuc.edu

More information

Automatic Generation of Test Models and Properties from UML Models with OCL Constraints

Automatic Generation of Test Models and Properties from UML Models with OCL Constraints Automatic Generation of Test Models and Properties from UML Models with OCL Constraints Miguel A. Francisco Interoud Innovation S.L. (Spain) miguel.francisco@interoud.com Laura M. Castro MADS Group Dept.

More information

OCL for the Specification of Model Transformation Contracts

OCL for the Specification of Model Transformation Contracts OCL for the Specification of Model Transformation Contracts Eric Cariou, Raphaël Marvie, Lionel Seinturier, and Laurence Duchien LIFL - Université des Sciences et Technologies de Lille UMR CNRS 8022 -

More information

Formal Methods for Java

Formal 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 information

The Java Modeling Language JML

The 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 information

What is OCL? OCL/Context

What is OCL? OCL/Context What is? Software Engineering Lecture 5: Prof. Dr. Peter Thiemann Universität Freiburg SS 20 = object constraint language standard query language of UML 2 specify expressions and constraints in object-oriented

More information

Hans Karlsen. MDriven The book. Doing effective Business by taking control of Information. Hans Karlsen, Stockholm, Sweden

Hans Karlsen. MDriven The book. Doing effective Business by taking control of Information. Hans Karlsen, Stockholm, Sweden Hans Karlsen MDriven The book Doing effective Business by taking control of Information Hans Karlsen, Stockholm, Sweden 2016-01-23 Part 8 Object Constraint Language 1 What is Object Constraint Language

More information

Design by Contract and JML: concepts and tools

Design by Contract and JML: concepts and tools Métodos Formais em Engenharia de Software Design by Contract and JML: concepts and tools José Carlos Bacelar Almeida Departamento de Informática Universidade do Minho MI/MEI 2008/2009 1 Talk Outline Design

More information

The University of Bradford Institutional Repository

The University of Bradford Institutional Repository The University of Bradford Institutional Repository http://bradscholars.brad.ac.uk This work is made available online in accordance with publisher policies. Please refer to the repository record for this

More information

JML. Outline. Métodos Formais em Engenharia de Software. MI, Braga these slides were prepared by adopting/adapting teaching material

JML. 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 information

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 5: JML and Abstract Data Types Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg November 9, 2011 Jochen Hoenicke (Software Engineering) Formal Methods

More information

Verification of JML Generic Types with Yices

Verification of JML Generic Types with Yices 1 Verification of JML Generic Types with Yices Néstor Cataño The University of Madeira, Carnegie Mellon University Portugal ncatano@uma.pt Camilo Rueda Pontificia Universidad Javeriana Colombia crueda@javerianacali.edu.co

More information

A Thought on Specification Reflection

A Thought on Specification Reflection A Thought on Specification Reflection Yoonsik Cheon, Yoshiki Hayashi Department of Computer Science, University of Texas at El Paso El Paso, Texas 79912 USA cheon@cs.utep.edu Gary T. Leavens Department

More information

Formal Methods for Software Engineers

Formal Methods for Software Engineers Formal Methods for Software Engineers Professor Ray Welland Department of Computing Science University of Glasgow ray@dcs.gla.ac.uk INF3120-FM 1 Overview Motivation Why have formal specifications? Where

More information

Master Thesis Project Plan. Reusable Mathematical Models

Master Thesis Project Plan. Reusable Mathematical Models Master Thesis Project Plan Reusable Mathematical Models Tobias K. Widmer widmer@id.ethz.ch Supervisors: Prof. Dr. B. Meyer B. Schoeller Chair of Software Engineering Department of Computer Science, ETH

More information

Assertions & Design-by-Contract using JML Erik Poll University of Nijmegen

Assertions & 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 information

A Catalog of Bad Smells in Design-by-Contract Methodologies with Java Modeling Language

A Catalog of Bad Smells in Design-by-Contract Methodologies with Java Modeling Language Regular Paper Journal of Computing Science and Engineering, Vol. 7, No. 4, December 2013, pp. 251-262 A Catalog of Bad Smells in Design-by-Contract Methodologies with Java Modeling Language Thiago Viana*

More information

Toward Instant Gradeification

Toward Instant Gradeification Toward Instant Gradeification Daniel M. Zimmerman, Joseph R. Kiniry and Fintan Fairmichael University of Washington Tacoma, USA dmz@acm.org IT University of Copenhagen, Denmark kiniry@acm.org University

More information

Advances in Programming Languages

Advances 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 information

Karsten Sohr Center for Computing Technologies Universität Bremen, Germany

Karsten Sohr Center for Computing Technologies Universität Bremen, Germany Towards Formal Specification and Verification of a Role-Based Authorization Engine using JML [Position paper] Tanveer Mustafa Center for Computing Technologies Universität Bremen, Germany tanveer@tzi.de

More information

Formale Entwicklung objektorientierter Software

Formale 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 information

OCL parsing / type checking in the context of GF and KeY. Kristofer Johannisson

OCL parsing / type checking in the context of GF and KeY. Kristofer Johannisson OCL parsing / type checking in the context of GF and KeY Kristofer Johannisson 1 I. Introduction 2 Typechecking? context OwnerPIN inv: maxpinsize > 0 and maxtries > 0 and triesremaining >= 0 and triesremaining

More information

BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning

BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning BON-CASE: An Extensible CASE Tool for Formal Specification and Reasoning Richard Paige Department of Computer Science, University of York, York, U.K. Liliya Kaminskaya AMDocs Inc., Toronto, Ontario, Canada

More information

Adding native specifications to JML

Adding native specifications to JML Adding native specifications to JML Julien Charles INRIA Sophia-Antipolis, France Julien.Charles@sophia.inria.fr Abstract. In the specification language JML we can see pure methods as a way to express

More information

Lecture 10 Design by Contract

Lecture 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 information

Advances in Programming Languages

Advances 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 information

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript

Model-Driven Iterative Development of 3D Web-Applications Using SSIML, X3D and JavaScript Freiberg University of Mining and Technology The University of Resources. Since 1765. WEB3D 2012-17th International Conference on 3D Web Technology Model-Driven Iterative Development of 3D Web-Applications

More information

Rigorous Software Development CSCI-GA

Rigorous Software Development CSCI-GA Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 6 Disclaimer. These notes are derived from notes originally developed by Jochen Hoenicke. They are copyrighted

More information

Integration of Java Generics Into The jmle Tool Within The Eclipse IDE

Integration of Java Generics Into The jmle Tool Within The Eclipse IDE Integration of Java Generics Into The jmle Tool Within The Eclipse IDE by Adrian Kostrubiak Submitted in partial fulfillment of Honors Requirements For the Computer Science Major, Dickinson College, 2008-09.

More information

Formal Verification Technique for Consistency Checking between equals and hashcode Methods in Java

Formal Verification Technique for Consistency Checking between equals and hashcode Methods in Java International Journal of Informatics Society, VOL.7, NO.2 (2015 77-87 77 Formal Verification Technique for Consistency Checking between equals and hashcode Methods in Java Kozo Okano, Hiroaki Shimba, Takafumi

More information

OCL Implementing the Standard for Multiple Metamodels

OCL Implementing the Standard for Multiple Metamodels OCL 2.0 - UML 2003 Preliminary Version OCL 2.0 - Implementing the Standard for Multiple Metamodels David Akehurst 1 Computing Laboratory University of Kent Canterbury, UK Octavian Patrascoiu 2 Computing

More information

A Runtime Assertion Checker for the Java Modeling Language ( JML)

A Runtime Assertion Checker for the Java Modeling Language ( JML) Computer Science Technical Reports Computer Science 4-2002 A Runtime Assertion Checker for the Java Modeling Language ( JML) Yoonsik Cheon Iowa State University Gary T. Leavens Iowa State University Follow

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Verifying JML specifications with model fields

Verifying 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 information

ATL TRANSFORMATION EXAMPLE

ATL TRANSFORMATION EXAMPLE 1. ATL Transformation Example 1.1. Example: KM3 Problem The example describes a transformation a KM3 metamodel [1] in a Problem model. The generated Problem model contains the list of non-structural errors

More information

ESC/Java2 extended static checking for Java Erik Poll Radboud University Nijmegen

ESC/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 information

Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability

Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability Combining Design by Contract and Inference Rules of Programming Logic towards Software Reliability Nuha Aldausari*, Cui Zhang and Jun Dai Department of Computer Science, California State University, Sacramento,

More information

Static analysis and testing of executable DSL specification

Static analysis and testing of executable DSL specification Static analysis and testing of executable DSL specification Qinan Lai 1, Andy Carpenter 1 1 School of Computer Science, the University of Manchester, Manchester, UK {laiq,afc}@cs.man.ac.uk Keywords: Abstract:

More information

Helping Programmers to Adopt Set-Based Specifications

Helping Programmers to Adopt Set-Based Specifications Helping Programmers to Adopt Set-Based Specifications Maximiliano Cristiá 1, Gianfranco Rossi 2, and Claudia Frydman 3 1 CIFASIS and UNR, Rosario, Argentina cristia@cifasis-conicet.gov.ar 2 Università

More information

Metamodeling with Metamodels. Using. UML/MOF including OCL

Metamodeling with Metamodels. Using. UML/MOF including OCL Metamodeling with Metamodels Using UML/MOF including OCL Introducing Metamodels (Wikipedia) A metamodel is a model of a model An instantiation of metamodel gives a model Metamodeling is the process of

More information

Reasoning about Object Structures Using Ownership

Reasoning about Object Structures Using Ownership Reasoning about Object Structures Using Ownership Peter Müller ETH Zurich, Switzerland Peter.Mueller@inf.ethz.ch Abstract. Many well-established concepts of object-oriented programming work for individual

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs

A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs Myoung Yee Kim and Yoonsik Cheon TR #7-57 November 7; revised January Keywords: fitness

More information

Information Hiding and Visibility in Interface Specifications

Information Hiding and Visibility in Interface Specifications Information Hiding and Visibility in Interface Specifications Gary T. Leavens and Peter Müller TR #06-28 September 2006 Keywords: Information hiding, visibility, behavioral interface specification language,

More information

Programming with Contracts. Juan Pablo Galeotti, Alessandra Gorla Saarland University, Germany

Programming 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 information

Overview The Java Modeling Language (Part 1) Related Work

Overview 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 information

ESC/Java2 Use and Features

ESC/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 information

ESC/Java2 Use and Features

ESC/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 information

QVT: Query, Views, Transformations

QVT: Query, Views, Transformations QVT: Query, Views, Transformations Rubby Casallas Grupo de Construcción de Software Uniandes Basics Transformations are essential for the MDE A model transformation: takes as input a model conforming to

More information

New Metrics for Program Specifications Based on DbC

New Metrics for Program Specifications Based on DbC International Journal of Informatics Society, VOL.6, NO.2 (2014) 67-77 67 New Metrics for Program Specifications Based on DbC Kozo Okano, Yuko Muto, Yukihiro Sasaki, Takafumi Ohta, Shinji Kusumoto, and

More information

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language]

SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language] Lecture day 2016-04-07 SLIDES: Introductory Modeling Example Employing UML and OCL [UML: Unified Modeling Language, OCL:Object Constarint Language] - System design in an object-oriented way employing USE

More information

On Preserving Domain Consistency for an Evolving Application

On 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 information

Testing Library Specifications by Verifying Conformance Tests

Testing 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 information

Integrating verification in programming languages

Integrating 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 information

Full Verification of the KOA Tally System

Full Verification of the KOA Tally System Final Year Project Final Report A thesis submitted in part fulfilment of the degree of BSc. (Hons.) in Computer Science with the supervision of Dr. Joseph Kiniry and moderated by Mr. John Dunnion. Department

More information

Test Driven Development with Oracles and Formal Specifications

Test Driven Development with Oracles and Formal Specifications Test Driven Development with Oracles and Formal Specifications Shadi Alawneh and Dennis Peters Faculty of Engineering and Applied Science Memorial University, St.John s, NL Canada A1B 3X5 {shadi.alawneh,dpeters}@mun.ca

More information

An Aspect-Oriented Approach to Modular Behavioral Specification

An Aspect-Oriented Approach to Modular Behavioral Specification Electronic Notes in Theoretical Computer Science 163 (2006) 45 56 www.elsevier.com/locate/entcs An Aspect-Oriented Approach to Modular Behavioral Specification Kiyoshi Yamada 1 Research Center for Information

More information

Faithful mapping of model classes to mathematical structures

Faithful mapping of model classes to mathematical structures Faithful mapping of model classes to mathematical structures Ádám Darvas ETH Zurich adam.darvas@inf.ethz.ch Peter Müller Microsoft Research mueller@microsoft.com Abstract Abstraction techniques are indispensable

More information

Advances in Programming Languages

Advances 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 information

Model Variables: Cleanly Supporting Abstraction in Design By Contract

Model Variables: Cleanly Supporting Abstraction in Design By Contract SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2004; 00:1 18 [Version: 2002/09/23 v2.2] Model Variables: Cleanly Supporting Abstraction in Design By Contract Yoonsik Cheon 1,,, Gary Leavens 2, Murali

More information

Rubby Casallas Grupo de Construcción de Software Uniandes

Rubby Casallas Grupo de Construcción de Software Uniandes UML OCL 2.0 Rubby Casallas Grupo de Construcción de Software Uniandes Why OCL? A UML diagram, such as a class diagram, is typically not refined enough to provide all the relevant aspects of a specification.

More information

Design and Implementation of a UML/OCL Compiler

Design and Implementation of a UML/OCL Compiler Design and Implementation of a UML/OCL Compiler Faridah Liduan Master Thesis INF/SCR-04/31 June 2004 Institute of Information and Computing Sciences Utrecht University Abstract The Dutch Tax and Customs

More information

The syntax of the OUN language

The syntax of the OUN language The syntax of the OUN language Olaf Owe Department of Informatics, University of Oslo, Norway February 21, 2002 Contents 1 The OUN language 1 1.1 Interface and contract definition.................. 2 1.2

More information

Homework #1, on the class web pages later today

Homework #1, on the class web pages later today Assertions Reading assignment A. J. Offutt, A Practical System for Mutation Testing: Help for the Common Programmer, Proceedings of the 12th International Conference on Testing Computer Software, Washington,

More information

ESC/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 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 information

Research Collection. Reusable mathematical models. Master Thesis. ETH Library. Author(s): Widmer, Tobias K. Publication Date: 2004

Research Collection. Reusable mathematical models. Master Thesis. ETH Library. Author(s): Widmer, Tobias K. Publication Date: 2004 Research Collection Master Thesis Reusable mathematical models Author(s): Widmer, Tobias K. Publication Date: 2004 Permanent Link: https://doi.org/10.3929/ethz-a-005115737 Rights / License: In Copyright

More information

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

2 nd UML 2 Semantics Symposium: Formal Semantics for UML 2 nd UML 2 Semantics Symposium: Formal Semantics for UML Manfred Broy 1, Michelle L. Crane 2, Juergen Dingel 2, Alan Hartman 3, Bernhard Rumpe 4, and Bran Selic 5 1 Technische Universität München, Germany

More information

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008

Specification-based Testing of Embedded Systems H. Schlingloff, SEFM 2008 SEFM School 2008 Specification-based Testing of Embedded Systems Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin and Fraunhofer FIRST, Berlin Lecture 4: Mutations, OCL etc. Course Outline L1:

More information

ATL: Atlas Transformation Language. ATL User Manual

ATL: Atlas Transformation Language. ATL User Manual ATL: Atlas Transformation Language ATL User Manual - version 0.7 - February 2006 by ATLAS group LINA & INRIA Nantes Content 1 Introduction... 1 2 An Introduction to Model Transformation... 2 2.1 The Model-Driven

More information

Advances in Programming Languages

Advances 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 information

OCL Tooling for OMG specifications

OCL Tooling for OMG specifications OCL Tooling for OMG specifications Edward Willink Thales representative for OMG OCL RTF Eclipse OCL Project Lead Thales representative for OMG QVT RTF Eclipse QVT Declarative Project Lead OMG Quarterly

More information

Formal Verification Technique for Consistency Checking between equals and hashcode methods in Java

Formal Verification Technique for Consistency Checking between equals and hashcode methods in Java Formal Verification Technique for Consistency Checking between equals and hashcode methods in Java Hiroaki Shimba, Takafumi Ohta, Hiroki Onoue, Kozo Okano and Shinji Kusumoto Graduate School of Information

More information

Java Modelling Language (JML) References

Java 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 information

Formal Specification of Software Systems

Formal Specification of Software Systems Formal Specification of Software Systems Lecture Notes Winter Term 2001 / 2002 Heinrich Hußmann Technische Universität Dresden Formal Specification of Software Systems Summary: Construction of large software

More information

ESC/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 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 information

UNIT-II Introduction to UML

UNIT-II Introduction to UML UNIT-II Introduction to UML - P. P. Mahale UML OVERVIEW OF UML :- We need a Modeling Language! We will use the Unified Modeling Language, UML), Provides a standard for artifacts produced during development

More information

Eiffel as a Framework for Verification

Eiffel as a Framework for Verification Eiffel as a Framework for Verification Bertrand Meyer ETH Zurich http://se.inf.ethz.ch Eiffel Software www.eiffel.com Abstract. The Eiffel method and language integrate a number of ideas originating from

More information