Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
uml [2019/02/07 09:45] 127.0.0.1 Externe Bearbeitung |
uml [2019/07/27 16:01] (aktuell) huwi |
||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
===== Klassendiagramm Kurzübersicht ===== | ===== Klassendiagramm Kurzübersicht ===== | ||
- | >> | + | > |
Die folgende Abbildung zeigt Ihnen eine Kurzübersicht der Modellierungselemente des UML-Klassendiagramms. | Die folgende Abbildung zeigt Ihnen eine Kurzübersicht der Modellierungselemente des UML-Klassendiagramms. | ||
- | >>> | + | > |
**Darstellung von Attributen: | **Darstellung von Attributen: | ||
Zeile 29: | Zeile 29: | ||
Jedes Fenster muss erst einmal initialisiert werden bevor es angezeigt werden kann. Das ist eine Operation, die das Fenster selbst ausführen soll. Diese Operation wird in der UML der Klasse zugeordnet. Operationen erscheinen als Liste im Klassenrahmen. | Jedes Fenster muss erst einmal initialisiert werden bevor es angezeigt werden kann. Das ist eine Operation, die das Fenster selbst ausführen soll. Diese Operation wird in der UML der Klasse zugeordnet. Operationen erscheinen als Liste im Klassenrahmen. | ||
- | >>> | + | > |
===== Objekte ===== | ===== Objekte ===== | ||
Objekte sind in der Programmierung Instanzen von Klassen. In der UML werden Objekte ebenfalls als Rechteck dargestellt. Die Kennzeichnung als Instanz erfolgt durch Unterstreichen des Namens. Zusätzlich kann der Typ der Instanz angezeigt werden. Die Instanzbeziehung zwischen einem Objekt und seiner Klasse wird als Abhängigkeit (gestrichelte Linie mit offenem Pfeil) und dem Stereotyp << | Objekte sind in der Programmierung Instanzen von Klassen. In der UML werden Objekte ebenfalls als Rechteck dargestellt. Die Kennzeichnung als Instanz erfolgt durch Unterstreichen des Namens. Zusätzlich kann der Typ der Instanz angezeigt werden. Die Instanzbeziehung zwischen einem Objekt und seiner Klasse wird als Abhängigkeit (gestrichelte Linie mit offenem Pfeil) und dem Stereotyp << | ||
- | >>> | + | > |
In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | ||
Zeile 45: | Zeile 45: | ||
Klassen können Eigenschaften (Attribute und Operationen) von anderen Klassen erben. Dies ermöglicht die elegante Wiederverwendung von einmal geschriebenem Code. Klassenbibliotheken und die darin enthaltenen Basisklassen beschleunigen die Entwicklungsarbeit enorm. Bei der Vererbung kann man auch je nach Lesart von einer // | Klassen können Eigenschaften (Attribute und Operationen) von anderen Klassen erben. Dies ermöglicht die elegante Wiederverwendung von einmal geschriebenem Code. Klassenbibliotheken und die darin enthaltenen Basisklassen beschleunigen die Entwicklungsarbeit enorm. Bei der Vererbung kann man auch je nach Lesart von einer // | ||
- | >>> | + | > |
In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | ||
Zeile 58: | Zeile 58: | ||
Die UML kennt ein zweites Ausdrucksmittel für den Sachverhalt //"ist ein"// | Die UML kennt ein zweites Ausdrucksmittel für den Sachverhalt //"ist ein"// | ||
- | >>> | + | > |
In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | ||
Zeile 69: | Zeile 69: | ||
Objektorientierte Programmiersprachen kennen verschiedene Konzepte, um die Stabilität von Anwendungen sicherzustellen. Eines der Konzepte ist die Kapselung. Dabei ist es möglich, Elementen, z. B. Attributen und Operationen von Klassen, sogenannte Sichtbarkeiten zuzuordnen. Damit kann verhindert werden, das geschützte Elemente unberechtigt benutzt werden. Die meisten Programmiersprachen unterstützen dies durch entsprechende Schlüsselworte wie //public//, // | Objektorientierte Programmiersprachen kennen verschiedene Konzepte, um die Stabilität von Anwendungen sicherzustellen. Eines der Konzepte ist die Kapselung. Dabei ist es möglich, Elementen, z. B. Attributen und Operationen von Klassen, sogenannte Sichtbarkeiten zuzuordnen. Damit kann verhindert werden, das geschützte Elemente unberechtigt benutzt werden. Die meisten Programmiersprachen unterstützen dies durch entsprechende Schlüsselworte wie //public//, // | ||
- | >>> | + | > |
In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | ||
Zeile 82: | Zeile 82: | ||
Zusätzlich sind in dieser Darstellung die Rückgabetypen der Operationen auf //void// bzw. //int// festgelegt worden. Dieses UML-Klassendiagramm kann jetzt in Quellcode überführt werden. Dieser kann, hier als vereinfachter Ausschnitt, so aussehen: | Zusätzlich sind in dieser Darstellung die Rückgabetypen der Operationen auf //void// bzw. //int// festgelegt worden. Dieses UML-Klassendiagramm kann jetzt in Quellcode überführt werden. Dieser kann, hier als vereinfachter Ausschnitt, so aussehen: | ||
- | >>>< | + | >< |
// SiSy UML C++ Codegenerator //////////////////////////////////////////////// | // SiSy UML C++ Codegenerator //////////////////////////////////////////////// | ||
class Fenster : public SFrameWindow | class Fenster : public SFrameWindow | ||
Zeile 111: | Zeile 111: | ||
Systeme bestehen aus Komponenten, | Systeme bestehen aus Komponenten, | ||
- | >>> | + | > |
In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | In der gezeigten UML-Darstellung wurde Folgendes festgelegt: | ||
Zeile 124: | Zeile 124: | ||
* **Die Klasse // | * **Die Klasse // | ||
- | >>>< | + | >< |
// SiSy UML C++ Codegenerator //////////////////////////////////////////////// | // SiSy UML C++ Codegenerator //////////////////////////////////////////////// | ||
class Fenster : public SFrameWindow | class Fenster : public SFrameWindow | ||
Zeile 152: | Zeile 152: | ||
Die Aggregation entspricht also einem Attribut der Klasse. Somit ist die folgende UML-Darstellung letztlich genau dasselbe. Die Attributdarstellung spart Platz, ist aber weniger übersichtlich was die Systemarchitektur betrifft. | Die Aggregation entspricht also einem Attribut der Klasse. Somit ist die folgende UML-Darstellung letztlich genau dasselbe. Die Attributdarstellung spart Platz, ist aber weniger übersichtlich was die Systemarchitektur betrifft. | ||
- | >>> | + | > |
===== Sequenzen ===== | ===== Sequenzen ===== | ||
Sequenzdiagramme dokumentieren ausgewählte Verhaltensweisen eines Systems. In SiSy werden Sequenzdiagramme für jede Operation automatisch generiert, wenn diese ausgewählt ist. Der Entwickler kann anhand des dynamisch erzeugten Sequenzdiagrammes visuell überprüfen, | Sequenzdiagramme dokumentieren ausgewählte Verhaltensweisen eines Systems. In SiSy werden Sequenzdiagramme für jede Operation automatisch generiert, wenn diese ausgewählt ist. Der Entwickler kann anhand des dynamisch erzeugten Sequenzdiagrammes visuell überprüfen, | ||
- | >>>< | + | >< |
void MainWnd:: | void MainWnd:: | ||
{ | { | ||
Zeile 170: | Zeile 170: | ||
Das von SiSy automatisch erstellte Sequenzdiagramm zu diesem Code sieht dann so aus: | Das von SiSy automatisch erstellte Sequenzdiagramm zu diesem Code sieht dann so aus: | ||
- | >>> | + | > |
Zeile 177: | Zeile 177: | ||
Die folgende vereinfachte Darstellung der Klassen aus dem Paket // | Die folgende vereinfachte Darstellung der Klassen aus dem Paket // | ||
- | >>> | + | > |
Zeile 189: | Zeile 189: | ||
Den Umstand, das die Klasse // | Den Umstand, das die Klasse // | ||
- | >>> | + | > |
Das Besondere an der Assoziation ist, dass dabei die Instanz der assoziierten Klasse nicht Bestandteil (by value) der Klasse ist, sondern nur auf den " | Das Besondere an der Assoziation ist, dass dabei die Instanz der assoziierten Klasse nicht Bestandteil (by value) der Klasse ist, sondern nur auf den " |