Die meisten Subdisziplinen beschäftigen sich mit der Mensch-zu-Mensch-Kommunikation: Software-Engineering ist angewandte Informatik

20.08.1982

Im Gegensatz zu dem, was vielfach darunter verstanden wird, ist Software-Engineering nicht nur ein neumodisches Wort für Programmierung. Software-Engineering umfaßt alle Tätigkeiten, die der Entwicklung und Wartung von Informationssystemen dienen. Dazu gehören sowohl konventionelle Aktivitäten wie Systemanalyse, Organisation und Planung als auch neuere DV-technische Aktivitäten wie Entwurf, Programmierung und Test.

Im Grunde genommen ist Software-Engineering mit angewandter Informatik gleichzustellen. Es umfaßt alle Schritte von der Konzeption bis hin zur Operation eines Softwaresystems. Dabei ist die eigentliche Programmierung nur eine von mindestens sieben diskreten Tätigkeitsbereichen. Außerdem beschäftigen sich die meisten Subdisziplinen des Software-Engineering eher mit Mensch-zu-Mensch-Kommunikation als mit der Mensch-Maschine-Kommunikation.

Spezifikation in Ansätzen

Der erste Tätigkeitsbereich befaßt sich mit der Analyse bestehender Systeme und der Definition der Benutzeranforderungen. Dieser Bereich heißt "Requirements Analyse". Er wird heute sehr intensiv erforscht; aber fundierte, allgemeingültige Lösungen lassen auf sich warten.

Der zweite Tätigkeitsbereich liegt auch eher in der Organisation als in der DV. Es handelt sich um die Feinplanung beziehungsweise Konzipierung der Anwendung. Hier wird das Fachkonzept bis ins letzte Detail ausgearbeitet und mit Hilfe verschiedener Darstellungsmittel zum Ausdruck gebracht. Dies ist die sogenannte "fachliche Spezifikation". Für diesen Bereich existieren bereits etliche theoretische Ansätze, die sich jedoch in der Praxis noch bewähren müssen.

Der dritte Tätigkeitsbereich umfaßt die Entwurfsaktivitäten wie Datenbankentwurf, Systementwurf und Programmentwurf. Das angestrebte Ergebnis ist ein Implementierungskonzept für eine bestimmte DV-technische Umgebung. Es handelt sich also um den "technischen Entwurf". Für diese Arbeit gibt es heute viele, auch praxiserprobte Methoden, die allerdings nicht einfach zu erlernen sind. Sie stellen hohe Ansprüche an die Entwickler.

Mangel an Einsicht

Der vierte Tätigkeitsbereich ist das eigentliche "Programmieren". Dies ist der Bereich, der am besten verstanden wird, und wo es die meisten praktischen Erfahrungen gibt. Trotz der herrschenden Meinung, daß strukturierte, normierte und modulare Programmierung nützliche Techniken sind, werden sie in der Praxis nicht immer eingehalten. Den heutigen Programmierern fehlt die Einsicht, warum sie so programmieren sollten.

Der fünfte Tätigkeitsbereich ist die "Qualitätssicherung". Hiermit sind alle kontrollierenden Maßnahmen zur Sicherung der Ergebnisse gemeint. Diese beziehen sich nicht nur auf die Programme, sondern ebenso auf die Spezifikation und die Entwurfsdokumentation sowie auf die Benutzerdokumentation. Dieser Bereich ist in der Praxis noch wenig beachtet worden, vor allem deshalb, weil Softwarequalität bisher noch unzulänglich definiert ist. Es fehlt die wissenschaftliche Grundlage.

Mangel an Hilfsmitteln

Der sechste Tätigkeitsbereich ist der des Testens. Man spricht hier von "Verifikation & Validation". Die Tätigkeiten in diesem Bereich zielen darauf hin, die Richtigkeit und Zuverlässigkeit der Programme ausreichend zu erproben. Dafür gibt es auch zahlreiche methodische Ansätze. Allerdings setzen diese Ansätze eine Umgebung voraus, die in der kommerziellen DV kaum zu finden ist. Sie sind außerdem mit einem erheblichen Aufwand verbunden, so daß echtes Testen im Sinne der Verifikation & Validation in der Praxis nicht sehr verbreitet ist. Es fehlen die nötigen Hilfsmittel.

Schließlich gibt es den Bereich das "Software-Managements". Dieser Bereich ist sehr vielfältig und umfaßt solche unterschiedlichen Tätigkeiten, wie Entwurfsorganisation, Kostenkalkulation, Projektplanung und Systemverwaltung.

Unfertig und empfehlenswert

Einige Verfahren lassen sich aus anderen Managementbereichen übernehmen. Aber Softwaremanagement ist ein Gebiet für sich. Und auf diesem Gebiet bleibt noch sehr viel zu tun. Sogar die Forschung steckt in den Kinderschuhen. Und das, was es an Erkenntnissen und Erfahrungen gibt, ist den meisten praktizierenden Softwaremanagern völlig fremd.

Zusammenfassend kann man sagen: Software-Engineering ist erst im Entstehen. Es ist weder ein ausgereiftes wissenschaftliches Fach, noch ist es ein praxiserprobtes Rezept. Dennoch werden wir ohne Software-Engineering für große und mittlere Systeme in der Zukunft nicht auskommen. Je eher man sich damit befaßt, um so besser.

*Harry M. Sneed ist Geschäftsführer der Software Engineering Service GmbH, Neubiberg, Tel.: 089/6 01 53 97.