Herzlich willkommen zum Kapitel 2 der Vorlesung Software Re-Engineering. Bevor wir hier einsteigen,
möchte ich kurz etwas zu dem Modus sagen, zu dieser Frage, handschriftlich oder nicht.
Ich habe die Erfahrung gemacht, dass man wenig behält,
wenn man sich es nur anschaut. Deswegen arbeite ich normalerweise bei richtigen Vorlesungen im Hörsaal mit der Tafel,
entwickle die Sachen an der Tafel,
damit sie sich Schritt für Schritt aufbauen,
damit sie den Vorteil haben, folgen zu können,
damit sie durch ihre Mitschrift das Festhalten noch dazu,
damit sie trennen können zwischen den Sachen,
die ich nur sage und den Sachen,
die es wert sind, aufgeschrieben zu werden.
Nun sind wir hier in dieser Remote-Situation, nicht in der Lage,
wirklich mit einer Tafel zu arbeiten. Das ist das eine. Das heißt,
sie können auch nur hin und her schalten zwischen den Folien und dem,
was sie auf dem Bildschirm,
also auf dem Bildschirm kann ich es ja nur hin und her schalten.
Aber das zweite ist, sie sind gar nicht mehr gezwungen,
mitzuschreiben, weil sie ja einfach nur das Video behalten
können und dann das Ende jeder Tafelseite,
jedes jeder geschriebenen Seite behalte
Ich möchte sie ermuntern, ermutigen, animieren, motivieren,
trotzdem mitzuschreiben. Zum einen, sie haben eigene Notizen,
Notizen sprechen zu einem, das ist dieser Effekt,
der Spickzettel, den ich letzte Woche schon sagte,
man kennt sie dann, man kennt sich damit,
findet sich damit zurecht.
Und zum Zweiten haben sie es durch die Verarbeitung,
durch ihre Steuerung ihres, durch ihr Nervensystems hindurchgehen,
schon mal mehr verarbeitet,
als wenn sie es nur hören,
nur sich anschauen
Nehmt ihr sicher einen Stift, nehmt sie sich einen Zettel.
Schreiben Sie zumindest das, was ich aufschreibe, auch mit.
Und ich verspreche Ihnen, das Geschwindigkeit wird passen.
Sonot können Sie es ja nachschauen. Wie beim letzten Kapitel
und wie immer machen wir immer Rücksprünge zu den Fragen.
In der Hoffnung, dass Sie die Fragen auch,
dass Ihnen die Fragen auch hilfreich sind, bei der Wiederholung.
Und dass ganz klar ist, was ist die Antwort auf
die Frage. Scheunte sich nicht in der Online-Session,
in der Synchronen-Session, Fragerunde, haben wir sie genannt,
dann auch Ihre Fragen loszuwerden zu der Uhrzeit
Und deswegen ist es natürlich günstig, sie schauen sich das
dann an, wenn es an der Zeit ist.
Und jetzt fangen wir an, Kapitel 2,
da geht es um Legacy-Systeme. Legacy heißt Erbschaft,
ja, das ist der erste Punkt, den wir mitschreiben.
Legacy, Erbschaft, Vermächtnis ist noch ein besserer Begriff.
Und ein Vermächtnis, wenn Sie es unterscheiden können zwischen einer Erbschaft,
eine Erbschaft,
Sie erwerben ein Schloss
Das ist etwas, was man bekommt. Man kann natürlich auch Schulden erben,
man muss ein bisschen aufpassen, wenn man so eine Erbschaft
angeboten bekommt vom Notar- oder Nachlassverwalter oder wem auch immer.
Ob das wirklich was Positives oder Negatives ist,
man kann nämlich eine Erbschaft auch ausschlagen,
wenn das Schulden sind, sollten sie es vielleicht ausschlagen.
Das müssen sie nämlich die Schulden bezahlen. Aber ein Vermächtnis
ist eine Verpflichtung. Ja, also wenn sie,
wenn da steht, ich vermache meiner Tochter das und das,
dann ist das auch mit einer Verpflichtung verbunden.
Ja, dann legt man jemanden einfach ein Vermächtnis auf,
man muss sich darum kümmern, man muss einen Schwager auszahlen,
man muss die das Grab immer pflegen oder was auch immer.
So etwas gibt es manchmal bei Erbschaften und hier geht es darum,
dass wir eine Verpflichtung haben, uns um Systeme zu bekümmern.
Dieser Begriff, den Begriff möchte ich in Bezug setzen zu dem,
was wir haben, geschäftskritische Systeme. Geschäftskritische Systeme Aus der Vergangenheit,
es geht ja immer um das Vergangene bei so einem Vermächtnis,
Die Firma hat viel Geld investiert.
Wir hatten das schon beim letzten Mal gesagt,
lange Zeit nutzbar, soll das sein.
Das war jedenfalls die Hoffnung. Und tatsächlich ist es
auch so, Lebensdauer. Häufig größer,
zehn Jahre
Ja, also das ist durchaus ein Horizont,
der über das hinausgeht, was man als Entwickler normalerweise betrachtet.
Wie lange lebt so ein Betriebssystem? Gut,
wir hatten CDs jetzt relativ lange. Sie sind jetzt gerade
ganz am Verschwinden, aber sowas gab es schon lange,
aber Windows 7 hatten wir nicht so sehr lange.
Hatten wir das zehn Jahre? Ich weiß es nicht.
Auf jeden Fall gibt es Systeme, die deutlich länger leben,
teilweise älter als 20 Jahre. Wenn Sie mal überlegen,
wie lang es das gute SAP A3 gibt,
das ist also deutlich länger als 20 Jahre,
ich weiß es gerade nicht.
Und viele von den alten Systemen sind immer noch,
das machen wir gleich klein hier, Geschäftskritisch in dem Sinne,
dass das Unternehmen verlässt sich darauf.
So, wir hatten beim letzten Mal darüber gesprochen,
dass es Änderungen braucht,
ja,
vielleicht erstmal zu dem Begriff
Oder Versuch einer Definition. Es ist ein altes Softwaresystem,
dessen Versagen ganz der Auswirkungen auf die Geschäftsabläufe eines Unternehmens hat
Soweit erst mal, machen wir eine schöne Definition draus.
So, ja, also, das ist, sei mal jetzt unsere Definition.
Ich glaube, damit können wir auch ganz gut leben.
Was wir jetzt sagen müssen, ist dieses System,
was vor zehn oder 20 Jahren entwickelt worden ist,
ist mittlerweile nicht mehr das ursprüngliche System.
Vielleicht mal ein Aber davor
Das ist ursprünglich gelieferte System. Es hat sich im Laufe
der Zeit verändert, diese Änderungen hatten wir halt verändert,
soll das heißen hier
Der Markt oder der Kunde hat sich geändert. Geänderte Gesetze,
geänderte Management-Ziele, war es früher vielleicht schnell auf dem Markt sein,
ist man bei einem System, was reifer ist,
eine größere Firma, kann sich weniger Fehler reißen,
mehr auf Stabilität,
Zuverlässigkeit aus oder auf Skalierbarkeit.
Und natürlich auch Organisationsänderungen
Und all diese Sachen führten zu Änderungen der Software. Soweit schon so klar,
ja, und jetzt ist es so,
dass wir Änderungen immer durchtut, die müssen, ja,
um das Legacy-System in Betrieb zu halten,
Sind diese Änderungen notwendig,
soweit ist das eine Anknüpfung an das letzte Mal notwendig.
Aber Aufwand für Änderungen steigt Je älter das System wird.
Das ist jetzt kein Naturgesetz, das ist eine Beobachtung.
Und wenn Sie jetzt mal den Begriff hier aufwanden für Änderungen nehmen,
das hatten wir beim letzten Mal besprochen, als Wartbarkeit.
Schreiben das korrekt. Wartbarkeit war diese Eigenschaft von Software,
die sagt,
wie hoch der Aufwand Veränderung ist.
Singt. Wie kommt das dazu,
dass Wartbarkeit singt und dass Änderungen teurer werden?
Und das ist jetzt gleichzeitig eins von unseren Wiederholungsfragen.
Und zwar haben wir hier die Frage 1,
warum steigen Kosten mit zunehmendem Alter?
Das ist ja genau das, was wir hier gerade haben.
Der Aufwand für Änderungen steigt.
Das Aufwand sind die Kosten
Steig. So, diese Frage 1,
warum passiert denn das? Zum einen ist das so,
dass unterschiedliche Teams unterschiedlich arbeiten, unterschiedlich Leute unterschiedlich arbeiten.
Jeder hat so einen anderen Arbeitsstil.
Ich bin durch das Wort Entwickler abnehmen,
also verschiedene Entwickler
Bis hin dazu unterschiedliche Entwurfsprinzipien, wenn Sie heute jemanden,
der eigentlich mit Ceples Plus und Java groß geworden ist,
auf ein Cobalt-Programm loslassen würde, das bestimmt anders machen als jemand,
der von Alkohol und Vortragenden von Assembler her zu Cobol gekommen ist,
vor 40 Jahren.
Und das führt dazu, dass wir kaum noch einen konsistenten Stil haben,
Und dadurch höre auch einen beim Verstehen entsteht.
Das nächste kann man doch sagen, was auch noch passieren kann,
das ist jetzt diese Aufzählung für den,
vielleicht machen wir mal wieder hier so ein Sternchen,
damit man das für den normalen Aufzählungen unterscheiden.
Dieser Aufwand, diese Gründe für den Aufwand,
ein weiterer Grund ist, dass wir das vielleicht in einem
veralteten Umgebung,
veralteten Programmiersprache haben
Sprache So, wenn Sie jemanden suchen,
der diese alte Sprache, die alte Plattform,
die alten Tools bis in so alten Programmbibliotheken beherrscht,
da wird es schwieriger Schwieriger Personal zu finden oder
die Qualifikation ist nicht so gut wie das damals war,
als das noch up to date war.
So, das wäre das Zweite. Was wir
auf jeden Fall sagen können, das werden Sie,
glauben Sie mir sofort,
die Dokumentation ist nicht häufig nicht
so gut
Und veraltet, ja. Teilweise gibt es nur den Quellcode
. Und deswegen ist der Aufwand zum Verstehen höher,
auch wieder ein Punkt,
wo Aufwand größer wird
Wir haben beim letzten Mal darüber gesprochen, dass der Aufwand,
dass die Änderungen dazu führen, dass Struktur verloren geht.
Und dieser Strukturverlust macht es schwer, neue Änderungen zu machen.
Das soll hart heißen. Änderungen hat Raben zu Strukturverlust geführt
Das ist höherer Aufwand für das Verstehen, das hatten wir
eben schon. Klar, wenn die Struktur ein bisschen schwerer
zu verstehen ist, dann ist das schon schwierig.
Dann haben wir noch was Weiteres, Auswirkungen von Änderungen
schwieriger einzuschätzen
Das klingt in ein kleines E hinzuschätzen und höre Aufwand beim Testen.
Wenn wir nicht so klar abgrenzen können,
was sind die Änderungen, müssen wir größere Bereiche zu testen.
Wenn wir Testaufwand, das passt heute noch so hin.
Der ist auf Wand
Dann gab es häufig, gibt es häufig Leute,
die optimieren den Code nach allen möglichen Zielen.
Zum Beispiel nach Geschwindigkeit oder sowas. Und das führt dann auch dazu,
dass manchmal, dass Leute nach Speicherplatz optimiert, Geschwindigkeit,
Gut, es gibt sogar sowas wie Twicks.
Jedenfalls, wie gerade eben... Aufwand.
Zum Verstehen. Das muss man erstmal soweit sagen.
Grundsätzlich, da müsste man noch eine zweite Kategorie dazu
Vielleicht nennen wir es nicht Schwierigkeiten,
für nimmt man es eben Aufwand, Zusatzaufwand.
Ich mache das Ende uns nochmal hier. Zufallaufwand aufgrund vorhandener Daten
, das könnte zum Beispiel sein, Unterschiedliche inkompatiblen Dateien.
Daten können als Duplikate vorliegen, das macht es auch schwerer.
Der hat ihn veraltet, schlecht gepflegt, Ungenau, unvollständig.
Weil das führt zu Sachen, die zu Schwierigkeiten,
wenn wir Software ändern wollen, was machen wir dann mit den Daten auch?
Das ist, also das resultiert Entwicklungsaufwand,
aber auch Pflegeaufwand
So, und das Problem ist einfach,
die Kosten steigen über die Zeit. Das ist,
das haben wir eigentlich schon, eingangs schon gesagt,
ja, aber. Und diese Kostensteigerung sieht ungefähr so aus,
wenn wir die Zeit haben und hier die Kosten,
dann ist das nicht linear, was man hoffen würde.
Das wäre ja super schön. Nein,
diese Kurve sieht durchaus irgendwie so aus
Und wenn die so aussieht, dann gibt es irgendwo
der Punkt. Ihre Thorsten sind nicht mehr tragweit,
die Ressourcen sind nicht mehr vorhanden und wir wollen dann gerne erreichen,
dass wir da besser werden.
Ja, und diese Kurve kosten über Zeit,
die entsteht Die entsteht durch den Strukturverlust.
Ja, also Fehler haben Volkefehler zur Kurve und deswegen
haben wir so eine exponentielle Kurve.
Und das müssen wir versuchen zu verhindern. Wir müssen versuchen
. Und der Schlüssel dazu, wart, warum halt.
Ja, halten. Ja, also der Schlüssel dazu ist,
dass wir diesen Aufwand für Änderungen,
in denen wir hier oben geschrieben haben
Dass wir diesen Aufwand für Änderungen, dass wir den,
dass wir das erhalten.
Das ist das Ziel. Lassen wir uns kurz anschauen,
wie typische Strukturen für Legacy-Systemen aussehen.
Das macht man nach dem nächsten Abschnitt