entisnet

szoftverfejleszés. it tanácsadás. kereskedelem.

az entisnetről

Cégünk 2010 óta fogalkozik szoftverek és szoftverrendszerek fejlesztésével, kapcsolódó IT tanácsadással és hardware-software kereskedelemmel.

2018-1.1.1-MKI

entis logo entis logo
2018. OKTÓBER 19-én a támogatást nyertünk a 2018-1.1.1-MKI „MIKRO- ÉS KISVÁLLALKOZÁSOK INNOVÁCIÓS TEVÉKENYSÉGÉNEK TÁMOGATÁSA” c. pályázati konstrukció keretében.

Támogatási összeg: 45 284 221 Ft

Projektünk címe: „Alkalmazás-modernizáció támogatása a forráskód automatikus elemzése útján”

Projekt megvalósítási időszak: 2018. december 1- 2019. november 30. A projekt a Nemzeti Kutatási, Fejlesztési és Innovációs Hivatal közreműködésével, az NKFI alapból valósul meg.

A projekt során létrehozott termék egy forráskód-elemző szoftver, amely nagy és bonyolult Java rendszereket elemez, az elemzés eredményét adatbázisba tárolja, és az adatbázis tartalmának alkalmasan tervezett grafikus, illetve szöveges megjelenítésével támogatja az emberi elemzők munkáját.
A projekt eredményének nemzetgazdasági hasznosíthatósága nem ágazatfüggő: a gazdaság összes olyan ágában hasznosítható, amely már elég hosszú ideje olyan mértékben informatizálva van, hogy a támogató rendszerek nagyra nőttek és bonyolultak lettek. Példaképp említhetjük a villamosenergia-hálózat felügyeletét, a logisztikát, a nagy cégek kis- és nagykereskedelmi rendszereit, az egyedi fejlesztésű vállalatirányítási rendszereket.
A terméket magát nem, hanem a forráselemzést, mint szolgáltatást kívánjuk értékesíteni. Célcsoportnak azokat magyar és külföldi vállalatokat tekintjük, amelyek vagy tulajdonosként akarják tüzetesen megismerni valamely Java nyelven írt szoftverrendszerük működésének részleteit, vagy fejlesztőként érdekeltek benne (pl. támogatási szerződés vagy továbbfejlesztésre kötött szerződés keretében). A forráselemző szolgáltatás eredménytermékeként a megrendelő információt kap: a vizsgált szoftverrendszer üzleti funkcióinak, és az ezekben testet öltő üzleti szabályoknak emberi elemzés számára áttekinthető összességét.

Application Understanding for Java (AU4J)

Modernizing JEE applications

A településfejlesztésben a barnamezős beruházás fogalma a korábban használt, de elhagyott ipari, kereskedelmi vagy mezőgazdasági területek újrahasznosítását jelenti.

A szoftveriparban a barnamezős (brownfield) fejlesztés esetén egy régi kódbázis karbantartása és továbbfejlesztése a cél.

Itt gyakran nem az új funkciók komplexitása, vagy a környezet bonyolultsága okoz problémát, hanem az, hogy szükség lenne a működő rendszer részletes és alapos megértésére, üzleti és informatikai értelemben egyaránt. Előfordul, hogy ez a megértés mindkét értelemben hiányos. Szükség lenne a szakterület szakértőire, és az eredeti kód szerzőire, de ők csak korlátozottan vagy egyáltalán nem érhetők el.

Az Application Understanding for Java (AU4J) a fenti probléma megoldására tervezett alkalmazás.

Ma már több kiváló eszköz áll a fejlesztő rendelkezésére, amelyek a kód feltérképezését és visszafejtését támogatják. Ezek általában a program vezérlési struktúráját követve, fentről lefelé haladnak. A vezérlési struktúra bejárása azonban nehezen követhető, rövid idő alatt bonyolulttá és áttekinthetetlenné válik.

Ezzel szemben az Application Understanding for Java (AU4J) egy egészen eltérő, új megközelítést alkalmaz.

Nem a vezérlésre, hanem az adatokra fókuszál, és megfordítja az elemzés irányát:

  • Megkeresi a kódban azokat a pontokat (output endpoint), ahol valamilyen perzisztens adat keletkezik, pl. egy új rekord egy adatbázis táblában vagy file-ban.
  • Ezután, hátulról visszafelé haladva megkeresi azokat a kódtöredékeket, amelyekből az output endpoint elérhető, és amelyek részt vesznek vagy vehetnek a perzisztens adat előállításában. Eközben kiesik a keretrendszer és az architektúra komplexitása, és az így kivonatolt, flow-nak nevezett kód már csak az üzleti logikát tartalmazza.
Ez a kód kivonat megnyitja az utat egy új keretrendszert, új architektúrát használó átfogó refaktor előtt.
aujava

Az Application Understanding for Java (AU4J) funkciói

aujava

Vizsgálat (Scan)

Az alkalmazás beolvasása, átfogó vizsgálata és elemzése a forráskód alapján.

Modulok (Modules)

Az elemzés után, kibontható faként megjeleníti az alkalmazás moduljainak hierarchiáját.

Hívástérkép (Invocation map)

A vizsgált alkalmazás összes metódusához kilistázza az összes olyan kódot, amely az adott metódust meghívja.

Használaton kívüli kódok (Dead Code)

Feltárja az alkalmazásban a nem használt kódrészeket. A rekurzív algoritmus azokat a kódokat is kiszűri, amelyeket csak nem használt kódrészek hívnak.

Entitások (Entities)

Megjeleníti az alkalmazás entitásainak listáját. A listán egymás mellett ki lehet bontani a kapcsolódó entitások szerkezetét.

Lekérdezések (Queries)

Listázza az alkalmazás összes named- és inline query-jét, megmutatja a JPQL-t és a belőle generálódó SQL-t egyaránt.

SQL kereső (SQL Finder)

Gyakori igény üzemeltetők részéről, hogy meg kell találni egy, a naplóból kiolvasott SQL utasítás forrását az alkalmazásban. Ez a funkció az SQL alapján azonosítja és visszadja a query-t kibocsátó utasítást, és arra rákattintva kibontja a metódus teljes kódját.

Kifestés (Paint)

A funkció neve az érfestés nevű orvosi diagnosztikai eljárásból származik. Végpontonként megmutatja, hogy mely kódrészek állnak kapcsolatban velük. Output végpont esetében (választott színre) befesti azokat a kódokat, amelyek részt vesznek az előállításában, input végpont esetében pedig azokat, amelyek részt vesznek a feldolgozásában.

Hatáselemzés (Impact analysis)

Az AU4J kapcsolódik a forráskódot tároló verziókezelő szoftverhez. A forráskódon történő módosítás esetén a commit-azonosítóhoz a szoftver megadja, hogy a módosított alkalmazás teljes regressziós tesztelése helyett mely felhasználói funkciók (felhasználói esetek) tesztelése szükséges és elégséges. E funkció használata mind üzemeltetők, mind fejlesztők számára egyaránt jelentős erőforrás megtakarítással jár.

Biztonsági elemzés (Security Analysis)

Az AU4J a biztonság kérdésében is fontos válaszokat ad. A biztonságtechnikai szakértő, az etikus hacker megmutatja a rendszer sebezhető pontjait, ha vannak ilyenek; más szóval megadja a potenciális betörés árát. Azonban nincs információja arról, hogy a betörés árán milyen érték szerezhető, illetve mekkora kár keletkezhet, mert ezt csak a szakterület szakértői tudják megmondani. Ha az értékeket a szakterület hozzárendeli az adatállományokhoz, akkor az AU4J megjeleníti ezeket a belépési pontokon, más szóval kvantitatív módon megmutatja, hogy az egyes belépési pontok védelmi szempontból mennyire kritikusak.

Kiknek fejlesztjük az alkalmazást

Az Application Understanding for Java egyaránt hasznos eszköz

  • a rendszert üzemeltető informatikusok,
  • a szupportot (rendszertámogatást) ellátó szoftverfejlesztők és rendszerszervezők,
  • a rendszer továbbfejlesztését vagy átalakítását tervező szakemberek, és
  • a rendszer üzleti-szakmai felhasználói számára.
Egyedi módon képes megmutatni azt, hogy egy monolit alkalmazás

  • hogyan darabolható fel önálló modulokra, vagy akár mikroszervizekre;
  • milyen dead code-okat (nem használt kódokat) tartalmaz;
  • megvizsgálja, hogy egy módosításnak (javításnak vagy új fejlesztésnek) milyen hatása lehet a biztonságra, illetve a teljes regressziós teszt helyett mely use-caseket elegendő vizsgálni;
  • jelentősen meggyorsítja a működés során felmerülő hibák okának azonosítását
  • az alkalmazás belépési pontjait képes minősíteni annak alapján, hogy mekkora a rajtuk keresztül okozható kár mértéke, az egyes belépési pontok védelmi szempontból mennyire kritikusak.

Az Application Understanding for Java fejlesztése

Az AU4J módszerei és algoritmusai támaszkodnak a COBOL, RPG és Natural programnyelvekre már korábban kifejlesztett hasonló alkalmazásokra. Az AU4J projekt célja az, hogy a felgyűlt tudást a Java programnyelvre is implementálja.

A projekt a Mikro- és kisvállalkozások innovációs tevékenységének támogatása keretében, 2018-1.1.1-MKI-2018-00148 számon valósul meg. A projekt befejezésének időpontja 2019 november 30., de a termék folyamatos továbbfejlesztését tervezzük.

Docent

ÁLTALÁNOS BEMUTATÁS
A beruházás a DocEnt általános célú vállalati dokumentumkezelő rendszer továbbfejlesztését és külpiaci értékesíthetőségét célozza. A DocEnt egyszerű dokumentumkezelő rendszer, amely a vastag kliens nyújtotta magas szintű felhasználói élményt kínálja kliens-oldalon.
A DocEnt a megosztott fáljrendszerben történő dokumentumtároláshoz képest alapvetően a kifinomult jogosultságkezelés, a verziókezelés, az állományok bővíthető leíró-adatmezői terén nyújt többletszolgáltatásokat.
A DocEnt nem tartalmaz beépített munkafolyamat-kezelést. A dokumentumok állapotkezelése a zárolás/felszabadítás és a véglegesítés műveletére szorítkozik.
JOGOSULTSÁGKEZELÉS
A DocEnt rendszert csak a bejegyzett felhasználók használhatják. A szoftver képes integrálódni a szervezet belső címtárával (pl. Active Directory) , ilyenkor az azonosítást és beléptetést is a címtár szerver végzi.
A dokumentumokhoz való hozzáférési jogosultságokat adminisztrátor kezeli. Ő sorolja csoportokba a felhasználókat, akik a csoporttagságaik révén 3 szintű jogosultság („olvasás”, „írás”, „minden”) valamelyikét kaphatják a dokumentumtár könyvtáraira illetve egyes állományaira. A könyvtár-szintű jogosultságok esetében állítható, hogy legyenek-e rekurzívan érvényesek az alkönyvtárakra is.
KÖNYVJELZŐK
A DocEnt felhasználónként kezel könyvjelzőket, amelyek mutathatnak könyvtárra és egyedi dokumentumra egyaránt, és az adott elem gyors elérését szolgálják. A felhasználók felvehetnek állományokat és könyvtárakat (alkönyvtárakkal, állományokkal együtt) a saját könyvjelzőik közé. Egy felhasználó olyan könyvtárra kaphat jogosultságot, amelynek a szülő-könyvtárára nincs joga, ilyenkor a könyvjelzői közé kerül, hogy elérhesse.
FÁJLMŰVELETEK
A DocEnt támogatja a szokásos fájlműveleteket: állomány feltöltése, könyvtár létrehozása, állományok/könyvtárak törlése, másolása, állományok/könyvtárak kivágása/beillesztése, állományok/könyvtárak átnevezése, könyvtár megjelenített tartalmának a frissítése.
CÍMKÉK
A DocEnt állományaihoz tetszőleges számú szöveges címkét lehet rendelni. A címkék a dokumentumok keresésekor hasznosulnak.
BŐVÍTHETŐ ATTRIBÚTUMKÉSZLET
Az egyes könyvtárakhoz tetszőleges számú attribútumot is lehet rendelni. Ennek értelme, hogy az állományhoz/könyvtárhoz adott szöveges adatokat csoportosítani, a lehetséges értékeket előzetesen definiálni lehessen. Az attribútumokat (és lehetséges értékkészletüket) az adminisztrátornak előre létre kell hoznia, az állományokhoz/könyvtárakhoz csak előre létrehozott attribútumokat lehet hozzárendelni.
Az állományok megöröklik a könyvtárhoz rendelt kötelező adatmezőket. Ha könyvtárhoz rendelünk attribútumot, akkor kiválasztható, hogy
  • a tartalmazott könyvtárak is megkapják-e az attribútumot
  • a tartalmazott állományok is megkapják-e az attribútumot