Software-Ertrag um so höher, je kürzer die Entwicklungszeit und je länger die Lebensdauer:

Reine Theorie führt ins Desaster

30.04.1981

Software Engineering wird ernsthaft etwa seit Mitte der 70er Jahre im Rahmen der lnformatik als Ingenieurwissenschaft betrachtet und ist heute noch weit davon entfernt, ausgereifte und aufeinander abgestimmte Methoden und Werkzeuge den Betroffenen zur Verfügung zu stellen (siehe auch "Begriffsbestimmungen). Software Engineering ist keine bloße Kopie anderer Ingenieurdisziplinen- trotzdem muß sie sich in der grundsätzlichen Vorgehensweise an den traditionellen Ingenieurdisziplinen orientieren.

Aus der Erkenntnis, daß Software auch ein Produkt ist, wird versucht, den Problemen der Softwareentwicklung mit Methoden der Ingenieurwissenschaften beizukommen. Die Methoden sind jedoch nicht unbedingt übertragbar. Die Abstraktheit des Produkts Software, vielleicht auch der teils hohe Komplexitätsgrad von Softwaresystemen, erfordert eine spezielle Ausrichtung in der Vorgehensweise. Oberste Zielsetzung der Entwicklung und Erhaltung eines Softwareprodukts ist der erzielbare wirtschaftliche Nutzen. Wie bei Hardwareprodukten auch, sind Kosten, Termine und Qualität Hauptfaktoren. Von entscheidender Bedeutung ist die Verwendung moderner Managementtechniken wie der Systemtechnik und der methodisch qualitativen Entscheidungsvorbereitung zur Planung und Optimierung von Projekten.

Interdisziplinäres Engineering

Das Engineering befaßt sich mit dem Entwurf, der Verbesserung und Einrichtung integrierter produktiver Systeme von Mensch, Material und Ausrüstung.

Dazu sind außer den ingenieurmäßigen Prinzipien und Methoden des Analysierens und Entwerfens besondere Kenntnisse und Fähigkeiten angewandter Mathematik, der naturwissenschaflichen Grundlagen der Technik oder bei kommerziellen Problemen entsprechender betriebswirtschaftlicher Grundlagen und der Sozialwissenschaften erforderlich. Das Engineering ist damit interdisziplinär.

Beim Software Engineering handelt es sich um eine gemischt technisch/ wirtschaftliche Funktion. Besondere Bedeutung liegt im Bemühen um Verbesserung der Rentabilität durch Kostensenkung.

Der wirtschaftliche Nutzen, der mit Software erzielt werden kann, ist wie bekannt - um so größer, je geringer seine Entwicklungs-, Wartungs-, und Einsatzkosten sind. Das Produkt wird höheren Ertrag erzielen, je kürzer die Entwicklungszeit und je länger seine Lebensdauer ist. Die Lebensdauer wiederum ist eine direkte Funktion der Qualität des Produkts.

Softwarekrise

Software wird nie rechtzeitig fertig. Software ist teuer; Kostenüberschreitungen sind an der Tagesordnung. Software ist fehlerhaft; Resultat sind unzufriedene Anwender. Kritische Situationen entstehen durch Fehlverhalten von Software.

Kaum erreichbar scheint die

- Produktion von Software, die zuverlässig und leicht zu bedienen ist, zu tragbaren Kosten in einem kontrollierbaren Zeitraum,

- Senkung der Wartungskosten und Erhaltung der Softwareinvestition.

Das größte Problem ist die Kommunikation während der gesamten Phase der Softwareentwicklung:

Auftraggeber-Systemanalyse

* unterschiedliche Terminologie

* einzig sicheres Ergebnis: Der Kunde weiß, was er nicht will.

Systemanalyse-Systemdesign

* unterschiedliches EDV-Wissen und manchmal auch -Terminologie

Systemdesign -Systemimplementierung

* unvollständige Dokumentation

Systemimplementierung-Einsatz

* wenig benutzerfreundliche Handbücher

* kaum robust (anfällig gegenüber allgemeinen menschlichen Fehlern.)

Managementprobleme

Die Softwareentwicklung wird oft unter "Ergebniszwang" (möglichst schnell etwas vorzeigen können) durchgeführt. Daß die Entwicklung von Hardware (oder etwa Autos) Jahre dauert bis zum fertigen Produkt, steht außerhalb jeder Diskussion.

Für Software, die erheblich komplexer sein kann, gilt das merkwürdigerweise nicht. Es ist schwierig, eine vernünftige und methodische Vorgehensweise durchzusetzen.

Wir haben auf dem Gebiet der Software noch keine allzugroßen Erfahrungen. Software wird erst seit rund 25 Jahren produziert. Die Komplexität von Software hat in relativ kurzer Zeit Ausmaße angenommen, die die Komplexität von Hardware übersteigen (können). Die Entwicklung von Hardware hat jedoch eine lange Geschichte, in deren Verlauf sich Erfahrungen angesammelt und Methoden herausgebildet haben (Ingenieurswissenschaften) .

Qualität, nicht Quantität beeinflußbar

Im Sinne ingenieurmäßiger Herstellung von Software wäre es wünschenswert, die Zusammenhänge in Formeln zu fassen und Einzelziele zu meßbaren Größen in Beziehung zu setzen. Von einer Erfassung der Merkmale, die in Formeln faßbar wären, ist man jedoch weit entfernt. Folglich sind Aussagen über voraussichtliche Wirkungen von Prinzipien, Methoden und Werkzeugen des Software Engineering derzeit nur in den Tendenz möglich, nicht quantitativ.

Von Software Engineering kann die Rede sein, sofern zwischen angestrebten Zielen der Softwareentwicklung und -Wartung und den eingesetzten Methoden mindestens eine generelle Tendenz des Wirkungszusammenhangs bekannt ist. Aufgabe des Software Engineering ist es deshalb, Prinzipien, Methoden und Werkzeuge bereitzustellen, um die Art des Entwicklungsprozesses und qualitative Eigenschaften des Produktes zu beeinflussen. (wird fortgesetzt)

*Ing. (grad.) Helmut Meyer ist Abteilungsleiter Softwareentwicklung bei Sperry Univac, Sulzbach/Taunus.

BEGRIFFSBESTIMMUNGEN

Engineering umfaßt eine systematische Sammlung von alternativen Techniken.

Software setzt sich aus zwei Hauptkomponenten zusammen:

* Logik (logische Sequenz der Instruktionen steuert Ausführungsreihenfolge

der Hardware)

* Daten (physische Form, in der alle Informationen einschließlich der Logik der Hardware zur Verfügung stehen und durch die Logik interpretiert und geändert werden)

Der Begriff "Software Engineering" ist die organisatorische Struktur, die Regeln und angewendeten Methoden im Bereich des Managements und der Implementation von Software-Funktionen im Bereich der elektronischen Datenverarbeitung mit dem Ziel einer möglichst rationellen Vorgehensweise.

Im Vergleich dazu der Begriff des "lndustrial Engineering", vermutlich von Taylor erstmals verwendet: Rationalisierungstätigkeit eines innerbetrieblichen Beraters.

Bezüglich der rationellen Ziele stimmen Software- und Industrial Engineering weitgehend überein, wenn vernachlässigt wird, daß Software Engineering das immaterielle Produkt "Software" als Objekt betrachtet.

Industrial Engineering, Human Engineering, Mechanical Engineering, Chemical Engineering, Civil Engineering, gehören zum festen Bestandteil der meisten technischen Universitäten, Industrial Engineering beispielsweise bereits seit den 30er Jahren.