Fehleranfällige Programme vergällen Kooperationsklima zwischen DV- und Anwendungsressorts:

SW-Anpassung erreicht groteske Dimensionen

18.01.1985

WIESBADEN (mer) - Dauerfrust begleitet in vielen Fällen den Einsatz von rechnergestützten Werkzeugen zur Softwareentwicklung, Wie eine jetzt vom EDV Studio Ploenzke veröffentlichte. Untersuchung der im deutschsprachigen Raum angebotenen Tools belegt, Ist eine effiziente Nutzung dieser Hilfsmittel nur dann möglich, wenn eine entsprechende SW-Infrastruktur geschaffen wird.

"Die Software-Krise hat ihren Höhepunkt noch keineswegs erreicht auch wenn sie jetzt schon in vielen Unternehmen fast unerträgliche Ausmaße angenommen hat", kommentiert Friedrich Edinger, Mitglied der Geschäftsleitung des Wiesbadener EDV-Studios die vom BMFT geförderte Forschungsarbeit. Der Consulter dürfte kaum dramatisieren, wenn er weiter beklagt, den rapide steigenden Anforderungen der Fachbereiche begegneten die Software-Entwickler heute meist nur noch mit "Feuerwehreinsätzen", Symptombehandlungen oder gar purer Hilflosigkeit und Resignation.

SW-Entwickler tüfteln nach beliebigem Gusto

Im Rahmen von Vor-Analysen für die zweibändige Tool-Studie gelangte das Ploenzke-Team denn auch zu wenig ermunternden Erkenntnissen: Die Anwendungsstaus belaufen sich in zahlreichen Betrieben heute bereits auf drei bis fünf Jahre. Gut 50 Prozent der Entwicklungskapazitäten dienen der Wartung und Pflege von Programmen, die nicht selten mehr als ein Jahrzehnt alt sind.

Der Aufwand für Anpassungen der Software an veränderte betriebswirtschaftliche Anforderungen und Abläufe in den Fachabteilungen verursacht Kosten, die geradezu groteske Dimensionen erreichen. Zudem vergällt die hohe Fehleranfälligkeit überhastet erstellter, umgestrickter oder reparierter Programme das Kooperationsklima zwischen DV- und Anwendungsressorts. Auch der Mangel an einheitlichen Namenskonventionen und Normungsstellen für eine identische Terminologie trägt ein gerüttelt Maß zum Dauerfrust der User bei.

Darüber hinaus ist oft kein Überblick möglich, in welchen Dateien welche Informationen unter welchen Namen gespeichert wurden. Vielfach sind die gleichen Datenelemente in den verschiedenen Dateien inkonsistent. Die Software-Entwickler ertüfteln nämlich ihre Lösungen sehr häufig nach beliebigem Gusto von einer übereinstimmenden Vorgehensweise wie etwa Standards, Strukturierung, Ergebnisabstimmung oder Qualitätssicherung kann keine Rede sein.

Der zuweilen babylonische Begriffswirrwarr zwischen DV-Experten und Endbenutzern gestattet ebenfalls keine optimale Ausschöpfung vorhandener Computerpotentiale und verhindert auch einen reibungslosen Übergang von der Daten- zur Informationsverarbeitung.

Unter solchen Umständen müsse sich die Produktivität der Programmentwickler trotz hoher Kreativität zwangsläufig in engen Grenzen halten, resümiert Edinger. Es fehle an ausreichender Tool-Unterstützung insbesondere bei der Erstellung von Fachkonzeptionen Jedenfalls dürfe es niemanden wundern, so der Wiesbadener Manager weiter, daß deshalb etwa 75 Prozent der Entwicklungsfehler im Fachkonzept gemacht würden, deren Beseitigung wiederum etwa 95 Prozent der entsprechenden Etatsummen Verschlinge.

Diese unerquicklichen Beobachtungen und Erkenntnisse veranlaßten die Ploenzke-Experten, in Eigenregie eine großangelegte Untersuchung zu starten, die auf drei vorrangige Ziele ausgerichtet wurde. das Produktumfeld, die Produktklassifizierung und die Produktanalyse via Kriterienkatalog. Die Verfasser betonen, daß rechnergestützte Werkzeuge nur eine Komponente innerhalb einer Software-Entwicklungstechnologie darstellen, die sich aus mehreren Bausteinen zusammensetzt. Das Phasenkonzept strukturiert den Entwicklungsprozeß, indem es die Aktivitäten und Ergebnisse in Abschnitte einteilt und ihn somit plan-, steuer- und kontrollierbar macht.

Hinzu kommen Methoden: Sie beschreiben, wie innerhalb der einzelnen Stufen die Aktivitäten auszuführen, die Resultate darzustellen und auf formale und inhaltliche Richtigkeit zu überprüfen sind. Weiter muß das Projektmanagement die Organisation und die Verfahren beschreiben, mit denen die Ressourcen für die Entwicklung geplant, gesteuert und kontrolliert werden sollen.

Die sich aus Phasenkonzept, Methoden und Projektmanagementkonzept ergebenden Aufgaben für den Entwickler werden durch entsprechende Tools unterstützt, indem diese die Speicherung und Verwaltung von Dokumenten sowie die Ausführung von Routinearbeiten und methodischen Algorithmen übernehmen. "Erst die Integration dieser drei Komponenten schafft die Infrastruktur für die Software-Entwicklung und bildet daher die Grundvoraussetzung für die Produktauswahl", heißt es in der Studie (sieche auch Grafik).

Die Untersuchung erfaßte ausschließlich jene Tools, denen aufgrund der Betriebssystem-Kompatibilität eine adäquate Bedeutung im Markt zukommt. Es wurden insgesamt 26 Produkte durchleuchtet, die entweder unter einem Betriebssystem von IBM und Siemens, oder aber auf Kleinrechnern, die mit Anlagen der beiden Hersteller kommunizieren können, ablauffähig sind. Die erfaßten Werkzeuge wurden anhand von über 400 Einzelkriterien, die sich an den vielschichtigen Aufgaben der Software-Entwicklung orientieren, beschrieben und aufgaben-, hardware- sowie methodenorientiert eingestuft.

Software kann ihrer Aufgabe nur gerecht werden, wenn die Programme den fachlichen Anforderungen genügen und eine Dokumentation existiert, aus der jede Fach- und Führungskraft die für ihre Aufgabenerfüllung notwendigen Informationen entnehmen kann. Software ist - zusammen mit dem Rechner - ein Organisationsmittel, das nur die Hälfte wert ist, wenn nicht dokumentiert wird, wie es der Endbenutzer und das Rechenzentrum einzusetzen und zu warten haben.

Diese Ansicht habe sich heute zwar schon weitgehend durchgesetzt, trotzdem werde die Dokumentation nach wie vor weitgehend vernachlässigt, kritisieren die Verfasser der Studie. Die Gründe hierfür sehen die Spezialisten darin daß es bis vor kurzem an einer Methodik und an einer effizienten Rechnerunterstützung gefehlt hat. Editor und Dokumentations-Aufbereitungssysteme wie etwa DCF oder Doculity genügen nicht, weil damit nur reine Textdokumente zu verwalten sind.

Gleichwohl ist der Editor heute das weitverbreitetste und oft auch das einzige Tool, das in der Softwareentwicklung eingesetzt wird. Hie und da wird er noch ergänzt durch ein Dokumentations-Aufbereitungssystem oder einen Maskengenerator. Dabei ist heute technologisch weitaus mehr machbar, so etwa die Realisierung einer Entwicklungsdatenbank auf der Basis eines Data-Dictionary oder der Einsatz sogenannter operativer Tools, um Daten und Texte in die Entwicklungsdatenbank einzugeben oder spezielle Auswertungen zu erzeugen.

Der Einsatz dieser Werkzeuge ist nach Meinung der Experten aber nur dann sinnvoll, wenn der Arbeitsprozeß auch strukturiert wird. Die Rechnerunterstützung dürfe sich nämlich nicht auf die Programmierung beschränken, sondern es müsse versucht werden, alle automatisierten Vorgänge bei der Software-Entwicklung durch den Computer ausfahren zu lassen.

Zu einer leistungsstarken Software-Entwicklung gehört außerdem die Qualitätssicherung (siehe auch Seite 21 bis 28). Sie darf nicht erst während der Programmtests erfolgen, sondern muß bereits vor Beginn der Programmierung einsetzen. In diesem Stadium werden die meisten Fehler begangen, die dann bis auf weiteres unentdeckt bleiben. Die Korrekturkosten sind aber um so höher, je früher sich die Fehler im Entwurfsprozeß einschleichen.

Die Qualitätssicherung muß daher vorrangig bemüht sein, im Vorfeld der Programmierung - also während der Analyse und beim Entwurf - tätig zu werden, indem man bereits in diesem Stadium anfallende Dokumente auf logische Richtigkeit überprüft. Eine rechnerunterstützte Qualitätssicherung erscheint so früh allerdings nur möglich, wenn methodisch vorgegangen wird (Methodenkonzept). Der Computer muß dabei Unterstützung leisten, indem er die Ausführung von Algorithmen übernimmt, Formal- und Plausibilitätsfehler erkennt und anschauliche - etwa grafische - Darstellungen der Analyse- und Entwurfsergebnisse liefert.

Sowohl die hohen Investitionskosten als auch die mittel- bis langfristig wirkenden Änderungen in der Infrastruktur der Systementwicklung, welche die Einführung einer Software-Technologie nach sich ziehen, erfordern eine klare Konzeption wie auch eine exakte Planung. Die Toolauswahl stellt hierbei einen vorrangigen Faktor dar, so ist der Studie zu entnehmen, der jedoch nicht isoliert zu sehen ist. Nach den Recherchen der Verfasser hat sich folgende Vorgehensweise am ehesten bewährt:

- Anforderungs- und Maßnahmekatalog als Ergebnis der Ist-Analyse: Der erste Schritt ist eine Bestandsaufnahme der gegenwärtigen Vorgehensweise bei der Systementwicklung, wobei Wunsch und Wirklichkeit genau zu trennen sind. Gerade in den größeren DV-Ressorts zeigt sich oft, daß vorgegebene Richtlinien in einzelnen Teilbereichen sehr großzügig ausgelegt und unzureichend eingehalten werden. Ziel der Ist-Analyse ist deshalb die Erarbeitung eines Anforderungs- und Maßnahmenkatalogs zur Behebung vorhandener Schwachstellen.

- Software-Entwicklungs-Konzept (SE-Konzept): Auf der Basis des Anforderungskatalogs sind Konzepte für ein phasenweises Vorgehen, für Methoden und für das Projektmanagement zu erarbeiten. Erst auf ihrer Grundlage kann eine Toolauswahl vorgenommen werden. Bevor man festlegt, womit Vorgänge automatisiert werden sollen, müssen diese auch bekannt und durchschaubar sein. Der Anforderungskatalog und das Software-Entwicklungs-Konzept sind wesentliche Voraussetzungen für die Erarbeitung eines Kriterien-Katalogs, der für die Tool-Selektion heranzuziehen ist.

- Entwicklungsumgebung: Mit der Produktentscheidung sowie der systematischen Installation ist aber erst die Basis für eine Entwicklungsumgebung geschaffen. Sie wird nämlich erst dann funktionsfähig, wenn eine Integration mit dem SE-Konzept vollzogen ist. Die Einführungsvorbereitungen sind von flankierenden Maßnahmen zu begleiten, indem unter anderem Verantwortlichkeiten für die Softwaretechnologie definiert werden (für Methoden, Standards, Tools, DV-Koordination mit dem Fachbereich).

- Einführung der Software-Technologie: Nachdem die Entwicklungsumgebung organisatorisch und technisch geschaffen ist, bedarf es einer besonderen Strategie, um diese Innovationen als neue Infrastrukturen praktisch nutzbar zu. machen. Diesem Ziel dienen die Einführungsprojekte, die sowohl in ihrer Aufgabenstellung als auch in der personellen Ausstattung die richtige Selektion erfordern.

In dem als Produktklassifizierung benannten Teil kommt die Ploenzke-Studie zu dem Fazit: Es gibt heute noch nicht das von integrierte Tool, das durchgängig den gesamten Entwicklungsprozeß unterstützt. Obwohl bei den meisten Produkten ein funktionaler Schwerpunkt erkennbar ist, zeigen die meisten Werkzeuge die Tendenz, immer mehr Funktionen phasenübergreifend zu unterstützten.

Die meisten Tools sind modular aufgebaut - das heißt, sie bestehen aus verschiedenen Komponenten, aus denen sich der Benutzer die für seinen Bedarf benötigten Teile zusammenstellt. Oft ist auch der Einsatz von Komponenten verschiedener Hersteller möglich. Andere Werkzeuge sollten hingegen nur vollständig eingesetzt werden, da der Funktionsumfang insular genutzter Leistungselemente erheblich geringer ist.

Die aufgabenorientierte Klassifizierung, wie sie in dem Werk zuerst erfolgt, ordnet den Tools für die Software-Entwicklung verschiedene Funktionen zu wie allgemeine Dokumentation, Verwaltung der Systemelemente, Datenentwurf, Programmierung, Test und Projektmanagement.

Diese Aufgaben können nicht unabhängig voneinander bewältigt werden - vielmehr besteht ein enger sachlicher Zusammenhang. So setzt zum Beispiel die Programmierung den Entwurf des DV-Systems und dessen Dokumentation voraus, während erst durch den Test die Programme validiert und verifiziert werden können.

Die Verwaltung der Systemelemente und das Projektmanagement bilden schließlich die Klammer, welche die anderen Aufgaben koordiniert. Das bedeutet, daß das einzelne Produkt nicht nur alle genannten Aufgaben separat erfüllt, sondern sie auch integriert, indem ein Teilergebnis unmittelbar aus anderen partiellen Resultaten erzeugt wird.

Ein Blick auf den Markt zeigt, daß es eine Reihe von Produkten gibt, die sich dieses Ziel zwar gesteckt haben, die Integration in vollem Umfang jedoch nicht zu realisieren vermochten. Zweifellos stellt die Konzeption und Realisierung eines von integrierten Tools eine extrem komplexe Aufgabe dar und beansprucht meist außergewöhnliche Entwicklungskosten. Darin mag auch der Grund liegen, daß derzeit ein derartiges Produkt nicht offeriert wird.

Innerhalb der teilintegrierten Tools kann noch zwischen Produkten unterschieden werden, die Code in einer herkömmlichen Programmiersprache (Programmgeneratoren) erzeugen und solchen, die mit einer eigenen Sprache arbeiten. Zur Differenzierung können die nach dem Generatorenprinzip operierenden Produkte als "teilintegrierte konventionelle Tools" bezeichnet werden.

In eine anspruchsvollere - funktionelle Dimension stoßen indes die Programmiersprachen der vierten Generation vor. In dieser Gruppe handelt es sich um Produkte, welche die Programmierung gegenüber den herkömmlichen höheren Programmiersprachen wesentlich vereinfachen und damit effizienter machen wollen. Die Studie weist nach, daß die Entwicklungstendenz dieser Kategorie dahingeht, den Aufgabenumfang zu erweitern, indem weitere Komponenten wie zum Beispiel Textverarbeitung oder Dialogsimulation hinzugefügt werden. Eine besonders enge, aber doch auch limitierende Integration weisen sie mit dem darauf abgestimmten Data-Dictionary und dem Datenbanksystem auf.

Von den Sprachen der vierten Generation sind die sogenannten Endbenutzersprachen zu unterscheiden. Während erstere sich an den Programmierer wenden, um ihm die Arbeit bei der Entwicklung von DV-Systemen zu erleichtern, wollen die Endbenutzersprachen dem, Fachbereich - also dem DV-Laien - den direkten Zugang zur Datenbasis eröffnen. Dies geschieht durch einfache Abfragebefehle, die so gut wie keine computertechnischen Kenntnisse voraussetzen.

Als Preis für die simple Handhabung sind sie - im Gegensatz zu den Sprachen der vierten Generation nur bedingt geeignet, komplexe Funktionen auszufahren. Da Endbenutzersprachen sich nur für die Abfrage, aber nicht für die Entwicklung operativer Systeme eignen, wurden sie nach Angaben der Wiesbadener in die Studie nicht einbezogen.

Ursprünglich wurden Tools für Mainframe-Anlagen geschaffen, auf denen -auch die Software-Entwicklung stattfindet. Der Vormarsch von Mini- und Mikrocomputern führte zu dem Konzept, Programme auf Kleinrechnern zu kreieren, die im Preis/ Leistungs-Verhältnis oft günstiger liegen. Vor allem der Aufstieg des Betriebssystems Unix begünstigte diese Tendenz.

Wie die Verfasser betonen, kann sich die Einstufung nach Hardware-Kriterien bereits in naher Zukunft grundlegend ändern. So vor allem, wenn Betriebssysteme von Mainframe-Rechnern auf Kleincomputern verfügbar sind (zum Beispiel VM/CMS auf IBM-PC) oder wenn Unix auf Mainframe-Anlagen übernommen wird.

Die dritte Einstufungsart von Tools in der Studie ist die "methodenorientierte Klassifizierung'. Sie bezieht sich auf die gezielte Unterstützung spezieller Entwurfsmethoden. Dabei ist der Methodenbegriff weit gefaßt. Es zählen dazu: Phasenmodelle, Verfahrenstechniken, Entwurfs- und Spezifikationsmethoden (fachlich wie computertechnisch) sowie Programmiermethoden und -Techniken. Auch die Vorgabe gewisser Systemelemente oder die Generierung spezifischer grafischer Symbole kann als Unterstützung von Methoden aufgefaßt werden.

Eng verbunden mit der Unterstützung von Methoden ist der Integrationsgrad der Tools einerseits und die Flexibilität andererseits: Je stärker eine Methode unterstützt wird, desto ausgefeilter und stärker automatisierbar sind die Übergänge zwischen einzelnen Entwurfsschritten - um so geringer ist dagegen jedoch die Flexibilität der Tools.

Bei Tools, die den Einsatz einer Methode nur unterstützen, handelt es sich zumeist um einzelne Komponenten, die eingesetzt, angepaßt, weggelassen oder durch andere Produkte ersetzt werden können. Die Integration erfolgt durch eine gemeinsame Benutzeroberfläche. Oft ist ' mit erheblichem organisatorischen und konzeptionellen Aufwand auch hier eine gezielte Unterstützung eigener Methoden durchführbar.

Die Studie ist zwar als Grundlage für eine Produktauswahl anzusehen, kann sie allerdings nicht ersetzen. Sie liefert präzise Produktinformationen, diese müssen jedoch im Zusammenhang mit dem Produktumfeld gesehen werden.

Summa summarum sollen - so die Tool-Forscher aus der Hessen-Hauptstadt - in nächster Zukunft folgende Trends vorherrschen: Zunehmend werden jene Werkzeuge bevorzugt, die phasenübergreifende Funktionen wie zum Beispiel Dokumentation, Datenentwurf, Programmierung und Test integrieren.

Dagegen verlieren Instrumente der Software-Entwicklung, die nur isolierte Aufgaben wie etwa Maskengenerierung wahrnehmen können, immer mehr an Bedeutung. Stark im Aufwind liegen die Programmiersprachen der vierten Generation.

Dazu die Prognose des für die Studie zuständigen Projektchefs Harald Oestreich: "Ihnen wird allerdings erst dann der wirkliche Durchbruch gelingen, wenn sie den vollen Funktionsumfang herkömmlicher Programmier sprachen erreicht haben."