A Pratical Application of the Object Constraint Language OCL

Size: px
Start display at page:

Download "A Pratical Application of the Object Constraint Language OCL"

Transcription

1 A Pratical Application of the Object Constraint Language OCL Kjetil Måge Agder University College Abstract. The Unified Modeling Language, UML, has for several years been the leading standard for modeling of software systems. OCL is the expression language for UML and lets you describe system structure by invariants and system behavior by pre and post conditions. There are tools that can be used to validate and verify aspects of formal OCL specifications. This paper aims to describe some of the tools available, and to demonstrate how one of these tools, the Dresden OCL Toolkit, can be used to validate and verify a simple model. 1 Introduction The Object Constraint Language, OCL, was first developed as business modeling language by IBM, and introduced as a part of UML 1.1 in UML uses a variety of diagrams for describing both static and dynamic aspects of a system. However, in many cases, a graphical model like a class diagram, is not enough for a precise and unambiguous specification. Additional constraints concerning the objects in the model need to be described. Such constraints have often been described in natural language, which has often led to ambiguities. OCL is a textual specification language, used to formally specify constraints on models in a more precise and concise way than it is possible to do with diagrams only, but without complexity of traditional formal languages. OCL uses a notation similar to object oriented programming languages like C++ and Java, and is a pure expression language. OCL expressions do not have side effects, they cannot alter the state of the system (but they can specify state changes). OCL can be used for a number of different purposes[7]: 1. To specify invariants on classes and types in the class model 2. To specify type invariant for stereotypes 3. To describe pre- and post conditions on operations and methods 4. To describe guards 5. As a navigation language 6. To specify constraints on operations By using OCL, one can specify the static structure and the behavior of the system. Invariants are conditions that must be fulfilled at all times, and describe the static structure of the system. Constraints on behavior can be constructed using pre and post conditions, constraints that must be fulfilled before or after the execution of an operation. The model provides the context for the constraints.

2 1.1 Limitations of OCL OCL has certain shortcomings, some of which is addressed in the OCL 2.0 proposal. OCL s lack of metamodel makes it impossible to formally define the integration with the UML metamodel. Also, the distinction between concrete syntax and semantics is blurred. OCL lacks expressibility in several areas, and there are reports of ambiguities and inconcistence. Several extensions to OCL have been proposed. These include temporal operators, redundant invariants and time-based constraints, and behavioral constraints on occurrences of events, signals, and operation calls. 2 Functionality of OCL Tools The many tools offering UML support provide features like drawing of UML diagrams, code generation and reverse engineering, but very few implement any OCL support. Whether the lack of tool support is the result of low interest or low interest is caused by the lack of tool is discussable, but the practical improvements of OCL in a software project has still to be proven. Another possible reason for the lack of OCL tools, could be that it is still not completely clear what kind of functionality such tools would provide. The following section discusses different functionality [2] that could be provided by OCL tools. 2.1 Syntax Check The simplest kind of OCL support one would expect to find, is syntax checking, simply verifying that the expression is correct according to the grammer defined in the OCL specification, without any concern to the underlying model. The main purpose of the type check is to discover typing errors and other syntactical errors. 2.2 Semantic Check Even if a syntactical check proves successfull, the OCL expression could still be incorrect because of semantical errors. A semantic analysis checks that the OCL expressions conforms with the underlying model. Sematic analysis can be divided into two parts, type check and consistency check. Type Check. OCL defines a set of basic types. Type checking ensures that the types in the OCL statements conform with the model. Type checking in an OCL tool would be performed much like in any programming language. Consistency Check. Because OCL i a logical language, it is possible to define contradictory OCL expressions. A consistency check will aim to detect such inconsistencies in a model. But there are certain open questions regarding consistency of a model. There is no clear definition of what concistency means, and it could even be undecidable.

3 2.3 Dynamic Validation There are two main approaches to perform such validation: Model Animation One way of dynamicly validating and verifying a model, is animating or creating a prototype of the model in a simulation tool. Such a tool would be effective for creating snapshots of the system and examine invariants in these different system states. Code Generation By generating code from OCL expressions, assertion tests providing automatic checking of invariants and pre/post conditions could be integrated into application code and executed at runtime. 2.4 Test Automation OCL statements could be used by an automated test tool to check test results against the specification, and it may be possible to derive test cases from the specification written in OCL. 2.5 Code Verification and Synthesis In a more ambitious kind of tool, OCL may also form a basis for code verication and synthesis. 2.6 Integration with CASE Tools Some of the OCL tools availible are stand-alone applications that defines its owen proprietary formats for model information. Since most models are developed in CASE tools such as Rational Rose or ArgoUML, it would be more practical to either integrate the tool as a plugin to a CASE tool, or providing import of XMI, the OMG standard for exchanging data and metadata. 3 OCL Tools Even though UML has been the industry-standard language for software modeling and design for several years, few of the UML tools available offer any OCL support. Bu there is an increasing number of tools available and under development, many of them originating from research projects. 3.1 IBM OCL Parser v0.3 The first OCL tool available, was probably IBM s OCL Parser [8], written in Java using the JavaCC parser generator. The intention with this parser was to encourage the use of OCL with UML modelers rather than providing a powerful tool. The functionality of the parser contains syntax checking and partial type checking. It requires model and OCL expression on a special file format, which makes the use of it cumbersome.

4 3.2 OCL 1.4 syntax checker Klasse Objecten [9] is a dutch company highly involved in the development of the UML 2.0 submission. They provide the OCL 1.4 syntax checker that performs a syntax check only, using the OCL 1.4 definition. 3.3 Dresden OCL Toolkit The Dresden OCL Toolkit [10] is a modular toolkit for OCL developed at the Dresden University of Technology, and which purpose is to generate code out of OCL expressions. The compiler consists of four modules: a parser, semantic analysis, normalization and a code generator. The semantic analysis provides type checking and a simple consistency check. Normalization is applied to reduce the code generator complexity. The injector tool generates Java code from OCL expressions, which provides evaluation of OCL expressions at runtime. The downloadable version includes full source code of the parser. 3.4 ArgoUML ArgoUML [11] is an open-source CASE-tool that uses the OCL compiler from Dresden, and provides full OCL syntax and type checking. 3.5 Poseidon 1.4 Gentleware s Poseidon 1.4 [12] is a UML CASE tool evolved from ArgoUML. Poseidon offers specification of OCL constaints with syntax and semtics checking. A beta version of the OCL-to-Java plugin, based on the Dresden OCL Toolkit, is currently available for free download. Plugin support is not available in the free community edition. 3.6 Boldsoft ModelRun Boldsoft s ModelRun [13] is a tool that enables creation of instant prototypes of the model. Model files from Rational Rose and Bold for Delphi are supported. It is possible to examine the model properties in an Explorer like treeview, and instanced of the classes can be created. When objects have been created, relations can be realized by drag-and-drop. The OCL Workbench lets you execute OCL queries. Boldsoft also delivers the application development frameworks Bold for Delphi and Bold for C++, which allow direct execution of OCL expressions. 3.7 LCI OCL Evaluator The Computer Science Research Laboratory at the Babes-Bolyai University in Romania has developed and OCL evaluator [14] with full OCL 1.4 support. UML model exchange is done using XML, XMI 1.0 or 1.1 standards.

5 3.8 Cybernetic OCL Compiler 1.5 Cybernetic is a Swiss-based software company that has developed an OCL compiler [15]. A beta version with frontends for SELECT Enterprise and Rational Rose is available for download on their website. Current version (prototype 1.5) provides syntactic check and type check of the OCL expressions. Prototype 2 is under development, and will provide logical consistency check as well as generate the appropriate constraint checking code. 3.9 OCL for Java library At Canterbury University David Akehurst has developed a OCL for Java library [16] that enables runtime evaluation of OCL. It uses a Java reflection and runtime class creation to construct objects representing OCL expressions that can be evaluated at runtime USE A UML-based Specification Environment At the University of Bremen, the USE system [17] has been developed. USE is a system for specification of information systems. USE enables animation of the model to validate the specification against non-formal requirements expressed in OCL statements. System states (snapshots) can be created and manipulated during an animation. USE defines its own textual spesification for a model and its constraints (import of XMI is a proposed extension) Elixir Technologies Elixir Technologies [19] claims OCL support in their CASE tool Elixir Case and their Java development enviroment Elixir IDE 2.4. Elixir Case provides an OCL constraint text field, but no further funcionality. For Elixir IDE a plugin is provided by icontract, a Java preprocessor using an expression language modeled after a subset of OCL, providing runtime evalutation of assertions at specific checkpoints during the system s execution MagicDraw 5.5 MagicDraw [18] is a commericial UML modeling and CASE tool, and offers automatic OCL syntax validation and highlighting. 4 Using Dresden OCL Toolkit 4.1 Example Model To demostrate how the Dresden OCL Toolkit can be used to validate and verify a model, a simple model can be creates using ArgoUML (Figure 1). The model

6 Fig. 1. Simple Example Model contains three classes, Company, Person and Project, supplied with OCL constraints. An example of such a constraint, is that to fire a person, that person has to be an employee of the company: context Company::fire(Person) pre: employee->includes(pers) When generating Java code from the model in ArgoUML, the OCL expression are included as JavaDoc comments. These are used by the OCL injector tool to create Java code from OCL statements. The code generated by ArgoUML need some modification, besides adding method bodies, before it can compiled and run. Although the Dresden OCL Toolkit claims to be fully integrated with ArgoUML, the OCL injector doesn t always recognise the OCL constraints generated by ArgoUML, often caused by an empty line in the beginning of the JavaDoc comments. Also, the context of pre and post conditions are often wrong, they tend to be placed in the beginning of the source file, not with their belonging operations. A simple test program creates objects that violates the OCL constraints. When the test program is compiled and executed, nothing happends. The OCL constraints are only comments and are ignored by the compiler, thus have no effect on the execution of the program. The following command runs the injector tool to modify the source code: java -classpath. -jar dresden-ocl-injector.jar -r ocltest -m ocltest.java The injector generates constraint checking Java code, based on the OCL statements in the JavaDoc comments. The code added by the injector, creates objects representing invariants, and wrappes functions, adding evaluation of invariants

7 and pre/post conditions, but leaving the original method bodies unmodified. If we then recompile and run the test program, error messages indicating broken constraints will appear. javac -classpath dresden-ocl-injector.jar;. ocltest\test.java java -cp dresden-ocl-injector.jar;. ocltest.test violated ocl invariant nameuppercase on object violated ocl invariant agegreaterthan0 on object violated ocl precondition nothired on object operation fire(p : Person). violated ocl precondition alreadyhired on object ocltest.company@1befab0 operation hire(p :Person). violated ocl invariant budgetlimit on object ocltest.project@c21495.} The modified code can be cleaned from the source files by running the injector with the -c parameter. 4.2 Limitiations Parallellism is a potential problem for this approach of constraint checking. If a state change for the system occurs during the validation of a constraint, one can not guarantee that the constraint is evaluated correctly, since other processes/threads can modify the objects included in the evaluation before the checking is complete. 5 Conclusion The code genration tool from Dresden, provides an easy to use and powerful method of OCL constraint checking that requires little effort from developers. There are however arguments that calls for a different approach [3]. The code generation method requires that the the model, or at least parts of it, is implemented before the validation can be done. If the model can be validated before the coding starts, design errors can be detected early in the development process, possibly reducing the extent of design errors. Tools like Boldsoft s ModelRun and the USE tool from the University of Bremen, employs such a method by animating a model. The UML 2.0 submission addresses some of the weaknesses of OCL, and will hopefully encourage the release of new OCL tools, but whether OCL will gain the same status as UML in the software development community is yet to see. References 1. Finger, Frank: Design and Implementation of a Modular OCL Compiler. Dresden University of Technology, Department of Computer Science

8 2. Hussmann, Heinrich, Demuth, Birgit and Finger, Frank: Modular Architecture for a Toolset Supporting OCL. Dresden University of Technology, Department of Computer Science. 3. Richters, Mark and Gogolla, Martin: Validating UML Models and UML Constraints. University of Bremen Richters, Mark and Gogolla, Martin: OCL: Syntax, Semantic and Tools. University of Bremen. Springer Richters, Mark: A Precise Approach to Validating UML Models and OCL Constraints. University of Bremen. 6. Baar, Thomas: Experiences with the UML/OCL-Approach to Precise Software Modeling: A Report from Practice. Institut für Logik, Komplexität und Deduktionssysteme, Universität Karlsruhe. 7. OMG Unified Modeling Language Specification, Chapter 6: Object Constraint Language Specification OMG IBM OCL Parser Klasse Objecten Dresden OCL Toolkit, Dresden University of Technology ArgoUML Poseidon 1.4, Gentleware ModelRun, Boldsoft LCI OCL Evaluator Cybernetic OCL Compiler 1.5. Cybernetic Intelligence GmbH OCL for Java library (version 10-July-02). David Akehurst, Canterbury University USE A UML-based Specification Environment, University of Bremen MagicDraw Elixir Technologies

OCL. Heinrich Hussmann, Birgit Demuth, and Frank Finger. Dresden University of Technology, Department of Computer Science

OCL. Heinrich Hussmann, Birgit Demuth, and Frank Finger. Dresden University of Technology, Department of Computer Science Modular Architecture for a Toolset Supporting OCL Heinrich Hussmann, Birgit Demuth, and Frank Finger Dresden University of Technology, Department of Computer Science Abstract. The practical application

More information

A Metamodel-Based OCL-Compiler for UML and MOF

A Metamodel-Based OCL-Compiler for UML and MOF Electronic Notes in Theoretical Computer Science 102 (2004) 43 61 www.elsevier.com/locate/entcs A Metamodel-Based OCL-Compiler for UML and MOF Sten Loecher, Stefan Ocke 1,2 Department of Computer Science

More information

Modular architecture for a toolset supporting OCL

Modular architecture for a toolset supporting OCL Science of Computer Programming 44 (2002) 51 69 www.elsevier.com/locate/scico Modular architecture for a toolset supporting OCL Heinrich Hussmann, Birgit Demuth, Frank Finger Department of Computer Science,

More information

Tool Support for OCL and Related Formalisms - Needs and Trends

Tool Support for OCL and Related Formalisms - Needs and Trends Tool Support for OCL and Related Formalisms - Needs and Trends Thomas Baar 1 and Dan Chiorean 2 and Alexandre Correa 3 and Martin Gogolla 4 and Heinrich Hußmann 5 and Octavian Patrascoiu 6 and Peter H.

More information

Aspect-Oriented Monitoring of UML and OCL Constraints

Aspect-Oriented Monitoring of UML and OCL Constraints Aspect-Oriented Monitoring of UML and OCL Constraints Mark Richters EADS SPACE Transportation D-28199 Bremen, Germany mark.richters@space.eads.net Martin Gogolla University of Bremen, FB 3 Computer Science

More information

Ensuring UML Models Consistency Using the OCL Environment

Ensuring UML Models Consistency Using the OCL Environment Electronic Notes in Theoretical Computer Science 102 (2004) 99 110 www.elsevier.com/locate/entcs Ensuring UML Models Consistency Using the OCL Environment Dan Chiorean Mihai Paşca Adrian Cârcu Cristian

More information

ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION

ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION ROLE OF OCL AND ITS SUPPORTING TOOLS IN REQUIREMENT SPECIFICATION A thesis submitted in partial fulfillment of the requirements for the award of degree of Master of Engineering in Software Engineering

More information

OCL Support in MOF Repositories

OCL Support in MOF Repositories OCL Support in MOF Repositories Joachim Hoessler, Michael Soden Department of Computer Science Technical University Berlin hoessler@cs.tu-berlin.de, soden@cs.tu-berlin.de Abstract From metamodels that

More information

USE: A UML-Based Specification Environment for Validating UML and OCL

USE: A UML-Based Specification Environment for Validating UML and OCL USE: A UML-Based Specification Environment for Validating UML and OCL Martin Gogolla a Fabian Büttner a Mark Richters b a University of Bremen, Bremen, Germany b EADS Space Transportation, Bremen, Germany

More information

OCL EXCEPTION HANDLING. A Thesis PRAMOD GURUNATH

OCL EXCEPTION HANDLING. A Thesis PRAMOD GURUNATH OCL EXCEPTION HANDLING A Thesis by PRAMOD GURUNATH Submitted to the Office of Graduate Studies of Texas A&M University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE August

More information

CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: CASE A. O Riordan, 2009.

CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: CASE A. O Riordan, 2009. CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: CASE A. O Riordan, 2009. Software Engineering Tools Project Planning and Management tools Requirements tools Risk Analysis tools

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool

Seminar: Specification and Verification of Object-oriented Software. The KeY Tool The KeY Tool developed by: W. Ahrendt, T. Baar, B. Beckert, R. Bubel, M. Giese, R. Hähnle, W. Menzel, W. Mostowski, A. Roth, S. Schlager, P.H. Schmitt, and others Information Security, ETH Zürich, Switzerland

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

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

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

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

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

Transforming UML Collaborating Statecharts for Verification and Simulation

Transforming UML Collaborating Statecharts for Verification and Simulation Transforming UML Collaborating Statecharts for Verification and Simulation Patrick O. Bobbie, Yiming Ji, and Lusheng Liang School of Computing and Software Engineering Southern Polytechnic State University

More information

Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support

Model-Level Integration of the OCL Standard Library Using a Pivot Model with Generics Support Faculty of Computer Science, Institute for Software- and Multimedia-Technology, Chair for Software Technology Matthias Bräuer and Birgit Demuth Model-Level Integration of the Using a Pivot Model with Generics

More information

Analyzing Semantic Properties of OCL Operations by Uncovering Interoperational Relationships

Analyzing Semantic Properties of OCL Operations by Uncovering Interoperational Relationships Analyzing Semantic Properties of OCL Operations by Uncovering Interoperational Relationships Mirco Kuhlmann and Martin Gogolla University of Bremen, Computer Science Department Database Systems Group,

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

Coral: A Metamodel Kernel for Transformation Engines

Coral: A Metamodel Kernel for Transformation Engines Coral: A Metamodel Kernel for Transformation Engines Marcus Alanen and Ivan Porres TUCS Turku Centre for Computer Science Department of Computer Science, Åbo Akademi University Lemminkäisenkatu 14, FIN-20520

More information

Teaching Model Views with UML and OCL

Teaching Model Views with UML and OCL Teaching Model Views with UML and OCL Loli Burgueño Universidad de Málaga, Spain loli@lcc.uma.es Marbella International University Centre, Spain lola@miuc.org Antonio Vallecillo Universidad de Málaga,

More information

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting UNIT II Syllabus Introduction to UML (08 Hrs, 16 Marks) a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting b. Background, UML Basics c. Introducing UML 2.0 A Conceptual Model

More information

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !

! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. ! What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,

More information

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Towards Generating Domain-Specific Model Editors with Complex Editing Commands Towards Generating Domain-Specific Model Editors with Complex Editing Commands Gabriele Taentzer Technical University of Berlin Germany gabi@cs.tu-berlin.de May 10, 2006 Abstract Domain specific modeling

More information

Overview of the KeY System

Overview of the KeY System 22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Overview of the KeY System Copyright 2007-8 Reiner Hähnle and Cesare Tinelli. Notes originally developed by Reiner Hähnle

More information

Checking General Safety Criteria on UML Statecharts

Checking General Safety Criteria on UML Statecharts Checking General Safety Criteria on UML Statecharts Zsigmond Pap, István Majzik 1 and András Pataricza Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

Object-Oriented Theories for Model Driven Architecture

Object-Oriented Theories for Model Driven Architecture Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University

More information

UML is still inconsistent!

UML is still inconsistent! Department of Computer Science Institute for Software and Multimedia Engineering, Software Technology Group UML is still inconsistent! How to improve OCL Constraints in the UML 2.3 Superstructure Claas

More information

ADT: Eclipse development tools for ATL

ADT: Eclipse development tools for ATL ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

Modelling and verification of BPEL business processes

Modelling and verification of BPEL business processes Modelling and verification of BPEL business processes Marina Mongiello Dipartimento di Elettronica ed Elettrotecnica Politecnico di Bari, Italy mongiello@poliba.it Daniela Castelluccia Dipartimento di

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

Model Migration Case for TTC 2010

Model Migration Case for TTC 2010 Model Migration Case for TTC 2010 Louis M. Rose, Dimitrios S. Kolovos, Richard F. Paige, and Fiona A.C. Polack Department of Computer Science, University of York, UK. [louis,dkolovos,paige,fiona]@cs.york.ac.uk

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

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

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods Outline The Unified Modeling Language Opportunities and Challenges for Formal Methods An update on UML Language definition Tools A precise OO meta-modeling facility - MMF Stuart Kent University of Kent

More information

CODE GENERATION OF CONTRACTS USING OCL TOOLS

CODE GENERATION OF CONTRACTS USING OCL TOOLS Key words: OCL, contracts, UML, CASE tools, code generation Anna DEREZIŃSKA, Przemysław OŁTARZEWSKI* CODE GENERATION OF CONTRACTS USING OCL TOOLS The idea of contract-based programming can be realized

More information

The Specifications Exchange Service of an RM-ODP Framework

The Specifications Exchange Service of an RM-ODP Framework The Specifications Exchange Service of an RM-ODP Framework X. Blanc (*+), M-P. Gervais(*), J. Le Delliou(+) (*)Laboratoire d'informatique de Paris 6-8 rue du Capitaine Scott F75015 PARIS (+)EDF Research

More information

First Steps Towards Conceptual Schema Testing

First Steps Towards Conceptual Schema Testing First Steps Towards Conceptual Schema Testing Albert Tort and Antoni Olivé Universitat Politècnica de Catalunya {atort,olive}@lsi.upc.edu Abstract. Like any software artifact, conceptual schemas of information

More information

Model Driven Architecture - The Vision

Model Driven Architecture - The Vision Model Driven Architecture - The Vision Marko Fabiunke Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik marko.fabiunke@first.fraunhofer.de The Fraunhofer FIRST Institut Your partner We support

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

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

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment Faculty of Computer Science, Institute for Software- and Multimedia-Technology, Chair for Software Technology Matthias Bräuer Design and Prototypical Implementation of a Pivot Model as Exchange Format

More information

Formal Foundations of Software Engineering

Formal Foundations of Software Engineering Formal Foundations of Software Engineering http://d3s.mff.cuni.cz Martin Nečaský Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Goals of the course Show methods and tools

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Metamodeling for Business Model Design

Metamodeling for Business Model Design Metamodeling for Business Model Design Facilitating development and communication of Business Model Canvas (BMC) models with an OMG standards-based metamodel. Hilmar Hauksson 1 and Paul Johannesson 2 1

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

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach Science of Computer Programming 75 (2010) 689 725 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Aspect-oriented model-driven

More information

Verification and Correction of UML Models

Verification and Correction of UML Models White paper Verification and Correction of UML Models Modeling is a complex process which is quite hard to do in a structured and controlled way. Many companies provide a set of guidelines for model structure,

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

What do Compilers Produce?

What do Compilers Produce? What do Compilers Produce? Pure Machine Code Compilers may generate code for a particular machine, not assuming any operating system or library routines. This is pure code because it includes nothing beyond

More information

CSC Advanced Object Oriented Programming, Spring Specification

CSC Advanced Object Oriented Programming, Spring Specification CSC 520 - Advanced Object Oriented Programming, Spring 2018 Specification Specification A specification is an unambiguous description of the way the components of the software system should be used and

More information

Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide

Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide 1 Overview Develop Unified SNMP, XML, CLI, and Web-based Management for Embedded Real-Time Systems with MIBGuide SNMP Research International, Inc. Knoxville, Tennessee 1 Overview Support for remote management

More information

Model Migration Case for TTC 2010

Model Migration Case for TTC 2010 Model Migration Case for TTC 2010 Louis M. Rose, Dimitrios S. Kolovos, Richard F. Paige, and Fiona A.C. Polack Department of Computer Science, University of York, UK. [louis,dkolovos,paige,fiona]@cs.york.ac.uk

More information

Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability

Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability Timothy C. Lethbridge Department of Electrical Engineering and Computer Science, University of Ottawa

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

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG

WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES. Introduction. Production rules. Christian de Sainte Marie ILOG WHY WE NEED AN XML STANDARD FOR REPRESENTING BUSINESS RULES Christian de Sainte Marie ILOG Introduction We are interested in the topic of communicating policy decisions to other parties, and, more generally,

More information

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh UML big picture Perdita Stevens School of Informatics University of Edinburgh Plan Whence UML? Parts of UML How it all fits together UML as a language Consistency: what does it mean, do we need it? Defining

More information

An introduction to MOF MetaObject Facility.

An introduction to MOF MetaObject Facility. An introduction to MOF MetaObject Facility pierre-alain.muller@irisa.fr About The MetaObject Facility Specification is the foundation of OMG's industry-standard standard environment where models can be

More information

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES Wolfgang Friess AUDI AG wolfgang.friess@audi.de Julio Sincero University Erlangen-Nuernberg sincero@informatik.uni-erlangen.de Wolfgang

More information

Supporting Modeling in the Large in Fujaba

Supporting Modeling in the Large in Fujaba Supporting Modeling in the Large in Thomas Buchmann Angewandte Informatik 1 Universität Bayreuth D-95440 Bayreuth thomas.buchmann@unibayreuth.de Alexander Dotor Angewandte Informatik 1 Universität Bayreuth

More information

MDSE USE CASES. Chapter #3

MDSE USE CASES. Chapter #3 Chapter #3 MDSE USE CASES Teaching material for the book Model-Driven Software Engineering in Practice by Morgan & Claypool, USA, 2012. www.mdse-book.com MDSE GOES FAR BEYOND CODE-GENERATION www.mdse-book.com

More information

SQL. History. From Wikipedia, the free encyclopedia.

SQL. History. From Wikipedia, the free encyclopedia. SQL From Wikipedia, the free encyclopedia. Structured Query Language (SQL) is the most popular computer language used to create, modify and retrieve data from relational database management systems. The

More information

Dresden OCL2 in MOFLON

Dresden OCL2 in MOFLON Dresden OCL2 in MOFLON 10 Jahre Dresden-OCL Workshop Felix Klar Felix.Klar@es.tu-darmstadt.de ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering and Information Technology

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

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams Today s Topic Lecture 5 Introduction to UML What is UML Why use UML? UML Static Use case, Class, Object Deployment, Component (Physical ) Dynamic Sequence, Collaboration (Interaction ) Activity, State

More information

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system. Introduction to Formal Methods 1 Introduction to Formal Methods 2 Formal Specification Requirements specification R notational statement of system services Software specification R formal abstract depiction

More information

A Framework for Modeling, Building and Maintaining Enterprise Information Systems Software

A Framework for Modeling, Building and Maintaining Enterprise Information Systems Software 2009 XXIII Brazilian Symposium on Software Engineering A Framework for Modeling, Building and Maintaining Enterprise Information Systems Software Alexandre Cláudio de Almeida, Glauber Boff and Juliano

More information

An Architecture for Semantic Enterprise Application Integration Standards

An Architecture for Semantic Enterprise Application Integration Standards An Architecture for Semantic Enterprise Application Integration Standards Nenad Anicic 1, 2, Nenad Ivezic 1, Albert Jones 1 1 National Institute of Standards and Technology, 100 Bureau Drive Gaithersburg,

More information

SBVR vs OCL: A Comparative Analysis of Standards

SBVR vs OCL: A Comparative Analysis of Standards SBVR vs OCL: A Comparative Analysis of Standards Imran Sarwar Bajwa, Behzad Bordbar, Mark G. Lee School of Computer Science University of Birmingham Birmingham, UK i.s.bajwa; b.bordbar; m.g.lee @cs.bham.ac.uk

More information

Model Abstraction versus Model to Text Transformation

Model Abstraction versus Model to Text Transformation Model Abstraction versus Model to Text Transformation Jon Oldevik, Tor Neple, Jan Øyvind Aagedal SINTEF Information and Communication Technology, Forskningsvn 1, N-0314 Oslo, Norway {jon.oldevik tor.neple

More information

Verification and testing automation of UML projects

Verification and testing automation of UML projects Verification and testing automation of UML projects Nikita Voinov, Vsevolod Kotlyarov Saint-Petersburg State Polytechnic University, Saint-Petersburg, Russia voinov@ics2.ecd.spbstu.ru, vpk@ics2.ecd.spbstu.ru

More information

BLU AGE 2009 Edition Agile Model Transformation

BLU AGE 2009 Edition Agile Model Transformation BLU AGE 2009 Edition Agile Model Transformation Model Driven Modernization for Legacy Systems 1 2009 NETFECTIVE TECHNOLOGY -ne peut être copiésans BLU AGE Agile Model Transformation Agenda Model transformation

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

Conceptual Modeling and Specification Generation for B2B Business Processes based on ebxml

Conceptual Modeling and Specification Generation for B2B Business Processes based on ebxml Conceptual Modeling and Specification Generation for B2B Business Processes based on ebxml HyoungDo Kim Professional Graduate School of Information and Communication, Ajou University 526, 5Ga, NamDaeMoonRo,

More information

Checking OCL Constraints in Distributed Component Based Systems

Checking OCL Constraints in Distributed Component Based Systems Technical Report 157 Checking OCL Constraints in Distributed Component Based Systems Achim D. Brucker Burkhart Wolff July 2001 Institut für Informatik Albert Ludwigs Universität Freiburg Georges-Köhler-Allee

More information

Tool Support for Design Inspection: Automatic Generation of Questions

Tool Support for Design Inspection: Automatic Generation of Questions Tool Support for Design Inspection: Automatic Generation of Questions Tim Heyer Department of Computer and Information Science, Linköping University, S-581 83 Linköping, Email: Tim.Heyer@ida.liu.se Contents

More information

The etrice Eclipse Project Proposal

The etrice Eclipse Project Proposal The etrice Eclipse Project Proposal Dipl.-Ing. Thomas Schütz, Protos Software GmbH Eclipse Embedded Day 2010, Stuttgart Agenda Motivation Scope of etrice ROOM Language Codegenerators Middleware Realization

More information

A Practical Approach to Programming With Assertions

A Practical Approach to Programming With Assertions A Practical Approach to Programming With Assertions Ken Bell Christian-Albrechts Universität Kiel Department of Computer Science and Applied Mathematics Real-Time Systems and Embedded Systems Group July

More information

Meta-Model Guided Error Correction for UML Models

Meta-Model Guided Error Correction for UML Models Final Thesis Meta-Model Guided Error Correction for UML Models by Fredrik Bäckström and Anders Ivarsson LITH-IDA-EX--06/079--SE 2006-12-13 Final Thesis Meta-Model Guided Error Correction for UML Models

More information

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer Unit-1 Concepts Oral Question/Assignment/Gate Question with Answer The Meta-Object Facility (MOF) is an Object Management Group (OMG) standard for model-driven engineering Object Management Group (OMG)

More information

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE UDC:681.324 Review paper METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE Alma Butkovi Tomac Nagravision Kudelski group, Cheseaux / Lausanne alma.butkovictomac@nagra.com Dražen Tomac Cambridge Technology

More information

Modelling with UML, MOF, and OCL

Modelling with UML, MOF, and OCL 3C05/D22 Problem Class 18/3/2005 Modelling with UML, MOF, and OCL James Skene, a research fellow in the department has developed an open-source OCL parser and type checker. In this problem class you will

More information

Static Safety Analysis of UML Action Semantics for Critical Systems Development

Static Safety Analysis of UML Action Semantics for Critical Systems Development Static Safety Analysis of UML Action Semantics for Critical Systems Development Zsigmond Pap, Dániel Varró Dept. of Measurement and Information Systems Budapest University of Technology and Economics H-1521

More information

The Eclipse Modeling Framework and MDA Status and Opportunities

The Eclipse Modeling Framework and MDA Status and Opportunities The Eclipse Modeling Framework and MDA Status and Opportunities David Frankel Consulting df@davidfrankelconsulting.com www.davidfrankelconsulting.com Portions adapted from the book Model Driven Architecture:

More information

USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING

USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING USING ABSTRACT STATE MACHINES TO SUPPORT UML MODEL INSTANTIATION CHECKING Wuwei Shen Department of Computer Science Western Michigan University Kalamazoo, MI 49008, USA email: wwshen@cs.wmich.edu Weng

More information

Analyzing Robustness of UML State Machines

Analyzing Robustness of UML State Machines Analyzing Robustness of UML State Machines Reinhard von Hanxleden Department of Computer Science and Applied Mathematics Real-Time Systems and Embedded Systems Group Christian-Albrecht Universität zu Kiel

More information

Object-Oriented Software Engineering Practical Software Development using UML and Java

Object-Oriented Software Engineering Practical Software Development using UML and Java Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 5: Modelling with Classes Lecture 5 5.1 What is UML? The Unified Modelling Language is a standard graphical

More information

Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman. Chapter 28 Formal Methods

Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman. Chapter 28 Formal Methods Software Engineering: A Practitioner s s Approach, 6/e Roger Pressman Chapter 28 Formal Methods 1 Problems with Conventional Specification contradictions ambiguities vagueness incompleteness mixed levels

More information

Models versus Ontologies - What's the Difference and where does it Matter?

Models versus Ontologies - What's the Difference and where does it Matter? Models versus Ontologies - What's the Difference and where does it Matter? Colin Atkinson University of Mannheim Presentation for University of Birmingham April 19th 2007 1 Brief History Ontologies originated

More information

A UML Class Diagram Analyzer

A UML Class Diagram Analyzer A UML Class Diagram Analyzer Tiago Massoni, Rohit Gheyi, and Paulo Borba Informatics Center Federal University of Pernambuco, Brazil {tlm,rg,phmb}@cin.ufpe.br Abstract. Automatic analysis of UML models

More information

A Generic Deep Copy Algorithm for MOF-Based Models

A Generic Deep Copy Algorithm for MOF-Based Models A Generic Deep Copy Algorithm for MOF-Based Models Ivan Porres Marcus Alanen TUCS Turku Centre for Computer Science Åbo Akademi University, Department of Computer Science Lemminkäisenkatu 4A FIN-20520

More information

Combining Different Business Rules Technologies:A Rationalization

Combining Different Business Rules Technologies:A Rationalization A research and education initiative at the MIT Sloan School of Management Combining Different Business Rules Technologies:A Rationalization Paper 116 Benjamin Grosof Isabelle Rouvellou Lou Degenaro Hoi

More information

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling

The Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive

More information

SCENTOR: Scenario-Based Testing of E-Business Applications

SCENTOR: Scenario-Based Testing of E-Business Applications SCENTOR: Scenario-Based Testing of E-Business Applications Jeremiah Wittevrongel, Frank Maurer The University of Calgary jeremiah@cpsc.ucalgary.ca, maurer@cpsc.ucalgary.ca Abstract E-business software

More information

Towards a Data Consistency Modeling and Testing Framework for MOF Defined Languages

Towards a Data Consistency Modeling and Testing Framework for MOF Defined Languages Towards a Data Consistency Modeling and Testing Framework for MOF Defined Languages Jan Pettersen Nytun,2 Christian S. Jensen,3 Vladimir A. Oleshchuk Faculty of Engineering and Science, Agder University

More information