Zpo-4-lab: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
(Nie pokazano 4 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
=Ćwiczenie 4. Metryki obiektowe
=Ćwiczenie 4. Metryki obiektowe=


==Informacje wstępne==
==Informacje wstępne==
Linia 7: Linia 7:


==Instalacja==
==Instalacja==
Przygotowanie do ćwiczenia polega na zainstalowaniu JDK 5.0 [http://java.sun.com/javase/downloads/index.jsp] oraz środowiska Eclipse [http://www.eclipse.org/downloads] w wersji 3.2
Przygotowanie do ćwiczenia polega na zainstalowaniu [http://java.sun.com/javase/downloads/index.jsp JDK 5.0] oraz środowiska [http://www.eclipse.org/downloads Eclipse] w wersji 3.2
Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy wykonać instalację wtyczki [http://metrics.sourceforge.net|Eclipse Metrics], która pozwoli na automatyczny pomiar wybranych metryk obiektowych dla programów w środowisku Eclipse.
Po uruchomieniu środowiska i wyborze przestrzeni roboczej należy wykonać instalację wtyczki [http://metrics.sourceforge.net/projects/metrics Eclipse Metrics], która pozwoli na automatyczny pomiar wybranych metryk obiektowych dla programów w środowisku Eclipse.
Ostatni krok polega na utworzeniu lokalnej kopii projektu [http://jakarta.apache.org/commons/configuration|Jakarta Commons Configuration] za pomocą CVS/SVN..
 
Ostatni krok polega na zaimportowaniu projektu [[media:sudoku.zip|RCP SuDoKu]], stanowiącego kopię projektu RCP SuDoKu ((c) by Henning Vitting) dostępnego w serwisie SourceForge.net


==Zadanie==
==Zadanie==
Zadanie polega na obliczeniu metryk obiektowych za pomocą wtyczki Eclipse Metrics dla klas wymienionych podczas wykładu, oraz zinterpretowaniu ich wartości.  
Zadanie polega na obliczeniu metryk obiektowych za pomocą wtyczki Eclipse Metrics dla klas należących do projektu RCP SuDoKu, oraz zinterpretowaniu ich wartości.  
W szczególności należy wyznaczyć wartości następującyc metryk :
 
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 powiązań między obiektami: Ce, Ca
* dotyczących spójności obiektów: LCOM
* dotyczących spójności obiektów: LCOM
Linia 19: Linia 39:
* dotyczących dziedziczenia: NOC, DIT
* dotyczących dziedziczenia: NOC, DIT


==Pytanie do dyskusji==
==Pytania do dyskusji==
Które metryki są bardziej przydatne do całościowej oceny jakości projektu?
* 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==
==Literatura==
# B. Henderson-Sellers "Object-oriented metrics. Measures of complexity". Prentice-Hall, 1995
# B. Henderson-Sellers "Object-oriented metrics. Measures of complexity". Prentice-Hall, 1995
# B. Walter "Metryki obiektowe jako wskaźniki jakości kodu i projektu". [http://www.inmost.org.pl/articles/Metryki_obiektowe_jako_wskaAniki_jakoAci_kodu_i_projektu/base_view InMoST]
# B. Walter "Metryki obiektowe jako wskaźniki jakości kodu i projektu". [http://www.inmost.org.pl/articles/Metryki_obiektowe_jako_wskaAniki_jakoAci_kodu_i_projektu/base_view InMoST]
# L. Williams, D. Ho, S. Smith "Software Metrics in Eclipse" [http://open.ncsu.edu/se/tutorials/metrics NCSU]

Aktualna wersja na dzień 09:36, 30 paź 2006

Ć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

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

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

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