Jairson Vitorino, Cin UFPE May, 2nd 2005

Slides:



Advertisements
Similar presentations
Issue 134 Metamodel for OWL 2 Peter Haase, Elisa Kendall, Boris Motik, Evan Wallace.
Advertisements

The role of OCL in the Model Driven Architecture Jos Warmer Klasse Objecten
Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems.
By Karen Richart. The Object Constraint Language (OCL)  Formal specification language that could be used for constraining the model elements that occur.
OCL2 April A presentation of OCL 2 Object Constraint Language Christian Hein, Fraunhofer FOKUS April 2006.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Paper Title: On the Precise Meaning of the OCL Constraints Presented by Alla Dove.
Formalizing Material Flow Diagrams Robert-Jan Bijl.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Introduction To System Analysis and Design
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Evaluation of OCL for Large-Scale Modelling A Different View of the Mondex Smart Card Application Emine G. Aydal, Richard F. Paige, Jim Woodcock University.
Detail Design Extending UML and Object Design. Object Design.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Common Mechanisms in UML
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
® Eurostep.ESUKPC v0.1©Copyright Eurostep Limited An Introduction to ISO STEP Part 25 David Price.
SEG4110 – Advanced Software Engineering and Reengineering TOPIC E Object Constraint Language (OCL)
Chapter 13 (Online): Object-Oriented Databases
OOPSLA 2003 DSM Workshop Diagram Definition Facilities Based on Metamodel Mappings Edgars Celms, Audris Kalnins, Lelde Lace University of Latvia, IMCS,
Supporting Automatic Model Inconsistency Fixing Yingfei Xiong University of Tokyo, Japan Zhenjiang HuNational Institute of Informatics, Japan Haiyan ZhaoPeking.
A presentation of OCL 2 Object Constraint Language Fraunhofer FOKUS.
Introduction To System Analysis and Design
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
111 Writing Protocols in OCL CS 4311 Jos B. Warmer and Anneke G. Kleppe, OCL: The Constraint Language of the UML, JOOP, May Jos B. Warmer and Anneke.
© 2010 Bennett, McRobb and Farmer1 Specifying Operations Based on Chapter 10 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
WXGC6102: Object-Oriented Techniques Specifying Operations References: Chapter 10 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
OCL Tool Support Sagar A. Tamhane CSE 6323 – FMSE.
A language to describe software texture in abstract design models and implementation.
Composition of UML Described Refactoring Rules Presented by Chin-Yi Tsai.
System models l Abstract descriptions of systems whose requirements are being analysed.
1 OCL Tools Supervised by Prof. Daniel Amyot May Khalil Nadia Spido Submitted to Professor Daniel Amyot in partial fulfillment of the requirements for.
A graphical specification environment for GCM component-based applications INRIA – I3S – CNRS – University of Nice-Sophia Antipolis EPC OASIS Oleksandra.
1 OCL The Role of OCL in UML. 2 רשימת הנושאים  מבוא  מרכיבי השפה  דוגמאות  מקורות.
A Lightweight GRL Profile for i* Modeling Presenter: Alexei Lapouchnian Daniel Amyot, Jennifer Horkoff, Daniel Gross, and Gunter Mussbacher {damyot,
AspectWrapper CHALFOUN Pierre et BUIST Éric. Overview Introduction – what and why In a nutshell – main components Our approach – how we did it Demo –
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
1 5/18/2007ã 2007, Spencer Rugaber Case Study: DYNAMO Kurt Stirewalt and Spencer Rugaber. "Automated Invariant Maintenance Via.
Automata Based Method for Domain Specific Languages Definition Ulyana Tikhonova PhD student at St. Petersburg State Politechnical University, supervised.
Week III  Recap from Last Week Review Classes Review Domain Model for EU-Bid & EU-Lease Aggregation Example (Reservation) Attribute Properties.
IM NTU Software Development Methods, Fall2006 Software Development Methods, Fall 2006 OCL 2006/12/ Object Constraint Language (OCL) Yih-Kuen Tsay.
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
Formalizing Material Flow Diagrams Robert-Jan Bijl.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
1 SWE Introduction to Software Engineering Lecture 14 – System Modeling.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
1 Model Driven Health Tools Design and Implementation of CDA Templates Dave Carlson Contractor to CHIO
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11b: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
On Combining Multi-formalism Knowledge to Select Models for Model Transformation Testing Sagar Sen (1 st year PhD student), Benoit Baudry, Jean-Marie Mottu.
OCL for Rich Domain Models Implementation An Incremental Aspect based Solution Alberto Manuel Fernández-Alvarez Daniel Fernández-Lanvin Manuel Quintela-Pumares.
Jan Pettersen Nytun, UIA, page 1. Jan Pettersen Nytun, UIA, page 2 HISTORY COLLECTION TYPES AND QUERING IN OCL FORMAL LANGUAGE - STATEMENT EXAMPLES CONSTRAINTS.
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
Analysis Classes Unit 5.
5/11/2018.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 11 Component-Level Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
The Object Constraint Language
Daniel Amyot and Jun Biao Yan
Design and Implementation of Web services-oriented Application
The Object Constraint Language
Protocols CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 8) Meyer, B., Applying design by contract, Computer,
Object Constraint Language (OCL)
Software Architecture & Design
Presentation transcript:

Jairson Vitorino, Cin UFPE May, 2nd 2005 OCL in a small nutshell Jairson Vitorino, Cin UFPE May, 2nd 2005

Contents Motivation What is OCL? Uses of OCL Examples References

Are you serious about your UML models? (source: www.empowertec.de) Motivation Are you serious about your UML models? (source: www.empowertec.de)

What is OCL? The Object Constraint Language (OCL) is a query language that can be used to define expressions on object oriented models (UML). OCL enrich the models with unambiguous information, formalizing knowledge about the underlying business domain.

It is a formal language, but Yes! You can understand it and even use it!

Uses of OCL Constraints are the most prominent use. Initialization expressions can be used to specify an initial value for an attribute or an association. OCL expressions can be used to specify the algorithm that is to be used for derived attributes, i.e. values that are calculated from other attributes or associations. OCL expressions can be used to specify the implementation of methods as long as they do not have side effects (i.e. the method is 'read only').

A trivial Example context Stack::pop(): Object optional You can refer to the previous state of na object context Stack::pop(): Object pre notEmpty: isEmpty() = false post topElementReturned: result = self@pre.top() post topElementRemoved: top() <> self@pre.top()   context Stack::top(): Object pre notEmpty: isEmpty() = false   context Stack::push(anObject: Object): void post pushedObjectIsOnTop: top() = anObject

A more typical example

And typical constraints... No employee may be older than 65 years OCL equivalent context Company inv: self.employee->forAll(age <= 65) And what about this one? What does it mean? context Company inv: employee->exists(isUnemployed) = false

More examples in the PDF

Tools Octopus : Plug-in for Eclipse OCLE: (syntatical checking on class diagrams, cool editor and generates java code!) http://www.klasse.nl/english/research/octopus-intro.html OCLE: From Romenia, syntantical checking, model checking, comes with full UML meta-model and well-formdness rules for diagrams consistency in OCL! Generates java code) http://lci.cs.ubbcluj.ro/ocle/overview.htm OCL-AddIn for Rational Rose, similar to Octopus but do not generate code. http://www.empowertec.de/products/rational-rose-ocl.htm

Conclusions and further motivation UML without OCL is only useful for extreme programming, disposable models OCL is key for formal methods, UML models as first-class, strategic, reusable artefacts and (future) automated code generation

References http://www.omg.org http://www.empowertec.de Presentation Object Constraint Language (OCL) by Tevfik Bultan (www.cs.ucsb.edu/~bultan/courses/272/OCL.ppt) Introduction to OCL, Andreas Roth (i12www.ira.uka.de/~aroth/ lehre/keypraktWS0304/oclIntro.pdf)