Una delle cose su cui ho riflettuto molto è come utilizzare le metriche di qualche tipo per misurare il cambiamento, stiamo andando indietro o no? Questo è nel contesto di una grande base di codici legacy che stiamo migliorando. La maggior parte del codice è C++ con un'eredità C. Alcune nuove funzioni e la GUI sono scritte in C#.Come posso visualizzare le modifiche in una grande qualità del codice base?
Per iniziare, potremmo almeno verificare se il livello di complessità semplice stava cambiando nel tempo nel codice. La difficoltà è nell'avere una rappresentazione - possiamo forse fare una superficie 3D dove una mappa 2D rappresenta il codice e abbiamo una mappa di calore di colore che rappresenta la complessità con la superficie 3D che si gonfia dentro e fuori per mostrare il cambiamento.
Una volta che è possibile generare alcune matrici di numeri, ci sono un sacco di sistemi matematici in giro per occuparsi di cose come questa.
Nel tempo, mi piacerebbe avere numeri più sofisticati, ma le stesse tecniche di visualizzazione utilizzate per rappresentare il cambiamento.
Mi piace l'idea in Crap4j di concentrarsi sul rapporto tra complessità e numero di test unitari che coprono quel codice.
Vorrei anche includere Uncle Bob's SOLID metrics e alcune delle metriche OO di Chidamber e Kemerer. La parte difficile è trovare strumenti per generare questi per C++. L'unica opzione sembra essere Krakatau Essential Metrics (non ho obiezioni a pagare per gli strumenti). Il mio desiderio di utilizzare le metriche CK deriva in parte dai libri Object-Oriented Metrics:Measures of Complexity di Henderson-Sellers e dal precedente Object-Oriented Software Metrics.
Se iniziamo a utilizzare un certo numero di queste metriche, potremmo ritrovarci con una decina di numeri che variano nel tempo. Sono abbastanza ignorante delle statistiche ma sembra che potrebbe essere interessante tracciare un gruppo di tali metriche e quindi prestare attenzione a quali tendono a variare.
Si noti che una domanda correlata è circa measuring code quality across a large code base. Sono più interessato a misurare il cambiare.
Grazie, che è stato il termine magia avevo bisogno di essere in grado di restringere le ricerche. Ho trovato un poster molto interessante sull'utilizzo di diagrammi 3D Kiviat http://w3.msi.vxu.se/~kerren/pubs/kerren-softvis10.pdf –
Aggiornamento del collegamento alla carta: http: //homepage.lnu. se/staff/akemsi/pubs/kerren-softvis10.pdf –