Le metriche CK sono ancora considerate utili? C'è uno strumento open source per aiutare?

2

Chidamber & Kemerer ha proposto diverse metriche per il codice orientato agli oggetti. Tra questi, la profondità dell'albero di ereditarietà, il numero ponderato di metodi, il numero di funzioni membro, il numero di bambini e l'accoppiamento tra gli oggetti. Usando una base di codice, hanno cercato di correlare queste metriche alla densità dei difetti e allo sforzo di manutenzione usando l'analisi covariante.

Queste metriche sono utilizzabili nei progetti? Forse possono guidare il refactoring. Ad esempio, il numero ponderato di metodi potrebbe mostrare quali classi di Dio dovevano essere suddivise in classi più coerenti che affrontano un singolo problema.

C'è un approccio sostituito da un metodo migliore, e c'è uno strumento in grado di identificare il codice problema, in particolare nel caso in cui un progetto di dimensioni moderate venga trasferito a un nuovo sviluppatore o team?

    
posta DeveloperDon 06.09.2012 - 07:29
fonte

3 risposte

6

Questa è una domanda difficile, e probabilmente non c'è una risposta "buona" per questo. I commenti eccellenti pubblicati da Daniel B. e Yannis Rizos sono buoni, e direi che le metriche migliori sono quelle che capisci, insieme alle loro cause e conseguenze.

Una lezione consigliata per questo sarebbe il paradigma Obiettivo-Domanda-Metrica, di V. Basilic [1], ulteriormente descritto da L. Westfall [2]. Dopo aver definito le tue esigenze, le domande, le metriche e se le metriche CK ti forniscono informazioni su questo set ridotto, procedi nel seguente modo.

Per tornare alla domanda iniziale (sic;), sì, sono ancora usati, anche sotto il legno, come sottolineato da Yannis. E per il loro significato (complessità, manutenibilità) li trovo rilevanti - questo è chiaramente un mio parere.

Come nota a margine, le metriche CK sono prima definite in [3] prima di essere messe in discussione da Subramanyam in [4].

[1] V. R. Basili, G. Caldiera, e H. D. Rombach, "L'obiettivo meta metrico approccio," Enciclopedia di Ingegneria Software, vol. 2. Wiley, pp. 528-532, 1994.

[2] L. Westfall e C. Road, "12 passaggi a metriche software utili [1]," Atti della diciassettesima conferenza annuale sulla qualità del software Pacific Northwest, vol. 57 Suppl 1, n. Maggio 2006, pp. S40-3, 2005.

[3] Shyam R. Chidamber e Chris F. Kemerer, "A Metrics Suite for Object Oriented Design [2]," vol. 315, n. Dicembre. 1993.

[4] R. Subramanyam e M. S. Krishnan, "Analisi empirica delle metriche CK per la complessità progettuale orientata agli oggetti: implicazioni per i difetti del software [3]," vol. 29, no. 4, pp. 297-310, 2003.

    
risposta data 09.10.2012 - 11:09
fonte
1

Esistono molti strumenti di analisi statica che estrapolano le metriche del codice e quasi tutte includeranno alcune o tutte le metriche CK. La maggior parte degli strumenti sono specifici della lingua; sonar è l'unico che so che non lo è.

Per quanto riguarda l'utilità: direi che guidare il refactoring e identificare il codice potenzialmente problematico è esattamente ciò per cui sono utili. Ma non dovrebbero assolutamente essere usati impropriamente come un obiettivo per se stessi.

    
risposta data 09.10.2012 - 12:34
fonte
0

Is there an open source tool to help?

Metrics Reloaded è un plug-in per IDEA InetelliJ che sembra fare un buon lavoro fornendo sei parametri CK. Un semplice esempio è mostrato qui:

    
risposta data 22.02.2016 - 19:28
fonte

Leggi altre domande sui tag