Commit c5aa451d authored by Blanke, Daniela's avatar Blanke, Daniela
Browse files

Update intro-uml.html

parent ca58fb4e
Pipeline #8011 failed with stage
in 36 seconds
......@@ -6,7 +6,7 @@
<p>Im Rahmen einer Anforderungsanalyse wird ermittelt, welche Daten für eine Anwendung relevant sind und erfasst werden müssen. Das Datenmodell speichert den Zustand einer Anwendung über ihren gesamten Lebenszyklus. In der Entwurfsphase wird üblicherweise mit Testdaten gearbeitet. Ab der Inbetriebnahme der Anwendung werden auf dem Produktivsystem dann die Echtdaten der Anwender erfasst. Da Anwendungen häufig über viele Jahre in Betrieb sind, wird es im Laufe der Zeit auch Änderungen am Datenmodell geben. In Abhängigkeit von der Stabilität der Anforderungen spielt also die Anpassungsmöglichkeit des Datenmodells eine mehr oder weniger wichtige Rolle. Da zur Laufzeit ständig Daten gelesen, geändert und hinzugefügt werden, ist es in Abhängigkeit der erwarteten Frequenz und Parallelität der Lese- und Schreibzugriffe auch erforderlich sich mit der Effizienz dieser Zugriffe zu beschäftigen.</p>
<p>Ein konzeptionelles Datenmodell ist noch nicht an eine konkrete Technologie zur Implementierung der Anwendung gebunden. Es ist eben rein konzeptioneller Entwurf, dessen Entstehung eine Tätigkeit intellektueller Modellbildung ist. In der Softwaretechnik hat sich hier die Unified Modelling Language (UML) als Standard etabliert. Wortwörtlich übersetzt ist die UML also eine vereinheitlichte Modellierungssprache. Aus Modellen in dieser Sprache ist es wiederum möglich, automatisiert Datenmodelle für konkrete Technologien abzuleiten. Das können z.B. die Datenstrukturen in Form von Klassen für eine objektorientierte Programmiersprache sein, wenn die Anwendung z.B. in Java, C# oder ähnlichen Sprachen programmiert werden soll. Es kann auch ein relationales Schema aus einem konzeptionellen Modell abgeleitet werden, wenn die Daten in einem relationalen Datenbanksystem wie MariaDB, PostgreSQL o.ä. gespeichert werden sollen.
<p>Ein konzeptionelles Datenmodell ist noch nicht an eine konkrete Technologie zur Implementierung der Anwendung gebunden. Es ist eben ein rein konzeptioneller Entwurf, dessen Entstehung eine Tätigkeit intellektueller Modellbildung ist. In der Softwaretechnik hat sich hier die Unified Modelling Language (UML) als Standard etabliert. Wortwörtlich übersetzt ist die UML also eine vereinheitlichte Modellierungssprache. Aus Modellen in dieser Sprache ist es wiederum möglich, automatisiert Datenmodelle für konkrete Technologien abzuleiten. Das können z.B. die Datenstrukturen in Form von Klassen für eine objektorientierte Programmiersprache sein, wenn die Anwendung z.B. in Java, C# oder ähnlichen Sprachen programmiert werden soll. Es kann auch ein relationales Schema aus einem konzeptionellen Modell abgeleitet werden, wenn die Daten in einem relationalen Datenbanksystem wie MariaDB, PostgreSQL o.ä. gespeichert werden sollen.
Es können natürlich auch Datenstrukturen für strukturierte Datenaustauschformate wie XML oder JSON abgeleitet werden.
Wichtig ist, dass das konzeptionelle Modell möglichst nicht an eine konkrete Technologie gekoppelt ist. Auch bei einem Wechsel der Technologie, z.B. auf eine nicht-objektorientierte Programmiersprache oder eine nicht-relationale Datenbank können die neuen Datenstrukturen über einen automatisierten Transformationsschritt aus dem Modell generiert werden.</p>
......@@ -32,7 +32,7 @@ Wichtig ist, dass das konzeptionelle Modell möglichst nicht an eine konkrete Te
<img src="media/uml_assoziation.png" style="width:400px">
<label>2 Klassen, die durch eine Assoziation verbunden sind</label>
<p>Zunächst wird eine Klasse als ein Rechteck mit 3 Abschnitten dargestellt. Im oberen Abschnitt steht der Name der Klasse. Im mittleren Abschnitt folgen alle Attribute der Klasse, die von einem Basisdatentyp sind. Die Typen der Attribute können angegeben werden oder versteckt werden. Im unteren Abschnitt der Klasse werden später die Operationen stehen. In der obigen Abbildung ist durch die Multiplizitäten an der Assoziationskante zwischen den Klassen modelliert, dass jede Person einer oder keiner Abteilung (0..1) zugeordnet ist, wobei in einer Abteilung mehrere Personen (0..*) zusammengefasst werden. Der Default-Wert für Multiplizitäten ist 1 und muss nicht explizit angegeben werden.</p>
<p>Zunächst wird eine Klasse als ein Rechteck mit 3 Abschnitten dargestellt. Im oberen Abschnitt steht der Name der Klasse. Im mittleren Abschnitt folgen alle Attribute der Klasse, die von einem Basisdatentyp sind. Die Typen der Attribute können angegeben oder versteckt werden. Im unteren Abschnitt der Klasse werden später die Operationen stehen. In der obigen Abbildung ist durch die Multiplizitäten an der Assoziationskante zwischen den Klassen modelliert, dass jede Person einer oder keiner Abteilung (0..1) zugeordnet ist, wobei in einer Abteilung mehrere Personen (0..*) zusammengefasst werden. Der Default-Wert für Multiplizitäten ist 1 und muss nicht explizit angegeben werden.</p>
<p>In der folgenden Abbildung sehen wir ein Objektdiagramm, das einen beliebigen Zeitpunkt zur Laufzeit der Anwendung abbildet. Im dargestellten Zustand existieren 4 Objekte: ein Objekt vom Typ Abteilung mit 3 zugeordneten Objekten vom Typ Person, die jeweils unterschiedliche Ausprägungen in ihren Attributen aufweisen.</p>
......@@ -41,7 +41,7 @@ Wichtig ist, dass das konzeptionelle Modell möglichst nicht an eine konkrete Te
<h4>Assoziationen und Navigierbarkeit</h4>
Die beiden Klassen des obigen Modells entsprechen folgenden Code in Java.
Die beiden Klassen des obigen Modells entsprechen folgendem Code in Java.
<pre><code class="language-java">class Person {
Integer id;
String name;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment