Házi feladat

A félév során egy házi feladatot kell írni, amelyben különböző Eclipse alapú technológiák kerülnek felhasználásra. Tetszőleges Eclipse alapú technológiára épülő feladat 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 minimálisan 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.
  • Amennyiben olyan technika kerül felhasználásra, amelyet órán nem ismertetünk, az pozitív elbírálásra kerül a végső értékelésnél.

A házi feladat beadása az aláírás feltétele. Bonyolultabb házi feladat választása esetén lehetőség van a tárgyból megajánlott jegyet szerezni - ebben az esetben elegendő a házi feladatnak egy kisebb részét bemutatni az utolsó laborfoglalkozáson: ez alapján a rész alapján már látható kell, hogy legyen a végső program szerkezete, de elfogadható, ha kisebb hibák vannak benne.

Házi feladat menete

A házi feladat beszedése két lépésben történik: egy specifikáció beadása a hatodik oktatási hét végén, valamint a házi feladat bemutatása az utolsó oktatási hét laboridőpontjában. 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. Az utolsó hét laborgyakorlata időpontjában kell bemutatni az elkészült házi feladatokat. Á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. Eclipse helpként összerakva különösen pozitív. Ha a telepítés nem triviális, az is kerüljön említésre.
  • Javasolt, hogy a forráskód valamilyen verziókezelő rendszerben legyen tárolva a fejlesztés elejétől fogva (pl. Github, Google Code, esetleg tanszéki rendszer).

Technológiák

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

  • Grafikus felhasználói felületek
    • SWT
    • JFace
    • Forms API
  • Modellező és szerkesztőeszközök
    • Eclipse Modeling Framework
    • Graphical Editing Framework
  • Alkalmazás platformok
    • Rich Client Platform
    • Rich Ajax Platform
  • OSGi szolgáltatások
  • Csoportmunka megoldások

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. A felsorolt technológiák közül kevésbé javasoljuk az OSGi szolgáltatások használatát (ugyanis ezekre kevesebb hangsúly kerül az órák során), valamint a csoportmunka eszközöket (ezek megfelelő használatához ugyanis már létező projektekre van szükség). Ugyanakkor remek házi feladat ötletnek tartjuk, ha valamilyen külső eszközt sikerül beilleszteni Eclipse környezetbe (például import/export funkciók).

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 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, EMF OCL)
  • Szabadon választott egyszerűbb alkalmazás RCP alapon (pl. feladatnyilvántartó, médiakatalógus) - SQL vagy EMF alapú back-enddel (EclipseLink)
  • Eclipse technológiára épülő webes alkalmazás (RAP alapon)
  • 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.)
  • Eclipse-alapú játékprogramok (amőba, passziánsz, ulti, akár 3D-vel is)

Összetettebb feladatok:

  • Háromdimenziós ábrázolást támogató modellező eszköz készítése GEF3D technológiával
  • Objektum- és komponensorientált szoftvervizualizáció 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 nyelvhez alapszintű támogatás készítése (syntax highlight-os szerkesztő, compiler-t hívni képes builder)
  • EclipseUML alapú kódgenerátor (szabadon válaszott, pl. Xtend/Xpand technológiával)
  • Domain-specifikus nyelv készítése 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
  • Médialejátszó plugin Eclipse alá (pl. a Java Media Framework segítségével)
  • Mylyn connector készítése szabadon választott group management szoftverhez
  • Eclipse plug-in fejlesztés Scala nyelven