Generazione del codice Java dal diagramma delle classi

4

Sto sviluppando un'applicazione Java in cui l'utente può fornire un diagramma di classe e ottenere il corrispondente codice Java.

Non so come posso consentire all'utente di disegnare in modo interattivo un diagramma di classi in Java. Attualmente sto ottenendo i parametri richiesti come attributi, funzioni direttamente dall'utente, e quindi renderò un diagramma di classe per lui. Io mostro il diagramma delle classi su un jdialog. Ma quando si tratta di diagrammi di classi multiple, mi fa male. C'è un modo migliore per farlo?

Questo è un esempio di diagramma di classe, ho bisogno di generare questo da un programma Java, dati i valori e la relazione.

    
posta COD3BOY 21.11.2011 - 17:11
fonte

2 risposte

3

Primo punto: questo è abbastanza non banale. Secondo punto: il fatto che l'ambiente Java rende il compilatore Java direttamente disponibile aiuterà un lotto nell'implementazione di questo. Io credo dovresti essere in grado di raccogliere la maggior parte (tutte?) Le informazioni di cui hai bisogno camminando su AST con API dell'albero compilatore . Almeno dall'aspetto delle cose, la parte di cui ti preoccuperai di più sarà Interfaccia ClassTree . Quindi, l'idea di base sarebbe quella di creare il visitatore dell'albero, camminare sull'albero e raccogliere informazioni sugli oggetti ClassTree che trovi.

Una volta raccolte le informazioni, diventa principalmente una questione di disegnare un risultato ben formattato. Se disponi di fondi disponibili, ho sentito cose positive su yFiles per Java (dovrei anche ricordare che il La yWorks UML Doclet della stessa azienda dovrebbe fare quasi ciò di cui si sta parlando, ma dai commenti JavaDac piuttosto che fonte stessa). Ci sono, come ti aspetteresti, lotti di < a href="http://networkviz.sourceforge.net/"> alternative anche a quello. Non ne so abbastanza della maggior parte (nessuno?) Di loro per commentare ulteriormente su di loro però (ho usato GraphViz una volta, ma tanto tempo fa che non ricordo molto, e quel poco che potrei ricordare è probabilmente obsoleto comunque) .

    
risposta data 21.11.2011 - 17:59
fonte
1

Ho una certa esperienza con la generazione del codice, molto meno con la creazione di diagrammi. Ho alcuni suggerimenti:

Ho notato che usi un testo leggibile. Suggerisco googling per Inflector.java e scegliendo un'implementazione appropriata. Questo aiuterà anche con nomi variabili per relazioni non etichettate tra classi (la pluralizzazione ti dà List<Foo> foos e cose del genere).

Uso i diagrammi UML, ma io uso un modulo serializzato xml. La roba UML XMI di OMG mi è stata di aiuto. È molto più facile importare / esportare le informazioni sottostanti per i diagrammi UML piuttosto che metterle da parte. Questo potrebbe non essere applicabile dal momento che sembra che tu voglia fare la parte per diagrammi da solo. Molto è stato scritto sulla stesura di diagrammi. Ti suggerisco di leggere se vuoi generare diagrammi dalla fonte senza creare confusione.

Uso sia antlr che StringTemplate. Iniziare con un buon parser / grammatica per leggere l'origine è bello. StringTemplate è piuttosto carino per generare codice sorgente. Lo uso anche a lavoro per i modelli di email. Se non vuoi leggere la fonte, succhia un file jar o di classe e vai in città. Ho un sacco di codice costruito attorno a BCEL. Potresti voler dare un'occhiata a ASM se non ti piace BCEL.

    
risposta data 21.11.2011 - 19:25
fonte

Leggi altre domande sui tag