Kódanalizátor fejlesztése C nyelvű forrásfájlokhoz

OData támogatás
Konzulens:
Suba Gergely
Irányítástechnika és Informatika Tanszék

Nagy szoftverrendszerek fejlesztéséhez elengedhetetlen a kódbázis megfelelő minőségének fenntartása, ebben segíthetnek a statikus kódanalízis módszerek. Statikus kódanalízissel a kódban előforduló potenciális hibák és a kódolás stílusából eredő problémák egy részét tudjuk kiszűrni. A statikus kódanalízis tulajdonképpen a szoftverünk verifikálásában segít, ezáltal kódunk minőségének javításában is. Ráadásul ez a módszer nem igényli tesztek készítését vagy a programunk végrehajtását. Így a statikus kódanalizátorok a fejlesztési időt lerövidítik, mert a hibák már a szoftverfejlesztés kezdeti fázisában kiderülnek.

A statikus kódanalízis szempontjából fontosak programunk különböző reprezentációi (szintaxisfa, adatfolyamgráf, vezérlésfolyamgráf, hívási gráf stb.), mert az egyes reprezentációkon különböző elemzéseket lehet hatékonyan elvégezni. A szakdolgozat egy-egy példán keresztül szemlélteti ezeket az adatstruktúrákat. Számos eszköz létezik, C nyelvű forrásfájlok elemzéséhez. A dolgozat tíz elterjedt statikus kódanalizátort mutat be és hasonlít össze.

A C nyelvet elemző statikus kódanalizátorok általában nem veszik figyelembe a C előfeldolgozó konstrukcióit, mert az előfeldolgozás egy külön lépésként történik, a forrásfájlok fordítása előtt. A dolgozat egy lehetséges megoldást nyújt a probléma kezelésére. Bemutat egy C nyelvű forrásfájlokat elemző szoftvert, valamint részletezi, hogy milyen problémákat kell megoldani egy ilyen szoftver implementálásához. A szoftver bemenete egy vagy több C forrásfájl. A szoftver négy elemzési funkciót valósít meg: hívási gráf előállítása, switch szerkezetek ellenőrzése, hogy minden case ága breakkel van-e befejezve és tömb méretek ellenőrzése, hogy makróval vannak-e megadva. A negyedik elemzési funkció a bemeneti forrásfájlok közötti függőségek felderítése. A szoftver Java nyelven, az ANTLR parszergenerátor felhasználásával készült.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.