Domanda

Sto analizzando qualche codice legacy. Si tratta di circa 80.000 righe di vecchio codice plsql. Su uno sguardo pugno c'è un po 'di duplicazioni nella sorgente che deve essere rimosso. Invece fuori del fare diff del manuale e guardando ogni file ci deve essere qualche strumento / a riga di comando confu là fuori per individuare le linee duplicate del codice sorgente.

Il mio obiettivo è quello di formulare un'ipotesi circa le dimensioni minime di una riscrittura di sorgente e su quanto la conoscenza reale viene catturato in questo programma. Ho scritto un po 'di un analizzatore di codice statico di base per trovare la quantità di istruzioni di controllo if else PER ecc e funzioni in ogni file. Ma codice duplicato ha ancora bisogno di essere rimosso dalle mie statistiche.

È stato utile?

Soluzione

Hai guardato Simian - somiglianza Analyzer ? (Appena controllato e non è più libero, ma è disponibile per un periodo di 15 giorni per scopi di valutazione.)

Simian (somiglianza Analyzer) identifica la duplicazione in Java, C #, C, C ++, COBOL, Ruby, JSP, ASP, HTML, XML, Di Visual codice sorgente di base, Groovy e anche i file di testo. In realtà, scimmiesco può essere utilizzato su qualsiasi leggibile file come file INI, distribuzione descrittori, è il nome.

L'ho usato in pratica e lo fa bene il lavoro.

Altri suggerimenti

Sonar ha rilevamento duplicazione e afferma di sostenere PL / SQL, anche se non ho mai usato per questo .

Si avrebbe bisogno di Beg / prestito / rubare / scrivere un parser plsql e confrontare le conseguenti alberi di sintassi. Con la dimensione della base di codice che hai, che potrebbe essere utile. Ci sarebbero altri usi per il parser una volta il gioco è fatto.

Che ne dite di questo:

http://sourceforge.net/projects/sddforeclipse/

E 'opensource, e si dice per essere utilizzati da software commerciale. Si tratta di un plugin per Eclipse, tra l'altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top