Software ist
starr, d.h.
- Abhängigkeiten schwer zu überschauen
- Unvorhersehbare Nebeneffekte treten auf
bei jeder Änderung im Ablauf oder Austausch von Modulen
- Aufwand für Modifikationen kaum abzuschätzen
- Management Vorgabe
``Don't touch a working system''
Software ist
fragil, d.h.
- Kleine Änderungen haben grosse Nebenwirkungen
- Viele, schwer zu überschauende Stellen müssen angepasst werden
- Gefahr einiges zu übersehen
Bug
- Wenn
kann das System nicht mehr
weiterentwickelt werden.
Software ist
nicht wiederverwendbar, d.h.
- Code zur Lösung eines Problems schon vorhanden
- Enthält aber Abhängigkeiten auf viele andere, für Problem
irrelevante Dinge
- einige kleinere Anpassungen nötig
- 2 Möglichkeiten:
- Man übernimmt Verantwortung für den code und die nötigen Anpassungen
- Man macht unabhängige
cut& paste Kopie des benötigten codes.
- Idealerweise möchte man den code aber einfach nur
benutzen und nicht
Verantwortung für Maintenance übernehmen.
Dependency Management
- In einem grossen Software Projekt sind eine Vielzahl von Abhängigkeiten
zwischen den einzelnen Komponenten unvermeidbar
- Entscheidend ist die Kontrolle der Abhängigkeiten der einzelnen Komponenten
- OO Methoden um Abhängigkeiten zu überwachen, z.B. UML Diagramme
- OO ``Tricks'' um Abhängigkeiten zu minimieren
(abstrakte Klassen, Interfaces)
GDuckeck
2019-08-01