Von der Entwicklung bis zur Pflege – der Lebenszyklus einer Software

Beziehen sich die Paradigmen des Programmierens auf die grundsätzliche Technik des Programmierens und die Auswahl der Sprachen, so beschäftigt sich dieser Abschnitt mit den Prinzipien, die in jedem Projekt als Leitlinien dienen sollten. Denn die Anforderungen an die Programmierung von Software sind in den letzten Jahren eindeutig gestiegen. Vorbei sind die Zeiten, in denen ein Programmierer lustig drauf los programmierte und alle zufrieden waren, wenn am Stichtag X ein halbwegs fehlerfreies Produkt zum Laufen gebracht wurde. Heute kommt es darauf an, dass Produkte geschaffen werden, die

  • ausbaubar und erweiterbar sind
  • änderbar sind
  • durch andere Programmierer zu bearbeiten sind
  • eine relativ lange Lebensdauer haben

Softwareprinzipien werden für den gesamten Lebenszyklus einer Software postuliert, von der Entwicklung bis zur Pflege.

Prinzipien der Softwareentwicklung

1. Das Abstraktionsprinzip
In der Programmierung einer Software sollte nicht allein die konkret eng gefasste Aufgabe leitend sein, sondern die Abstraktion dieser Aufgabe. Wenn verlangt wird, die Arbeitsstunden der Lagerarbeiter zu erfassen und den resultierenden Lohn daraus zu berechnen, so sollte die Programmierung auf eine Modelllösung ausgerichtet sein: Erfassung von Arbeitsstunden und Lohnberechnung aller Lohnarbeiter.

2. Das Hierarchisierungsprinzip
Jede Struktur eines komplexen Systems soll in ihrer gegenseitigen Abhängigkeit in jedem Programm in Form eines hierarchischen Aufbaus ablesbar sein.

3. Das Strukturierungsprinzip
Eine Gesamtaufgabe muss in nachvollziehbare Teilaufgaben gegliedert werden, ein Gesamtsystem in einzelne Strukturelemente.

4. Das Modularisierungsprinzip
In der Programmierung sollen funktionale und in sich geschlossene Subsysteme gebildet werden. Die Subsysteme müssen austauschbar sein. Schnittstellen zwischen den Subsystemen werden definiert.

5. Das Lokalitätsprinzip
Es wird erwartet, dass logisch zusammenhängende Informationen (Daten und Funktionen) am gleichen Ort komprimiert abgelegt werden.

6. Das Dokumentationsprinzip
Jeder Softwareabschnitt soll als Vorspann eine Dokumentation dessen erhalten, was der Programmteil ausführt und verlangt.

7. Das Standardisierungsprinzip
Zum Verständnis der Software trägt bei, dass bestimmte Lösungsreihenfolgen eingehalten werden: Modulname, Dokumentation, Variableninitialisierung, Kontrollstrukturen, Rückgabewert.

8. Das Mehrfachverwendungsprinzip
Einfügen einer allgemeinen Sortierroutine. Softwareteile sollen so ausgearbeitet und bereitgestellt werden, dass sie von anderen Entwicklern wieder verwendet werden können.

Prinzipien der Qualitätssicherung

1. Das operationale Qualitätseigenschaftsprinzip
Klingt kompliziert, ist aber einfach. Damit meint man, dass in einem Projekt von vornherein Qualitätsmerkmale einer Softwarefunktion festgelegt werden, die dann auch nachprüfbar sind. Im Beispiel der Stundenerfassung Lagerarbeiter sind das maximale Anzahl der Stunden und Wertebereiche der Löhne.

2. Das konstruktive Qualitätssicherungsprinzip
Vorausblickend sollen Maßnahmen ergriffen werden, um Fehlerquellen zu unterdrücken. Zum Beispiel sind Vektoren so zu dimensionieren, dass keine „core bus errors“ auftreten.

3. Das Fehlerfrüherkennungsprinzip
Als Fehler sind hier Abweichungen von den Benutzeranforderungen gemeint. Um diese zu erkennen, sollten Benutzeranforderungen vorab detailliert gegliedert werden.

4. Das akkompagnitive Qualitätssicherungsprinzip
Auch hier geht es einfach: Jeder Programmierer sollte Tests mit Testdaten und Ausgabe in den Entwicklungsprozess einzelner Module einbauen. Geschieht das nicht, wird die Fehlersuche in der fertig programmierten Software wesentlich aufwändiger.

Prinzipien des Softwaremanagements

1. Das organisatorische Modellierungsprinzip
Wichtig bei größeren Projekten: Vor Beginn der Arbeiten sollte ein organisatorischer Rahmen gebildet werden, in dem die Entwicklung durchgeführt wird. Dazu gehört die Einteilung in Entwicklerteams oder ein Phasenmodell für die Entwicklung.

2. Das Meilensteinprinzip
In der Programmierung von Software spielen Termine häufig eine der wichtigsten Rollen. Um Termintreue zu gewährleisten, ist es gut, für einzelne Programmierungsschritte Endzeitpunkte festzulegen. Das sind dann die Meilensteine.

3. Das Kommunikationsprinzip
Jede komplexere Programmierung erfordert Kommunikation unter den Beteiligten. Von vornherein soll festgelegt werden, wie und mit wem kommuniziert wird, wie Entwickler untereinander Informationen austauschen. Ein Ziel ist, den erforderlichen Kommunikationsaufwand zu reduzieren. Zum Beispiel, indem gleich die aufgabengerechte Zahl der Entwickler eingeplant wird, um nicht nachher neuen Mitarbeitern die gesamte Planung und Ausführung neu erklären zu müssen.

Wartung und Pflege

Werden diese Prinzipien eingehalten, dann lässt sich in der Wartung und Pflege der Software viel Zeit sparen. Einige gehen davon aus, dass in Softwareprojekten etwa 60% der Fehler im Entwurf liegen und 40% in der Programmierung. Schlimmer ist aber, dass etwa 50% der Fehler erst im Betriebseinsatz gefunden werden. Sind nur wenige der Softwareprinzipien eingehalten worden, dann kann man sich vorstellen, dass die Pflege bei laufendem Betrieb zum Horror und zur gigantischen Kostenfalle wird.

Suchen



gratis-infos-box