Objektorientiertes Design und UML: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Drlue (Diskussion | Beiträge) |
||
| (29 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Im folgenden wird zuerst auf die Begriffe '''UML''' und '''modellieren''' eingegangen. In weiterer Folge werden wir uns mit zwei gebräuchlichen Diagrammtypen, dem '''Klassendiagramm''' und dem '''Sequenzdiagramm''' beschäftigen. | Im folgenden wird zuerst auf die Begriffe '''UML''' und '''modellieren''' eingegangen. In weiterer Folge werden wir uns mit zwei gebräuchlichen Diagrammtypen, dem '''{{Link|UML Klassendiagramm|Klassendiagramm}}''' und dem '''{{Link|UML Sequenzdiagramm|Sequenzdiagramm}}''' beschäftigen. | ||
= Modellieren = | = Modellieren = | ||
Hier soll beschrieben werden was '''modellieren''' im Allgemeinen und dann speziell in der Softwareentwicklung bedeutet. | |||
== Modellieren allgemeine Definition == | |||
'''Modellieren''' bedeutet plastisch formen, gestalten, bearbeiten oder etwas durch '''Modellieren''' bilden. | |||
== Modellieren in der Softwareentwicklung == | |||
Modellieren in der Softwareentwicklung wird auch Softwaredesign genannt. Softwaredesign ist oft aufgrund der Komplexität von Computerprogrammen wichtig, um das Risiko der "Fehlentwicklung" zu minimieren. Bevor die Software modelliert wird, werden im Zuge der Anforderungserhebung zunächst die einzelnen Anforderungen erhoben. Diese Anforderungen werden meistens von Auftraggeber und Auftragnehmer gemeinsam erarbeitet. | |||
Modellieren kann also zur visuellen Darstellung von Programmen, der Softwarearchitektur, Programmabläufen, Datenflüssen, usw. verwendet. | |||
= UML = | = UML = | ||
Die '''U'''nified '''M'''odeling '''L'''anguage ('''UML'''), ist eine grafische Modellierungssprache zur Beschreibung von Softwaresystemen. Der Grundgedanke der '''UML''' besteht darin, eine einheitliche Notation für viele Einsatzgebiete zu haben. | |||
'''UML''' gilt als Standard zur Analyse und Design objektorientierter Anwendungen. Sie bietet ein Gerüst, um so unterschiedliche Applikationen wie Datenbankanwendungen, Echtzeitsysteme oder Grafikprogramme einheitlich darstellen zu können. Die Aufgabe der '''UML''' ist Spezifikation, Visualisierung und Dokumentation von Modellen für Softwaresysteme. Sie wird von der '''O'''bject '''M'''anagement '''G'''roup entwickelt und ist sowohl von ihr als auch von der ISO (International organisation for standardization) zertifiziert. | |||
Die Diagramme in '''UML''' lassen sich in zwei Hauptgruppen aufteilen, Struktur- und Verhaltensdiagramme, welche im folgenden anhand von Vertretern der jeweiligen Gruppe kurz beschrieben werden. | |||
== Strukturdiagramme == | |||
*[[UML Klassendiagramm|'''Klassendiagramm''']] | |||
** Dient zur graphischen Darstellung von {{AL|Klasse|Klassen}} (=abstrakter Oberbegriff für die Beschreibung der gemeinsamen Struktur und des gemeinsamen Verhalten von Objekten), {{AL|Interface|Schnittstellen}} sowie deren {{AL|Beziehungen}}. | |||
* '''Kompositionsstrukturdiagramm''' | |||
** Zeigt einheitlich das Innere eines Klassifizierers (Metaklasse = Klasse einer Klasse) und dessen Wechselwirkung mit seiner Umgebung. | |||
* '''Komponentendiagramm''' | |||
** Stellt die Zusammenhänge der einzelnen Komponenten einer zu erstellenden Softwarelösung dar. | |||
** Die Darstellung umfasst dabei typischerweise Komponenten mit deren Schnittstellen bzw. Ports und zeigt auch wie Komponenten über Abhängigkeitsbeziehung und Konnektoren miteinander verbunden sind. | |||
* '''Verteilungsdiagramm''' | |||
** Dient zur Darstellung der Verteilung von Komponenten auf Rechenknoten. | |||
** Zeigt wie Komponenten konfiguriert sind und welche Abhängigkeiten bestehen | |||
** Die Darstellung umfasst dabei typischerweise Rechnerknoten, Komponenten, Artefakte, Ausprägungsspezifikationen, Verbindungen und Verteilungsbeziehungen. | |||
* '''Objektdiagramm''' | |||
** Zeigt die Struktur des modellierten Systems für einen limitierten Zeitabschnitt bzw. konkreten Zeitpunkt (Momentaufnahme). | |||
** Die Darstellung umfasst dabei typischerweise Ausprägungsspezifikationen von Klassen und Assoziationen. | |||
Ähnlich dem Klassendiagramm, jedoch werden die Objekte, also konkrete Instanzen von Klassen mit deren Werten dargestellt. | |||
* '''Paketdiagramm''' | |||
** Dient der Strukturierung der verschiedenen Darstellungen. | |||
** Pakete ermöglichen einen guten Überblick über ein Gesamtsystem (für große Systeme sehr wichtig) | |||
** Die Darstellung umfasst dabei typischerweise Pakete, Paketverschmelzungen, Paketimports und Abhängigkeitsbeziehungen. | |||
* '''Profildiagramm''' | |||
** Wird in der Metamodellebene verwendet, um sogenannte Stereotype mit Klassen anzuzeigen | |||
** Diese haben dann die Bezeichnung <<stereotype>> oder bei Profilen und Paketen <<profile>> bekommen. | |||
== Verhaltensdiagramme == | |||
* '''Aktivitätsdiagramm''' | |||
** Es wird meist der Ablauf eines Anwendungsfalls beschrieben, es eignet sich aber auch zur Modellierung aller Aktivitäten innerhalb eines Systems. | |||
* '''Anwendungsfalldiagramm''' (Use-Case Diagramm) | |||
** Beschreibt das Zusammenwirken von Personen (Aktoren) mit einem System. | |||
** Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen Abhängigkeiten und Beziehungen dar. | |||
* '''Interaktionsübersichtsdiagramm''' | |||
* '''Kommunikationsdiagramm''' | |||
** Stellt den Austausch von Nachrichten dar. | |||
*[[UML Sequenzdiagramm|'''Sequenzdiagramm''']] | |||
** Stellt die einzelnen Objekte und ihre Interaktion (auf zeitlichen Ablauf bezogen) dar | |||
* '''Zeitverlaufsdiagramm''' | |||
** Ist ein zweidimensionales Diagramm, wobei auf der x-Achse die Zeit, und auf der y-Achse Zustände von Objekten aufgetragen werden. | |||
** Dieser Diagrammtyp ähnelt damit der Anzeige eines Oszilloskops, wird also seit langem in der Elektrotechnik verwendet. | |||
* '''Zustandsdiagramm''' | |||
** Visualisiert die unterschiedlichsten Zustände, die Objekte in ihrem Leben annehmen können | |||
** Wird benutzt, um das Verhalten eines Systems oder die zulässige Nutzung der Schnittstellen eines Systems zu spezifizieren | |||
== Diagramme == | == Diagramme == | ||
[[UML_Klassendiagramm| | === [[UML_Klassendiagramm|Klassendiagramm]] === | ||
=== [[UML_Sequenzdiagramm|Sequenzdiagramm]] === | |||
[[UML_Sequenzdiagramm| | |||
Aktuelle Version vom 5. März 2021, 09:40 Uhr
Im folgenden wird zuerst auf die Begriffe UML und modellieren eingegangen. In weiterer Folge werden wir uns mit zwei gebräuchlichen Diagrammtypen, dem Klassendiagramm und dem Sequenzdiagramm beschäftigen.
Modellieren
Hier soll beschrieben werden was modellieren im Allgemeinen und dann speziell in der Softwareentwicklung bedeutet.
Modellieren allgemeine Definition
Modellieren bedeutet plastisch formen, gestalten, bearbeiten oder etwas durch Modellieren bilden.
Modellieren in der Softwareentwicklung
Modellieren in der Softwareentwicklung wird auch Softwaredesign genannt. Softwaredesign ist oft aufgrund der Komplexität von Computerprogrammen wichtig, um das Risiko der "Fehlentwicklung" zu minimieren. Bevor die Software modelliert wird, werden im Zuge der Anforderungserhebung zunächst die einzelnen Anforderungen erhoben. Diese Anforderungen werden meistens von Auftraggeber und Auftragnehmer gemeinsam erarbeitet.
Modellieren kann also zur visuellen Darstellung von Programmen, der Softwarearchitektur, Programmabläufen, Datenflüssen, usw. verwendet.
UML
Die Unified Modeling Language (UML), ist eine grafische Modellierungssprache zur Beschreibung von Softwaresystemen. Der Grundgedanke der UML besteht darin, eine einheitliche Notation für viele Einsatzgebiete zu haben.
UML gilt als Standard zur Analyse und Design objektorientierter Anwendungen. Sie bietet ein Gerüst, um so unterschiedliche Applikationen wie Datenbankanwendungen, Echtzeitsysteme oder Grafikprogramme einheitlich darstellen zu können. Die Aufgabe der UML ist Spezifikation, Visualisierung und Dokumentation von Modellen für Softwaresysteme. Sie wird von der Object Management Group entwickelt und ist sowohl von ihr als auch von der ISO (International organisation for standardization) zertifiziert.
Die Diagramme in UML lassen sich in zwei Hauptgruppen aufteilen, Struktur- und Verhaltensdiagramme, welche im folgenden anhand von Vertretern der jeweiligen Gruppe kurz beschrieben werden.
Strukturdiagramme
- Klassendiagramm
- Dient zur graphischen Darstellung von Klassen (=abstrakter Oberbegriff für die Beschreibung der gemeinsamen Struktur und des gemeinsamen Verhalten von Objekten), Schnittstellen sowie deren Beziehungen.
- Kompositionsstrukturdiagramm
- Zeigt einheitlich das Innere eines Klassifizierers (Metaklasse = Klasse einer Klasse) und dessen Wechselwirkung mit seiner Umgebung.
- Komponentendiagramm
- Stellt die Zusammenhänge der einzelnen Komponenten einer zu erstellenden Softwarelösung dar.
- Die Darstellung umfasst dabei typischerweise Komponenten mit deren Schnittstellen bzw. Ports und zeigt auch wie Komponenten über Abhängigkeitsbeziehung und Konnektoren miteinander verbunden sind.
- Verteilungsdiagramm
- Dient zur Darstellung der Verteilung von Komponenten auf Rechenknoten.
- Zeigt wie Komponenten konfiguriert sind und welche Abhängigkeiten bestehen
- Die Darstellung umfasst dabei typischerweise Rechnerknoten, Komponenten, Artefakte, Ausprägungsspezifikationen, Verbindungen und Verteilungsbeziehungen.
- Objektdiagramm
- Zeigt die Struktur des modellierten Systems für einen limitierten Zeitabschnitt bzw. konkreten Zeitpunkt (Momentaufnahme).
- Die Darstellung umfasst dabei typischerweise Ausprägungsspezifikationen von Klassen und Assoziationen.
Ähnlich dem Klassendiagramm, jedoch werden die Objekte, also konkrete Instanzen von Klassen mit deren Werten dargestellt.
- Paketdiagramm
- Dient der Strukturierung der verschiedenen Darstellungen.
- Pakete ermöglichen einen guten Überblick über ein Gesamtsystem (für große Systeme sehr wichtig)
- Die Darstellung umfasst dabei typischerweise Pakete, Paketverschmelzungen, Paketimports und Abhängigkeitsbeziehungen.
- Profildiagramm
- Wird in der Metamodellebene verwendet, um sogenannte Stereotype mit Klassen anzuzeigen
- Diese haben dann die Bezeichnung <<stereotype>> oder bei Profilen und Paketen <<profile>> bekommen.
Verhaltensdiagramme
- Aktivitätsdiagramm
- Es wird meist der Ablauf eines Anwendungsfalls beschrieben, es eignet sich aber auch zur Modellierung aller Aktivitäten innerhalb eines Systems.
- Anwendungsfalldiagramm (Use-Case Diagramm)
- Beschreibt das Zusammenwirken von Personen (Aktoren) mit einem System.
- Es stellt Anwendungsfälle und Akteure mit ihren jeweiligen Abhängigkeiten und Beziehungen dar.
- Interaktionsübersichtsdiagramm
- Kommunikationsdiagramm
- Stellt den Austausch von Nachrichten dar.
- Sequenzdiagramm
- Stellt die einzelnen Objekte und ihre Interaktion (auf zeitlichen Ablauf bezogen) dar
- Zeitverlaufsdiagramm
- Ist ein zweidimensionales Diagramm, wobei auf der x-Achse die Zeit, und auf der y-Achse Zustände von Objekten aufgetragen werden.
- Dieser Diagrammtyp ähnelt damit der Anzeige eines Oszilloskops, wird also seit langem in der Elektrotechnik verwendet.
- Zustandsdiagramm
- Visualisiert die unterschiedlichsten Zustände, die Objekte in ihrem Leben annehmen können
- Wird benutzt, um das Verhalten eines Systems oder die zulässige Nutzung der Schnittstellen eines Systems zu spezifizieren