Jazyk omezení objektu - Object Constraint Language
![]() | Tento článek musí být aktualizováno.Dubna 2018) ( |
The Jazyk omezení objektu (OCL) je deklarativní jazyk popisující pravidla vztahující se na Unifikovaný Modelovací Jazyk (UML) modely vyvinuté na IBM a je nyní součástí standardu UML. Zpočátku bylo OCL pouze formální jazykové rozšíření specifikace pro UML.[1] OCL lze nyní použít s jakýmkoli Zařízení s metaobjekty (MOF) Skupina pro správu objektů (PRO BOHA) meta-model, včetně UML.[2] Object Constraint Language je přesný textový jazyk, který poskytuje omezení a výrazy dotazů na objekt na jakémkoli modelu MOF nebo meta-modelu, který nelze jinak vyjádřit diagramatickou notací. OCL je klíčovou součástí nového standardního doporučení OMG pro transformaci modelů, Dotazy / Pohledy / Transformace (QVT ) Specifikace.
Popis
OCL je potomkem Syntropie, objektově orientovaná metoda analýzy a návrhu druhé generace. Definice OCL 1.4 specifikovala jazyk omezení. V OCL 2.0 byla definice rozšířena tak, aby zahrnovala obecné definice jazyků dotazů na objekty.
Příkazy OCL jsou sestaveny do čtyř částí:
- kontext, který definuje omezenou situaci, ve které je příkaz platný
- vlastnost, která představuje některé charakteristiky kontextu (např. pokud je kontext třídou, může být vlastností atribut)
- operace (např. aritmetická, orientovaná na množinu), která manipuluje nebo kvalifikuje vlastnost, a
- klíčová slova (např. if, then, else, a, nebo, ne, implikuje), která se používají k určení podmíněných výrazů.
Vztah
OCL a UML
OCL doplňky UML poskytnutím výrazů, které nemají ani dvojznačnosti přirozeného jazyka, ani inherentní potíže s používáním složité matematiky. OCL je také navigační jazyk pro modely založené na grafech.
OCL a MOF
OCL dělá Zařízení s metaobjekty model je přesnější přidružením tvrzení k jeho meta-prvkům.
OCL a QVT
Obzvláště důležité pro Model Driven Engineering (MDE) nebo model řízená architektura je pojem Transformace modelu. The pro Boha definoval specifický standard pro transformaci modelu s názvem MOF / QVT nebo zkrátka QVT. Několik modelových transformačních jazyků jako Skvělý, VIATRA nebo Tefkat jsou v současné době k dispozici s různou úrovní shody se standardem QVT. Mnoho z těchto jazyků je postaveno na vrcholu OCL, který je hlavní součástí QVT -dodržování.
Alternativy
Být ověřovacím jazykem založeným na pravidlech, Schematron lze považovat za alternativu k OCL. Schematron však pracuje pro Extensible Markup Language (XML) stromy zatímco OCL umožňuje navigaci MOF modely a meta-modely (tj. XML Metadata Interchange (XMI ) stromy). Jinými slovy, OCL se týká UML nebo MOF podobně jako Schematron XML. (Všimněte si, že Schematron používá XPath procházet stromy XML.)
Být jazykem specifikace modelu, který umožňuje návrhářům zdobit model nebo meta-model anotacemi bez vedlejších účinků, lze OCL nahradit jazyky jako Slitina. Automatizované generování OCL je v zásadě možné z přirozeného jazyka.[3]
Omezení | Ekvivalent OCL |
---|---|
Věk člověka není negativní. | kontext Osoba inv: self.age> = 0 |
Osoba je mladší než její rodiče. | kontext Osoba inv: self.parents-> forAll (p | p.age> self.age) |
Po narozeninách je člověk o rok starší. | kontext Osoba :: hasBirthday () pošta: self.age=self.age@pre+ |
Osoba má maximálně 2 rodiče. | kontext Osoba inv: self.parents-> size () <= 2 |
Poté, co někdo má dítě, jeho dětská sada není prázdná a je větší než dříve. | kontext Osoba :: getsChild () pošta: self.childs-> notEmpty () a self.childs-> size ()> self.childs@pre-> size () |
Vlastníkem automobilu může být pouze dospělý. | kontext Osoba inv: self.age <18 naznačuje self.cars-> isEmpty () |
První registraci automobilu nelze provést před jeho postavením. | kontext Auto inv: self.registration> = self.constructionYear |
Každá Osoba, která má auto, má alespoň jedno auto, které je mladší než Osoba. | kontext Osoba inv: self.cars-> notEmpty () naznačuje self.cars-> existuje (c | Kalendářní rok - c.constructionYear |
Nikdo nemůže být jeho rodičem. | kontext Osoba inv: self.parents-> vylučuje (self) |
Je tu alespoň jedna Osoba, která vlastní auto. | kontext Osoba inv: Person.allInstances () -> existuje (p | p.cars-> size ()> 0) |
Viz také
- Počítačový model
- Mapování dat
- Jazyk specifický pro doménu (DSL)
- Modelování specifické pro doménu (DSM)
- Zatmění Projekt GMT
- Gello Expression Language
- Slovník pojmů Unified Modeling Language
- Záměrné programování (IP)
- Seznam nástrojů UML
- Meta-modelování
- Technika meta-modelování
- Zařízení s metaobjekty (MOF)
- Metadata
- Testování na základě modelu (MBT)
- Architektura řízená modelem (MDA)
- Model Driven Engineering (MDE)
- Jazyk transformace modelu (MTL)
- Modelovací jazyk
- Modelovací perspektivy
- MOFM2T
- Objektově orientovaná analýza a návrh (OOAD)
- MOF Dotazy / Pohledy / Transformace (QVT)
- Sémantický překlad
- Transformační jazyk (TL)
- Nástroj UML
- Transformace založená na slovní zásobě
- XMI
- XML transformační jazyk (XTL)
Reference
- ^ Skupina pro správu objektů (OMG); Specifikace jazyka omezení objektu, Kapitola 7 z Specifikace OMG Unified Modeling Language, Verze 1.3, březen 2000 (první vydání)
- ^ Skupina pro správu objektů (OMG); Object Constraint Language OMG Dostupná specifikace Verze 2.0, Květen 2006
- ^ Imran Sarwar Bajwa (říjen 2010). „Generování omezení OCL ze specifikace přirozeného jazyka, 2010“. IEEE. doi:10.1109 / EDOC.2010.33. S2CID 7495256. Citovat deník vyžaduje
| deník =
(Pomoc)
externí odkazy
- Specifikace OMG OCL
- Portál OCL - Centrum pro informace související s OCL
- Stránka OCL oddělení informatiky CSUSB (krátká syntaxe OCL 2.0)
- Octopus: OCL nástroj pro přesné technické specifikace (Kontrola OCL)
- Drážďanská sada nástrojů OCL (OCL Toolkit, různé publikace související s OCL)
- HOL-OCL (Interaktivní prostředí pro ověřování teorémů pro OCL, různé publikace související s OCL)
- Výukový program OCL pro Javu na ParlezUML
- Článek o používání OCL EMF v kódu Java
- Stránka odkazu UML na cetus-links.org
- USE (Specifikační prostředí založené na UML) (Nástroj OCL pro ověřování modelů, různé publikace související s OCL)
- Výukový program OCL
- NL2OCL (OCL Tool for invariant generation from NL)
Tento článek je založen na materiálu převzatém z Zdarma online slovník výpočetní techniky před 1. listopadem 2008 a začleněno pod "licencování" podmínek GFDL, verze 1.3 nebo novější.