Narzędzia użytkownika

Narzędzia witryny


2019:fracz:start

Zaproszenie na obronę pracy doktorskiej

DZIEKAN i RADA WYDZIAŁU
INFORMATYKI, ELEKTRONIKI I TELEKOMUNIKACJI
AKADEMII GÓRNICZO-HUTNICZEJ im. ST. STASZICA W KRAKOWIE
zapraszają na
publiczną dyskusję nad rozprawą doktorską

mgra inż. Wojciecha Frącza
Modelowanie jakości kodu źródłowego
na podstawie danych gromadzonych w systemach kontroli wersji
Termin:25 września 2019 roku o godz. 14:00
Miejsce:Sala 1.19, pawilon D-17, ul. Kawiory 21, 30-059 Kraków
PROMOTOR:dr hab. inż. Marek Kisiel-Dorohinicki, prof. n. – Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie
PROMOTOR POMOCNICZY:dr inż. Jacek Dajda – Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie
RECENZENCI:prof. dr hab. inż. Zbigniew Huzar – Politechnika Wrocławska
dr hab. inż. Jerzy Nawrocki, prof. n. – Politechnika Poznańska
Z rozprawą doktorską i opiniami recenzentów można się zapoznać
w Czytelni Biblioteki Głównej AGH, al. Mickiewicza 30


Modelowanie jakości kodu źródłowego na podstawie danych gromadzonych w systemach kontroli wersji


mgr inż. Wojciech Frącz


Promotor: dr hab. inż. Marek Kisiel-Dorohinicki, prof. n. (AGH)
Promotor pomocniczy: dr inż. Jacek Dajda (AGH)
Dyscyplina: Informatyka


Problem utrzymywania kodu odpowiedniej jakości w tworzonym oprogramowaniu jest znany zarówno programistom, jak i osobom nietechnicznym odpowiedzialnym za projekt. Dobrze rozumiana jest konieczność częstej refaktoryzacji, czyli poprawy jakości kodu bez zmiany jego funkcjonalności. Większość osób związanych z programowaniem jest także świadoma istnienia zapachów kodu czy metryk, które wskazują symptomy sugerujące konieczność przeprowadzenia takich przekształceń. W dodatku, mnogość istniejących narzędzi potrafiących je wykrywać powoduje, że w trakcie tworzenia oprogramowania problem jego jakości jest jawny przez cały czas, co umożliwia minimalizację ryzyk z nim związanych.

Pomimo świadomości istnienia kodu o różnej jakości, w dalszym ciągu nie udało się jednoznacznie określić zestawu cech, które świadczą o odpowiedniej czytelności kodu źródłowego. Jest to pojęcie subiektywne, nieco inaczej rozumiane przez każdą osobę związaną z programowaniem.

Autor niniejszej rozprawy pochyla się nad problemem zbudowania jakościowego modelu kodu źródłowego (Source Code Quality Model – SCQM), którego zadaniem jest automatyczna klasyfikacja jakości kodu. Wykorzystano w tym celu metody uczenia maszynowego znane z przetwarzania języka naturalnego i analizy jego wydźwięku. Skoro skutecznie rozwijane są rozwiązania poprawnie klasyfikujące pozytywny lub negatywny wydźwięk analizowanego tekstu, w podobny sposób można potraktować kod źródłowy – jako mechanizm komunikacji programisty z komputerem – i przeanalizować, czy komunikacja ta przebiega na odpowiednim poziomie jakości.

Rozprawa wykazuje, że jakościowy model kodu źródłowego zrealizowany na podstawie dwukierunkowej rekurencyjnej sieci neuronowej cechuje większa trafność w rozpoznawaniu jakości kodu źródłowego niż jakiekolwiek z dostępnych obecnie rozwiązań. W przeprowadzonej ewaluacji zbudowany model poprawnie sklasyfikował jakość kodu dla 79% przykładów, podczas gdy druga pod względem skuteczności istniejąca metryka osiągnęła jedynie 57%.

Aby osiągnąć ten cel, autor rozprawy wybrał ponad 15000 zmian wprowadzających refaktoryzację do 350 najpopularniejszych projektów z portalu GitHub tworzonych w języku Java. Posłużyły one do zbudowania danych treningowych dla zaprojektowanego modelu, który został nauczony subiektywnego pojęcia kodu źródłowego wysokiej jakości.

Ponadto, w celu zwiększenia skuteczności stworzonego modelu przeprowadzono badanie wśród programistów mające na celu zebrać opinie o jakości zaprezentowanych przykładów kodu źródłowego. W badaniu wzięło udział ponad 500 programistów, oddając ponad 5000 głosów i klasyfikując w ten sposób 645 przykładów refaktoryzacji. Zbiór tych refaktoryzacji został wykorzystany zarówno do trenowania jak i walidacji modelu. Zostały one także opublikowane jako jakościowy benchmark kodu źródłowego.

Treść rozprawy

Recenzje

Publikacje doktoranta

2019/fracz/start.txt · ostatnio zmienione: 2019/09/11 21:38 przez Wojciech Frącz