Az
Objektumvezérelt Szoftverek Elemzése
Ferenc Rudolf és Beszédes Árpád
A korszeru objektum orientált
szoftvertermékek a piaci igények
kielégítése végett egyre nagyobbak
és komplexebbek lesznek. Ráadásul a szoros
határidok miatt elmaradó dokumentációk
és tervek hiánya még inkább
megnehezíti a rendszerek megértését. A
forráskód megértésére a legnagyobb
szükség a szoftver életciklus karbantartási
szakaszában van, amikor különbözo
módosításokat kell eszközölni rajta,
mint például a hibajavítások vagy új
funkcionalitások hozzáadása. Ez a
problémakör hozta létre a szoftverfejlesztés
tudományon belül a létezo rendszerek
modellezését kutató (reverse engineering)
irányzatot. A célja az, hogy egy bizonyos szintu
szoftverspecifikációból egy magasabb szintu
leírást hozzon létre, például
esetünkben a programkódból a tervezési
dokumentációt. Manapság a modellezésre
leginkább a szabványos UML jelölésrendszert
alkalmazzák. Természetes tehát az igény,
hogy a visszanyert tervezési dokumentáció is UML
diagramokra épüljön. Ezen túl egyéb,
különbözo szempontok szerinti
vizualizációk is rendkívül fel tudják
gyorsítani a forráskód
megértését (pl. hívási
gráfok). A legújabb kutatási témák
közé tartozik a tervezési minták
felismerése a forráskódból, melynek
segítségével még magasabb szintrol lehet
megközelíteni szoftverrendszert. Egy másik nagy
kutatási terület a szoftverminoség
mérése, melyben a különbözo
metrikáknak nagy szerepük van. A Szegedi
Tudományegyetem Informatika Tanszékcsoportjának
dolgozói a helsinki Nokia Research Center-rel és a
FrontEndART Kft.-vel együttmuködve a fenti
problémakört megcélozva egy Columbus nevu reverse
engineering eszközt fejlesztettek ki, mely
segítséget nyújt a forráskód
megértésében és
dokumentálásában. Az eszköz
analizáló motorját felhasználva
elkészült egy CPPAudit nevu program is, ami ellenorizni tud
különbözo kódolási konvenciók
betartását, illetve figyelmeztet veszélyes
kód konstrukcióra.
Modern object oriented software systems, to meet the continuously
growing expectations of the market, are getting more and more complex.
Additionally, the lack of documentation and plans, which is missing
because of tight deadlines, makes it even more difficult to understand
the systems. The biggest need in comprehending the source code is in
the maintenance phase of the software lifecycle, when different
modifications need to be done, like bug-fixing and adding new
functionality. This originated the reverse engineering research within
the science of software engineering. The aim is to produce a higher
level description from a given specification, for instance the design
documentation from the source code in our case. Nowadays, standard UML
notation is used in most cases for designs. So it is an obvious need to
present the recovered design documentation with UML diagrams.
Additional visualizations based on different aspects can also
remarkably improve source code comprehension (e.g. call graphs). Among
the newest research activities is the recognition of design patterns
from source code, with which the software system can be approached from
an even higher level. Another large research area is the measuring of
software quality, where different metrics have a big role. The staff at
the University of Szeged Informatics Department in cooperation with the
Nokia Research Center in Helsinki and FrontEndART Ltd. developed a
reverse engineering tool called Columbus, which helps in source code
comprehension and documentation. Using its analyzer engine another tool
called CPPAudit was made as well, which checks different coding
conventions and gives warnings on dangerous code constructs.
Back