Object constraint language class soil derivation rule real type collection operation these keywords were added by machine and not by the authors. The object constraint language ocl appeared as an e. The object constraint language ocl started as a complement of the uml notation with the goal to overcome the limitations of uml and in general, any graphical notation in terms of precisely specifying detailed aspects of a system design. Boolean returns true if the tested object is exactly the same type as t. Does anyone know good object constraint language ocl. Objectoriented software engineering purdue university. Only informative sections of standards are publicly available. Object constraint language what is object constraint language. Properties can be combined to make more complicated expressi ons. Ocl is a typed language, so that each ocl expression has a type. Ocl as specification language for object constraints. The object constraint language ocl is a declarative language describing rules applying to unified modeling language uml models developed at ibm and is now part of the uml standard.
This paper reflects on a number of aspects of the syntax and semantics of the ocl, and makes proposals for clarification or extension. Object constraint language object management group. Object constraint language how is object constraint. Warmer, kleppe, selic, gorman,yong he, amyot, brugge and dutoit, bultan, lings, lieber. An important rule is that an ocl expression always evaluates to a specific object of a specific type. Im trying to find an ocl excpression calculator, but im not sure how to get the sum of the attributes of a collection i have a class customer and a class orders. Ocl may now be used with any metaobject facility mof object management group omg metamodel. Ocl was first developed in 1995 inside ibm as an evolution of an expression language in the syntropy method 26.
Section 4 is about the adequate formal language for odp type descriptions. Within uml, ocl is the standard for specifying expressions that add vital information to objectoriented models and other objectmodeling artifacts. Ocl is strongly typed language welldefined ocl expressions have to satisfy type rules e. Ocl is a descendent of syntropy, a secondgeneration object oriented analysis and design method. Uml uses a variety of diagrams for describing both static and dynamic aspects of a system. Ocl attribute accesses navigate through uml class diagram. Does anyone know good object constraint language ocl tutorial. Dec, 2015 the object constraint language is a declarative language for describing rules that apply to unified modeling language models developed at ibm and now part of the uml standard. Copies of specifications, available in postscript and pdf format, may be.
A constraint is an expression that evaluate to true or false as a query language queries are expressions that evaluate to a value true, 7 false and other values can be used to define new attributes and operations ocl expressions are always associated with a uml model. Getting your models ready for mda by jos warmer and anneke kleppe jos was one of the main creators of the ocl. Each ocl expression is the direct translation at the conceptual level of either one of the database constraints e. On formalizing the uml object constraint language ocl citeseerx. Extracting umlocl integrity constraints and derived types. A constraint invariant is a boolean ocl expression evaluates to truefalse.
Object constraint language ocl is a formal language used to express constraints. They also specify queries over objects described in a model. Object constraint language ocl ocl is a formal language used to describe expressions on uml models. Mar 21, 2012 the object constraint language ocl appeared as an effort to overcome the limitations of uml when it comes to precisely specifying detailed aspects of a system design. Ocl typically specify the invariant conditions that must. Ocl a formal specification language extension to uml. Ocl expressions typically specify invariant conditions that must hold for the system being modeled. Object constraint language ocl object constraint language. The object constraint language is a declarative language for describing rules that apply to unified modeling language models developed at ibm and now part of the uml standard. The object constraint language ocl is an expression language that describes. Modular embedding of the object constraint language into a.
Ocl expressions use vocabulary of uml class diagram. Part of the latest uml proposal is the object constraint language ocl. The object constraint language is a precise text language that provides constraint and object query expressions on an objectoriented model that cannot otherwise be expressed by diagrammatic notation. Ocl object constraint language part of the uml standard. Object constraint language ocl 85 magicdraw 14 includes an ocl execution engine that can be used to write, validate models vs metamodels, ins tances vs mo dels and execute e. Object constraint language how is object constraint language abbreviated. To specify the initial value of an attribute or association end. The context objects may be denoted within the expression using the keyword self. After obtaining a result, one can always apply another property to the result to get a new result value. Translation find a translation for object constraint language in other languages. Boolean returns true if the tested object is exactly the same type or a subtype of t. A constraint is a restriction on one or more values a constraint is a restriction on one or more values of part of an objectoriented model or system. Therefore, each ocl expression can be read and evaluated lefttoright.
Defines apis for parsing and evaluating ocl constraints and queries on ecore or uml models. Ocl is part of unified modeling language uml and it plays an important role in the. This process is experimental and the keywords may be updated as the learning algorithm improves. The object constraint language ocl is a wellaccepted ingredient in model driven engineering and accompanying modeling languages like uml unified. A constraint is a restriction on one or more values of a model or system. May 2006 object constraint language omg available specification version 2. Object constraint language formal060501 object management. As part of this process we encourage readers to report any ambiguities, inconsistencies, or inaccuracies they may find by completing the issue reporting form listed. The object constraint language ocl, which forms part of the uml set of modeling notations, is a precise, textual language for expressing constraints that cannot be shown diagrammatically in uml. Every constraint is bound to a specific type class, association class, interface in the uml model its context. Object constraint modelbased assertion dldf fllwarmer and kleppe define a constraint as follows. I want to have the sum of all orders of a particular year saved in the customer class, attribute revenue.
Within uml, ocl is the standard for specifying expressions that add vital information to object oriented models and other object modeling artifacts. The ocl is a standard query language, which is part of the unified modelling language uml set by the object management group omg. Object constraint language article about object constraint. However, in many cases, a graphical model like a class diagram, is not enough for a precise and unambiguous. Sincethen, oclhasbecomea keycomponentofanymodeldrivenengineering mde techniqueasthe default language for expressing all kindsof metamodel query,manip. Ocl object constraint language select, use sum for attribute. Modelbased assertion dldf fllwarmer and kleppe define a constraint as follows.
Ocl basics ocl is used to specify invariants of objects and pre and post conditions of operations. I the object constraint language, ocl about ocl ocl aimed for the sweet spot between formal speci cation languages and use of english. Formal language used to express constraints, that remains easy to read and write 1 object constraint language ocl pure expression language. Extensively used in the documentation of the uml language itself, and related standards. The object constraint language shows that with simple, elegant ocl statements, a uml design can be made more logically robust and easy to understand. Ocl supplements uml by providing expressions that have neither the ambiguities of natural language nor the inherent. Ocl the object constraint language based on presentations from. Ocl is a descendant of syntropy, a secondgeneration object oriented analysis and design method. Builtin object properties ocl provides a set of properties on all objects in a system. Object constraint language ocl ocl is a specification language designed to formally specify constraints in software modules an ocl expression simply specifies a logical fact a constraint about the system that must remain true a constraint cannot have any sideeffects it cannot compute a nonboolean result nor modify any data. Combining static and dynamic analyses to reverse engineer scenario diagrams. This international standard defines the object constraint language ocl, version 2. Object constraint language ocl cheat sheet ocl syntax. Expressions can be used in a number of places in the uml model.
Natural language text is used to explain the background and motivation of the models. Introduction the object constraint language the ocl is used to specify constraints on objects in the uml. Parts of the syntax seem to have been influenced by smalltalk disclaimer opinions expressed here may be out of date. Ocl typically specify the invariant conditions that must hold for the system being modeled. About the object constraint language specification version 2. You may be surprised to learn that the ability to model such constraints is now built into the unified modeling language uml v. The classic core ocl component provides the following capabilities to support ocl integration. The object constraint language ocl is a language that enables one to describe expressions and constraints on objectoriented models and other object modelling artefacts. The object constraint language ocl started as a complementoftheumlnotationwiththegoaltoovercomethelimitationsof umlandingeneral,anygraphicalnotation intermsofpreciselyspecifyingdetailedaspectsofasystemdesign. Initially, ocl was merely a formal specification language extension for uml.
946 177 610 1044 914 1503 202 208 205 449 872 1230 889 858 1489 107 475 818 1318 297 28 686 908 819 292 785 1090 881 231 1255 128 190 827 1275