Az R&R Software Zrt. két éves, a Szegedi Tudományegyetem bevonásával végrehajtott kutatás-fejlesztést zárt le. A projekt keretében a Java Enterprise platformon alapuló SaaS keretrendszerek architektúrájának rekonstrukcióját,kiértékelését és minősítését lehetővé tevő technológia kifejlesztése, és az arra épülő Architektúra Karbantartó Rendszer elkészítése zajlott az R&R Software Zrt.-nél.
A fejlesztés motivációja
A jelenkor vállalati üzleti alkalmazásai összetettségük és funkciógazdagságuk révén komoly kihívás elé állítják azok fejlesztőit és szállítóit. Húsz évvel ezelőtt egy átlagos hazai középvállalat vállalatirányítási rendszerének leszállításához egy pár fős szakértői csapat is elegendő volt – manapság azonban a megnövekedett igények, és a magas fokú minőségbiztosítás miatt egy sikeres bevezetés ennek többszörösét igényelheti. A rendszerfunkciók számának, valamint a rendszer összetettségének emelkedésével a szükséges szakértői közreműködés mértéke csak elvben növekszik lineárisan: a gyakorlat azt mutatja, hogy azonos fejlesztési módszertan alkalmazása esetén a növekedés akár exponenciális is lehet.
Egy szoftverrendszer összetettségének mérésére számos megoldás létezik: elmondható azonban, hogy a kiindulási alapnak mindenki a forráskódot tekinti. A forráskód – mint szövegállomány – tovább bontható annak nyelve, minősége, és mennyisége szerint. Ezek közül a rendszer összetettségét leginkább befolyásoló tényező a mennyiség, ezt követi a forráskód nyelve, majd a minőség.
A méretből fakadó fejlesztési nehézségek vállalati üzleti alkalmazások esetében 100000 és 1000000 értékes kódsor (LLOC) elérése között jelennek meg – ezt meghaladva pedig szinte kezelhetetlenné válik a feladat. Ez további fejlesztői erőforrások felhasználását teszi szükségessé, így több éve piacon lévő termékek esetében jelentősen csökkenhet a továbbfejlesztés hatékonysága, valamint a fenntarthatóság.
Megoldási lehetőségek
A jelenség nem újkeletű: számos kutatás tárgyát képezte már, és számos megoldás is született a kezelésére. Ezek közül a forráskód egyszerűsítése a legnépszerűbb, ez azonban az összetett vállalatirányítási rendszerek esetében nem kivitelezhető – hiszen elsősorban a megrendelői igények alapján implementált új funkciók okozták a forráskód mennyiségének növekedését. A forráskód nyelvének megváltoztatása a kialakult fejlesztői infrastruktúra és kompetenciák miatt általában eleve nem opció.
A forráskód-minőség folyamatos javításával: statikus kódelemzéssel, azokból készült kimutatásokkal, és a kimutatás alapján történő célzott és rendszeres kódátalakítással látványos sikerek érhetőek el. Azonban az éles üzemi környezetben megvalósított tömeges beavatkozás rendkívüli kockázatokat rejt: így ezek a fejlesztések rendszerint csak szállítások közötti időszakban, verzióváltással, magas fokú fejlesztői kompetencia alkalmazásával végezhetők.
A fejlesztési folyamatba könnyen illeszthető, a rendszer átláthatóságát és érthetőségét javító – nem csak a legképzettebb fejlesztői kompetencia latba vetésével kamatoztatható – módszerek és eszközök terén azonban nincs széles kínálat. E helyzetet felismerve kezdett közös termékfejlesztésbe a Szegedi Tudományegyetem és az R&R Software Zrt. 2012-ben.
A fejlesztés menete és eredménye
Az R&R Software Zrt. FusionR termékcsaládja – amely elsősorban közműszolgáltatóknak, valamint telekommunikációs cégeknek kínál összetett vállalatirányítási, ügyfélkapcsolat-kezelési, szolgáltatás- és termékkezelési, tömeges számlázó, valamint bevétel-biztosítási és követeléskezelési funkciókat – jól reprezentálta a forráskód bonyolultságának azt a kritikus szakaszát, amikor a beavatkozási igények műszaki és fenntarthatósági tekintetben már jelen vannak, de elfogadott és bejáratott megoldás még nem született. Ily módon ideális alanynak bizonyult a Szegedi Tudományegyetem nemzetközi hírű, forráskód alapú szoftverminőség mérésben és követésben jártas kompetencia központjának kutatásaihoz.
A Szegedi Tudományegyetem kutatása megerősítette azt az előzetes sejtést, mely szerint minden piaci szereplő számára optimális megoldás nem létezik – így az a továbbiakban csak a FusionR termékcsalád alapját is képező, Java EE rendszerekre vonatkoztatva folytatódott. Forráskód-elemzés, visszafejtés és kiértékelés területén nagyban támaszkodtak korábbi sikeres kutatásaikra és fejlesztéseikre.
A meglévő FusionR forráskód halmaz egységes reprezentációs modellbe került, amely független annak architektúrájától. A modellnek maga az architektúra is része, ám elválik a forráskódtól, változtathatóvá válik, ezzel megteremtve a magasabb absztrakciós szintek bevonásának lehetőségét. Az R&R Software szegedi telephelyén végezte a modell megjelenítését és működtetését végző felület kifejlesztését, amelyre Eclipse alapon, abba integrálódva került sor.
Az eredménytermékként létrejövő Architektúra Karbantartó Rendszer (AKR) ezen felületek, modellek és forráskód manipulátorok összessége, amelyet a mögöttes kutatások eredményei támasztanak alá.
Az AKR rendszerrel való munkavégzés folyamatos, az egyes átalakítások az alábbi minta szerint történnek:
– Meglévő rendszer forráskódjának beolvasása, elemzése
– Az architektúra áttekintése, szükséges beavatkozások meglépése
– Új rendszer forráskódjának kigenerálása, amely a változásokat tartalmazza
Az architektúra feltérképezése és kifésülése után a valós kép kapható a rendszerről: nem marad rejtve a forráskód egyetlen sora sem, így olyan összefüggések meglátására nyílik lehetőség, amelyekre pusztán emberi erőforrás alkalmazásával kevés esély adódik.
Az AKR a fejlesztők igényei mellett a tesztelő, valamint a termékdokumentációt készítő, és az oktatást végző munkatársak feladatait is segíti.
Az AKR felületei
A megjelenő elemek megváltoztathatók, amely változtatásokat ezután a forráskódon is végre lehet hajtani. A felület alkalmat ad elemek átrendezésére és csoportosítására, ezzel támogatva az átláthatóságot és az olvashatóságot.
A Domain Model View (DMV) tartalmazza az alapvető adateléréseket és összefüggések kezelését, kiegészülve az ide kapcsolódó mérőszámokkal.
A Business Logic View (BLV) teszi láthatóvá a rendszer belső működését, a rendszerbe kódolt üzleti logikát áttekintés szintjén – a részletes leírásra maga a programozási nyelv hivatott.
A User Interface View (UIV) mutatja meg a rendszer által alkalmazott felhasználói felület összefüggéseit, itt látható az a térkép, ahogyan a rendszer felhasználói bejárhatják az egyes funkcióköröket kiszolgáló képernyőket.
Validáció
Az AKR FusionR kódbázison való alkalmazása bebizonyította, hogy a kezdeti elgondolás helytálló volt: az alábbi javulást sikerült elérni.
Az AKR alkalmazásával – az elvégzett mérések tanulsága szerint – az alábbi ráfordításigény-csökkenést sikerült elérni azonos kódbázison végrehajtott, azonos fejlesztési feladatok esetén.
Továbbfejlesztési lehetőségek
A termék kifejlesztésének lezárásával számos továbbfejlesztési lehetőség is felmerült:
– Az AKR-ben megjelenő elemi funkciók felhívási gyakoriságának követhetővé tétele.
– Új architektúrák kezelésének bevonása.
– AKR kiterjesztése biztonsági mérőszámokkal.
Hasznosíthatóság
Az AKR rendszert olyan szoftverek mellé ajánljuk, amelyek szállításánál felmerül az alábbi kérdések közül legalább egy:
– Miért növekszik folytonosan az egymást követő bevezetések ráfordítás igénye?
– Miért sérülnek a szállítási (tervezési/kivitelezési/tesztelési) határidők?
– Mennyire jó az adott rendszer karbantarthatósága?
– Melyik az rész a szoftveren belül, amely módosításával a legnagyobb haszon remélhető?
– Miért nehéz a szoftver megismerése, oktatása?
– Mennyi erőforrást érdemes adni egy szakértő rendszerismeretének elmélyítésére?
– Milyen kiaknázatlan potenciál lakozik még a szoftverben?
Projekt azonosító: GOP-1.1.1-11-2011-0049
Projekt zárás: 2014.03.31.
Az Architektúra Karbantartó Rendszer tájékoztatója letölthető: