Processing may take a few seconds...

Dissertation

Title

Design patterns and code smells. Relationships and impact on selected software quality metrics

Authors

[ 1 ] Instytut Informatyki, Wydział Informatyki i Telekomunikacji, Politechnika Poznańska | [ D ] phd student

Promoter

[ 1 ] Instytut Informatyki, Wydział Informatyki i Telekomunikacji, Politechnika Poznańska | [ P ] employee

Supporting promoter

[ 1 ] Instytut Informatyki, Wydział Informatyki i Telekomunikacji, Politechnika Poznańska | [ P ] employee

Reviewers

Title variant

PL Wzorce projektowe i przykre zapachy w kodzie programu. Wzajemne związki i wpływ na wybrane metryki jakości oprogramowania

Language

english

Keywords
EN
  • design patterns
  • code smells
  • defects
  • changeability
PL
  • wzorce projektowe
  • przykre zapachy
  • defekty
  • zmienność kodu
Abstract

EN Design patterns are recommended generic solutions to common design problems. They have a complex relationship with various code quality characteristics. While several papers reported the positive impact of patterns on maintainability, changeability, and defects, other papers provided opposite conclusions, lessened the patterns effect or related their impact with various contextual factors. In this work, we investigate the relationship between design patterns and code smells and study the effect of code smells as a confounding variable in the patterns relationship with changeability and defects. We start by analyzing two medium-size, mature Java systems with the aim of investigating if the existence of design patterns impacts the presence of code smells and examine how the association between the two phenomena evolve over time. After that, we used non-parametric statistical tests to explore the relationship between design patterns and changeability, and to measure the impact of code smells on this relationship with regards to 13 design patterns and 9 code smells in three medium-size, long-evolving open-source Java systems. Finally, we inspect the link between patterns and defects and capture the difference in the impact on defects between pattern classes with/without smells in 10 Java systems from the PROMISE dataset. The results show that design pattern classes are more immune to code smells than other classes. However, the strength of this immunity varies between different patterns. Our results also suggest that the evolution of pattern classes through different releases of the same system slightly decreases their association with smells. Furthermore, our analysis concluded that code smells is a valid contextual factor that affects the relationship between design patterns with regards to both defects and changeability as in one hand, smelly patterns tend to receive smaller, but more frequent changes than other classes, and on the other hand, smelly pattern classes are positively associated with defects and also attract more defects than both non-pattern and non-smelly-pattern classes.

PL Wzorce projektowe stanowią polecane ogólne rozwiązania typowych problemów związanych z projektowaniem oprogramowania. Użycie wzorców wpływa na różne właściwości i charakterystyki kodu źródłowego. O ile wiele prac wskazuje na pozytywny związek z wzorców z pielęgnowalnością, zmiennością oprogramowania oraz gęstością defektów, o tyle część wyników prowadzi do odmiennych, czasem nawet przeciwnych wniosków: wpływ wzorców okazuje się dużo słabszy lub powiązany z rozmaitymi czynnikami kontekstowymi. W tej pracy podjęto temat związku pomiędzy wzorcami projektowymi oraz tzw. przykrymi zapachami w kodzie programów, oraz zbadano wpływ tych zależności na zmienność kodu oraz jego gęstość defektów w nim zawartych. Na początku pracy przedstawiono wyniki analizy dwóch średniej wielkości, dojrzałych systemów napisanych w języku Java pod kątem związków pomiędzy klasami uczestniczącymi we wzorcach projektowych oraz obarczonych przykrymi zapachami, a także ewolucji tych związków w czasie. Następnie, za pomocą nieparametrycznych testów statystycznych, przeprowadzono badanie wzajemnego wpływu wzorców oraz przykrych zapachów na zmienność oprogramowania w trzech podobnych systemach. Wreszcie, badanie związku tych zjawisk z gęstością defektów, wykorzystując istniejące dane ze zbioru PROMISE. Wyniki wskazują, że klasy uczestniczące na wzorce projektowe rzadziej są obciążone przykrymi zapachami niż pozostałe klasy, jednak związek ten zmienia się w zależności od konkretnego wzorca. Obserwacje dotyczące zmian tego związku w czasie pokazują także, że w toku ewolucji udział przykrych zapachów w klasach pełniących role we wzorcach nieznacznie spada. Ponadto, wykonana analiza pozwala na stwierdzenie, że obecność przykrych zapachów jest czynnikiem wpływającym na zmienność kodu i gęstość defektów w we wzorcach projektowych. Klasy obarczone zapachami są zmieniane częściej, jednak same zmiany są mniejsze niż w przypadku innych klas, natomiast klasy wzorców posiadające przykre zapachy posiadają błędy częściej i w większej liczbie zarówno niż klasy nieuczestniczące we wzorcach, jak i klasy uczestniczące we wzorcach, ale pozbawione zapachów.

Number of pages

88

OECD domain

computer sciences and computer science

KBN discipline

computer science

Full text of dissertation

Download file

Access level to full text

public

First review

Foutse Khomh

Place

Montréal, Canada

Date

08.09.2021

Language

english

Review text

Download file

Access level to review text

public

Second review

Michał Śmiałek

Place

Warszawa, Poland

Date

12.07.2021

Language

english

Review text

Download file

Access level to review text

public

Dissertation status

dissertation before defense

Place of defense

Poznań, Polska

Date of defense

01.10.2021