Esettanulmányok

Az Erste Bank Magyarország J2EE banki rendszerének architektúrájában bekövetkezett változások nyomon követése

Az üzleti alkalmazások szempontjából kritikus banki szférában a működéskritikus rendszerek architektúrájának visszafejtése és kiértékelése elengedhetetlen a minőség és karbantarthatóság növelésének szempontjából. Az Erste Bank J2EE rendszerét elemeztük. Általánosságban elmondható, hogy számos Java technológiára épülő rendszer 3-rétegben épül fel, akárcsak az elemzett. Az alsó az adatbázisréteg, amely tartalmazza a táblákat, tárolt függvényeket és eljárásokat, triggereket és más adatbázis elemeket. Legfelül a futtatandó Java kód áll, amely általában magába foglalja az üzleti logikát. E között a két réteg között az alkalmazás-szerver található, amely a kapcsolatok kezeléséért felel, valamint futtatókörnyezetet biztosít az alkalmazás számára. Az ilyen rendszerek felépítése nem tekinthető egyszerűnek: nehéz megállapítani, hogy két komponens kapcsolódik-e és még nehezebb megválaszolni, hogy kell-e kapcsolódniuk. Vannak még fontosabb kérdések is: amikor a rendszer változik (például új bináris készül, vagy az adatbázis séma változik), a változások milyen hatásokkal járnak? A statikus hatásanalízis egy eljárás, amely válaszokat adhat ezekre a kérdésekre.

A projekt fő célja, hogy az üzleti rendszer felépítésében történt változásokat feltérképezze és azokat áttekinthetően ábrázolja, mely segít megérteni azt, hogy hogy változott a kód. A vizuális megjelenítés segít megállapítani, hogy milyen tesztesetekre van szüksége ahhoz, hogy az összes változás le legyen fedve. A következő lépésekben zajlott az elemzés:

  • A PL/SQL kód oldalán statikus elemzést végeztünk, azt absztrakt ábrázolással (ASG - Abstract Semantic Graph = Absztrakt Szemantikus Gráf) prezentáltuk
  • A fenti lépést megismételtük a Java kód legfelső szintjén is
  • A fejlesztést leíró fájlok és más konfigurációs XML-ek segítségével megalkottunk egy "szupergráfot", amely tartalmazza mindhárom réteg egyedeit és az azok közti kapcsolatokat
  • A folyamatot megismételtük a rendszer további verzióin és a verziókhoz előállított szupergráfokat elhelyeztük a SourceInventory-ban. (A SourceInventory felhasználói felülete egyszerűvé teszi a különböző verziók közötti szerkezeti változások lekérdezését és megjelenítését.)