Reverse Engineering Rendszerfejlesztés II. 2. óra
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Reverse Engineering Cél: Forráskódból modell előállítása
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Reverse Engineering Statikus módszerek Általában forráskódból Nem kell a programot futatni A teljes kódból kinyerhető az információ Dinamikus módszerek Profile/trace adatokból A programot futtatni kell Csak egy futtatásból lesznek adataink © 2011, Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Tipikusan előállított modellek UML Diagramok Osztály, szekvencia diagramok Hívási gráfok Dokumentáció Pl. Javadoc, Doxygen © 2011, Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Függőségi gráfok Libek,.jar-ok, header fileok függései Osztályok függései CFG (Control Flow Graph) Vezérlési folyam DFG (Data Flow Graph) Adat függőségek PDG (Program Dependence Graph) Adat és vezérlési függőségek együtt SDG (System Dependence Graph) © 2011, Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék ArgoUML Osztálydiagram visszatervezése ArgoUML-lel File->Import Sources Adjuk meg a.java fileokat tartalmazó könyvtárat (pl.: jMemorize-1.3.0\src) Bal oldalt megjelenik a forrásszerkezet Az osztályok alatt elérhetőek a class diagramok Szerkesszünk „értelmes” osztálydiagramot! © 2011, Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Egyéb eszközök BOUML, ArgoUML: UML diagramok jSonde: függőségi gráfok, szekvencia diagramok STAN4J: függőségi gráfok, metrikák JDepend: függőségi gráfok, metrikák Fizetősek: Altova Umodel, MyEclipse, OMONDO, Visual Paradigm, AgileJ © 2011, Nagy Csaba
Szegedi Tudományegyetem – Szoftverfejlesztés Tanszék Pl.: Szekvenciadiagram előállítása jSonde-dal 1. JSonde\jsonde.bat 2. jMemorize\run.bat 3. File->Attach to SUN JVM 1. Pl. jMemorize projekt kiválasztása 2. Filternek adjuk meg pl.: jmemorize.* 4. Vegyünk fel új kártyákat, játsszunk! 5. jSonde alatt 1. Sequence diagram 2. Reports, … © 2011, Nagy Csaba