J depend

10
JDepend Università degli studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di laurea magistrale in INFORMATICA Presentazione di M. Bonini, L. La Torre, L. Mariot, L. Poto, M. Previtali, A. Ranchetti, D. Ranchetti, M. Susani Anno accedemico 2010/2011 Scrum team 2

Transcript of J depend

Page 1: J depend

JDepend

Università degli studi di Milano Bicocca

Facoltà di Scienze Matematiche Fisiche e Naturali

Corso di laurea magistrale in INFORMATICA

Presentazione di

M. Bonini, L. La Torre, L. Mariot, L. Poto, M. Previtali, A. Ranchetti, D. Ranchetti, M. Susani

Anno accedemico 2010/2011

Scrum team 2

Page 2: J depend

JDepend aiuta a:

Misurare le qualità (estendibilità, riusabilità,

manutenibilità…) del progetto

Individuare le dipendenze e scoprire quali

package di alto livello dipendono da quelli di

basso livello

Rendere i package più stabili ed indipendenti

tra di loro

Page 3: J depend

JDepend aiuta a:

Isolare le dipendenze verso package di terze

parti

Identificare i cicli di dipendenza tra package

Page 4: J depend

Metriche di JDepend

CC: n° di classi concrete

AC: n° di classi astratte o interfacce (non vengono distinte)

Afferent Couplings (Ca):

n° di altri package dipendenti dalle classi all’interno del package. Indicatore di responsabilità del package.

Efferent Couplings (Ce): n° di altri package da cui le classi del pacchetto analizzato dipendono. Indicatore di indipendenza del package.

Page 5: J depend

Metriche di JDepend

Abstractness (A)

Rapporto tra il numero di classi astratte e il numero totale

di classi contenute nel pacchetto analizzato. L’ intervallo va

da 0 a 1, dove A=1 indica il livello massimo di astrazione

del package.

Instability (I)

si calcola Ce / (Ce + Ca). Indica la resistenza al

cambiamento. L’intervallo va da 0 a 1, dove I=1 indica il

livello massimo di instabilità del pacchetto.

Distance from the Main Sequence (D)

Indica il bilanciamento tra astrattezza (A) e stabilità (I) del

package.

Page 6: J depend

Viste: Efferent e Afferent Dependencies

Page 7: J depend

Viste: Selected Object(s) e Packages with

cycle

Page 8: J depend

Vista: Distance from the Main Sequence

I pacchetti ideali sono quelli in cui si presentano completamente astratti e

stabili (I = 0 e A = 1).

Page 9: J depend

Pregi e difetti di JDepend

Pregi:

è semplice da usare

permette di riconoscere facilmente le dipendenze verso package di terze parti

è (anche) un plugin Eclipse

Difetti:

non distingue tra classi astratte ed interfacce

manca l’analisi sulle classi

Page 10: J depend

Installazione plugin Eclipse

Andare su "Help -> Install new Software... -> Work with:“ e utilizzare come url http://andrei.gmxhome.de/eclipse/

Spuntare su “JDepend4Eclipse” sotto “Eclipse 3.5 - 3.7 plugins”

Tasto destro su “src” del progetto java -> “Run JDepend analisys”