Wir haben uns den Abschnitt 3-2 damit beschäftigt,
ein System auf ein Softwaresystem auf der Systemebene, also im Ganzen zu betrachten,
um zu analysieren, welche Maßnahmen sollen wo durchgeführt werden.
Damit haben wir Nordsbestimmung gemacht,
wir können die Priorisierung durchführen und das war das Ziel,
Metriken einzusetzen, zu sagen, wo ist es schlecht,
Haptdeckungsanalyse zu sagen, wo,
was brauchen wir überhaupt,
um Visualisierung zu sagen und besonders kritische Punkte,
nachdem dieser 80-20-Riegel zu finden
Die nächste Ebene, mit der wir uns jetzt beschäftigen,
Analyse auf Entwurfs- und Architekturebene hat ein anderes Ziel.
Dabei geht es darum, Architekturstrukturen, Entwurfsstrukturen, Entwurfsideen zu erkennen,
wiederherzustellen und zu nutzen, um Systeme zu restrukturieren.
Fragen, die wir dabei beziehen,
ziehen sich zunächst erst mal auf das Programm verstehen.
Nein, wir wollten ja keinen Strich haben,
sondern ein Nesser-Pointer auf das Programm verstehen.
Zunächst erst mal überhaupt,
was passiert auf dieser Ebene
3-3 ist, ich schreibe einfach die Aufgabe,
die Überschrift hier nochmal.
Analyse auf Modelle und Architekturebene. Wie ist notwendig,
weil wir ja, weil wir diesen Effekt der Architekturerosion haben
Sie erinnern sich hoffentlich bei der Architekturerrosion, ging es darum,
dass im Laufe von Änderungen Strukturen an Qualität verlieren?
Verlust von Strukturen, Entwurfsprinzipien werden verwässert. Diesen Begriff oder
dieser Effekt tritt ja ein, ich wiederhole das nochmal,
was wir vielleicht vor zwei Wochen gesagt haben, dadurch,
dass man unter Zeitdruck arbeitet,
dass man nicht die Strukturen komplett versteht,
dass Dokumentation fehlt.
Lassen Sie uns das
durchaus nochmal aufschreiben
Fehlende und Unaktuelle Dokumente oder Dokumentationen sind eine Ursache.
Fehlendes Verständnis, zum Beispiel der Entwurfsideen und Entscheidungen Und manchmal
eben auch ungenügende Kenntnisse. Ungenügende Qualifikation, man kennt zu
wenig. Zu wenig technische Möglichkeiten, zu wenig Entwurfsmuster.
Sowas wäre noch eine Möglichkeit. Und das Ganze führt dazu,
Änderungen werden unvollständig und teilweise falsch ausgeführt.
Und das führt eben dazu, dass am Ende die Strukturen,
das ist vor allen Dingen für den zweiten Punkt hier und
für den ersten Punkt Strukturanpassungen runterbleiben.
Ja, also man macht zwar Änderungen,
aber man passt die Struktur nicht entsprechend an. Diese,
lassen Sie uns das kurz an einem Beispiel erklären,
ich möchte gern das illustrieren mit dem Entwurfsprinzip Lose Kopplung.
Lose Kopplung gehört zu den Grundprinzipien
Zu den Grundprinzipien, die man einsetzen kann,
um Änderungsausbreitung zu verringern, um Wattbarkeit zu verbessern.
Und man will das erreichen, nehmen wir ein Beispiel,
die Entwickler einer Software haben versucht,
das immer durchzusetzen,
indem sie Übergabe von Werten
statt zu Referenzen haben
Musik Das ist das,
was Entwickler in einer Software gemacht haben und nun bei Änderungen.
Das ist jetzt unser Beispiel. Der Bearbeiter dieser Änderung versteht
Nicht, er wendet das Prinzip nicht an.
Und in der Folge macht er einfach das,
was er gelernt hat,
das naive Vorangehen ist,
Referenzen zu verwenden
Eigentlich muss man sagen,
warum nicht, ist ja ein Grundprinzip der Objektorientierten Programmierung.
Papa enge Kopplung führt zu Schwächen im Entwurf
Nennen wir es Mengen? Auf gut Ebene wird mir von dem Bett Smell sprechen.
Zum Beispiel dem Bett Smell. Shoutgun. The Hurjery für
diejenigen, die das unter ihnen nicht kennen. Schrotschussverletzungen,
die sagen, ich habe eine,
der ganze Code ist irgendwie Verfallverfahrensopferfasert oder auf andere Bett Smells,
die dazu Die Kennzeichen sind dadurch,
dass ich eine kleine Änderung an ganz vielen anderen Stellen auswirkt.
Ja, also deswegen, das sei nur ein Beispiel.
Was wir dagegen tun können. Dieses Prinzip erkennen die Verletzungen des Prinzips erkennen,
das Prinzip wieder verstärken, indem wir dort Umsetzungen,
Änderungen machen, die lose Kopplung wieder einführen,
statt der Übergabe von Referenzen.
Das wäre eine Maßnahme, um das zu tun.
Dazu muss man aber das Ganze erstmal verstehen.
Ja, und da sind wir bei dem Punkt Programm verstehe
Das ist auch hier in unserem, denn der Punkt,
wo sind wir gerade?
Ihr Schwachstellenanalyse auf Architekturebene, Programm verstehen.
Was sind solche Schwachstellen