Skip to content

Pomiar jakości kodu

tomdziwood edited this page Jan 15, 2019 · 1 revision

GOAL

Scharakteryzować wszystkie klasy (oprócz klas testujących) pod względem poziomu skomplikowania kodu i dostępu do danych.

Question 1

Ile jest wszystkich klas ?

  • 7

Question 2

Jak rozbudowana jest hierarchia klas (drzewo dziedziczenia)?

  • Główną klasą jest klasa 'Lokalizacja', z której dziedziczą klasy: 'Pomieszczenie', 'Poziom' i 'Budynek'. Natomiast klasy, które dziedziczą z Lokalizacji nie mają już swoich potomków.

Question 3

Jak wygląda podział atrybutów ze względu na publiczne i prywatne?

  • Wszystkie zmienne oraz listy są prywatne, natomiast wszystkie metody są publiczne (np. settery i gettery).

Miara: Linie źródłowe kodu

Question 4

Jak skomplikowany jest kod w klasach?

  1. LOC (wszystkie linie kodu):
    • w klasie buildingInfoApplication: 205
    • w klasie Budynek: 342
    • w klasie Lokalizacja: 154
    • w klasie Okno: 163
    • w klasie Pomieszczenie: 314
    • w klasie Poziom: 251
    • w klasie buildingInfoController: 460

sumaryczna ilość linii kodu: 1889

  1. ELOC (bez pustych i komentarzy):
    • w klasie buildingInfoApplication: 147
    • w klasie Budynek: 149
    • w klasie Lokalizacja: 43
    • w klasie Okno: 74
    • w klasie Pomieszczenie: 126
    • w klasie Poziom: 105
    • w klasie buildingInfoController: 296

sumaryczna ilość linii kodu: 940

Question 4

Jak skomplikowany jest kod w metodach?

  • LOC <= 115 (metoda stworzBudynek2 w klasie buildingInfoApplication)
  • ELOC <= 92 (metoda stworzBudynek2 w klasie buildingInfoApplication)

Question 5

Jak rozdzielona jest odpowiedzialność pomiędzy klasami?

  • LCOM* dla klasy buildingInfoApplication: 0
  • LCOM* dla klasy Budynek: 0,166666667
  • LCOM* dla klasy Lokalizacja: 0,8125
  • LCOM* dla klasy Okno: 0,714285714
  • LCOM* dla klasy Pomieszczenie: 0,650793651
  • LCOM* dla klasy Poziom: 0,214285714
  • LCOM* dla klasy buildingInfoController: 0,428571429

Średni LCOM* = 0,426729025

Clone this wiki locally