Kann man mit Microsoft Visio automatisch UML Diagramme aus C++ Code erstellen?



  • Kann man mit Microsoft Visio automatisch UML Diagramme aus C++ Code erstellen?



  • Ja, allerdings nur die statischen Typen.



  • Danke. Aber ich kriege es einfach nicht hin.
    Ich benutze Visual C++ .NET 2003 und habe diesen Code benutzt:

    class A
    {
    public:
    	void foo()
    	{
    	}
    };
    
    class B : public A
    {
    public:
    	void bar()
    	{
    	}
    };
    
    int main()
    {
    }
    

    Dann bin ich in Visual C++ im Menü auf Projekt/Visio UML/Reverse Engineer.

    Dann kam im Ausgabefenster:

    Pass Nummer 1 wird ausgeführt.
    Reverse Engineering: test
    Informationen werden extrahiert aus...
              A
              B
    
    Pass Nummer 2 wird ausgeführt.
    Reverse Engineering: test
    Informationen werden extrahiert aus...
              A
              B
    
    Anzahl der Warnungen: 0.
    
    UML-Modell wird in Visio exportiert...
    
    Reverse Engineering erfolgreich abgeschlossen.
    

    Und Visio wurde gestartet. Im Modellexplorer finde ich auch meine Klassen A und B und deren Memberfunktionen wieder, aber ein UML-Diagramm konnte ich nicht finden. Das Zeichenblatt ist leer.

    Wie muss ich jetzt weiter vorgehen?



  • ziehe einfach die Klassen per drag and drop auf die Zeichnung



  • Hmmm, danke Profi, aber geht das nicht automatisch? Das ist ja total nervig das alles einzeln rüberzuziehen.

    Und wenn ich irgendwas an einer Klassen ändere, muss ich alles nochmal rüberziehen? Oder wie läuft das mit den Aktualisierungen?

    Wenn ich über Visual C++ das Reverse Engineering aufrufe, will er das ja immer in einer neuen Datei speichern... 🙄



  • Jede Sharp-Instanz, die Du einmal auf dem Papier gezogen hast, wie z.B. eine Klasse, aktualisiert sich nach dem reverse engineering automatisch. Neue Klasse musst Du erst aus dem UML-Tree einmal platzieren.

    Um ein Austausch von Modelle über Tools vorzunehmen, nutze nicht forward/reverse-engineering, sondern die Standards XMI und MOF bei der www.omg.org findest Du mehr.

    Leider unterstützt Visio diese Standards nicht, besitzt aber eine Schnittstelle zu RationalRose für den Import/Export von Modellen.
    Blicke in die Doku.

    Tipp: Bei www.sophist.de (Chris Rupp´s Gang) findest Du Schablonen zum Downloaden für die UML 2 Unterstützung von Visio 2002.

    cu

    P84



  • Werde deine Tipps jetzt mal einzeln durchgehen. Aber erst mal gehts mir um die Aktualisierung. 🙂

    Jede Sharp-Instanz, die Du einmal auf dem Papier gezogen hast, wie z.B. eine Klasse, aktualisiert sich nach dem reverse engineering automatisch. Neue Klasse musst Du erst aus dem UML-Tree einmal platzieren.

    Ich weiß aber nicht wie das funktionieren soll.

    Beispiel:
    Ich "reverse engineere" den obigen Code mit Visio und dann ziehe ich die Klassen auf das Zeichenblatt.
    Dann beende ich Visio und erweitere/ändere meinen Code in Visual C++. Wenn ich dann wieder auf Revers Engineer gehe dann fragt er nach einem Dateinamen für die vsd Datei. Wenn ich den gleichen Dateinamen nehme wie beim ersten mal wird natürlich alles überschrieben und ich müsste nochmal alle Klassen auf das Zeichenblatt rüberziehen. Das gleiche wenn ich einen anderen Dateinamen nehme.

    Wie soll das gehen?



  • Verstehe ich nicht ...
    Reverse-enginering von Visio oder von VC++ (.net?! VS.net?!) aus initiert?
    Wieso schließt Du Visio wieder? (gespeichert?!)
    Es besteht eine laufende COM+/ IL/ SOAP - Verbindung zwischen den beiden Dateien. Irgendwie hast Du bei der Speicherung was ausgelassen ... Projektmappe angelegt?!
    Bist Du sicher das Du nicht nur ein leeres Modellblatt bei der Initialisierung, statt der Modellierung in der Menüleiste angeklickt ist?!

    Auf meinen derzeitigen Arbeitsplatz läuft leider Linux und ich kann es i.M. nicht nachvollziehen. - Sorry!



  • Jau, aus Visual C++ starte ich das Reverse Engineering. Bevor Visio startet muss man einen Dateinamen angeben. Endung .vsd.

    Wie startet man denn das Reverse Engineering aus Visio? Das würde mir wahrscheinlich helfen. Finde es da aber nicht.


Anmelden zum Antworten