Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:miw:miw08_hekateatl [2008/09/30 17:16]
miw
pl:miw:miw08_hekateatl [2019/06/27 15:50] (aktualna)
Linia 34: Linia 34:
 ===== 080603 ===== ===== 080603 =====
   * trans?   * trans?
 +
  
  
Linia 43: Linia 44:
 ====== Projekt ====== ====== Projekt ======
  
-  ​* Metamodel ARD (w oparciu o [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​hekate_markup_language|HML]])+ 
 + 
 + 
 + 
 +==== ATL ==== 
 +ATL (ATLAS Transformation Language) to język transformacji modeli wraz zestawem narzędzi opracowanych przez ATLAS Group (INRIA & LINA). ATL pozwala wyprodukować z zestawu modeli źródłowych,​ zestaw modeli docelowych.  
 + 
 +ATL jest hybrydą programowania deklaratywnego i imperatywnego. Preferowany styl programowania to styl deklaratywny który pozwala w łatwy sposób opisać powiazania pomiędzy modelem źródłowym a docelowym. Jednkże ATL przewiduje również konstrukcje imperatywne w celu opisania wyrażeń trudnych do opracowania w sposób deklaratywny. Program ATL składa się z zestawu reguł które definiują dopasowanie elementów modelu źrodłowego do modelu docelowego 
 + 
 +Opracowane dla platformy Eclipse zintegorowane środowisko programistyczne (ATL IDE) oferuje szereg standardowych narzędzi programistycznych (podświetlanie składni, debuger itd.), które ułatwiają prace z ATL. Projkt ATL oferuje również bibliotege transformacji ATL gdzie można znaleźć ponad 100 opracowanych rozwiązań http://​www.eclipse.org/​m2m/​atl/​atlTransformations/​ 
 + 
 + 
 + 
 +==== The Model-Driven Architecture ==== 
 +MDA to metoda projektowania systemów oprogramowania. Stanowi ona zbiór wytycznych dotyczących struktury specyfikacji,​ które są wyrażone jako modele. 
 +Modele stanowią podstawowe elemetny MDA. W dziedzinie MDA model definiowany jest poprzez model modeli, tak zwany metamodel. Mówimy ze model zgodny z semantyka metamodelu odpowiada temu metamodelowi 
 + 
 + 
 +{{:​pl:​miw:​mda.jpg|:​pl:​miw:​mda.jpg}} 
 + 
 + 
 +==== Trasformacja ATL ==== 
 + 
 +{{:​pl:​miw:​atl.jpg|:​pl:​miw:​atl.jpg}} 
 + 
 + 
 +Powyższy rysunek opisuje schemat transformacji ATL. Model Ma (plik wejściowy Ecore czyli XMI) odpowiadający metamodelowi MMa (plik Ecore) jest transformowany do modelu Mb (plik wyjściowy Ecore), który odpowiada metamodelowi MMb (Ecore). Transformacja definiowana jest przez model Mt (plik ATL) który odpowiada metamodelowi MMt (metamodel ATL). Metamodele MMt, MMa oraz MMb muszą odpowiadać metamdelowi MMM (MOF albo Ecore) 
 + 
 + 
 + 
 + 
 + 
 + 
 +==== Przykłady użycia ==== 
 + 
 +**DSLs coordination for Telephony** - praca przedstawia studium impelmentacji dwóch języków związanych z dziedziną telefonii: SPL(Session Processing Language) i CPL (Call Processing Language). Częścoiowo opierają się ona na tych samych słownikach. Jednakże same języki są bardzo różne i zostały zaprojektowane,​ aby być wykorzystywane przez różnych ludzi. Praca pokazuje w jak wykorzystać ATL w celu transformacji programu z jednego języka do drugiego (http://​www.eclipse.org/​m2m/​atl/​usecases/​DSLsTelephony/​) 
 + 
 +==== Transformacja ARD w ARD ==== 
 + 
 +Aby dokonać transformacji należy stworzyć metamodel ARD, odpowaidający mu model będący plikiem wejściowym do transformacji,​ oraz plik ATL opisujący transformację 
 + 
 +  ​* Metamodel ARD (w oparciu o [[https://​ai.ia.agh.edu.pl/​wiki/​hekate:​hekate_markup_language|HML]]) ​- schemat
 {{:​pl:​miw:​ard.png|:​pl:​miw:​ard.png}} {{:​pl:​miw:​ard.png|:​pl:​miw:​ard.png}}
-  * Metamodel ARD KM3+  * Metamodel ARD KM3 zbudowany na podsawie schematu
 <​code>​ <​code>​
 package Hml { package Hml {
Linia 106: Linia 148:
 </​code>​ </​code>​
  
-  * Metamodel ARD XMI+  * Metamodel ARD XMI - wygenerowany przez środowisko ATL
 <​code>​ <​code>​
 <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​ <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​
Linia 148: Linia 190:
 </​code>​ </​code>​
  
-  * Plik XMI do transformacji (Termostat)+  * Plik wejściowy ​XMI do transformacji (Termostat) ​odpowiadający metamodelowi ARD
 <​code>​ <​code>​
 <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​ <?xml version="​1.0"​ encoding="​ISO-8859-1"?>​
Linia 259: Linia 301:
 </​code>​ </​code>​
  
 +  * Model ATL - nie wprowadza żadnych zmian w pliku wyjściowym
 +<​code>​
 +module ARD2ARD; -- Module Template
 +create OUT : Hml from IN : Hml;
 +
 +rule Element2Element {
 + from
 + s : Hml!Element
 + to
 + t : Hml!Element (
 + id <- s.id
 + )
 +}
 +rule Dep2Dep {
 + from
 + s : Hml!Dep
 + to
 + t : Hml!Dep (
 + independent <- s.independent,​
 + dependent <- s.dependent
 + )
 +}
 +rule Trans2Trans {
 + from
 + s : Hml!Trans
 + to
 + t : Hml!Trans (
 + src <- s.src,
 + dst <- s.dst
 + )
 +}
 +rule Att2Att {
 + from
 + s : Hml!Trans
 + to
 + t : Hml!Trans (
 + name <- s.name
 + )
 +}
 +rule Attref2Attref {
 + from
 + s : Hml!Trans
 + to
 + t : Hml!Trans (
 + ref <- s.ref
 + )
 +}
 +</​code>​
  
 ====== Sprawozdanie ====== ====== Sprawozdanie ======
pl/miw/miw08_hekateatl.1222787815.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0