Strana 30 z 55
5.2 Eclipse Modelling Framework
Jak již bylo popsáno v kapitole 4.7, EMF je framework, jehož síla je v transparentní
transformaci mezi XMI, XML Schema a anotovaným zdrojovým kódem v Javě.
S pomocí jeho API lze z Javového kódu přistupovat k entitám modelu a tak
vytvářet transformované modely nebo generovat libovolný kód.
Jedná se o obdobný přístup, jaký jsem aplikoval v kapitole 11 s tím rozdílem,
že tento framework je omezen skutečně čistě na Javu.
5.3 C.C language
Jazyk C.C je funcionální programovací jazyk se syntaxí blízkou jazyku PASCAL
s několika imperativními konstrukty a s několika vlastnostmi inspirovanými jazyky
PROLOG, Erlang, Ruby, Python a Smalltalk. Jedná se o interpretovaný jazyk provozovaný
v prostředí CASE nástroje Craft.CASE na platformě VisualWorks.
C.C se používá pro následující účely:
- skriptovací jazyk - Procedury v C.C jsou schopny procházet projektovou databází a vytvářet nejrůznější dokumentační sestavy
- precizní simulace procesů - Procedury v C.C mohou vypočítávat různá simulační data, řídit průběh simulace apod.
- automatické manipulace s modelem - např. aplikování návrhových vzorů, refaktoring, objektová normalizace apod.
- kontroly konzistence a integrity nad projektovou databází - tato vlastnost pokrývá stejnou funkcionalitu jako OCL.
- export dat v různých formátech (jmenovitě XMI a binární formáty některých jiných CASE nástrojů).
- import dat z různých datových zdrojů (ODBC, CSV atd.)
Motivace
Jazyk C.C pokrývá vlastnosti různých, již existujících nástrojů. Jeho autoři
požadovali zakomponování těchto vlastností do modelovacího prostředí Craft.CASE
zejména pro dosažení následující funkcionality:
- interaktivní transformace modelů
- prototypování a testování na úrovni instancí modelovaných objektů
(dotazování a manipulace s daty konkrétních instancí objektů vytvořených z definice v modelu) - simulace.
a
[Merunka,Nouza,Brožek,2008]
Jazyk C.C zprostředkovává repository modelu prostřednictívm metamodelu na
obrázku 16.
Obrázek 16: C.C metamodel repository Craft.CASE. [Merunka,Nouza,Brožek,2008]