User:Ardogina/sandbox

 Objektum specifikációs nyelv 

Az Object Specifikációs Nyelv egy deklaratív nyelv, amely az IBM-nél kifejlesztett Unified Modeling Language modellekre alkalmazandó szabályokat írja le, és most az UML szabvány része. Kezdetben az OCL csupán hivatalos specifikációs nyelvkiterjesztés volt az UML számára.

Kezdetben az OCL az UML formális specifikációs nyelvi kiterjesztése volt. Az OCL mostantól bármely Meta-Object Facility (MOF) Object Management Group (OMG) metamodelljével használható, beleértve az UML-t is. Az Object Constraint Language egy precíz szövegnyelv, amely olyan kényszer- és objektumlekérdezési kifejezéseket biztosít bármely MOF-modellhez vagy meta-modellhez, amelyet egyébként nem lehet diagramos jelöléssel kifejezni. Az OCL kulcsfontosságú eleme az új OMG szabványos modellek átalakítására vonatkozó ajánlásának, a Queries/Views/Transformations (QVT) specifikációnak.

Leírás

Az OCL a Syntropy leszármazottja, egy második generációs objektum-orientált elemzési és tervezési módszer. Az OCL 1.4 definíciója egy kényszernyelvet adott meg. Az OCL 2.0-ban a definíciót kiterjesztették az általános objektumlekérdezési nyelvi definíciókra.

Az OCL utasítások négy részből állnak:

kontextus, amely meghatározza azt a korlátozott helyzetet, amelyben az állítás érvényes

egy tulajdonság, amely a kontextus néhány jellemzőjét képviseli (pl. ha a kontextus egy osztály, akkor egy tulajdonság attribútum is lehet)

művelet (pl. aritmetikai, halmazorientált), amely manipulál vagy minősít egy tulajdonságot, és

kulcsszavak (pl. if, then, else, és, or, not, implies), amelyek a feltételes kifejezések meghatározására szolgálnak.

Kapcsolat

OCL és UML

Az OCL kiegészíti az UML-t azáltal, hogy olyan kifejezéseket biztosít, amelyek nem rendelkeznek sem a természetes nyelv kétértelműségeivel, sem az összetett matematika használatának velejáró nehézségeivel. Az OCL egy navigációs nyelv is a grafikon alapú modellekhez.

OCL és MOF

Az OCL precízebbé teszi a Meta-Object Facility modellt azáltal, hogy állításokat társít metaelemeihez.

OCL és QVT

A Model Driven Engineering (MDE) vagy a modellvezérelt architektúra szempontjából különösen fontos a modelltranszformáció fogalma. Az OMG egy speciális szabványt határozott meg a modelltranszformációhoz, amelyet MOF/QVT-nek vagy röviden QVT-nek neveznek. Jelenleg számos modelltranszformációs nyelv, például a GReAT, a VIATRA vagy a Tefkat elérhető, különböző szintű megfeleléssel a QVT szabványnak. Ezen nyelvek közül sok az OCL-re épül, amely a QVT-megfelelőség fő része.

Alternatívák

Szabályalapú érvényesítési nyelvként a Schematron az OCL alternatívájának tekinthető. A Schematron azonban az Extensible Markup Language (XML) fákhoz működik, míg az OCL lehetővé teszi a MOF-alapú modellek és metamodellek (azaz XML metaadatcsere (XMI) fák) navigálását. Más szavakkal, az OCL az UML-hez vagy a MOF-hoz hasonlóan kapcsolódik, mint a Schematron az XML-hez. (Ne feledje, hogy a Schematron XPath segítségével navigál az XML-fákon belül.)

Mivel egy modellspecifikációs nyelv, amely lehetővé teszi a tervezők számára, hogy egy modellt vagy metamodellt mellékhatás-mentes annotációkkal díszítsenek, az OCL helyettesíthető olyan nyelvekkel, mint az Alloy. Az automatikus OCL generálás elvileg lehetséges természetes nyelvből