Zpo-4-lab

From Studia Informatyczne

Spis treści

Ćwiczenie 4. Metryki obiektowe

Informacje wstępne

Ćwiczenie jest realizowane w języku Java w środowisku Eclipse 3.2. Przed przystąpieniem do realizacji ćwiczenia należy zapozanać się z wykładem. Celem ćwiczenia jest ocena jakości oprogramowania za pomocą metryk obiektowych

Instalacja

Przygotowanie do ćwiczenia polega na zainstalowaniu JDK 5.0 oraz środowiska Eclipse w wersji 3.2 Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy wykonać instalację wtyczki Eclipse Metrics, która pozwoli na automatyczny pomiar wybranych metryk obiektowych dla programów w środowisku Eclipse.

Ostatni krok polega na zaimportowaniu projektu RCP SuDoKu, stanowiącego kopię projektu RCP SuDoKu ((c) by Henning Vitting) dostępnego w serwisie SourceForge.net

Zadanie

Zadanie polega na obliczeniu metryk obiektowych za pomocą wtyczki Eclipse Metrics dla klas należących do projektu RCP SuDoKu, oraz zinterpretowaniu ich wartości.

Opcje konfiguracyjne wtyczki Eclipse Metrics są dostępne w menu Preferences->Metrics Preferences. Możliwe jest m.in. określanie kolejności metryk oraz włączenie ostrzeżeń o wykroczeniu metryki poza dopuszczalny zakres

image:zpo-5-metrics-1.png

Określenie zakresów dopuszczalnych dla każdej z metryk jest możliwe w kolejnej zakładce tego okienka

image:zpo-5-metrics-2.png

Aby uruchomić obliczanie metryk, należy w preferencjach projektu w opcji Metrics zaznaczyć Enable Metrics, a następnie wymusić skompilowanie kodu: wyłączyć automatyczne budowanie kodu (Project->Build Automatically) oraz wywołać kompilację (Project->Build Project). Po skompilowaniu kodu można ponownie włączyć automatyczne budowanie projektu

image:zpo-5-metrics-3.png

Wtyczka Eclipse Metrics umożliwia także wizualizację zależności pomiędzy pakietami. Zależność pomiędzy pakietami występuje wówczas, gdy klasy należące do paietów są od siebie zależne.

Wygenerowanie widoku zależności pozwala określić pakiety abstrakcyjne i niestabilne oraz zidentyfikować cykle zależności (oznaczane na czerwono i powiązane liczbami w kółku: pierwsza liczba oznacza liczbę pakietów uczestniczących w cyklu, a druga najdłuższą ścieżkę łączącą pakiety w tej grupie). Siła zależości jest prezentowana w postaci długości linii łączącej pakiety.

Możliwe jest także prześledzenie szczegółowych zależności pomiędzy poszczególnymi klasami: po kliknięciu prawym klawiszem w kółko należy wybrać z menu kontekstowego opcję Analyze details. Wówczas pakiety są oznaczane zielonymi prostokątami, natomiast pojedyncze klasy - granatowymi.

Za pomocą wtyczki Eclipse Metrics należy wyznaczyć wartości następującyc metryk:

  • dotyczących powiązań między obiektami: Ce, Ca
  • dotyczących spójności obiektów: LCOM
  • dotyczących niestabliności i abstrakcyjności klas: I, A
  • dotyczących dziedziczenia: NOC, DIT

Pytania do dyskusji

  • O czym świadczy niska wartość metryki Instability pakietu Engine?
  • Jaki jest związek metryk Ce i Ca z metrykami CBO i CF?
  • Które metryki są bardziej przydatne do całościowej oceny jakości projektu?
  • Które metryki są skorelowane z innymi?

Literatura

  1. B. Henderson-Sellers "Object-oriented metrics. Measures of complexity". Prentice-Hall, 1995
  2. B. Walter "Metryki obiektowe jako wskaźniki jakości kodu i projektu". InMoST
  3. L. Williams, D. Ho, S. Smith "Software Metrics in Eclipse" NCSU