Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Model Merge and Comparison

Miklos V
May 13, 2010
57

Model Merge and Comparison

Miklos V

May 13, 2010
Tweet

Transcript

  1. Bevezet˝ o A modellvezérelt szoftverfejlesztés egyik ma aktuális kérdése Forráskódok

    összehasonlításához és egyesítéséhez (merge) már kifinomult eszközök állnak rendelkezésre A modellek összehasonlítása sokkal összetettebb feladat Általános, bármilyen metamodellel m˝ uköd˝ o eszköz jelenleg nem érhet˝ o el 2 / 13
  2. Motiváció Ericsson: a gyakorlatban használható modell egyesítésre szükség van Jelenleg

    a legtöbb esetben a modellek egyesítése kézzel történik (egyesít˝ o szoba) 3 / 13
  3. Feladat leírása Megismerkedni a modellek összehasonlításának és egyesítésének nehézségeivel Tanulmányozni

    a probléma megoldásához használható algoritmusokat Egy konkrét algoritmust portolni / implementálni a VIATRA2 rendszerben Tesztelhet˝ oséget lehet˝ ové tenni 4 / 13
  4. Megoldott feladatok A probléma megoldásához használható algoritmusok tanulmányozása Jelenleg elérhet˝

    o, nem VIATRA-n m˝ uköd˝ o algoritmusok feltérképezése: Gráfok összehasonlítására szolgáló, izomorfiát vizsgáló algoritmusok UML modelleket összehasonlító eszközök Fák összehasonlítását megvalósító megoldások Egy-egy megoldás (Odyssey-VCS, diffxml) részletesebb megismerése 5 / 13
  5. Megoldott feladatok VIATRA-alapú megoldás elkészítése A diffxml által használt FMES

    algoritmus átültetése VIATRA-ra Az algoritmus egy eleme az a döntéshozás, mely eldönti, hogy két elem ugyanaz-e különböz˝ o modellekben Itt figyelembe lehetne venni az XML sémát, jelenleg ez nincs így Az algoritmus a modellben beszúrásokat, áthelyezéseket, törléseket detektál 6 / 13
  6. Megoldott feladatok A Fast Match / Edit Script algoritmus m˝

    uködése (egyszer˝ usített) Megkeressük a fa leveleit Az azonos úton elérhet˝ oek közül összekötjük azokat, melyek azonosak 7 / 13
  7. Megoldott feladatok A Fast Match / Edit Script algoritmus m˝

    uködése (egyszer˝ usített) A maradék levelek közül összekötjük azokat, melyek nem azonos úton érhet˝ oek el, de azonosak Iteratívan ismételjük a fa gyökeréig az el˝ oz˝ o 3 m˝ uveletet: levelek keresése 8 / 13
  8. Megoldott feladatok A Fast Match / Edit Script algoritmus m˝

    uködése (egyszer˝ usített) Azonos úton elérhet˝ o elemek párosítása Más úton elérhet˝ o elemek párosítása 9 / 13
  9. Megoldott feladatok XML importer Az FMES teszteléséhez szükség volt teszt

    modellekre A diffxml projekt már rendelkezett egy ilyen tesztgy˝ ujteménnyel A gy˝ ujtemény elemei XML fájlok, ehhez kell egy VIATRA importer Importer séma nélküli XML-ekhez 10/ 13
  10. Tesztelési környezet Eclipse 3.5 VIATRA2 SVN (r1334) diffxml 0.95B Kézi

    tesztelés (runtime eclipse, importálás, model comparator futtatása) 11/ 13
  11. Jöv˝ obeli lehet˝ oségek XML importer: Séma megkövetelése, így a

    VIATRA-beli entitásokhoz típusok lennének rendelhet˝ oek Csak a comparator került megvalósításra, ennek kimenete alapján egy modell egyesít˝ o eszközt is lehetne készíteni A két entitást összehasonlító elem finomítható lenne Az FMES fákon dolgozik, egyéb gráf-összehasonlító algoritmusok is elérhet˝ oek (pl. Groove-ból) 12/ 13
  12. Összefoglalás A modellek összehasonlítása és egyesítése a modellvezérelt fejlesztés ma

    egyik aktuális kérdése Részmegoldások elérhet˝ oek: Odyssey-VCS, diffxml, Groove, stb. A labor keretében elkészült egy általános XML importer és egy FMES-alapú modell összehasonlító a VIATRA rendszerhez. Számos jöv˝ obeli lehet˝ oség mert fel a félév során, melyek még megvalósításra várnak 13/ 13