Roberto Brunetti

Developing in the cloud

.NET Programming

Archives

October 2008 - Posts

Visual Studio Team System 2010: primo contatto (parte 2)

Ho pubblicato una seconda serie di informazioni sulla nuova versione di Visual Studio Team System 2010.

Code Metrics: qualche spiegazione

Con VSTS 2008 è arrivato un nuovo sistema di calcolo sulla bontà della nostra soluzione software: è sufficiente eseguire Tasto Dx su un progetto e scegliere Calculate Code Metrics.
Il tutto viene riepilogato in questa tabellina per ogni classe/metodo (esportabili in excel)

Cosa significano questi valori ?

Maintainability Index 0 – 100 (più alto = meglio)
Basato su Halstead Volume, Cyclomatic Complexity e Lines of Code

Cyclomatic Complexity
Conta i Code Path (if, while, switch, for....)
Se troppo alto servono più unit test per arrivare ad una buona copertura del codice: in pratica il codice risulta meno manutenibile

Depth of Inheritance
Rappresenta il livello gerarchico delle classi.
Se troppo alto diventa difficile capire da dove arrivano le “cose” ereditate

Class Coupling
Good Software is high coesive and low coupling
Se alto indica troppe interdipenze fra tipi
Il calcolo non considera i tipi built-in

Lines of Code
Calcolo approssimativo basato su IL
Non conta commenti, dichiarazioni di tipi/membri/namespace
Numero alto: forse il metodo o la classe fa troppo

Valori corretti
Anche se non esiste una regola applicabile a tutti gli scenari queste le indicazioni di massima.
Le indicazioni arrivano da FxCop (Code Analysis in Visual Studio) per cui esistono questi valori massimi. Se superari il Code Analysis emette un warning.
Accanto ad ogni elemento il codice la regola relativa.

Depth of Inheritance : CA1501 > 5
Complexity: CA1502 > 25
Maintainability Index: CA1505 > 20
Class Coupling: CA1506
> 80 per classi
> 30 per metodi

Non si può impedire un check-in sui calcoli effettuati da Code Metrics, esistendo le 4 regole sopra citate (sono sotto Maintainability Rules) si possono impostare le ckeck-in policy comunque.

Hope useful

Posted: Oct 20 2008, 05:25 PM by rob | with no comments
Filed under: ,
Visual Studio Team System 2010: primo contatto

Ho pubblicato questo mini articolo, a cui seguiranno altri due o tre appuntamenti su Visual Studio Team System 2010.

http://blogs.devleap.com/articolidevleap/archive/2008/10/17/visual-studio-team-system-2010-primo-contatto.aspx