Wir haben im ersten Teil der Vorlesung darüber gesprochen, was Komplexität ausmacht,
wie man mit Ingenieur gemäßen Mitteln diese Komplexität beherrschen kann.
Und wir möchten jetzt, ich möchte jetzt etwas mehr zur Modellierung kommen. Ja,
wir werden jetzt als erstes mit die Frage 5 beantworten,
was sind die grundsätzlichen Konzepte, Modellierung oder überhaupt mit Komplexität umzugehen?
Eines der Probleme bei Komplexität ist, dass wir,
dass unser Kurzzeitgedächtnis eigentlich das nicht sehr gut unterstützt. Ja,
wenn wir einfach zu viel Kurzzeitgedächtnis, sagen wir mal so,
Das kennt jeder von Ihnen von irgendwelchen Zahlenspielen, von Tricks, von Merckspielen.
Unser Kurzzeitgedächtnis kann im Schnitt sieben plus minus zwei Informationen aufnehmen,
behalten, verarbeiten. Wenn wir sehr komplexe Systeme haben,
reicht das bei weitem nicht aus. Diese Folie stellt grundsätzlich
drei grundsätzliche Wege dar, wie man damit umgehen kann.
Und das ist das, was wir im kommenden behandeln wollen.
Und auch das ist das, was wir durchklären durch diese Veranstaltung,
immer wieder in den Konzepten der Programmierung,
der Softwareentwicklung,
des Software-Engineering
wiederfinden werden
Und zwar hilft es uns, etwas zu zu zu strukturieren,
dass wir es leichter verstehen können,
dass wir es leichter merken können,
dass wir es leichter zuordnen können.
Und da hilft es uns, Dinge zu vereinheitlichen, besser zu strukturieren.
Das ist der Schlüssel mit Komplexität und mit Veränderung umzugehen.
Drei grundsätzliche Konzepte möchte ich hier kurz vorstellen. Zunächst das
Aufteilen auf Englisch Junking. Ich teile das auf in Portionen,
Einheiten. Diese Einheiten brauche ich dann nur noch als Blog
zu behandeln und damit habe ich weniger Einheiten, die ich überblicken muss.
Dafür kann ich Details ignorieren, die sind innerhalb der Einheiten,
wenn ich mich doch drum kümmern muss,
muss ich halt innen reingehen, muss mir das genau angucken.
Dieses grundsätzliche Prinzip der Aufteilung des Junking ist zum Beispiel in den IT-Prinzipien Software-Engineering-Prinzipien,
Modularität, Information-Highting, Kapselung und Separation of Concerns,
Trennung nach Verantwortlichkeiten.
Wie heißt das auf Deutsch? Darin ist das abgebildet.
Ein zweites, sehr wichtiges Prinzip ist das Umgehen mit Hierarchien
Mit Hierarchien, das können wir übernehmen,
zum Beispiel aus der Pflanzen- und Tierwelt,
da haben die Biologen große Strukturen aufgebaut, durch haben festgestellt,
wie ging denn das mit der Abstimmung,
also da aus dem und der,
aus der und deren Pflanze wurde das und das für eine weitere Pflanze und irgendwann gab es die Ankeimleblätterchen und die zwei keimblättrigen Pflanzen und dann die mit der Blüte und der Blüte und der Blüte,
das ist ein Baum und durch diese,
durch die Einordnung in der Baumstruktur,
durch den Platz in der Baumstruktur sind die Einstellungen,
die Eigenschaften,
sorry,
die Eigenschaften
sehr genau beschrieben
Ja, und diese Hierarchie hilft mir, Eigenschaften zu beschreiben,
ohne jedes Mal die Fülle der Details wissen zu müssen.
Ich weiß gleich, okay, es ist eine Pflanze,
es ist ein Lebewesen, das ist irgendwie grün,
arbeitet mit Glorophyll, hat Sauerstoff, wenn ich nur sage, pflanze.
Und wenn ich dann weiß, zwei kalbblättrige Pflanze oder das und das,
Blütenstand, irgendwas, der Experte weiß, damit gleich eine Menge Eigenschaften.
Diese Hierarchien helfen uns mit vielfältigen Eigenschaften umzugehen,
im Softwareentschieden haben wir das Prinzip der Abstraktion,
der Zerlegung, Dekomposition heißt das, der Verallgemeinerung,
Generalisierung und in solchen Bäumen verbieten wir Zyklen
Schleifen von wechselseitigen Abhängigkeiten sind da, sind durch dieses Verbot, wird es leichter beherrschbar.
Das dritte Prinzip, wie wir damit umgehen können, sind Muster.
Pattern, Design Patterns haben sie alle schon mal gehört,
bin ich sicher. Ich habe hier als Beispiel ein Schachspiel mitgebracht,
weil es ein berühmtes Experiment gibt,
wo man gezeigt hat, dass der Mensch mit Strukturen,
die er wiedererkennt, sehr viel besser umgehen kann.
Und diese Strukturen, die wir wiedererkennen,
das ist das, was wir bei Patterns nutzen,
uns zunutze machen
Das Experiment so, dass man eine bestimmte Menge von Schachfiguren
auf einem Schachspiel aufgestellt hat, hat es jemanden eine kurze Zeit gezeigt,
sagen wir mal drei oder fünf Sekunden.
Dann hat man ihm ein Leeresbrett gegeben mit den Steinen.
Er sollte aus dem Gedächtnis die Steine alle wieder hinstellen.
Die Menschen waren da unterschiedlich gut oder sagen wir besser unterschiedlich schlecht,
damit sich komplexe Sachen zu vermerken. Aber es hat sich ganz klar gezeigt,
dass die Schachexpertin, die da bestimmte Strukturen erkannt haben,
sehr viel mehr merken konnten und sehr viel mehr merken konnten
und sehr viel mehr an dieser kurzen Zeit speichern konnten,
erkennen konnten und wieder produzieren können und das wieder hinstellen
konnten,
als die Nicht-Schachkenner
Mit einer Einschränkung, wenn diese Struktur der Figuren keinen sinnvollen Schachregeln folgte.
Das war irgendwie Schwachsinn, was da stand. Dann konnten die,
waren die Experten, die Schachkenner auch nicht besser als die Durchschnittsmensch.
Also die Struktur, das Wiedererkennen von bestimmten Schachkonstellationen hat den Experten geholfen,
damit besser umzugehen, mehr davon zu merken.
Und das versuchen wir mit Design Patterns zu lösen.
Ja, wir wollen wiedererkennbare Strukturen haben. Und man möchte
diese wiedererkennbaren Strukturen einheitlich machen, das Wort für Einheitlichkeit heißt,
dass man die Konzepte immer wieder macht, konzeptuelle Integrität.
Dass ich es nicht mit Widersprüchen mache, konsistent, ja,
die Einheitlichkeit nochmal unter sich versuche, das einfach zu gestalten.
Grundsätzliche Prinzipien mit Komplexität umzugehen und das ist dann das,
was hier in der Frage 5 dargestellt wird,
wo ist die Frage 5 hier,
grundsätzliche Ansätze, Komplexität wieder beherrschbar zu machen. Ja,
halt, hier waren wir nicht, wir waren schon weiter,
wir waren Hier, und jetzt möchte ich zur Modellierung kommen,
als eine Möglichkeit, Abstraktion einzuführen.
Das war eines der Prinzipien, die wir hier hatten.
Ja, wie kann ich sowas darstellen? Modularität hilft mir dann
auch. Und diese Muster darstellen, dazu hilft mir Modellierung.
Und Modelle möchte ich mal mit dem Begriff anfangen. Ja,
also vereinfacht, es gibt eine ganze Reihe von Definitionen,
was ein Modell ist. Ja, ein Model,
ein Modell kann ein Typ sein oder eine Person,
die hübsch aussieht und Bekleidung vorführt.
Aber wir sehen es als vereinfachte Repräsentation,
um etwas aus der realen Welt
zu erklären
Ja. Und, ne, wo geht das weiter hier?
Genau. Und dazu gibt es ein Sprichwort, was
Albert Einstein zugeschrieben wird. Man sollte versuchen, die Welt
so einfach wie möglich zu machen, aber nicht einfacher.
Und dieses, wofür brauchen wir das? Ja, wofür benutzen
wir etwas? Was kann man weglassen? Das hat,
das es entscheidet, sich dadurch, wofür brauche ich das Modell?
Wenn ich einen bestimmten Sachverhalt brauche,
kann ich manche Informationen weglassen und andere brauche ich unbedingt
Das heißt, dieses nicht einfacher, nicht das Richtige weglassen,
das ist das Entscheidende. Und darauf möchte ich kurz eingehen
. Ich möchte sagen, wir sollten immer klar überlegen,
klar entscheiden, wofür brauche ich ein Modell?
Der Verwendungszweck bestimmt, was ich brauche. Ein Gebäudemodell ist vielleicht
für den optischen Eindruck des Bauherren oder der Anwohner wichtig,
übrigens sie entscheiden, darf das da gebaut werden oder nicht.
Ein Grundriss hilft mir zu sagen, ja, sind die Räume gut geschnitten?
Kann ich dort Möbel stellen? Habe ich dort Fluchtwege oder sowas?
Ein Kostenplan ist auch ein Modell. Der lässt alles weg,
wie die Leute zusammenarbeiten, Arbeit,
die Reihenfolge der Arbeiten ist da,
was kann nur weggelassen werden,
wenn ein anderes stattfindet
Und hilft mir bei der Aufstellung der Finanzierung.
Oder es gibt für die verschiedenen Arbeitsdisziplinen, also Gewerke,
gibt es einen Plan, wie in welcher Reihenfolge,
die wie zusammenarbeiten, was muss abgestimmt werden.
Und nur das, was ich brauche, was für den Zweck relevant ist,
das nehme ich in das Modell auf, alles andere darf ich weglassen.
Es kommt also darauf, das Ziel ist es,
keinesfalls das irgendwie vollständig darzustellen, wenn ich es vollständig hätte,
könnte ich auch das Original nehmen.
Und dann hätte ich die ganze Komplexität. Ich nehme nur das,
was ich brauche und dabei kann ich eine bestimmte Modellierungssprache,
Modellierungsmethode nehmen, Fachbegriff dafür heißt Kalkül.
Nur das, was wir mal gehört haben,
brauchen wir sonst nicht weiter in dieser Lehrveranstaltung.
Ja, also ich möchte das Richtige wählen. Ich fange
mal mit einem Beispiel an, was Sie alle kennen.
Der Hamburger UNS-Bahn-Plan ist ein Modell, erstellt die Realität nicht komplett da. Ja,
manche Sachen der Realität sind da, nämlich zum Beispiel die Linien,
hier in dem Fall ist es ein Plan,
nur der Hauptlinie, die Busselinien fehlen hier.
Ja, wir sehen hier die Linien, die es gibt,
was man auch noch so ganz schematisch sieht,
ist hier die Elbe, aber nicht so wirklich genau.
Also das ist ja nur, hier gibt es
nur Winkel von 45 und 90 Grad
Und man kann jetzt zum Beispiel nicht sagen,
wie weit ist jetzt der Flugplatz von Niendorf Markt weg.
Das kann man hieraus nicht ablesen.
Oder wie lange ist die Fahrzeit zwischen den Stationen?
Das kann ich hier nicht ablesen. Die sind einfach nur aufgereiht.
Also manche Informationen sind da, andere sind nicht da.
Was ich hier gut sehen kann, ist, wo kann ich denn umsteigen?
Also wenn ich von hier nach hier will,
dann weiß ich, okay,
ich könnte hier mit der gelben fahren und dann hier mit
der roten oder ich könnte hier gleich zwischen blau und rot umsteigen irgendwo hier am Hauptbahnhof oder am Jungfernstieg.
Ja, also das zeigt dieses Modell, anderes lässt es
Ja, hier stehen noch zusätzliche, wer ganz genau hinschaut,
sieht hier noch die kleinen Rollstuhlsymbole.
Also wenn ich mit einem Rollstuhl unterwegs bin,
dann gibt es ein paar Haltestellen,
wo ich dann lieber doch nicht aussteigen sollte,
sondern lieber zur nächsten fahren und dann mich auf den Gehweg bewegen sollte.
Ein anderes Modell damit verwandt, was andere Eigenschaften darstellt,
ist zum Beispiel das. Manche Informationen stehen dort auch drin,
zum Beispiel die Folge der Haltestellen, bei manchen Sachen auch eingeschränkt,
wo ich umsteigen kann, aber hier sind noch andere Sachen.
Zum Beispiel die Folge, die Fahrzeit.
Welche Haltestelle wird wann bedient? Hier gibt es Haltestellen,
die werden nicht bedient von einer bestimmten Linie
Ja, hier gibt es zu bestimmten Zeiten, wird Altona bedienen.
Zu bestimmten Zeiten wird Altona nicht bedient. Das sind,
das steht hier drin und natürlich, weil es die erste Fahrt,
was ist die letzte Fahrt, wie häufig fährt das Ding?
Das sind Informationen, die hier drinstehen, manche anderen Informationen entsprechen dem anderen.
Als Beispiel dafür, was ein Modell macht, eingeschränkte Abbildung der Realität.
Wenn wir wieder dieses Zweck, wofür brauchen wir ein Modell,
das brauchen wir als bewusste Entscheidungen, wir müssen überlegen,
was können wir mit dem Modell machen,
was wollen wir mit dem Modell machen und davon dann ableiten,
was brauchen wir für Informationen darin
Beispiele, ich möchte mit dem Modell etwas machen,
was ich im Original nicht machen kann. Zum Beispiel,
ich will einen neuen Flügel für Flugzeuge entwickeln,
der vielleicht weniger Geräusch macht, wen der Wirbel verursacht,
wenn ihr Treibstoffverbrauch erzeugt.
Ja, und das will ich im Windkanal machen an einem
kleinen oder größeren Modell oder gar an der Computersimulation.
Das ist nicht die Realität, das ist nicht das Original.
Ich möchte bestimmte Aspekte eines komplexen Gebildes untersuchen,
Geschäftsabläufe in einer Firma oder demografische Prozesse,
zum Beispiel während einer Pandemie
Das kann ich ganz schlecht in der Realität ausprobieren,
sondern ich kann da Computersimulationen zum Beispiel machen mit einem Modell.
Manchmal möchte ich mich verständigen zwischen Partnern,
zum Beispiel zwischen Auftraggeber und Hersteller oder zwischen Spezialisten,
die die Prüfung durchführen und die die Entwicklung durchführen.
Für Hausbau, für Softwarekonstruktionen, zum Beispiel für Fluchtwege oder Feuerausbreitung.
Oder ich möchte etwas festlegen, beschreiben, was möchte ich
damit machen. Im Softwaresoftwareentwicklung sagt man dafür Requirements,
die Anforderungsbeschreibung, Spezifikation.
Oder ich möchte
ein Modell prüfen
Oder mittels dieses Modells kann ich dann prüfen. Nachweisen,
dass diese dargestellten, diese relevanten Eigenschaften da sind.
Und so eine Prüfung kann dann zum Beispiel für Performance genutzt werden,
wie wird das einfach Zeitverhalten sein, lange bevor ich das System fertig habe.
Vielleicht nicht mit der totalen Genauigkeit, aber ich kann ja eine Vorhersage machen.
Es gibt verschiedene Modelle. Wir hatten eben gerade zwei gesehen von HVV,
aber hier möchte ich zwei darstellen, die aus der Softwareentwicklung stammen.
Ein Objektdiagramm, das zeigt Zustände. Hier ein Objekt der Klasse Sparbuchen,
ein Objekt der Klasse Zinnsatz und die Die beiden hängen zusammen,
also der Zinssatz, auf den wird hier verwiesen.
Und je nachdem, wie der Zinssatz ist, in dem Fall
dummerweise gerade null. Ja, wir alle kennen das,
wie schade das ist, dass wir keine Sinsen bekommen,
sofern sie dein Geld haben, wenn sie Zinsen zahlen müssen,
freut man sich das.
Und es gibt ein Saldo. Also das ist der Zustand
eines Systems, in dem Fall Zustand eines finanziellen Systems.
Und ein anderes Diagramm, was Abläufe zeigt, Verhalten zeigt,
Interaktionen ist das Sequenzdiagramm. Beide sind Diagramme der UML.
Ja, hier sehe ich jeweils,
das sind die Beteiligten
Objekte, ein Objekt der Klasse-Überweisungsmanager,
ein Objekt der Klasse-Girokonto und noch ein weiteres Objekt der Klasse-Girokonto
und da mache ich eine Überweisung zwischen zwei Girokonten, Hebeabzahle ein,
wenn es fertig abgeschlossen ist, ist die Transaktion zu Ende.
Ja, also hier zeige ich das Zusammenspiel mit solchen Pfeilen hier als Nachrichtenaufruf.
Wenn ich solche Modelle aufstelle, muss ich nicht nur entscheiden,
was ist der Zweck, das was wir eben gerade hatten,
sondern ich muss auch darstellen, ich sollte auch trennen,
was ist Aufgabenstellung und was ist Bestandteil der Lösung.
Dafür gibt es zwei Begriffe, Problemraum und Lösungsraum.
Auf Englisch, Problemdomain und Solution-Domain. Diese beiden,
die Trennung der beiden Sachen ist sehr hilfreich dabei zu sagen,
was möchte ich bauen, was ist das Ziel und wie baue ich es.
Ich kann unterschiedliche Begriffe dafür verwenden, weil dieses,
was möchte ich, kann ich zum Beispiel mit jemandem,
der Auftraggeber aus der Kategorie der Auftraggeber,
die nicht unbedingt Informatiker sind, besprechen.
Und die technische Realisierung kann dann Details enthalten,
die für die technische Lösung,
für die Bewertung der technischen Lösung wichtig sind und die dürfen
durchaus Spezialbegriffe der technischen Technik behalten
Ich sollte das nicht vermischen, weil wenn ich hier in den Anforderungen schon sage,
das wird die Lösung, dann greife ich auf die Lösung vor.
Nicht, dass das verboten ist oder böse,
aber damit schließe ich manchmal gute Lösungen aus,
indem ich den Freiheitsgrad beschränke. Nämlich, wenn ich sage,
das muss mit dem und der Datenbank gemacht werden,
dann habe ich performancemäßig, vielleicht hätte ich,
vergebe ich mir bessere Möglichkeiten,
weil ich eine andere Struktur von Datenbank oder ein anderes Produkt nehmen könnte.
Wenn ich das trenne, habe ich den Vorteil,
dass ich technische Entscheidungen explizit auf dieser Seite machen kann.
Hier beschreibe ich die Ziele, hier beschreibe ich
die Entscheidungen zu diesen Zielen hin und damit komme ich,
habe ich die Chance zu besseren Lösungen zu bekommen.
Ich betone das deswegen, weil es ist nicht so einfach.
Ich kann nicht einfach sagen, okay, technisch ist es
unbedingt auf dieser Seite Lösungsraum und alles Nicht-technische ist hier.
Nein, manchmal habe ich auch Anforderungen oder Randbedingungen,
die technische Sachverhalte beinhalten. Der Punkt ist immer,
wo stecken Entscheidungen hier?
Das ist ein wichtiger Punkt
Das war gleichzeitig die Antwort auf die Frage 2,
auf die Frage 6 hier. Problemraum, Lösungsraum,
warum sollte man das trennen? Oder vielleicht eine ähnliche Frage
könnte auch sein, was ist denn ein Problemraum?
Was ist Lösungsraum? Wir machen mal weiter und sprechen über Abstraktion.
Das war ja auch eines der Mittel, um Komplexität zu beherrschen.
Abstrakt heißt häufig für viele, oh, schwer verständlich.
Eigentlich bedeutet abstrakt, ich lasse etwas weg.
Ich lasse, konzentriere mich auf das Wesentliche.
Und Modelle sind das, was
diese Abstraktion ermöglicht
Abstraktion ist dabei ein zentrales Hilfsmittel, um Details wegzulassen,
die wesentlichen Sachfalte herauszuarbeiten, sich mit diesen zu beschäftigen.
Ich kümmere mich um die wichtigen Aspekte, statt alle Eigenschaften.
Das kann man zum Beispiel machen, indem man sich auf eine Sicht repräsentiert.
Eine Sicht, wir haben das bei diesem HVV-Modell schon gesehen.
Wir haben nur die Sicht der Linien oder nur die Sicht
des Zeitplans für eine Linie.
Und damit kann ich mich auf das Wesentliche konzentrieren.
Ich kann Gemeinschaft, gemeinsame Eigenschaften von verschiedenen Elementen herausheben,
um die Unterschiede zu bewerten
Ja, und dabei kann ich Verallgemeinerungen zum Beispiel benutzen.
Ich hatte vorhin diese Hierarchie als Prinzip, ja,
Hierarchie gliedert Abstraktionen, zum Beispiel die Klasse der Insekten,
kann ich trennen von der Klasse, der ist spinnen.
Ich weiß jetzt nur, die einen haben sechs,
die anderen um acht Beine.
Da gibt es viel mehr Unterschiede, die ich hier machen kann,
mit Hilfe, von gemeinsam zusammenfassen in einer Hierarchie.
Oder ich kann dieses Problemraum, Lösungsraum trennen,
indem ich fachliche Fakten und technische Entscheidungen voneinander trenne.
Auch das ist eine Möglichkeit der Trennung, der Zerlegung.
Und dann ist es leichter, Aus Einzelfällen gemeinsames Herauszufassen,
zum Beispiel fachliche Abstraktionen, die gemeinsam Eigenschaften aller Kunden,
indem ich von dem Geschäftsobjekt Kunde spreche.
Ich arbeite gemeinsames Heraus, lasse nicht irgendwas weg,
sondern nur die Sachen weg, die ich gerade nicht brauche.
Und das ist das, was wir beim Modell machen wollen.
Und das ist das, was das Prinzip Abstraktion uns bringt.
Das war auch, das war hier die Frage 7,
verschiedene Arten von Abstraktionen.
Wir haben gleich noch weitere. Wir machen mal hier weiter
, was gute Modelle sind
Gute Modelle sind welche, die die Kommunikation fördern,
die uns nicht fluten mit Informationen, sondern uns auf das Wesentliche helfen zu konzentrieren.
Das braucht man gut für die Einarbeitung,
das macht man für die Abstimmung zwischen bei Diskussionen,
bei Problemen oder auch für die Lösung von Problemen.
Gute Modelle erlauben frühzeitige Prüfung, ja,
ich habe das Modell mit den wissentlichen Bestandteilen und kann vielleicht frühzeitig schon prüfen,
wie sicher ist denn das vor fremden Zugriffen,
wie performant wird denn das oder habe ich dort Bottlenecks,
Flaschenhälser, ja, und nicht erst,
wenn das System fertig ist und dann stelle ich fest,
oh,
es ist zu langsam oder unsicher
Gleichzeitig durch die Konzentration, auf die wesentlichen Informationen gelingt es
uns, diese Informationen zu konservieren. Den wirklichen Kern,
das essentielle im Modell darzustellen, für Verstehen, für Veränderung,
für Wiederverwenden. Und wir erlauben die Sicht für Spezialisten,
die zum Beispiel beim Gebäude, hatte ich vorhin gesagt,
Feuerschutz oder bei Verschlüsselung oder Sicherheitsstrukturen, die uns erlauben,
genauere Entscheidungen zu treffen und bessere Verflösungen zu entwickeln
als Durchschnittslösungen
Damit sind wir am Ende der Vorlesung zur Einführung. Ich möchte einen Ausblick bieten,
was wir weiter machen werden. Also wir haben diese verschiedenen Konzepte,
von denen ich heute gesprochen habe, in den verschiedenen Vorlesungen weiter,
also in der Vorlesung, diese Strukturieren durch moderne,
modularisieren werden mit der Vorlesung 2 und 5 nochmal haben,
in der Übung 5, Hierarchien, Strukturbildung wird in 3, 4,
5 der Vorlesungen passieren und eine Übung 3 und 4,
fachliche Konzepte zum Strukturieren nutzen wird vor allen Dingen,
wenn es um Modellierung geht,
6,
Und die Übung sechs. Mustern, Design-Patterns, dazu gibt es speziell die Vorlesung. Acht. Und in einer Übung kommt das vor,
der Entwicklung, die Entwicklung von interaktiven Systemen mit Methoden,
in dem Fall hören wir die Methode, wann,
ihnen oder jedenfalls ein Auszug daraus vorstellen, in 7,
8, 9 und guten Entwurf vorstellen, aufrechterhalten,
auch durch Refactoring zum Beispiel in 10, 11,
12. Abschließend haben wir noch einen Abschnitt zu einer Vorlesung,
wird gewidmet der funktionalen Programmierung als ein weiteres Programmierkonzept,
während die anderen Konzepte,
Abschnitte 1 bis 6 geht es um Objekte und Tiro,
Objekte und Tierte Programmierung, das Programmierparadigma und funktionale Programmierung ist ein anderes Programmierkorrektma,
was es auch lohnt zu kennen,
weil es für bestimmte Problembereiche bessere Lösungen ermöglicht.
Damit sind wir so weit durch, hier noch ein Vorschau,
welche Symbole sie in der Vorlesung auf den einzelnen Folien mal finden werden,
Ausblick, Zusammenfassungen, Vertiefungen, Definitionen,
die Symbole sollen ihnen helfen, die richtigen Teile zu finden.
Manchmal benutzen wir die UML-Notation, hier dieses Symbol oder Java-Beispiele,
Dafür, es gibt eine Reihe wichtige Lehrbücher, die wir Ihnen empfehlen können.
Java lernen, das sind fallen Bücher auf dieser Seite.
Hier auch mit UML und weiterer Bücher zu Java
auf dieser Seite und Grundlagenwerke zu Objekte undierten Konzepten
sind hier nochmal zusammengestellt. Soweit sind wir da.
Es gibt noch weiterführende Bücher. Natürlich,
es gibt ganz viele, aber hier, die sind die,
die wir empfehlen für Software Engineering, auch weiterführend,
doch sie können auch weitere Veranstaltungen noch in kommenden Semestern besuchen.
Wir haben zum Beispiel, ich halte mit Kollegen eine Veranstaltung,
Softwaretechnik, wo es um Software-Engineering geht,
die können Sie im vierten Semester gern besuchen.
Das wäre ein Punkt dann noch. So, ich glaube,
das ist zu Ende, ja, jetzt sind wir fertig.
Vielen Dank für diesen Teil von mir und Sie können im
Hens Unteil von Dirty Flitters hoffentlich noch ein paar praktische Beispiele entnehmen,
um diesen eher konzeptionellen Teil gut auf ihre eigenen Erfahrungen,
auf das praktische Tun umzusetzen.
Ich freue mich auf Ihre Fragen zu dieser Vorlesung,
sammle Sie die gerne schon und wir schauen uns die,
wir gehen die gemeinsam durch.
Vielen Dank