2009-05-26 17 views
8

Ciao a tutti io sono alla fine del rilascio del mio project.So al fine di continuare a lavorare il nostro manager ci ha chiesto di generare diagrammi di classe per il codice che abbiamo avuto written.Its medie progetto con 3500 file Java .Così Penso che abbiamo bisogno di generare diagrammi di classe. Prima ho bisogno di sapere come funziona il reverse engineering. Inoltre ho cercato alcuni strumenti su Google (Green, Violet) ma non sono sicuro che siano di qualche aiuto. Vi prego di suggerirmi come procedere. Anche un buon tutorial di inizio è apprezzato.Generazione Class Diagram

risposta

7

Consiglio vivamenteBOUML. Il supporto inverso Java è assolutamente ROCK SOLID.

BOUML ha molte altre VANTAGGI:

  • è estremamente veloce (veloce strumento UML mai creato, controlla benchmarks),
  • ha roccia solida C++, Java, PHP e altri importare il supporto,
  • è multipiattaforma (Linux, Windows, altri sistemi operativi),
  • ha un ottimo supporto per l'esportazione SVG, che è importante, perché consente di visualizzare grafici di grandi dimensioni in formato vettoriale, che si adattano rapidamente ad esempio Firefox, è molto conveniente (puoi passare rapidamente dalla visualizzazione "a volo d'uccello" alla vista dei dettagli di classe),
  • è pieno di funzionalità, incredibilmente intensamente sviluppato (vedi development history, è difficile credere che un tale progresso sia possibile).
  • supporta i plugin, ha un'architettura modulare (questo permette user contributions, si presenta come comunità BOUML si sta formando in su)
+0

È bello e davvero facile da usare. Tuttavia, i diagrammi sono un po 'brutti. –

+0

I secondo la raccomandazione BOUML. È scritto in Qt, quindi funziona ovunque sia eseguito Qt, e l'ho usato su Mac OS X e Windows e funziona bene. È la cosa più vicina al mio preferito, vero e provato, Rational Rose, ma funziona molto meglio! Rose è sempre stata bloccata, anche se ora che è stata convertita in RAD/Eclipse sembra meglio. Non sono sicuro del fatto che i diagrammi siano "brutti", sono praticamente i tuoi modelli UML standard e sono molto "simili alle rose". – michaelok

0

Ci sono alcuni strumenti disponibili che ti aiuteranno a generare questi diagrammi. Questi costano soldi.

In caso contrario, è possibile provare a analizzare i file Java. Questo potrebbe essere semplice creare un parser semplice che legge i file Java e scrive il nome della classe e tutte le istruzioni di importazione in un file e genera un diagramma di classe da lì, graphviz può aiutarti.

+0

È possibile combinare questo approccio con il generatore di diagrammi UML http://yuml.me gratuito. Le persone lo stanno già facendo (http://yuml.me/wildthing) per i domini PowerShell e Ruby on Rails. Dato che ci sono così tante classi, è necessario rompere gli schemi un po 'per mostrare 10-50 classi. – tobinharris

3

questo è più una toolchain che uno strumento e non ho provato io stesso. Ma forse è un punto di partenza. Utilizzo di UMLGraph, ant e GraphViz. Spiegato passo dopo passo: in this article.

1

Paradigma visivo per UML Standard Edition (o meglio) invertirà file Java ingegnere a diagrammi di classe.

6

Lo strumento che si desidera utilizzare è Doxygen. È simile a Javadoc, ma funziona in più lingue. Se rileva le dipendenze e può chiamare graphviz per rendere i diagrammi delle classi. Ecco un esempio di alcuni Java classes run through Doxygen.

+0

WOW. Funziona alla grande. – Epaga

2

Ho usato Visual Paradigm per UML per quello che vuoi fare ed è stato abbastanza buono.

Vedi here per i dettagli.

Basta andare su Strumenti -> Retromarcia istantanea e selezionare i pacchetti.

1

Immagino che se il tuo capo vuole solo tenervi occupati fino all'avvio del prossimo progetto, non c'è nulla di male, ma troverete abbastanza rapidamente che creare un diagramma di classe con 3500 classi vi dirà esattamente NULLA del vostro sistema. In realtà, non si vuole veramente un diagramma con più di circa 10 classi su di esso. Quindi, una volta che hai invertito tutto il codice nel tuo strumento di modellazione, vorrai iniziare a organizzare e arrangiare per trovare il significato. Crea un nuovo diagramma, rilascia una singola classe importante e inserisci tutte le classi direttamente correlate a quella classe. Ripeti per forse le 300 classi più significative. Non preoccuparti, non è così orribile come sembra, forse un lavoro di una settimana.

Per la cronaca, il mio strumento di modellazione di scelta è Enterprise Architect per Sparx Systems. Invertire i sorgenti java o i file .jar. C'è una versione di prova gratuita di 30 giorni.

+0

Concordo sul fatto che la generazione di tutte le classi sia un lavoro doloroso. Questo esercizio è quello di tenere in buona forma la gente.: 01) – GustyWind

0

Utilizzo Enterprise Architect da diversi anni. Me lo ha suggerito uno sviluppatore JBoss. Funziona molto bene per tutti i tipi di modellazione UML incluso il reverse engineering dei modelli di classe (Java, C# e altri). La versione base è attualmente di $ 120 per posto, ma ha la maggior parte delle funzionalità di strumenti molto più costosi ed è molto più facile da imparare. Mi piace particolarmente la sua capacità di generare documentazione HTML e RTF.

È molto facile sincronizzare il codice tra lo strumento e il codice sorgente. Anche bidirezionale, se vuoi.

Il PM può anche gradire l'attività e i diagrammi di sequenza che può creare. Inoltre uso spesso i diagrammi di implementazione. È molto utile avere tutto questo in uno strumento.

1

ObjectAid è abbastanza piacevole. Puoi trascinare le classi in un diagramma e disporli nel modo desiderato.

Problemi correlati