Come posso ispezionare un gran casino di progetti per referenze

0

Il mio posto di lavoro attuale ha diverse squadre disconnesse che dipendono l'una dall'altra. Esistono diversi progetti legacy con i file di progetto.

Voglio trovare un modo per trovare un modo per visualizzare la nostra architettura in modo da poter identificare i riferimenti "al rialzo" e inchiodare dove è necessario aggiungere ulteriori test.

Esiste un modo automatico o semi automatizzato per farlo? Il codebase è un codebase misto java / C # / c ++ / ansi-c.

    
posta Johannes 18.10.2016 - 10:26
fonte

1 risposta

1

I want to find a way to find a way to visualize our architecture so we can identify "upward" references

Il punto è che l'utilizzo di qualsiasi tipo di strumento richiede un certo investimento (almeno il tuo tempo per padroneggiare quello strumento, il che significa probabilmente settimane di sforzi). E ciò vale solo per una base software abbastanza "grande" (quindi se il volume totale del codice sorgente è di poche centinaia di migliaia di linee sorgente, potrebbe non valerne la pena, al di là di ciò che già conosci e utilizzi).

Is there an automated or semi automated way to do that? The codebase is a mixed java / C# / c++ / ansi-c codebase

Supponendo che lo sforzo sia utile (e non ne sono sicuro) si potrebbero prendere in considerazione diversi analizzatori di codice sorgente statici esistenti o configurarne o crearne uno sopra le basi esistenti (come grep, ack , ctags, GCC MELT -un linguaggio di dominio specifico per personalizzare GCC compiler-, Frama-C o Clang - framework di analizzatori di codici C statici-, Furfante , ecc ...)

Il punto è che scegli & l'apprendimento di qualsiasi strumento richiede probabilmente almeno un mese del tuo lavoro. Solo tu puoi sapere se vale la pena provare (certamente sì se la base di codice totale è superiore a un milione di righe, e probabilmente non se è inferiore a una linea di centomila).

Molto probabilmente (in particolare se si ha software che mescola diversi linguaggi di programmazione, ad esempio un codice C ++ chiamato dal codice C #) è necessario personalizzare, combinare o personalizzare diversi strumenti esistenti per le proprie esigenze. Ciò aumenta lo sforzo richiesto per diversi mesi.

BTW, potresti prendere in considerazione l'esecuzione di qualcosa al momento del commit del controllo della versione. Se stai utilizzando git , considera di avere alcuni ganci .

NB: tutti i prodotti sopra menzionati sono software libero o open source

PS: se intendi utilizzare (o provare) GCC MELT assicurati di contattarmi, poiché è il mio lavoro.

    
risposta data 18.10.2016 - 10:39
fonte

Leggi altre domande sui tag