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