2010-02-20 5 views
13

Ho bisogno di leggere i diagrammi UML che sono serializzati in XMI. Esiste una libreria che mi permetta di leggere comodamente UML XMI - in pratica intendo avere alcuni metodi per scorrere le classi/pacchetti/metodi/attributest ecc. Nel modello.Come leggere XMI?

ho provato EMF, ma non riesco a trovare alcun tutorial che avrebbe mostrato come importare XMI contenente UML. Ho anche trovato NSUML/NSMDF ma il link alla documentazione è rotto.

risposta

4

Non penso che quello che vuoi esista. Tutti gli strumenti di importazione XMI che conosco (compreso il mio servizio di trasformazione XMI: http://modeling-languages.com/content/xmi2-tool-exchanging-uml-models-among-case-tools) lavoro analizzando l'intero file XMI e la creazione del modello UML corrispondente nella memoria principale. Quindi è possibile accedere agli elementi UML interrogando il modello.

Per iterare il modello XMI si può facilmente utilizzare librerie XML per selezionare i pezzi del file XMI che ti interessa.

1

ArgoUML può importare XMI nel proprio modello UML e generare codice per Java, C++, C#, PHP4 e PHP5.

0

Per poter leggere XMI/UML utilizzando EMF, è necessario trovare, produrre o scrivere modello Ecore per UML. Una volta ottenuto uno di questi, è possibile generare le classi in memoria per manipolare l'UML e sfruttare l'altra infrastruttura EMF.

Ma un percorso più semplice può essere quella di utilizzare l'infrastruttura UML2 sviluppato dal Eclipse MDT project. (La mia ipotesi è che usi EMF sotto il cofano e che ci sia un modello ECore per UML2 da qualche parte.)

+0

È corretto che il progetto UML2 sia costruito sopra EMF. – ChrisH

0

Quello che state cercando è il Java specification for JMI (“Java Metadata Interface”), che implementa MOF per la descrizione di metadati e XMI per il trasporto dei metadati.

Sfortunatamente attualmente sto cercando le implementazioni di JMI io stesso e la pagina JMI suns sembra essere un po 'obsoleta. L'implementazione open source di netbeans sembra essere stata rilasciata per la versione 6.

2

Dipende dalla versione di UML che si sta tentando di leggere. Il pacchetto NSUML che hai trovato funziona solo con UML 1.3. Lo NetBeans MetaData Repository (MDR) leggerà gestire UML 1.4 e UML 1.5. Può essere usato come libreria indipendente (è ciò che usa ArgoUML), quindi non hai bisogno di NetBeans. Per UML 2.x, penso che le librerie UML2 di Eclipse EMF & siano la tua unica scelta. EMF è una dipendenza, ma è davvero la roba UML2 che vuoi. Come con MDR e NetBeans, non hai bisogno di Eclipse. ArgoUML utilizza le librerie Eclipse per il suo supporto UML 2.x.