Strana 29 z 55
5 Transformační modelovací jazyky
Pro podporu metamodelování a transformací vznikly specializované transformační
modelovací jazyky, z nichž některé v této kapitole popíšu.
5.1 KerMeta
KerMeta je Modelově orientovaný jazyk založený na paradigmatu metamodelování
s možností vykonatelnosti modelu v objektově orientovaném prostředí. Je vytvořen
jako rozšíření MOF směrem k vykonavatelnosti. [Tanguy,Vojtisek,Faucher, 2006]
Jeho vývojovým i běhovým prostředím je Eclipse IDE (integrované vývojové
prostředí).
Model KerMeta lze vytvořit buď ručně nebo konverzí z Ecore EMF metamodelu.
Výsledek při použití Ecore modelu konečného stavového automatu (viz Obrázek
8) zásuvný modul Kermeta vygeneruje následující zdrojový soubor fsm.kmt:
@uri "platform:/resource/MyFirstEMFSamples/metamodels/fsm.ecore" package fsm; require "kermeta" require "http://www.eclipse.org/emf/2002/Ecore" class Fsm { attribute transition : Transition[0..*] attribute state : State[0..*] reference initial : State[1..1] reference final : State[1..1] reference current : State[1..1] operation prettyprint() : ecore::EString is abstract } class Transition { attribute input : ecore::EString attribute output : ecore::EString reference source : State[1..1] reference target : State[1..1] } class State { attribute name : ecore::EString reference outgoing : Transition[0..*] reference incoming : Transition[0..*] }
Tento formát je vhodný pro psaní kódu, zatímco formát
*.km
lze zobrazit aupravovat v Sample Reflexive Ecore Model Editoru, případně jiném GMF editoru.
Modely je možné libovolně konvertovat mezi oběma formáty pomocí funkcí
zásuvného modulu Kermeta.
Vlastnosti jazyka
Jazyk KerMeta obsahuje moderní objektové konstrukty jako jsou generické
třídy a operace a v neposlední řadě lambda výrazy. To dává jeho uživateli širokou
škálu možností a jeví se jako poměrně slibná platforma.
Bohužel se zdá, že vývoj tohoto nástroje poněkud ustrnul a na webových
stránkách jeho autorů jsou k dispozici zatím pouze velmi jednoduché příklady bez
skutečného užitku. Přesto KerMeta vypadá slibně a bude určitě zajímavé sledovat,
kam se vývoj tohoto jazyka bude dále ubírat.