Lehmans Software-Klassifikation
Details
- Vollständiger Name
-
Lehmans Software-Klassifikation (S-/P-/E-Type) und Gesetze der Software-Evolution
- Auch bekannt als
-
SPE-Klassifikation, Lehmans SPE-Taxonomie
Kernkonzepte:
Drei Software-Typen, klassifiziert nach ihrer Beziehung zur realen Welt:
- S-Type (Specification)
-
Software, deren Problem vollständig und formal spezifizierbar ist. Korrektheit ist gegen die Spezifikation beweisbar. Die Welt außerhalb des Programms ist für seine Gültigkeit irrelevant. Beispiel: ein Sortieralgorithmus, ein Compiler für eine formal definierte Sprache.
- P-Type (Problem)
-
Software, die ein reales Problem löst, das nicht vollständig spezifiziert, sondern nur approximiert werden kann. Die Spezifikation ist ein Modell des realen Problems; die Lösung muss gegen das echte Problem validiert werden, nicht nur gegen die Spec. Beispiel: ein Schachprogramm, ein Wettervorhersagesystem.
- E-Type (Embedded)
-
Software, die Teil der realen Welt wird und diese durch ihren Einsatz verändert. Dieser Einsatz verändert wiederum die Umgebung und damit die Anforderungen — es entsteht eine Rückkopplungsschleife. Die meiste Business- und Organisationssoftware ist E-Type. Ein "korrektes" E-Type-System wird mit der Zeit inkorrekt, selbst wenn sich in ihm nichts ändert.
- Gesetze der Software-Evolution
-
Lehman leitete acht Gesetze aus der Beobachtung von E-Type-Systemen ab, darunter Continuing Change (E-Type-Systeme müssen kontinuierlich angepasst werden, sonst werden sie zunehmend unbefriedigend), Increasing Complexity (Komplexität wächst, sofern nicht aktiv reduziert), Self-Regulation, Conservation of Organisational Stability, Conservation of Familiarity, Continuing Growth, Declining Quality und Feedback System.
- Schlüsselvertreter
-
Meir M. Lehman ("Programs, life cycles, and laws of software evolution", Proceedings of the IEEE, 1980); später mit Laszlo Belady weiterentwickelt ("Program Evolution: Processes of Software Change", 1985).
Wann zu verwenden:
-
Um zu erklären, warum "fertige" Business-Software laufende Investitionen braucht
-
Entscheidung, wie viel Aufwand in formale Spezifikation vs. Validierung mit Nutzern fließen soll
-
Rahmen für Requirements-Diskussionen — E-Type bedeutet, dass Anforderungen ihrer Natur nach weiter wandern, nicht weil etwas schiefgelaufen ist
-
Argumentation, warum TDD und formale Beweise sauber auf S-Type passen, aber bei E-Type subtiler sind
-
Wartungsbudgets schätzen und gegenüber Stakeholdern rechtfertigen
-
Architektur-Trade-offs: E-Type-Systeme brauchen Änderungsfreundlichkeit vor allem anderen
Verwandte Anker:
-
arc42 - Dokumentationstemplate, gut geeignet für evolvierende E-Type-Systeme
-
Kohäsionskriterien - Hohe Kohäsion senkt die Kosten kontinuierlicher Änderungen in E-Type-Systemen