Repository logo
Doctoral Dissertation

Development and verification of new methods for analyzing the structure and operation of complex IT systems

Loading...
Thumbnail Image

Relation

Local access

Defence Date

2024-04-03

Degree Date

Access rights

Access: otwarty dostęp
Rights: AGH Licence (Doctoral dissertation) 1.0
AGH Licence (PhD) 1.0 - Fair Use

AGH Licence (Doctoral Dissertationes) 1.0 - Fair use of copyrighted works

Other title

Opracowanie i weryfikacja nowych metod analizy struktury i sposobu działania złożonych systemów informatycznych

Resource type

Call number

R.12230

Defence details

Degree Grantor: Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie
Field Dziedzina nauk inżynieryjno-technicznych
Discipline Informatyka Techniczna i Telekomunikacja

Physical Description:

XIV, 107 str. : il. (w tym kolorowe)

Research Project

Description

Zawiera bibliogr.

Abstract

Zrozumienie oprogramowania może być niezwykle czasochłonne ze względu na stale rosnący rozmiar kodu źródłowego programu. W związku z tym istnieje potrzeba przyspieszenia procesu rozumienia kodu w celu ułatwienia utrzymania i zmniejszenia związanych z tym kosztów. Chociaż istnieje już wiele różnych reprezentacji struktury i zależności kodu, zaskakujący jest brak modeli, które ściśle reprezentują kod źródłowy i koncentrują się na wspieraniu zrozumienia oprogramowania. Aby wypełnić tę lukę, proponujemy Semantic Code Graph (SCG), model informacyjny, który oferuje szczegółową abstrakcyjną reprezentację zależności kodu z możliwie dokładnym odwzorowaniem kodu źródłowego. Aby zweryfikować przydatność modelu SCG w zrozumieniu oprogramowania, porównujemy go z dziewięcioma innymi modelami reprezentacji kodu źródłowego. Ponadto wybieramy 11 znanych oraz szeroko stosowanych projektów z otwartym kodem źródłowym napisanych w Javie i Scali i wykonujemy na nich szereg czynności związanych ze zrozumieniem oprogramowania przy użyciu trzech różnych modeli reprezentacji kodu: proponowanego SCG, Call Graph i Class Collaboration Network. Nasze praca udowadnia, że SCG zwiększa możliwości rozumienia oprogramowania w porównaniu z dominującymi modelami Class Collaboration Network i Call Graph. Udostępniamy również narzędzie open- source, scg-cli, aby pomóc w odtworzeniu wyników i dalszych badaniach.


Software comprehension can be extremely time ¬consuming due to the ever-growing size of codebases. Consequently, there is an increasing need to accelerate the code comprehension process to facilitate maintenance and reduce associated costs. While a variety of code structure models already exist, there is a surprising lack of models and in consequence tools that closely represent the source code and focus on software comprehension. To address this gap, we propose the Semantic Code Graph (SCG), an information model that offers a detailed abstract representation of code dependencies. To validate the SCG model's usefulness in software comprehension, we compare it to nine other source code representation models. Additionally, we select 11 projects developed in Java and Scala and perform a range of software comprehension activities on them using three different code representation models: the proposed SCG, the Call Graph, and the Class Collaboration Network. Our findings demonstrate that the SCG enhances software comprehension capabilities compared to the prevailing Class Collaboration Network and Call Graph models. We also release an open-source tool, scg-cli, to assist with result reproduction and further research.

Access rights

Access: otwarty dostęp
Rights: AGH Licence (Doctoral dissertation) 1.0
AGH Licence (PhD) 1.0 - Fair Use

AGH Licence (Doctoral Dissertationes) 1.0 - Fair use of copyrighted works