Come generare diagrammi UML (in particolare diagrammi di sequenza) dal codice Java?

Come posso generare diagrammi UML (in particolare diagrammi di sequenza) dal codice Java esistente?

ObjectAid UML Explorer

È quello che ho usato Si installa facilmente dal repository:

Name: ObjectAid UML Explorer Location: http://www.objectaid.com/update/current 

E produce diagrammi UML molto belli:

Immagine dello schermo

Descrizione dal sito web:

ObjectAid UML Explorer è diverso dagli altri strumenti UML. Usa la notazione UML per mostrare una rappresentazione grafica del codice esistente che è il più accurato e aggiornato del tuo editor di testo, pur essendo molto facile da usare. Diverse caratteristiche uniche rendono ansible ciò:

  • Il codice sorgente e le librerie sono il modello che viene visualizzato, non sono decodificati in un formato diverso.
  • Se aggiorni il tuo codice in Eclipse, anche il tuo diagramma viene aggiornato; non è necessario invertire il codice sorgente dell’ingegnere.
  • Refactoring aggiorna il tuo diagramma e il tuo codice sorgente. Quando si rinomina un campo o si sposta una class, il diagramma riflette semplicemente le modifiche senza andare fuori sincrono.
  • Tutti i diagrammi nell’area di lavoro Eclipse vengono aggiornati con le modifiche del refactoring, a seconda dei casi. Se necessario, vengono controllati dal sistema di controllo della versione.
  • I diagrammi sono completamente integrati nell’IDE di Eclipse. È ansible trascinare le classi Java da qualsiasi altra vista sul diagramma e le informazioni relative ai diagrammi sono mostrate in altre viste laddove applicabile.

EDIT: Se sei un designer, Papyrus è la scelta migliore perché è molto avanzato e ricco di funzionalità, ma se vuoi solo delineare alcuni diagrammi UML e una facile installazione, ObjectAid è piuttosto interessante e non richiede alcun plugin I appena installato su Eclipse-Java EE e funziona alla grande!


AGGIORNAMENTO 11 ottobre 2013

Il mio post originale era nel giugno 2012 molte cose sono cambiate molti strumenti sono cresciuti e altri no. Dato che tornerò a fare un po ‘di modellazione e ricevendo anche alcune risposte al post, ho deciso di installare nuovamente papyrus e di indagare nuovamente su altre possibili soluzioni di modellazione UML. Generazione UML (con funzione di sincronizzazione) è davvero importante non per il progettista del software ma per lo sviluppatore medio.

Vorrei che papiro avesse un modo semplice per classificare il Reverse Engineer in un diagramma di class UML e sarebbe fantastico se il reverse engineering avesse una funzione di sincronizzazione, ma sfortunatamente il progetto papyrus è pieno di funzionalità e penso che gli sviluppatori abbiano già a portata di mano anche molti le azioni che fai su papiro potrebbero non darti alcuna risposta e non succede nulla, ma è comunque fuori questione.

The Answer (11 ottobre 2013)

Utensili

  1. Scarica Papyrus
  2. Vai su Aiuto -> Installa nuovo software …
  3. Nel menu Gestione con: menu a discesa, selezionare – Tutti i siti disponibili–
  4. Nel filtro, digitare Papyrus
  5. Al termine dell’installazione, riavviare Eclipse
  6. Ripeti i passaggi 1-3 e questa volta, installa Modisco

passi

  1. Nel tuo progetto java (supponiamo si chiami MyProject) crea una cartella come UML
  2. Fare clic con il pulsante destro del mouse sul nome del progetto -> Rilevamento -> Rilevatore -> Rileva Java e modello di inventario dal progetto java, verrà generato un file denominato MyProject_kdm.xmi. inserisci la descrizione dell'immagine qui
  3. Fare clic con il pulsante destro del mouse sul nome del progetto -> nuovo -> modello papiro -> e chiamarlo MyProject.
  4. Spostare i tre file generati MyProject.di, MyProject.notation, MyProject.uml nella cartella UML
  5. Fai clic con il tasto destro su MyProject_kdm.xmi -> Discovery -> Discoverer -> Scopri il modello UML dal codice KDM, riceverai di nuovo una finestra di dialogo delle proprietà per impostare l’object di serializzazione su TRUE per generare un file denominato MyProject.uml inserisci la descrizione dell'immagine qui

  6. Sposta generato MyProject.uml che è stato generato in root, nella cartella UML, Eclipse ti chiederà se vuoi sostituirlo clicca sì. Quello che abbiamo fatto qui è che abbiamo sostituito un modello vuoto con uno generato.

  7. ALT + W -> mostra vista -> papiro -> modello explorer

  8. In quella vista, troverai le tue classi come nella foto inserisci la descrizione dell'immagine qui

  9. Nella vista Fare clic con il tasto destro del mouse su modello -> Nuovo diagramma inserisci la descrizione dell'immagine qui

  10. Quindi inizia ad afferrare le classi nel diagramma dalla vista

Alcune caratteristiche

  • Per mostrare gli elementi di class (variabili, funzioni ecc.) Fai clic con il tasto destro su qualsiasi class -> Filtri -> mostra / nascondi contenuti Voila !!

  • Puoi avere impostazioni colore amichevoli di default da Window -> pereferences -> papyrus -> class diagram

  • Un’impostazione molto importante è Disponi quando si rilasciano le classi che ottengono uno stretto clic con il tasto destro su qualsiasi spazio vuoto in un diagramma di class e fare clic su Disponi tutto

  • Le frecce nella vista modello esploratore possono essere afferrate nel diagramma per mostrare generalizzazione, realizzazione ecc

  • Dopo tutto ciò le tue impostazioni mostreranno diagrammi come inserisci la descrizione dell'immagine qui

  • La sincronizzazione non è disponibile per quanto ne so, è necessario importare manualmente nuove classi.

Questo è tutto, E non comprare prodotti commerciali a meno che non ne hai davvero bisogno, il papiro è in realtà grande e sofisticato, invece donare o qualcosa del genere.

Disclaimer: Non ho alcuna relazione con la gente del papiro, infatti, all’inizio non mi piacque il papiro fino a quando non feci molte ricerche e lo sperimentai con un po ‘di pazienza. E tornerò su questo post quando cercherò altri strumenti gratuiti.

Qual è il tuo codebase? Java o C ++?

alt text http://www.soyatec.com/euml2/images/product_euml2_110x80.png

eUML2 per Java è un potente modellatore UML progettato per lo sviluppo Java in Eclipse. L’edizione gratuita può essere utilizzata per uso commerciale. Supporta le seguenti funzionalità:

  • CVS e supporto al team
  • Progettato per progetti di grandi dimensioni con visualizzazioni di modelli multiple e personalizzabili
  • Helios Compliant
  • Sincronizzazione di codice / modello in tempo reale
  • Compatibile con UML2.1 e supporto di OMG XMI
  • Supporto JDK 1.4 e 1.5
  • L’edizione commerciale prevede:

  • Ingegneria inversa avanzata

  • Potenti strumenti di analisi della dipendenza reale
  • Profilo UML e MDD
  • Strumenti del database
  • Supporto modello personalizzabile

Che ne dici di PlantUML ? Non è per il reverse engineering !!! È per l’ingegneria prima del codice.

Consiglierei EclipseUML di Omondo per l’uso generale, anche se ho avuto qualche problema qualche mese fa, con i miei progetti web. Avevano un’edizione gratuita ad un certo punto nel tempo, ma questo non è più promosso.

Se sei veramente appassionato di diagrammi di sequenza di reverse engineering dal codice sorgente, ti consiglio jTracert .

Per quanto riguarda i progetti Eclipse, il progetto Eclipse UML2 Tools potrebbe supportare il reverse engineering, anche se non ho mai visto il suo utilizzo nella pratica.

Il progetto MoDisco (Model Discovery) Il progetto Eclipse GMT sembra essere più chiaro nel raggiungere il tuo objective. L’ elenco di strumenti specifici per la tecnologia sarebbe un buon punto di partenza.

Ho sviluppato un plugin Maven che può essere eseguito da CLI come objective di un plug-in o importato come dipendenza e utilizzare a livello di programmazione il parser, @see Main#main() per ottenere l’idea di come.

Rende PlantUML codice src dei pacchetti desiderati in modo ricorsivo che è ansible modificare manualmente se necessario (si spera che non lo farai). Quindi, incollando il codice nella pagina plantUML o scaricando il jar di un impianto, è ansible rendere il diagramma UML come un’immagine png.

Dai un’occhiata qui https://github.com/juanmf/Java2PlantUML

Esempio di diagramma di output: inserisci la descrizione dell'immagine qui

Qualsiasi contributo è più che benvenuto. Ha una serie di filtri che personalizzano l’output ma non li ho ancora esposti nei parametri CLI del plugin.

È importante notare che non è limitato ai file * .java, ma può anche rendere i diagrammi UML src dalle dipendenze di maven. Questo è molto utile per capire le librerie da cui si dipende. Ispeziona effettivamente le classi compilate con la riflessione, quindi non è necessaria alcuna fonte

Sii il primo a recitare in GitHub: P

Ho trovato il plugin Green molto semplice da usare e generare diagrammi di class dal codice sorgente. Provaci :). Basta copiare il plugin nella directory del plugin.

Si potrebbe anche provare il modellatore UML di netbeans. L’ho usato per generare javacode che ho usato nei miei progetti di eclipse. Puoi anche importare i progetti di eclipse in netbeans e mantenere le impostazioni di eclipse sincronizzate con le impostazioni del progetto netbeans.

Ho provato diversi modellatori UML per eclipse e non ero soddisfatto di loro. Erano instabili, complicati o semplicemente brutti. 😉

Utilizzando IntelliJ IDEA. Per generare il diagramma di class seleziona il pacchetto e premi Ctrl + Alt + U : inserisci la descrizione dell'immagine qui

Per impostazione predefinita, visualizza solo i nomi delle classi e non tutte le dipendenze. Per cambiarlo: tasto destro -> Mostra categorie … e Mostra dipendenze: inserisci la descrizione dell'immagine qui

Per generare il diagramma delle dipendenze (diagramma di implementazione di UML) e utilizzare il comando vai a Visualizza -> Strumenti Windows -> Progetti di Maven e premi Ctrl + Alt + U : inserisci la descrizione dell'immagine qui

Il risultato: inserisci la descrizione dell'immagine qui

Inoltre è ansible generare altri diagrammi. Vedi la documentazione .

È ansible utilizzare la build di valutazione di 30 giorni di EclipseUML per Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip Questo non è l’ultimo build di 3.6, ma è piuttosto buono e non è necessario acquistarlo per il test e il reverse engineering.

Reverse engineering: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html

Demo flash live: http://www.ejb3.org/reverse.swf

EclipseUML Omondo è lo strumento migliore al mondo per Java. Solo eUML sembra competere con esso su questo mercato di sincronizzazione live java, ma eUML aggiunge tag di modello nel codice che è davvero molto pessimo e un no definitivo per me.

Qualcosa di molto simile è stato chiesto prima .

Di gran lunga lo strumento migliore che ho usato per il reverse engineering, e round tripping java -> UML è Borland’s Together . È basato su Eclipse (non solo un singolo plugin) e funziona davvero bene.

http://www.zenuml.com non genera diagrammi UML direttamente dal codice Java, ma il suo DSL è simile a Java. A proposito ho creato zenuml 🙂 inserisci la descrizione dell'immagine qui

Suggerisco PlantUML. questo strumento è molto utile e facile da usare. PlantUML ha un plugin per Netbeans che puoi creare diagrammi UML dal tuo codice java.

puoi installare il plugin PlantUML nei netbeans con questo metodo:

Menu Netbeans -> Strumenti -> Plugin

Ora seleziona Plugin disponibili e trova PlantUML e installalo.

Per ulteriori informazioni, visitare il sito Web: http://www.plantuml.com