Archiv für den Monat August 2012

Reverse Engineering mit Visual Studio 2010

Wenn man sich gewöhnt ist zuerst Klassen zu erstellen und dann ein Model haben möchte, dann kann man schon ein wenig in Verzweiflung versinken. Nun ist es aber mit den Tools:

    • Visual Studio 2010 Ultimate
    • Visual Studio 2010 Feature Pack

möglich bereits erstellten Code rückwärts zu modellieren. Damit wir das Ganze Schritt für Schritt durchführen können, ist dieser Betrag wie folgt unterteilt:

        1. Erstellung einer Dummy Lösung mit einem manuell erstellten Klassenmodell
        2. Erstellen eins ModellProjektes

Erstellung des Beispiel Projektes

Wir halten es ganz einfach und wählen in den Projektvorlagen eine Windows Class Library aus. Wir fügen folgende Klassen hinzu:

        • Person
        • Address
        • Phone
        • PhoneType

Schlussendlich sieht das Diagramm dann wie folgt aus:

Klassen Diagramm mit dem Visual Studio Standard Generator

Nun müssen wird das Build-Directory anpassen, dass kann in ein x-beliebiges Verzeichnis sein, aber nur für das Beispiel hier.

Output Directory des Builds.

Als nächster Schritt erstellen wir uns ein Modell Projekt.

Das Modell Projekt

Nun wählen wir aus den Projektvorlagen, die Vorlage aus dem Bereich Modelling und erstellen uns eine leere Lösung. Danach fügen wir uns ein Klassendiagramm über den entsprechenden Menüpunkt der Solution hinzu.

Nun müssen wir dafür sorgen dass der Architektur Explorer ersichtlich ist. Ist dieser nicht auffindbar, kann man ihn wie folgt sichtbar machen:

  1. Auswahl Menu-Option Architektur
  2. Auswahl Fenster /Windows
  3. Selektion des Architektur Explorer

Architektur Explorer zum Vorschein bringen.

Der Architektur Explorer ist dann am unteren Rand von Visual Studio ersichtlich.

Architektur Explorer

Damit wir nun auch das vorher erstellte Projekt importieren können gehen wir wie folgt vor:

  1. Option Select Files… wählen
  2. Im öffnenden Explorer Fenster zum Pfad hinnavigieren, welchen wir vorhing bei der Beispiel DLL als Output Verzeichnis angegeben haben such und die DLL auswählen.

Nachdem wir unsere DLL selektiert haben sieht der Architecture Explorer so aus:

Architektur Explorer nach Auswahl unseres Beispielprojektes

Nun können wir beginnen die Klassen in ein Klassen Diagramm des Modelprojektes reinzuziehen und haben unser „Reverse Engineering“ erfolgreich durchgefüht.

Importierte Klassen im Klassendiagramm eines Modell Projektes

Nun können wir die notwendigen Anpassungen, falls wir mit unserem Modell nicht ganz zufrieden sind, vornehmen und den Code wieder generieren lassen.

Fazit

Es stellt sich nun die Frage, waren meine Google Anfragen so unpräzise oder ist es so einfach dass man es nicht wirklich dokumentieren braucht? Nun ich hoffe trotz der Trivialität des Vorgangs, dem einen oder anderen ein wenig Zeit mit der Suche im Web erspart zu haben.

Für Anregungen und Kritik bin ich offen. Hat der Beitrag gefallen, so würde ich mich über einen Kick freuen.

kick it on dotnet-kicks.de