2009-04-29 6 views
6

Sto cercando uno strumento che mi aiuti a cogliere più rapidamente il codice di qualcun altro. Di solito sto lavorando con blocchi di chiamata di metodo 10-15 distribuiti su 3-5 moduli (DLL o assembly .NET). Quello che sto cercando è uno strumento che può essere usato per disegnare un diagramma di chiamata annotato in 10-30 minuti.Alla ricerca di uno strumento che mi aiuti ad analizzare e capire il codice degli altri

Penso che dovrebbe apparire come una sorta di combinazione di un flusso di lavoro e di una combinazione di diagrammi UML senza la mostruosità degli editor UML. Basta trascinare una dozzina di rettangoli sullo schermo, aggiungere un nome di metodo a ciascuno (e facoltativamente: nome del modulo, parametri, ecc.). Aggiungi una breve nota su cosa fa questo metodo, cosa va dentro, cosa esce, ecc. Quindi collega queste cifre (rettangoli) con una diversa freccia per indicare quale tipo questa chiamata di metodo è: chiamata semplice, una chiamata che non restituisce nulla, remota chiamata, ecc.

La cosa importante: lo strumento deve essere facile da usare. Altrimenti, potrei semplicemente accendere MS Word e disegnarlo lì. Ma questo non sarà un compito facile.

Grazie.

+2

Esiste uno strumento che fa esattamente * * questo cd Codice tela (http://blogs.msdn.com/kaelr/archive/2009/03/26/code-canvas.aspx). La cattiva notizia è che è un progetto MS ricerca e in realtà non è pubblicamente disponibile ancora :( – Promit

+1

@Promit si dovrebbe avere aggiunto come una risposta per un +1 :) – RobS

risposta

1

Sembra che quello che stai cercando sia un leggero strumento di disegno simile a UML.

Ce ne sono parecchie in fase di sviluppo nel mondo accademico, che usano il riconoscimento della scrittura a mano e così si può disegnare ma si forma un modello pienamente funzionale.

Se stai cercando uno strumento di disegno veloce, Word non è molto comodo, prenderei in considerazione l'utilizzo di Visio su PC o OmniGraffle se sei abbastanza fortunato da utilizzare un mac. Questi sono programmi di disegno, ma più facili da usare rispetto ai modellatori UML.

C'è uno studente di dottorato alla Carnegie Mellon, la cui ricerca si concentra sull'aiutare le persone a capire il flusso di controllo nelle applicazioni e sta costruendo uno strumento, ma per quanto ne so non è ancora stato rilasciato.

0

Visio è piuttosto facile da usare se sei su Windows, ma ti costerà.

Ho sentito che ArgoUML è buono, ma potrebbe essere più complesso di quanto speri.

+0

ho cercato di Visio e, a mio parere non è facile uso. – AlexKelos

0

Non parli con quale lingua hai a che fare, quindi vado con una risposta generica e una per C#.

WithClass sembra che fa quello che stai cercando, non importa quale sia la lingua:

[...] permette di disegnare diagrammi UML, generare codice e decodificare linguaggi OO popolari .

Reverse engineering C++. Java, Delphi, VB, IDL, Perl, PHP, C# e VB.net.

Per il refactoring C#, IMO non batte ReSharper.

1

Red Gate's .NET Reflector è un popolare strumento gratuito per il debugging, reverse-engineering e così via.

Per complimento, ci sono diverse a portata di mano add-ins (anche gratuito) che vi aiuterà a visualizzare con gli schemi:

  1. Graph
  2. SequenceViz (Si noti che questo è una specie di noioso da installare e configurare Te. sarà necessario installare prima il Win32 port of GNU PlotUtils e non è molto chiaro nelle istruzioni.)
0

Lo strumento più utile che abbia mai trovato per l'esecuzione di questo e molti altri parenti ds di analisi del codice è NDepend. Ha un sacco di grandi analisi fuori dalla scatola e si può anche scrivere query in un dialetto SQL-like CQL (codice Query Language) per arrivare a informazioni specifiche.

Il creatore, Patrick Smacchia anche blogs e fornisce ulteriori approfondimenti su come utilizzare lo strumento.

Problemi correlati