Java kód generálás és modell karbantartás Enterprise Architect és J2EE között

Konzulens:
Dr. Goldschmidt Balázs
Külső konzulens vagy kontakt:
Opor Károly
External supervisor e-mail:
opor.karoly@ulyssys.hu
Tárgy:
Önálló laboratórium (BMEVIIIA377)
Hallgatói létszám:
1
Folytatás:
Szakdolgozat / Diplomaterv
Leírás:

Bevezető

Az MDD (Model Driven Development) egy olyan szoftver fejlesztési módszer, mely során az üzleti logikai modellezéskor (követelmény és analízis modellezés, mely magában foglalja a statikus „domén” modellt, a használati eset- és folyamat modellt, valamint a képernyőterveket) elkészített konceptuális elemeket megvalósítási elemekre képezünk le a szoftver tervezése során, majd ezekből az elemekből transzformációk segítségével forráskódot nyerünk ki.

A vállalatnál szoftver üzleti modelljét Enterprise Architect (EA) segítségével, UML-lel leírva készítik el a rendszerszervezők. Ezt, dokumentumba kigenerált specifikáció alapján, Enterprise Java (J2EE) technológiában valósítják meg a fejlesztők. A kettő közötti formális kapcsolat hiánya sok problémát, nehézséget szül a mindennapi feladatok során. Annak ellenére, hogy az EA egy igen elterjedt modellezési eszköz, olyan kódgenerátor nem tartozik hozzá (vagy bővítményként nem beszerezhető), ami lényegesen megkönnyítené a fizikai megvalósítás tervezésének folyamatát J2EE környezethez az üzleti logikai modellből. Ezen, univerzálisnak tűnő igény határozza meg a feladatot.


Fontos lenne egy jelölésrendszer (metamodell) meghatározására, amely segítségével elkészíthető a fizikai megvalósítás szkeletonja/modellje.

Szükség lenne ennek kóddá való generálására, olyan módon, hogy az bővíthető legyen a kódba kézzel beleírva, valamint akár az EA-ban a modellt módosítva is. Ehhez kapcsolódik egy további igény is, hogy a kódban végzett, EA-ban tárolt modellt érintő módosításokat egyszerűen „vissza lehessen generálni”, ezáltal két irányú „generálást” megvalósítva.


Az MDD fejleszetési folyamatba való integrálásának számos előnye lenne, ezek közül néhány:

  • szakmai nyelvű kommunikáció : a szervezők, és fejlesztők közötti kommunikáció ábrákon, és szabványokon keresztül történik,

  • többrétegű architektúra támogatás : a többrétegű architektúra során tapasztalt réteg kódolás (plumbing) nagy mértékben lecsökkenthető a kódgenerálásnak hála, a fejlesztő az üzleti logikára koncentrálhat,

  • minőségbiztosított architektúra: az MDD során használt tervezési minták, a formailag ellenőrzött modell kimenetek, valamint a generált kódok garantálják, hogy a szoftverfejlesztés, és minőség kézben tartható.


A vállalatnál a feladat első felére, az EA -> J2EE irány megvalósítására már történt egy próbálkozás, azonban ez igen sok kötöttséget rótt a fejlesztőkre, így nem bizonyult jól használhatónak.

A feladat

Az önálló labor és diplomamunka feladat a következő elemekből tevődne össze:

  1. A korábban megvalósított kódgenerálás hibáinak és pozitívumainak felmérése, így az új generálás felé támasztott követelmények összegyűjtése különös tekintettel a vállalatnál használt megoldások modellezhetőségére és ennek java kóddá generálására.

  2. Az EA -> J2EE kódgenerálás megvalósítása.

  3. A 2. pont bővítése az J2EE -> EA irány megvalósításával.

Az önálló labor részének az 1-es és 2-es pontot, a diplomamunka részének a 3. pontot tervezzük.