Freigeben über


Generieren von Code

Das Team kann auf Änderungen bei Benutzeranforderungen schnell und zuverlässig reagieren, indem es Code aus den Modellen generiert. Wenn das Team eine Reihe ähnlicher Produkte entwickelt oder auf häufig verwendete Muster zurückgreift, ist das Generieren von Code besonders effizient.

Das Team kann Programmcode, Schemas, Dokumente, Ressourcen und beliebige andere Artefakte generieren. Das Team kann Textvorlagen schreiben, die das Modell mithilfe der UML (Unified Modeling Language)-API abfragen. Weitere Informationen finden Sie unter Gewusst wie: Generieren von Dateien aus einem UML-Modell.

In den meisten Fällen generiert das Team nicht den gesamten Code über Modelle. Mithilfe von Techniken wie partiellen Klassen kann das Team den generierten Code von handgeschriebenem Code trennen. Generierter Code darf niemals bearbeitet werden. Aktualisieren Sie stattdessen das Modell, das dann wiederum den Code aktualisiert.

Die Codegenerierung ist in folgenden Situationen nützlich:

  • Produktgruppen. Fabrikam, Inc. entwickelt und installiert Gepäckabfertigungssysteme für Flughäfen. Ein Großteil der Software für die unterschiedlichen Installationen ist identisch, die Softwarekonfiguration hängt jedoch von den installierten Gepäcktransportsystemen und der Verschaltung dieser Teile mit den Fließbändern ab. Zu Beginn eines Vertrags bespricht das Team von Fabrikam die Anforderungen mit der Flughafenverwaltung und erfasst den Fließbandplan mithilfe eines UML-Aktivitätsdiagramms. Aus diesem Modell generiert das Team Konfigurationsdateien, Programmcode und Benutzerhandbücher. Den Abschluss der Arbeit bilden manuelle Ergänzungen und Anpassungen des Codes. Da das Team von Auftrag zu Auftrag Erfahrung sammelt, erweitern es den Umfang des generierten Materials.

  • Muster. Die Entwickler bei Contoso, Ltd erstellen oft Websites. Sie entwerfen das Navigationsschema mit UML-Klassendiagrammen und verwenden dabei Klassen und Zuordnungen, um Webseiten und Navigationslinks darzustellen. Ein Großteil des Websitecodes kann generiert werden. Jede Webseite entspricht mehreren Klassen und Ressourcendateieinträgen, die einem einheitlichen Muster entsprechen. Das Ergebnis ist zuverlässiger und flexibler als handgeschriebener Code.

  • Schemas. Humongous Insurance arbeitet mit Tausenden von Systemen in der ganzen Welt. Diese Systeme verwenden unterschiedliche Datenbanken, Sprachen und Schnittstellen. Das zentrale Architekturteam veröffentlicht interne Modelle von Geschäftskonzepten und Prozessen. Die Diagramme erleichtern die Diskussion über die Entwürfe. Anhand dieser Modelle können lokale Teams Teile ihrer Datenbank- und XML-Schemas, C#-Deklarationen und andere Elemente generieren.

Benutzerdefinierte Modellierungssprachen

In den vorherigen Beispielen werden die Modelle von den Unternehmen jeweils sehr spezifisch verwendet. Ein Gepäcksystem kann zwar mit einem Aktivitätsdiagramm dargestellt werden, dennoch ist eine formale Notation für das Gepäcksystem ratsamer. Visual Studio unterstützt die folgenden Ansätze:

  • Passen Sie ein UML-Diagramm mit Stereotypen an. Mit Stereotypen können Sie verschiedene Typen von Elementen unterscheiden (z. B. Abfertigungsschalter von Röntgenstationen) und zusätzliche Attributwerte in den einzelnen Elementen erfassen. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Profils zum Erweitern von UML.

  • Entwerfen Sie eine eigene domänenspezifische Sprache (DSL). Wenn Sie viele Aufgaben in der Zieldomäne ausführen, kann sich der zusätzliche Aufwand einer spezifischeren Anpassung an Ihre Anforderungen durchaus lohnen. Weitere Informationen finden Sie unter Visualisierungs- und Modellierungs-SDK - Domänenspezifische Sprachen.

Das Team kann mithilfe des Visual Studio SDK Menübefehle, Validierungstests und Toolboxelemente für beide Typen von Modellen erstellen. Außerdem können Sie Visual Studio-Erweiterungen erstellen, um Diagramme zu integrieren, und diese mit externen Ressourcen wie Datenbanken verknüpfen.