Nun zum zweiten Teil der Einführungsvorlesung zu Zielen.
Wir sprechen über Modelle. Warum braucht man Modelle? Was
sind Modelle? Wie helfen die uns dabei? Komplexität zu
beherrschen? Ingenieurgemäße Softwareentwicklung hinzubekommen. Wenn wir die Modelle,
die Definition des Begriffsmodell anschauen, zu finden,
wir Unternehmen ganz vielen anderen,
unter anderem diese Definition bei Victionery.org vereinfachte Darstellung, genutzt wird,
um die reale, um Dinge der realen Welt zu erklären.
Das ist etwas, was ganz gut zu den Sachen passt,
die wir brauchen, um komplexe Softwaresysteme zu beherrschen.
Und vereinfacht heißt in dem Fall,
aber möchte ich mit dem Zitat von Albert Einstein sagen,
bitte nicht einfacher als sinnvoll.
Und wichtig ist bei der Vereinfachung, wir brauchen es für
einen bestimmten Zweck. Modelle dafür, um etwas zu nutzen.
In dem Fall hier, um etwas zu erklären,
und zwar bestimmte Aspekte zu erklären
Dieser Zweck eines Modells ist etwas, was wir uns
vor Augen führen müssen, wenn wir Modelle benutzen wollen.
Ja, der Verwendungszweck ist ganz unterschiedlich. Ich nehme mal
hier was aus. Nicht-Informatik-Bereichen, wenn wir ein Gebäude haben,
so gibt es ein Gebäude und wenn es um ein Bauwesen geht,
ein Gebäudemodell soll einen optischen Eindruck vermitteln.
Ein Grundriss soll den Eindruck, sollen die Einteilung von Kunststück
und Räumen darstellen. Kostenplan ist durchaus auch ein Modell,
weil es auch ein bestimmter Aspekt eines Bauvorhabens darstellt,
die dann gebraucht werden zur Finanzierung.
Oder es gibt für die verschiedenen Gewerke Pläne für Gas Wasser,
für die Lüftung, die dann wichtig sind für die Bauabwicklung,
aber auch für Sachen der Prüfung, wie zum Beispiel für den Brandschutz.
Eigen dieser vier Modelle, die wir hier genannt haben,
nur was für einen bestimmten Zweck relevant ist.
Nur das wird im Modell dargestellt. Wir brauchen kein vollständiges
Modell. Er hat das vollständige Modell, enthält ja alles
für alle Informationen des Originals und wir wollen ja reduzieren.
Wir wollen Abstraktionen gewinnen, Abstraktion war ja eine von diesen
von diesen Dingen, die wir brauchen, um Komplexität zu beherrschen.
Ich gehe nochmal hier eine Folie zurück
Abstraktion führte hier dazu, dass man weniger braucht und das ist das,
was wir beim Modell, beim Modell uns auch hilft.
Und wir brauchen für eine,
für ein bestimmtes Modell jeweils eine bestimmte Modellierungsmethode, die,
die von Sprachen sprechen, haben wir den Begriff bei Kalkül,
hier müssen wir uns nicht merken, uns reicht Modellierungsmethode,
Modellierungssprache.
Ich starte mal mit etwas, was Sie vielleicht kennen,
das ist ein Modell.
Ich möchte jetzt gern mit Ihnen gemeinsam erörtern,
was stellt denn
dieses Modell dar
Bitte überlegen Sie mal kurz, was sehen Sie in diesem Modell?
Welche Informationen sind darin enthalten? Ja, richtig.
Ich sehe, welche Linien es gibt.
Ich sehe die Reihenfolge der Stationen. Ich sehe Umsteigepunkte,
ja, Hauptbahnhof, Schnurm, was auch immer,
wo Linien sich kreuzen, das sehe ich.
Und es gibt auch ein paar Sachen, die wir nicht sehen.
Ja, wir sehen die Sumbara übrigens,
sogar die Elbe ja, Norderelbe, Südoelbe.
Das sehen wir auch
Wir sehen nicht ganz genau, wofür es denn der Alsterfluss lernen.
Oder wie ist genau die Entfernung oder wo sind die Stadtteile,
Höhen lagen, all das steht nicht da,
in etwas sehen Sie gerade hier nicht,
weil die Darstellung zu klein ist,
hier so ein kleines Rollstuhlfahrersympuls ran.
Zunehmend haben die Stationen ja Holzschuhe, Zugänglichkeit.
Auch das ist hier aus diesem Plan noch zu entnehmen.
Es ist ein Modell, ich habe schon das Wort Plan gebraucht,
das ist in vielen Bereichen ein Synonym,
ist ein Modell der Stadt Hamburg,
was einen bestimmten,
eine bestimmte Sicht darstellt
Das ist auch ein Modell, hat mit dem anderen Modell,
was wir eben hatten, auch etwas zu tun.
Tatsächlich sehen wir hier auch einzelne Linien mit ihren,
mit der Reihenfolge ihrer Stationen. Das ist eine Gemeinsamkeit zu
dem Modell, was wir eben gesehen haben.
Zusätzlich haben wir weitere Informationen. Wir sehen nämlich, wie
häufig fährt dort etwas. Das war in dem anderen Plan
nicht zu sehen. Und zusätzlich gibt es noch andere Informationen,
die wir auch haben, nämlich hier sind hervorgehoben die Umsteigestationen.
Teilweise steht dabei, wohin ich umsteigen kann.
Das steht hier mit da
Diese beiden Verzeihungen, diese beiden Pläne, diese beiden Modelle,
zeigen also ein Beispiel dafür, was man,
welche Werte, welche Dinge man wert liegt.
Der Zweck ist das Wichtige. Wir müssen also
uns überlegen, was brauchen wir mit dem Modell?
Was wollen wir damit machen? Und es gibt verschiedene Möglichkeiten für
einen Zweck. Ich führe hier mal vier Gruppen an.
Manchmal möchte man Modelle für etwas haben, für Sachen,
die man am Original nicht durchführen kann,
weil ich zum Beispiel ein Flügel im Windkanal,
das kann ich eben nicht an realen Flugzeug prüfen.
Ja, dann prüft,
mache ich eben eine Sym-Computersimulation oder so ein kleines Modell
im Windkanal
Wenn ich etwas sehr Komplexes habe, dann kann ich das nicht am gesamten Organisieren untersuchen.
Zum Beispiel die Geschäftsabläufe einer großen Firma. Oder wenn ich
etwas machen möchte, bevor ich das Original habe,
zum Beispiel beim Hausbau oder bei einem großen Software-System,
dann verständige ich mich erst mal über das,
was es tun soll anhand eines Modells.
Oder wenn es erst gebaut werden soll,
und ich möchte Anforderungen festlegen, Eigenschaften,
gewünschte Eigenschaften festlegen, dann wäre das auch ein Fall,
wo man das gut mit einem Modell machen kann
Solche Modelle müssen auch geprüft werden,
Validieren steht für Prüfen, nämlich nachweisen,
dass die besonderen Eigenschaften, die Eigenschaften jeweils relevant betrachten,
wie wir uns wichtig sind, dass sie korrekt sind.
Und natürlich, dass wir uns darüber verstehen.
Ich möchte Ihnen hier als Diagramme etwas zeigen,
zwei Diagramme auf diesem einen Bild hier links oben,
sehen wir ein Objektdiagramm, das enthält Zustände.
Nämlich zum Beispiel ein Sparbuch, ein Objekt Sparbuch hat gerade
einen bestimmten Saldo. Und es gibt noch einen Sinsatz,
in dem Moment ist der gerade 10. Satz 0,
wir wissen alle,
Sinse sind zurzeit niedrig
Unten, wenn ich etwas zum Laufzeit diskutieren möchte,
also zu einer Zeit, wenn wirklich etwas passiert,
dann reicht mir das nicht nur, die Zustände zu kennen,
da muss ich auch wissen, in welcher Reihenfolge was passiert.
Und für die Reihenfolge können wir dieses Sequenzdiakram benutzen.
Das Sequenzdiakram haben Sie vielleicht schon mal irgendwo gesehen, ist dadurch gekennzeichnet,
dass die Kästen, die müssen jetzt nicht gelb sein,
das ist immer ein Beispiel so,
aber dass die Kästen stehen für Objekte und die haben wir unten eine Lebenslinie,
die von oben nach oben verläuft und die Reihenfolge geht von oben nach unten.
Also hier kommt er zuerst einen Aufruf,
dann geht der Aufruf mehr weiter zu den Objektieren,
konnte, das tut was,
gibt hier was zurück und ein bisschen später passiert hier was
und hier gibt auch was zurück und dann wird es
hier noch was zurückzugeben
Vielleicht nur so zur Information für Sie. Vielmehr machen wir jetzt mit diesem Modell nicht.
Das ist nicht maßstäblich. Also ob das länger oder kürzer ist,
wenn das hier ein bisschen länger ist und das ein bisschen kürzer,
das sagt nichts über die tatsächliche Dauer aus,
das ist darin nicht enthalten.
Wie geht es nur um den Nachrichtenversand und die Reihenfolge?
Aber ich wollte dir das Beispiel zeigen, wenn wir den Zweck haben,
etwas zur Aufzeit zu diskutieren, reichen nicht Zustände aus.
Wir brauchen auch noch die Reihenfolge. Und wir brauchen eine
entsprechende Darstellung. Wenn wir solche Modelle wählen und überlegen,
was ist der Zweck,
isten zwei Begriffe besonders wichtig,
nämlich die Trennung zwischen Problemraum und Lösungsraum
Ich habe das mir hier versucht, so nebeneinander zu stellen,
ja, also Problemraum ist das, was hier,
was eine, das soll beschrieben werden.
Also was soll denn gebaut werden? Was ist das Konzept
? Was ist das Ziel? Was ist die Aufgabe?
Was ist die Anforderung? Während der Lösungsraum bezeichnet,
wie wird das dann realisiert? Wie wird das gebaut?
Was ist die technische Lösung? Die Informatiker versuchen,
diese beiden Sachen getrennt voneinander zu beschreiben. Das heißt,
das eine sind, was soll das System können?
Was soll das tun? Das sind die Anforderungen und das andere
davon freizuhalten, nämlich zur Realisierung erstmal dazu nichts zu sagen
Wenn wir das vermischen würden, viele andere Entschünderdisziplinen machen,
so eine klare Trennung nicht,
dann würden wir teilweise mit den Antwortungen schon beschreiben,
wie das technisch realisiert werden soll.
Das würde dazu führen, dass manche Entscheidungen schon im Vorhinein getroffen sind,
dass wir weniger Freiheitsgrade haben. Es ist sehr viel besser,
das zu trennen, dass man ganz klar sagen kann,
das ist das Vorergebnis und hier haben wir noch die Möglichkeit zu entscheiden,
auf der Suche nach besseren Lösungen.
Wenn ich Ihnen das jetzt so gesagt habe,
ist es immer noch so, dass es schwierig ist,
das voneinander zu unterscheiden. In Besondere ist es manchmal so,
dass manchmal auf dieser linken Seite, Problemraum,
durchaus technische Begriffe auftauchen, weil wir manchmal Anforderungen haben,
die entserrt, stark technischen Charakter haben.
Also man kann nicht nur sagen,
das Technische ist rechts und das nicht technische Links,
sondern manchmal ist hier auch was Technisches.
Das bessere, gute Kennzeichen tatsächlich ist aber, hier geht es
um die Realisierung. Hier geht es um die Entscheidung,
die jemand trifft, wenn er das realisieren möchte.
Dazu haben wir eine Frage, die wir jetzt gleich beantwortet haben.
Das war die Frage 6. Ich glaube,
es wird schon falsch
Die Frage 6, warum sollte Problemraum und Lösungsraum getrennt
voneinander beschrieben werden? Diese Trennung hat der Vorteil ist,
dass wir besser klare Entscheidungen treffen können,
weil klarer abgrenzbar ist, was fordert der Auftraggeber,
was soll sein und was ist die Freiheit des Entwicklers auf der Suche nach einer optimalen Lösung?
Wenn wir Abstraktion machen, Abstraktionen als Mittel, Modelle zu vereinfachen,
Details wegzulassen, muss sich auf das Relevante zu konzentrieren,
dann ist das genau das,
was Modelle tun.
Modelle lassen ja
solche Sachen weg
Und tatsächlich ist es Abstraktion eines der ganz zentralen Mittelkomplexität zu beherrschen.
Ja, wir lassen bestimmte Sachen weg und konzentrieren uns auf
das Wichtige, auf das Relevante.
Und wir verwenden da zum Beispiel Sichten. Zum Beispiel stellen wir
nur das Verhalten dar oder nur die Struktur. Wir versuchen Eigenschaften zusammenzufassen,
das machen wir zum Beispiel in diesen Formen von Hierarchien,
ja, man fasst gemeinsame Eigenschaften zusammen.
Und wir versuchen, das Fachliche und das Technische zu trennen.
Das macht man zum Beispiel Probleme um Lösungsraum,
aber auch mit der Zerlegung in bestimmten Abstraktionen, zum Beispiel,
indem wir nicht von dem einzelnen Kunden sprechen,
sondern von fachlichen Abstraktionen
einem Geschäftsobjekt kommen
Wir nutzen Abstraktionen, um etwas herauszuarbeiten, um Gemeinsamkeiten zur Vereinfachung zu nutzen.
Auch das war bei den Fragen mit dabei, das ist die Frage 7.
Was sind verschiedene Arten von Abstraktionen und in die verschiedenen Arten,
die wir hier gesehen haben, waren fachliche Abstraktionen,
technische Abstraktionen, so etwas ist hier gemacht worden.
Ja, und damit nähern wir uns schon dem Schluss,
wenn wir solche Modelle verwenden können, uns helfen sollen,
dann müssen diese Modelle gut sein und sie helfen uns dann in einer Weise,
dass sie die Kommunikation unterstützen, zum Beispiel,
dass sie uns erlauben, etwas zu prüfen, bevor es gebaut ist.
Nämlich, dann haben wir auch noch Einflussmöglichkeiten,
gleichzeitig erlauben Modelle, Informationen zu speichern, Informationen,
Darzuständen in einer Form, dass man sie gut verwenden kann,
nicht nur zum Verstehen, sondern auch für die Einarbeitung,
aber auch, wenn man plant, etwas zu verändern.
Und sie helfen uns dabei, uns das Wesentliche zu konzentrieren.
Das sind Punkte, die uns die Eigenschaften guter Modelle sind,
das war die Frage 8 hier,
welche Nutzen können Modelle für die Softwareentwicklung bringen,
das wären also vier Arten von Nutzen, die Modelle für uns bringt.
Damit sind wir am Ende der Vorlesung,
ich bedanke mich für Ihre Mitwirkung,
weiter geht's mit einem Hens Ont