Házi feladat (Eclipse alapú fejlesztés és integráció)

A félév során egy házi feladatot kell írni, amely kiegészíti az Eclipse-et, mint modellezési környezetet. A megoldáshoz tetszőleges Eclipse alapú technológia választható, de kérjük a következő pontok betartását:

  • Minimális kutatás: vizsgáljuk meg, hogy létezik-e Eclipse-es technológia a javasolt feladatra. Ehhez meg kell vizsgálni az http://eclipse.org oldalon hostolt projekteket. Amennyiben a választott feladatra van projekt, akkor indokolni kell az attól eltérő megoldás használatát (don't reinvent the wheel).
  • A választott feladatnak legyen köze az órán hangsúlyozott domain-specifikus fejlesztői környezet koncepcióhoz.
  • Lehet órán nem ismertetett technológiát használni - ezt pozitívan értékeljük. Ennek nem is kell eclipse.org-ról származó technológiának lennie, feltéve, hogy illeszkedik a feladathoz, ill. a tárgy tematikájához.
  • Ha létező domainhez/nyelvhez készül támogató környezet, pozitív elbírálásban részesül.

Házi feladat menete

A házi feladat beszedése két lépésben történik: egy specifikáció beadása a hetedik oktatási hét végén, valamint a házi feladat bemutatása az utolsó oktatási héten. A specifikáció szűk egy oldalban részletezi, hogy pontosan milyen Eclipse bővítmény vagy alkalmazás készülne, külön kiemelve a felhasználni tervezett technológiákat. A beadás után visszajelzést adunk, hogy a specifikáció alapján a házi feladat megfelelő bonyolultságú-e, esetleg javaslatot teszünk valamely kapcsolódó technológia megvizsgálatára.

A házi feladatok bemutatása során az elkészült kisfeladatokat kell bemutatni, kérdésekre válaszolni. A részvétel kötelező.

Általános elvárások:

  • Exception mentes működés: normál használat mellett a plug-in nem dobhat váratlan, kezeletlen kivételeket.
  • Átlátható forráskód. Javaslat: kapcsoljuk be azt a Save action-t, amely minden mentéskor megformázza a forráskódot a kódolási előírásoknak megfelelően. (Window/Preferences ablak, Java/Editor/Save Actions kategória, Format Source code beállítás).
  • Dokumentáció: Javadoc kommentek a minimum, ezen felül pár oldalas felhasználói, esetleg fejlesztői leírás. Ha a telepítés nem triviális (például függőség miatt), az is kerüljön említésre.
  • A forráskód legyen feltöltve a portál megfelelő helyére (Exportáljuk ki a projekteket egy zip fájlban).
    • Ha túl nagy a zip, érdemes lehet a bináris fájlokat eltávolítani; ehhez ki kell kapcsolni az automatikus fordítást a projekt menüben, majd clean-t adni a projektekre.
    • Ha még mindig túl nagy, akkor valószínűleg valami külső jar fájl van hivatkozva. Amennyiben szükséges, ezeket a jar fájlokat ki lehet hagyni a feltöltésből, feltéve, hogy könnyen elérhetőek online, és a csatolt telepítési leírásban szerepel a beszerzési forrás.

Feltöltés

Csak bejelentkezés után érhető el a feltöltőoldal a bal oldali menürendszerből.

  1. Specifikáció feltöltése (aláírás feltétele)
  2. Házi feladat feltöltése (aláírás feltétele)
    • Beszedési időpont: 2014. december 15. hétfő, 14:00,  IL405 terem
    • Pótbeszedés: 2014. december 18. csütörtök, 16:00, IB413 terem
  3. Nagyfeladat feltöltés (megajánlott jegyért, vizsgához kötődően)

Technológiák

A tárgyban érintett Eclipse alapú technológiák:

  • Grafikus felhasználói felületek
    • SWT
    • JFace
  • Modellező és szerkesztőeszközök
    • Eclipse Modeling Framework (EMF)
    • Graphical Editing Framework (GEF)
    • Graphical Modeling Framework (GMF)
    • Graphiti
    • Sirius
    • Xtext
    • Xtend, Acceleo
  • Modellek feldolgozása
    • Kódgenerátorok
    • Modelltranszformációs eszközök
    • EMF-IncQuery
  • Kiegészítő technológiák
    • Zest alapú gráfmegjelenítés
    • EMF kiegészítő technológiák (validáció, ...)
    • GEF3D

Az itt felsoroltaktól eltérő Eclipse-hez kötődő technológiát is lehet használni előzetes egyeztetés után (az sem követelmény, hogy eclipse.org által terjesztett technológia legyen), ugyanakkor felhívjuk a figyelmet, hogy nem biztos, hogy ezekhez a technikákhoz bármiféle segítséget tudunk nyújtani.

Házi feladat ötletek

Az alábbiakban felsorolunk néhány, általunk érdekesnek tartott házi feladat ötletet. Az ötletekkel kapcsolatosan bármikor kérhettek felvilágosítást Ujhelyi Zoltántól és Ráth Istvántól. Egyszerűbb feladatok:

  • Domain-specifikus modellezési környezet készítése (nemtriviális) szabadon válaszott modellezési nyelvhez (EMF, GMF, Graphiti, EMF OCL, Xtext)
  • Szabadon választott egyszerűbb alkalmazás RCP alapon (pl. feladatnyilvántartó, médiakatalógus) - SQL vagy EMF alapú back-enddel (EclipseLink)
  • EMF alapú perzisztencia toolok készítése szabványos (webes) formátumokhoz (pl. RSS variánsok, WebServices technológiák, ontológia XML formátumok, felhasználói felületeket leíró XML alapú nyelvek stb.)

Összetettebb feladatok:

  • Háromdimenziós domain-specifikus modellező eszköz készítése GEF3D technológiával
  • Objektum- és komponensorientált szoftver modellezési nyelvek a Zest Framework segítségével
  • Szöveges domain-specifikus nyelvhez fejlesztőkörnyezet készítése Xtext alapon
  • Szabadon válaszott programozási vagy modellezési nyelvhez (pl. SysML, UML) alapszintű támogatás készítése (syntax highlight-os szerkesztő, compiler-t hívni képes builder), Xtext segítségével
  • Eclipse UML alapú kódgenerátor (szabadon válaszott, pl. Xtend/Xpand technológiával)
  • Domain-specifikus nyelv készítése iPhone/Android fejlesztés támogatására (pl. Android-alapú egyszerű alkalmazások generálásához)
  • Eclipse JDT refaktor szolgáltatások kiegészítése új refaktor szolgáltatásokkal
  • Ontológia alapú domain-specifikus nyelvprototipizálási környezet kialakítása
  • ATL vagy QVT-alapú modelltranszformációk domain-specifikus nyelvek között
  • Beágyazott platformra történő kódgenerálás támogatása EMF alapon