Was ist gegen die hohen Progirammierkosten zu tun?

Ein Blick in die Software-Zukunft

09.05.1975

Seit ein oder zwei Jahren zeichnet sich sehr deutlich der Trend ab, daß die Software einer Anlage wesentlich teurer ist als die Hardware. Die Software-Kosten sind dabei abhängig von den geradezu inflationär steigenden Gehältern, während die Hardware im Zuge immer raffinierterer Halbleitertechnologie rapide billiger wird. Um so mehr ist zu fragen, welche Faktoren Soltware eigentlich teuer machen und wie diese Entwicklungen zu steuern sind. Mlt diesen Fragen - insbesondere bei Großinstallationen - beschäftigte sich ein Kongreß in der Naval-Postgraduate-School in Kalifornien.

MÜNCHEN - Bei dem inzwischen weltweit installierten Command- and Control-System der US-Streitkräfte betragen die Kosten für Software 720 Millionen Dollar, die Kosten für Hardware weniger als 100 Millionen. Da im Preis für das, was man Hardware nennt, noch ein guter Teil Betriebssystem-Software enthalten ist, wird der Kontrast noch deutlicher.

Dagegen war der Softwareanteil zur Zeit der zweiten Generation mit nur 20 bis 30 Prozent der Gesamtkosten anzusetzen. Es ist zu erwarten, daß bis zum Ende des Jahrhunderts Software mehr als 90 Prozent der Gesamtkosten ausmachen wird (Bild 1).

Teure Wartung

Auf dem Navy-Kongreß war unumstritten: Heute entfällt ein Anteil von etwa 45 Prozent auf Analyse und Design, weitere 25 Prozent erfordert die Codierung und ein Rest von etwa 30 Prozent ist Test und System-lntegration. Bei Realzeitsystemen wächst der Aufwand für Test und Integration bis fast auf die Hälfte.

Zu Recht konzentrieren sich die Bemühungen, die Software-Kosten zu reduzieren, im wesentlichen auf die Entwicklung. Denn es hat sich herausgestellt, daß es viel teurer ist, Software zu verbessern und zu erweitern, als sie mit den Erweiterungen neu zu entwerfen und zu produzieren.

Eine vom britischen Beratungsunternehmen J. Hoskyns durchgeführte Studie bei 900 Installationen in Großbritannien stellt fest daß 40 Prozent des Software-Aufwandes in die Wartung geht (Bild 2).

Nach einer Auerbach-Studie verbessert sich die Produktivität bei der Erstellung von Programmen im Online-Dialog gegenüber den BatchTests um etwa 20 Prozent.

Bisher ist ein Projekt häufig schon dann erfolgreich gewesen, wenn nur die Zusammenarbeit zwischen Fachbereich und Projektmanagement reibungslos lief. In Zukunft wird bei komplexeren Aufgaben nicht mehr ohne computerunterstützte Entwicklungs-Netzpläne auszukommen sein.

Verbesserte Programmtechniken

Inzwischen besteht eine ganze Reihe von Werkzeugen für effektivere Programmerzeugung. Dabei stehen Standardkontrollmechanismen für modulare, hierarchische und blockorientierte Organisation von Programmen im Vordergrund. Die strukturierte Programmierung wird sich mehr und mehr durchsetzen.

Auch die "Top-down" Entwicklung bei Programmen wird eine zunehmende Rolle spielen. Dabei werden zunächst die Funktionen auf höherer Programmebene in Form eines Gerippes lauffähig gemacht. In diesem Rahmen ist dann ein Modul nach dem anderen zu realisieren. Dementsprechend wird das "Chefprogrammierer-Team" aufgebaut sein, bei dem es ein oder zwei führende Köpfe gibt, die den gesamten Entwurf machen, darin einen guten Teil selbst realisieren und dann innerhalb des geschaffenen Rahmens den einzelnen Programmierern abgegrenzte Aufgaben zuweisen.

Unter Anwendung dieser Konzepte (strukturierte Proyrammierung, Top-Down-Gesign und Chief ProgrammerKonzept) hat die IBM bei der Entwicklung des Softwarepaketes für das Informationssystem der New York Times 700 Statements pro Mann und Monat erreichen können. (400 Statements gelten als üblich). Auch die Rate 1 Fehler auf 4000 freigegebene Statements war überdurchschnittlich gering - gemessen an durchschnittlich 10 Fehlern auf 1000 freigegebene Statements.

Testhilfen

Testhilfen werden zunehmend wichtiger - so zum Beispiel die IBM-Software PACE und Asist, die in der Lage ist, Programme im Run-State sehr viel intensiver auszutesten, als es bisher möglich ist.

Die Softwareentwicklungs- und Test-Kosten für ein einzelnes Programm nehmen in dem Maße zu, in dem die Anlage durch Normalbetrieb ausgelastet wird. Hier liegen die Akzente falsch: Anstatt, daß hier Kosten durch uneffektive Entwicklungsarbeit anfallen, sollte zumindest bei Groß-lnstallationen konsequenterweise die doch inzwischen wesentlich billiger gewordenen Hardware aufgestockt werden.

Viele Anlagen sind von der Hardware und der Betriebssoftware für ihren eigentlichen Zweck unzureichend ausgelegt. Dem Problem optimaler Anpassung der Hardware an die zur Diskussion stehenden Aufgaben wird in Zukunft mehr Aufmerksamkeit zu widmen sein.

Zukunftsaussichten

Die Softwareentwicklung wird noch teurer werden, das war eines der Kongrseßergebnisse. Dem ist zu begegnen durch mehr Standardisierung bei der Entwicklung, Dokumentation, bei Personalauswahl und Ausbildung. Auch wirkungsvollere Werkzeuge, die den Einsatz von Modulen für bestimmte Zwecke erlauben wird es geben Hier sind beispielsweise das "Clear-Caster" und das "Systembuilding" (beide von IBM) zukunftsweisend. Interaktive Programmentvicklung und automatische Dokumentation werden selbstverständlich werden. Mit Hilfe von Dateibeschreibungssprachen wird es möglich sein Karteien und bereits bestehende Datenbänke für bestimmte Anwendungen in einigen Stunden zu installieren, respektive erfaßbar oder lauffähig zu machen.

Schließlich und endlich müssen Programmiersprachen, die mehr auf der Ebene der Problemsprachen liegen als auf der Maschinenebene (Future System) zum Standard gehören, denn der Benutzer der Zukunft ist nicht in erster Linie Programmierer, sondern wirklich Benutzer.