==== 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 ==== **Praca udostępniona publicznie** {{:2019:fracz:fracz.pdf|Modelowanie jakości kodu źródłowego na podstawie danych gromadzonych w systemach kontroli wersji}} ==== Recenzje ==== * {{:2019:fracz:huzar.pdf|prof. dr hab. inż. Zbigniew Huzar - Politechnika Wrocławska}} * {{:2019:fracz:nawrocki.pdf|dr hab. inż. Jerzy Nawrocki, prof. n. - Politechnika Poznańska}} ==== Publikacje doktoranta ==== * [[https://bpp.agh.edu.pl/autor/fracz-wojciech-20298|BG AGH]] * [[https://www.researchgate.net/profile/Wojciech_Fracz|ResearchGate]]