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