Problemanalyse von der Problemsyntese trennen

13.10.1978

Dr. Hubert Österle Universität Dortmund

Die Ergebnisse einiger empirischer Untersuchungen sowie einige grundsätzliche Überlegungen deuten darauf hin, da der Programmentwurf die Kosten der Softwareentwicklung und -wartung wesentlich- beeinflußt Der datenstrukturorientierte Entwurf ist eine Richtung innerhalb verschiedener Entwurfstechnologien, die in den letzten Jahren entstanden sind. Sein grundsätzlicher Ansatz, Problemanalyse und Problemsynthese zu trennen, sich an, den Daten zu orientieren und Programme prozedural aufzubauen, bringt erhebliche Vorteile gegenüber funktionsorientierten Ansätzen. Einige Erweiterungen (Modularisierung, stufenweiser Entwurf und Entscheidungstabellen-Technik) sind geeignet, die Entwurfsqualität noch weiter zu erhöhen,

Kostensituation

Die Softwarekosten werden 1980 bis zum Neunfachen der Hardwarekosten ausmachen. Dies ist nicht nur eine Folge des verbesserten Preis-/Leistungsverhältnisses von EDV-Anlagen und der steigenden Personalkosten, sondern auch der zunehmenden Anzahl und wachsenden Komplexität der EDV-Anwendungen.

Diese Situation ist die Ausgangsbasis für eine verstärkte Überprüfung des Prozesses der Softwareentwicklung. Bei unserem Versuch, die Kosten besser in den Griff zu bekommen, müssen wir zunächst feststellen welche Tätigkeiten in der Softwareentwicklung für den hohen Aufwand verantwortlich sind, um dann die Ursachen dafür zu ermitteln.

Exakte und allgemeingültige Aussagen über die Kostenanteile der einzelnen Phasen sind kaum möglich. Verschiedentlich angegebene Werte variieren nach der Art der Software, nach der Definition der Phasen. den verwendeten Methoden und nicht zuletzt nach der Qualifikation des eingesetzten Personals für die kommerzielle Anwendungsentwicklung scheinen folgende Aussagen derzeit aber eine breite Gültigkeit zu haben:

- Ungefähr ein Drittel des Entwicklungsaufwandes läuft in die Analyse und den Entwurf.

- Für die Kodierung ist zirka ein Sechstel anzusetzen.

- Die Hälfte der Entwicklungskosten fällt im Test und in der Einführung an

- Nach Abschluß der Entwicklung erfordert die Wartung (ohne Weiterentwicklung) der Anwendungsprogramme einen zusätzlichen Aufwand in Höhe von 60 bis 80 Prozent der Entwicklungskosten.

Kostenursachen

Die Phasen Test und Wartung beschäftigen sich hauptsächlich mit der Beseitigung von Fehlern, die in den davor liegenden Phasen gemacht worden sind. Boehm stellt fest, daß bei der Entwicklung eines Programmsystems der Prozeßdatenverarbeitung und eines Betriebssystems weitaus mehr Fehler auf dem Entwurf als auf die Kodierung zurückzuführen sind. Für betriebliche Anwendungsprogramme berichtet Ross, daß nur ein, Sechstel der Während der Wartung entdeckten Fehler Kodierungsfehler sind, fünf Sechstel aber auf Mängel in der Analyse und im Entwurf zurückgehen. Von den hauptsächlichen Fehlerquellen der EDV-Anwendungsentwicklung liegt demnach ein Teil in der Spezifikation des Systems (Istanalyse und Sollkonzeption), ein anderer Teil aber im Entwurf der Programme. Unter Programmentwurf verstehen wir die globale Strukturierung eines Programms (Makrostrukturierung).

Sie umfaßt die Auslegung der Kontrollstruktur (Steuerung), Datenstrukturen und des funktionalen Aufbaus bis auf eine Ebene, die danach unmittelbar in Code umgesetzt werden kann. Dies ist vielfach die Definition der Moduln und ihrer steuerungs- und datenmäßigen Beziehungen. Der Programmentwurf, wie er hier definiert ist, besitzt einen erheblichen Anteil an den Fehlerursachen. Dies zeigt einerseits eine Detaillierung der Fehlerursachen bei Boehm (siehe Grafik).

Andererseits deuten auch die Erfolge des Einsatzes von Programmentwurfsmethoden darauf hin. Holton berichtet über die Ergebnisse einer Umfrage, in der elf von 14 Befragten aussagen, daß Top-, down-Entwurf und -Implementation zur Senkung der Entwicklungskosten beitragen. In einer anderen Untersuchung stellt Black fest, daß die in mehreren Projekten mit modernen Programmiertechniken ermitteltes (sehr beachtlichen) Einsparungen zum Teil ein Ergebnis des Top-down-Entwurfs sind. Die Aussagen von Programm-Managers laufen in diese Richtung.

Die kostenmäßige Bedeutung des Programmentwurfs kann aus den erwähnten Untersuchungen nur tendenziell abgeleitet werden.

Wenn auch eine exakte Ermittlung möglicher Kostensenkungen, durch eine verbesserte Vorgehensweise beim Programmentwurf nicht möglich ist, so: kann man aus den obigen Aussagen doch folgende Schlüsse ziehen:

- Die Qualität des Programmentwurfs bestimmt wesentlich den Aufwand in den nachfolgenden Phasen.

- Eine Erhöhung des Aufwandes in der Phase des Programmentwurfs macht sich durch, die nachfolgenden Einsparungen auf jeden Fall bezahlt.

- Um dieser Bedeutung des Programmentwurfs gerecht zu werden, soll er eine eigene Phase in der Programmentwicklung bilden.

- Die Methoden des Programmentwurfs müssen die Einflußfaktoren

auf den Aufwand in den nachfolgenden Phasen günstig gestalten.