JML OCL. Java. iterate

Size: px
Start display at page:

Download "JML OCL. Java. iterate"

Transcription

1 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) into JML (Java Modelling Language). Several approaches have proposed automatic generation methods of Java skeleton files from UML class diagrams. 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 paper also provides a translation example from OCL into JML. 1 OCL UML OMG UML [3][8] Java JML (Java Modeling Language) [9] JML OCL DbC (Design by Contract) UML Java A translation method from OCL into JML by translating the iterate feature into Java methods. Masayuki Owashi, Kozo Okano, Shinji Kusumoto,, Graduate School of Information Science and Technology, Osaka University., Vol.1, No.0 (1984), pp.1 6. [ ( )] [4][6] EMF Eclipse [2] OCL JML Hamie [5] OCL JML Rodion Alessandra [14] OCL JML Avila [1] Collection iterate iterate OCL JML [13]

2 OCL OCL [11] OMG 1 OCL UML OCL UML Design by Contract[10] 2. 2 JML JML[9] Java Design by Contract[10] Java Java JML Java bool JML Java JML Java ESC/Java2 ( ) ESC/Java UML JML Engels [4] Harrison [6] UML OCL 1 Feature Rodion Alessandra Hamie Collection - Iterate (forall etc) Iterate (collect) - Iterate (iterate) - - Structures (Set etc) Structures (tuple) - OCL Spec. but partially Message :supported, -: not supported Rodion Alessandra [14] OCL JML Hamie [5] OCL JML Avila [1] [5] OCL JML Collection iterate iterate OCL JML Java ( ) students->select(score > 70) Java select(exp) OCL score > 70 exp [5] OCL JML 1 Java OCL 3 OCL JML [5] JML

3 Vol. 1 No OCL 1. OCL Basic OCL Essential 2. ( ) Bool, Integer, Real, String, Collection, Set, Bag, OrderedSet, Sequence Java(JML) 3. OCL Java JML 4. Message message 5. OclVoid Undefined Java(JML) null 3.3 OCL OCL OCL [11] OCL JML Collection OCL (feature call) iterate OCL Collection Java Collection Framework 3. 2 [5] [5] 2 µ Collection loop features µ(c1 >exists(a1 a2)) = µ(c1 >iterate( a1; res : Boolean = false res or a2)) µ(c1 >forall(a1 a2)) = µ(c1 >iterate( a1; res : Boolean = true res and a2)) µ(c1 >isunique(a1 a2)) = µ(c1 >collect( a1 Tuple {iter=tuple{a1, value=a2 ) > forall(x, y (x.iter <> y.iter) implies x.value <> y.value) µ(c1 >any(a1 a2)) = µ(c1 >select( a1 a2) >assequence() >first()) µ(c1 >one(a1 a2)) = µ(c1 >select( a1 a2) >size()=1) µ(c1 >collect(a1 a2)) = µ(c1 >collectnested( a1 a2) >flatten()) OCL JML µ µ e [5] µ µ Iterate Integer, Collection i m, c m, (m = 1, 2, 3,...) a m feature iterate collectnested() iterate iterate naive iterate OCL L L ( ) JML Java OCL iterate feature OCL iteration m µ

4 4 iterate feature OCL JML m OCL Java (JML ) m m body m JML Java private iterate feature Java 1.5 for-each JML m 2 µ OCL OCL iterate feature (s) (t) t s > OCL t t JML Context[] Context[µ(a 1 >iterate(e; init body))] init T 1 res iterate res, JML private T 1 mprivateuseforjml01() { µ(init); for (T 2 e: µ(a 1 )){ res = µ(body) return res; Context[mPrivateUseForJML01()] 1 c >count( ocl ) > 0 Context[] [] > 0 µ(c >count( ocl ) > 0) µ((c >iterate( e; acc : Integer = 0 if e = ocl then acc + 1 else acc endif))> 0) private int mprivateuseforjml01() { µ(acc : Integer = 0); for (String e : c){ endif) acc = µ( if e = ocl then acc + 1 else acc return acc; private int mprivateuseforjml01() { int acc = 0; for (String e : c){ acc=(e.equals( ocl )? acc + 1: acc) ; return acc; µ mprivateuseforjml01()> 0 Java 1.4 for Iterator private T 1 mprivateuseforjml01() { µ(init); Iterator i=µ(a 1 ).getiterator(); while(i.hasnext()){ res = µ(body); i.next(); return res;

5 Vol. 1 No OCL [12] ID containerset allitemlist item OCL Context Storage inv: containerset->isunique(containerid) inv: allitemlist->collect(item) = containerset ->collect(container)->collect(item) OCL µ /*@ invariant )->forall(x,y x<>y implies x.value <> y.value)) iterate /*@ invariant µ(containerset ->iterate(containerid;res:bag(containerid) =Bag{ res->includeing(containerid)) ->forall(x,y x<>y implies x.value <> iterate JML /*@ invariant (\forall ContainerID x, iteratemethod01().has(x) && iteratemethod01().has(y);!x.equals(y) ==>!x.value.equals(y.value)); [5] isunique OCL collect forall collect JML \collect [14] collect /*@ invariant (\forall ContainerID x, y; JMLTools.collect( containerset, containerid ).has(x) && JMLTools.collect( containerset, containerid ).has(y);!x.equals(y) [14] collect containerid->tolower() API OCL Collection size(), isempty(), notempty(), union(), intersection(), including(), Set OrderedSet excluding(), as OrderedSet Java (CF) OCL OCL Java CF JML [7] OCL Java CF JML JML sum,includes

6 6 Java CF loop feature OCL iterate Iteration Java 3.1 OclVoid null True or Undefined OclVoid ( True) OclVoid [1] 4 OCL JML OCL JML [1] [1] 3.1 OCL ESC/Java2 IT (C) ( : , ) [ 1 ] Avila, C., Flores, Jr., G., and Cheon, Y.: A library-based approach to translating OCL constraints to JML Assersions for Runtime Checking, International Conference on Softw. Eng. Research and Practice, 2008, pp [ 2 ] Eclipse Foundation: Eclipse Modeling Framework. [ 3 ] Elaasar, M. and Briand, L. C.: An overview of UML consistency management, Technical report, Carleton University, [ 4 ] Engels, G., Hücking, R., Sauer, S., and Wagner, A.: UML collaboration diagrams and their transformation to Java, UML1999 -Beyond the Standard, Second International Conference, 1999, pp [ 5 ] Hamie, A.: Translating the Object Constraint Language into the Java Modelling Language, In Proc. of the 2004 ACM symposium on Applied computing, 2004, pp [ 6 ] Harrison, W., Barton, C., and Raghavachari, M.: Mapping UML designs to Java, Proc. of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 2000, pp [ 7 ] JML Specs: Samples of JML specifications. leavens/jml/ examples.shtml. [ 8 ] Lange, C., Chaudron, M. R. V., Muskens, J., Somers, L. J., and Dortmans, H. M.: An empirical investigation in quantifying inconsistency and incompleteness of UML designs, In Proc. of Workshop on Consistency Problems in UML-based Software Development II, 2003, pp [ 9 ] Leavens, G., Baker, A., and Ruby, C.: JML: A Notation for Detailed Design, Behavioral Specifications of Businesses and Systems, (1999), pp [10] Meyer, B.: Eiffel: the language, Prentice-Hall, Inc., Upper Saddle River, NJ, [11] Object Management Group: OCL 2.0 Specification. formal/ pdf. [12],, : JML ESC/Java2,, Vol. J91D,No. 11(2008), pp [13],, : OCL JML, XVI, (FOSE 2009),, 2009, pp [14] Rodion, M. and Alessandra, R.: Implementing an OCL to JML translation tool,, Vol. 106, No. 426, 2006, pp

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

Design of a translation tool from OCL into JML by translating the iterate feature into Java methods [10, 11] 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Formal Methods in Software Engineering 1

Formal Methods in Software Engineering 1 Building Models with OCL Introduction Completing UML Diagrams Modeling Tips and Hints Summary Formal Methods in Software Engineering 1 What Is a Model? Simply put, a model is a high level system description.

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

Composite Structures

Composite Structures Composite Structures Marie-Agnès Peraldi-Frati UNSA/I3S/INRIA map@unice.fr UML 2 Composition Model Purpose: improve the black diamond composition Supports connections between parts at the same level of

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

Formal Methods for Java

Formal Methods for Java Formal Methods for Java Lecture 30: Conclusion Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Feb 17, 2012 Jochen Hoenicke (Software Engineering) FM4J Feb 17, 2012 1 / 21 Topics

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 5: OCL, ParTeG Course Outline L1: Introduction

More information

Java Modeling Language (JML)

Java Modeling Language (JML) CIS 771: Software Specifications Introduction to JML Java Modeling Language (JML) A behavioral interface specification language for Java supporting design-by-contract (DBC)... invented by Gary T. Leavens

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

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

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

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

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

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

Verification Conditions. Juan Pablo Galeotti, Alessandra Gorla, Andreas Rau Saarland University, Germany

Verification Conditions. Juan Pablo Galeotti, Alessandra Gorla, Andreas Rau Saarland University, Germany Verification Conditions Juan Pablo Galeotti, Alessandra Gorla, Andreas Rau Saarland University, Germany 30% projects (10% each) At least 50% threshold for exam admittance Groups of 2 70% final exam (see

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

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

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

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

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

Verifying Java Programs Verifying Java Programs with KeY

Verifying Java Programs Verifying Java Programs with KeY Verifying Java Programs Verifying Java Programs with KeY 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

Architectural Models and Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A)

Architectural Models and Styles Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A) Component-Based Software Engineering ECE493-Topic 5 Winter 2007 Lecture 12 The Object Constraint Language (Part A) Ladan Tahvildari Assistant Professor Dept. of Elect. & Comp. Eng. University of Waterloo

More information

JML Class Specifications The Java Modeling Language (Part 2) A Java Class

JML Class Specifications The Java Modeling Language (Part 2) A Java Class JML Class Specifications The Java Modeling Language (Part 2) Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria

More information

Chapter 8, Object Design: Object Constraint Language

Chapter 8, Object Design: Object Constraint Language Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 8, Object Design: Object Constraint Language Outline of the Lecture OCL Simple predicates Preconditions Postconditions Contracts

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

The Java Modeling Language (Part 2)

The Java Modeling Language (Part 2) The Java Modeling Language (Part 2) 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

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

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) IV. (Meta-) Modelling Frameworks 2 1. Motivation & Overview With MOF, we have: Modelling notation (EMOF / CMOF) Java API (JMI, EMF, etc) Instance model /

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

ATL Transformation Examples. The KM3 to Metric ATL transformation

ATL Transformation Examples. The KM3 to Metric ATL transformation s The KM3 to Metric ATL transformation - version 0.1 - September 2005 by ATLAS group LINA & INRIA Nantes Content 1 Introduction... 1 2 The KM3 to Metrics ATL transformation... 1 2.1 Transformation overview...

More information

Testing, Debugging, and Verification

Testing, Debugging, and Verification Testing, Debugging, and Verification Formal Specification, Part II Srinivas Pinisetty 23 November 2017 Introduction Today: Introduction to Dafny: An imperative language with integrated support for formal

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

Agenda. More on the Unified Modeling Language. UML diagram types. Packages

Agenda. More on the Unified Modeling Language. UML diagram types. Packages Agenda More on the Unified Modeling Language Perdita Stevens, University of Edinburgh July 2010 And the rest... deployment diagrams, component diagrams, object diagrams, timing diagrams, etc. OCL and alternatives

More information

Formal Methods in Software Engineering 1

Formal Methods in Software Engineering 1 Today s Agenda Quiz 1 on next Tue. Quick Review Finish Program Proof Introduction to OCL Formal Methods in Software Engineering 1 Quick Review What is the difference between first-order logic and propositional

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

JML. Java Modeling Language

JML. Java Modeling Language JML Java Modeling Language Overview About the JML Project DBC Design By Contract JML concepts, examples, syntax and capabilities Basics Exceptions Invariants Assertions Quantifiers Other keywords JML hiding

More information

Verifying Java Programs with KeY

Verifying Java Programs with KeY Verifying Java Programs with KeY Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at Wolfgang

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 8 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Components: Synchronized communication Sequence Diagrams Use Case Realization

More information

Experimenting with Multi-Level Models in a Two-Level Modeling Tool

Experimenting with Multi-Level Models in a Two-Level Modeling Tool Experimenting with Multi-Level Models in a Two-Level Modeling Tool Martin Gogolla Database Systems Group, University of Bremen, Germany gogolla@informatik.uni-bremen.de Abstract. This paper discusses two

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

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

Ensuring a Rigorous Curriculum: Practices and Goals

Ensuring a Rigorous Curriculum: Practices and Goals Ensuring a Rigorous Curriculum: Practices and Goals Allen B. Tucker Bowdoin College www.bowdoin.edu/~allen April 12, 2002 1 of 30 Goals of an Undergraduate Program To prepare graduates for the computing

More information

Dafny: An Automatic Program Verifier for Functional Correctness Paper by K. Rustan M. Leino (Microsoft Research)

Dafny: An Automatic Program Verifier for Functional Correctness Paper by K. Rustan M. Leino (Microsoft Research) Dafny: An Automatic Program Verifier for Functional Correctness Paper by K. Rustan M. Leino (Microsoft Research) Presentation by Patrick Spettel Seminar: Research Topics in Software Engineering, Spring

More information

Programming By Contract: Designing for Correctness

Programming By Contract: Designing for Correctness Programming By Contract: Designing for Correctness James C. McKim, Jr. Rensselaer, 1999 1 of 20 Overview What is Programming by Contract? How do we use Programming by Contract to design correct classes?

More information

Object Constraint https://www.lri.fr/~linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/45 Plan 1 2 3 4 2/45 Motivation Why OCL Cannot represent all the relevant aspects of a specification

More information

Checking Program Properties with ESC/Java

Checking Program Properties with ESC/Java Checking Program Properties with ESC/Java 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich 1 ESC/Java A checker for Java programs Finds null pointers, array dereferences Checks Hoare logic

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

Enhancing the Alloy Analyzer with Patterns of Analysis

Enhancing the Alloy Analyzer with Patterns of Analysis Enhancing the Alloy Analyzer with Patterns of Analysis William Heaven in collaboration with Alessandra Russo Imperial College London Motivation Formal techniques not yet widely adopted by programmers.

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

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

Motivation. Correct and maintainable software Cost effective software production Implicit assumptions easily broken

Motivation. Correct and maintainable software Cost effective software production Implicit assumptions easily broken Spec# Andreas Vida Motivation Correct and maintainable software Cost effective software production Implicit assumptions easily broken Need more formal f specification Integration into a popular language

More information

Towards a GUI for Program Verification with KeY. Master of Science Thesis in the Programme Software Engineering and Technology

Towards a GUI for Program Verification with KeY. Master of Science Thesis in the Programme Software Engineering and Technology Towards a GUI for Program Verification with KeY Master of Science Thesis in the Programme Software Engineering and Technology Chalmers University of Technology University of Gothenburg Department of Computer

More information

Verifying Java Programs. Verifying Java Programs. The Krakatoa/Why Tool Suite

Verifying Java Programs. Verifying Java Programs. The Krakatoa/Why Tool Suite Verifying Java Programs Verifying Java Programs Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at

More information

Verifying Java Programs

Verifying Java Programs Verifying Java Programs Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.uni-linz.ac.at

More information

OCL omissions and contradictions

OCL omissions and contradictions OCL omissions and contradictions Edward Willink OCL RTF chair, QVT RTF representative Eclipse OCL Project Lead, Eclipse QVTd Project Lead, OMG ADTF 21st March 2012 Made available under EPL 1.0 Overview

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK TRANSFORMATION OF UML SEQUENCE DIAGRAM TO JAVA CODE HARSHAL D. GURAD 1, PROF. V.

More information

Comparison of the Modeling Languages Alloy and UML

Comparison of the Modeling Languages Alloy and UML Comparison of the Modeling Languages Alloy and UML Yujing He Department of Computer Science Portland State University Portland, Oregon, USA Abstract - Alloy is a new modeling language for software design,

More information

You ve encountered other ways of signalling errors. For example, if you lookup an unbound key in a hashtable, Java (and Scala) produce nulls:

You ve encountered other ways of signalling errors. For example, if you lookup an unbound key in a hashtable, Java (and Scala) produce nulls: Lecture 5 1 Required Reading Read Chapters 16 and 17 of Programming in Scala. 2 Partial Functions and Signalling Errors Many functions are not defined on all inputs. For example, if you re reading input

More information

Verifying Java Programs Verifying Java Programs with KeY

Verifying Java Programs Verifying Java Programs with KeY Verifying Java Programs Verifying Java Programs with KeY 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

The Eiffel language. Slides partly based on :

The Eiffel language. Slides partly based on : The Eiffel language Slides partly based on : http://se.inf.ethz.ch/courses/2015b_fall/eprog/english_index.html Eiffel, in brief Procedural, object-oriented programming language created by Bertrand Meyer

More information

Towards Transformation of Integrity Constraints and Database States

Towards Transformation of Integrity Constraints and Database States Towards Transformation of Integrity Constraints and Database States Fabian Büttner, Hanna Bauerdick, Martin Gogolla Database Group, Computer Science Department University of Bremen, D-28334 Bremen, Germany

More information

Program Verification (6EC version only)

Program Verification (6EC version only) Program Verification (6EC version only) Erik Poll Digital Security Radboud University Nijmegen Overview Program Verification using Verification Condition Generators JML a formal specification language

More information

Adding Contracts to C#

Adding Contracts to C# Adding Contracts to C# Peter Lagace ABSTRACT Design by contract is a software engineering technique used to promote software reliability. In order to use design by contract the selected programming language

More information

Orthographic Service Engineering

Orthographic Service Engineering Orthographic Service Engineering 1 Contents Orthographic drawing Orthographic software modeling Multi-view manipulation Prototype tool Repository format Current status 2 A Simple "Modeling" Metaphor other

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