17.6 Der Klassendesigner (Class Designer)
In vielen Unternehmen erstellen die Entwickler während der Designphase das Klassendesign mit Hilfe der UML (Unified Modeling Language), um die schwierigen und komplexen Anforderungen an eine ausgefeilte Software zu erfüllen. UML ist eine Spezifikation, die eine Reihe von Diagrammen definiert, mit denen eine objektorientierte Software während der Designphase nicht nur visuell dargestellt, sondern auch modelliert werden kann. Mit dem Klassendiagramm von UML lassen sich zum Beispiel Klassen samt ihren Beziehungen und den Vererbungslinien darstellen.
In Visual Studio 2012 ist mit dem Klassendesigner ein Werkzeug integriert, mit dem Klassendiagramme, ähnlich den UML-Klassendiagrammen, modelliert werden können.
17.6.1 Ein typisches Klassendiagramm
In Abbildung 17.12 sehen Sie einen Ausschnitt des gesamten Klassendiagramms der Anwendung GeometricObjects.
Abbildung 17.12 Ein typisches Klassendiagramm
Wie Sie anhand der Abbildung vermutlich schon erahnen, können Sie im Klassendesigner anschaulich komplexe Zusammenhänge zwischen den Klassen erkennen und deren Struktur analysieren. Dabei ist ein Klassendiagramm nicht nur auf Klassen beschränkt, wie im ersten Moment vielleicht zu vermuten wäre. Ebenso lassen sich alle anderen Typdefinitionen des .NET Frameworks abbilden, also Strukturen, Delegates, Schnittstellen usw.
Änderungen und Ergänzungen, die Sie im Klassendesigner vornehmen, tragen sofort im Programmcode Früchte: Er passt sich den Änderungen im Klassendiagramm an und übernimmt beispielsweise zusätzliche Typdefinitionen. Ändern Sie den Programmcode, werden die Änderungen auch vom Klassendiagramm direkt übernommen. Das hört sich nicht nur gut an, es funktioniert auch ganz prima. Leider können Sie im Designer immer noch keine generischen Typen definieren. Im Vergleich zu den Vorgängerversionen von Visual Studio hat sich da bedauerlicherweise nichts geändert.
In Abbildung 17.13 sehen Sie den Klassendesigner in der Entwicklungsumgebung von Visual Studio 2012. In erster Linie haben wir es während der Klassenmodellierung mit drei Fenstern zu tun:
- mit der Toolbox, in der uns alle Elemente angeboten werden, die wir mit Drag & Drop in den Designer ziehen können
- mit dem Klassendiagramm, in dem alle am Designprozess beteiligten Typen visualisiert dargestellt sind
- mit dem Fenster der Klassendetails, mit denen die Member eines Typs analysiert, geändert oder hinzugefügt werden können
Abbildung 17.13 Die Entwicklungsumgebung des Klassendesigners
17.6.2 Hinzufügen und Ansicht von Klassendiagrammen
Ein Klassendiagramm ist die Sicht auf die Typstruktur des Programmcodes. Klassendiagramme sind zwar Teil eines Projekts, müssen aber ausdrücklich hinzugefügt werden. Öffnen Sie dazu das Kontextmenü des Projekts im Projektmappen-Explorer, und wählen Sie Klassendiagramm anzeigen. Sie kommen auch über den Menüpunkt Hinzufügen • Neues Element... zum Ziel.
Dem Projekt wird eine Datei mit der Endung .cd hinzugefügt. Handelt es sich um die erste Klassenansicht im Projekt, lautet der Bezeichner der Datei standardmäßig ClassDiagram1.cd. Im Designbereich von Visual Studio 2012 sehen Sie anschließend das Klassendiagramm mit allen Typen, die bis zu diesem Zeitpunkt im Projekt mittels Programmcode definiert worden sind. Bei einem zuvor angelegten Konsolenprojekt ist das nur die Klasse Program. Die .cd-Datei ist eine XML-Datei, die nicht nur die einzelnen Typen, sondern auch deren Eigenschaften, Methoden usw. samt deren Parametern exakt beschreibt, die im Klassendiagramm dargestellt werden.
Die in einem Klassendiagramm visualisierten Typen können Sie sich ganz nach Wunsch mehr oder weniger detailliert anzeigen lassen. Wenn Sie nur an den Beziehungen zwischen den Typen interessiert sind, benötigen Sie keine weiteren Memberangaben, die in diesem Moment nur überflüssig wären. Sie können die gewünschte Ansicht (mit bzw. ohne Memberliste) einstellen, indem Sie im Designer auf den Doppelpfeil klicken, der links oben im Typrahmen zu sehen ist.
Möchten Sie die Klassenmitglieder sehen, haben Sie drei Alternativen:
- nur die Bezeichner
- die Bezeichner einschließlich der Typangabe
- die Bezeichner einschließlich der kompletten Signatur
Die Umschaltung erfolgt in der Symbolleiste des Klassendesigners (siehe Abbildung 17.14).
Abbildung 17.14 Die Symbolleiste des Klassendesigners
17.6.3 Die Toolbox des Klassendesigners
Abbildung 17.15 Die Toolbox des Klassendesigners
In der Toolbox (auch als Werkzeugkasten bezeichnet) werden ganz im Sinne des Klassendesigners Elemente angeboten, die Sie per Drag & Drop in den Designbereich ziehen können. Dazu zählen nicht nur Klassen, Strukturen, Delegates und Enumerationen, sondern auch Vererbungs- und Zuordnungslinien.
17.6.4 Das Fenster »Klassendetails«
Für die im Klassendiagramm aktuell markierte Klasse werden die Klassenmitglieder im Fenster Klassendetails unterhalb des Klassendiagramms angezeigt. Sollte bei Ihnen dieses Fenster nicht zu sehen sein, können Sie es über Ansicht • Weitere Fenster öffnen. Dieses Fenster erlaubt das Hinzufügen und Editieren folgender Klassenmitglieder:
- Methoden
- Eigenschaften
- Felder
- Ereignisse
Das Fenster hat zudem eine linksbündige Symbolleiste mit fünf Schaltflächen. Die unteren vier dienen zur Navigation innerhalb der Liste. Mit der oberen können Sie alle denkbaren Mitgliedstypen hinzufügen, einschließlich der Angabe von Typ und Zugriffsmodifizierer. Die Spalte Zusammenfassung unterstützt das <summary>-Tag der XML-Dokumentation.
Die rechte Spalte, Ausblenden, hat keinen Einfluss auf die Klassendefinition und wirkt sich nur auf die Anzeige des betreffenden Members im Klassendiagramm aus.
Abbildung 17.16 Das Fenster »Klassendetails«
Jeder Methodeneintrag ist mit einem Knoten versehen. Wenn Sie diesen öffnen, können Sie für die entsprechende Methode alle notwendigen Parameter definieren. Geben Sie den Parameternamen an, tragen Sie den gewünschten Datentyp ein, und wählen Sie – falls erforderlich – einen Parametermodifizierer aus der Liste der Spalte Modifizierer aus.
Vielleicht fällt Ihnen auf, dass die Modifizierer, die im Zusammenhang mit der Vererbung stehen, nicht zur Auswahl anstehen: abstract, override, virtual, sealed. Tatsächlich können diese nur im Eigenschaftsfenster der ausgewählten Methode eingestellt werden. Das Eigenschaftsfenster sollten wir uns noch etwas genauer ansehen, denn hier bieten sich noch weitere Optionen an, die nicht nur die Vererbungsmodifizierer betreffen.
Abbildung 17.17 Das Eigenschaftsfenster einer Methode im Klassendesigner
Eigenschaft | Beschreibung |
Benutzerdefinierte |
Der Name ist ein wenig irreführend. Tatsächlich können Sie hier alle Attribute angeben, die mit der Methode verknüpft werden sollen. |
Hinweise |
Gibt den Inhalt des <remarks>-Tags der XML-Dokumentation an. |
Name |
Der Bezeichner des Members. |
Neu |
Die Einstellung True gibt an, dass dieser Member einen geerbten Member verbirgt. |
Rückgabewerte |
Gibt den Inhalt des <returns>-Tags der XML-Dokumentation an. |
Statisch |
Mit der Einstellung True wird dieser Member zu einem statischen. |
Typ |
Gibt den Typ des Members an. |
Vererbungsmodifizierer |
Hier geben Sie an, welcher Modifizierer, der im Zusammenhang mit der Vererbung steht, der Signatur hinzugefügt werden soll. |
Zugriff |
Gibt den Zugriffsmodifizierer an. |
Zusammenfassung |
Gibt den Inhalt des <summary>-Tags der XML-Dokumentation an. |
Das Hinzufügen der anderen Mitglieder (Konstruktoren, Eigenschaften etc.) unterscheidet sich nicht wesentlich von dem Hinzufügen einer Methode. Daher erübrigt es sich an dieser Stelle, darauf im Detail einzugehen. Auch für sie gilt, dass im Eigenschaftsfenster einige Optionen angeboten werden, die Sie im Fenster Klassendetails vermissen.
17.6.5 Klassendiagramme als Bilder exportieren
Der Klassendesigner bietet Ihnen an, ein Klassendiagramm als Bild in verschiedenen Bildformaten zu exportieren. Damit haben Sie neben den entwicklungstechnischen Fähigkeiten des Klassendesigners die Möglichkeit, Dokumentationen anschaulich um die Darstellung der Struktur einer Klassenhierarchie zu ergänzen oder das Bild in eine Präsentation (wie zum Beispiel mit MS PowerPoint) zu integrieren. Zu den angebotenen Formaten zählen unter anderem auch BMP, GIF und JPEG.
Dazu öffnen Sie in Visual Studio 2012 das Menü Klassendiagramm und wählen im Untermenü Diagramm als Bild exportieren.... Es öffnet sich ein Dialog, in dem Sie die zu exportierenden Klassendiagramme auswählen, den Speicherort festlegen und aus einer Liste das gewünschte Bildformat einstellen können.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.