Übergeordneter Ablaufrahmen schafft noch keine Integration:

Tools können Anwendungsstau verschärfen

13.01.1984

Das sich immer mehr beschleunigende Entwicklungstempo der Hardware setzt die Softwareentwicklung unter Druck. Der schon mehrfach beklagte Anwendungsstau wird nicht geringer, sondern in letzter Zeit durch die gerade auf PCs vereinfachte Softwarehandhabung noch kritischer. Deshalb ist eine wirtschaftliche Softwareentwicklung, deren Verfügbarkeit schnell erreicht werden muß, unbedingt notwendig. Gerd Brettschneider, Vertriebsbeauftragter im DB/DC-Bereich der ADV/Orga F. A. Meyer GmbH, charakterisiert die Situation auf dem Softwaremarkt.

Den vorhandenen Anwendungssystemen fehlt die Integration untereinander sowie der Bezug auf eine gemeinsame Datenbasis. Die so entstandenen Einzellösungen sind unhandlich und wartungsintensiv. 70 Prozent der vorhandenen Personalkapazität wird durch die Wartung bestehender Anwendungen blockiert. Dieser Anteil steigt mit jeder weiteren, konventionell entwickelten Software an. Als Folge steht immer weniger Kapazität für notwendige Neuentwicklungen zur Verfügung.

Weitere Schwierigkeiten entstehen durch unterschiedliche Sprachen in der Datenverarbeitung und der Fachabteilung beziehungsweise zwischen Hersteller und Anwender. Deswegen und durch den separat ablaufenden Arbeitsgang der Softwareimplementierung sind permanent Korrekturen am Gesamtkonzept notwendig. Entsprechend gering ist die Akzeptanz der entwickelten Systeme durch die Fachabteilungen. Die umfassende Konsequenz: Trotz verbesserter Hardware verlangsamt sich die Anwendungsentwicklung, der Anwendungsstau nimmt zu.

Veraltete Tools verschlimmbessern die Lage

Verschärft wird diese Situation durch die Nutzung veralteter Werkzeuge für die Softwareentwicklung. Sie wird nicht von Routinefunktionen entlastet. Eine funktionelle Modularität existiert ebenfalls nicht. Als Folge entstehen lange Entwicklungszeiten, der Nutzen tritt erst sehr spät ein. Außerdem ist die Software zum Zeitpunkt ihres Einsatzes in manchen Funktionen schon wieder veraltet, ein Grund für erneute Nachbesserung.

Die in das Produkt investierten Entwicklungskosten, überwiegend Personalkosten, sind durch die dann erreichbaren Produktivitätssteigerungen oder Rationalisierungen nicht mehr gedeckt. Aus dieser Situation heraus ergeben sich einige Forderungen an eine wirtschaftliche Softwareentwicklung.

- Erhöhung der Softwareakzeptanz durch die Einbeziehung der Fachabteilung in den Entwicklungsprozeß (Prototyping)

- Reduzierung der Entwicklungszeiten durch Anwendung neuzeitlicher Techniken und Werkzeuge

- Reduzierung des Testaufwands

- Reduzierung der Wartung durch Modularität sowie

- Reduzierung des Entwicklungs- und Wartungsaufwandes durch automatische Dokumentation

Im einzelnen werden diese Postulate durch bestimmte Softwaremerkmale abgedeckt.

Das Prototyping bezieht die Fachabteilung von Anfang an in den Entwicklungsprozeß ein. Ihre Anforderungen sind in Form einer Musterapplikation zu realisieren.

Ein derartiger Prototyp muß ohne eine Datenbasis und ohne eine einzige zu kodierende Programmzeile ablaufen. Es genügt die Definition von Bildschirmmasken und der Dialogstruktur mit allen Kommunikationsbedingungen. Der Endbenutzer sieht seine Anwendung und kann gewünschte Modifikationen schnell und leicht vornehmen. Ist der Prototyp nach letzter Korrektur abgenommen, kann diese Modellapplikation in die Produktionsapplikation übernommen werden und die reale Datenbasis definiert werden.

Modularität der Anwendungen wird erreicht durch eine konsequente Trennung von Masken, Datendefinitionen und Verarbeitungsprozessen.

Die Verarbeitungsprozesse sollen nur die reine Programmlogik enthalten. Routinefunktionen, wie zum Beispiel Steuerung der Terminalein- und -ausgaben Datentransfer, Datenmanagement oder Fehlerbehandlung müssen durch die Werkzeuge übernommen werden.

Alle datenbezogenen Verarbeitungen wie Verschlüsselungs-, Aufbereitungs- und Plausibilitätsroutinen sind Record- oder feldbezogen zentral in einem Data Dictionary zu verwalten und zu pflegen. Dort müssen auch alle Datendefinitionen und Verwendungsnachweise in Verarbeitungsprozessen und Masken gehalten werden.

Die automatische Dokumentation aller Anwendungsbausteine durch die entsprechenden Softwareentwicklungskomponenten sollte selbstverständlich sein. Sie muß ohne Einwirkung des Anwenders erfolgen. Dazu gehört auch die automatische Pflege bei Veränderungen am laufenden System, egal ob es sich um eine datenbezogene, maskenbezogene oder verarbeitungsbezogene Änderung/Ergänzung handelt. Aktualität ist hier oberstes Gebot. Notwendig ist in diesem Zusammenhang auch die interaktive Bereitstellung von Änderungsauswirkungen durch das Entwicklungssystem.

Keine DD-Pflege durch den User

Voraussetzung für die Erfüllung dieser Kriterien ist ein integriertes Data Dictionary, ein zentraler Ressourcenpool, in dem alle Informationen über Daten, Anwendungen sowie Benutzer redundanzfrei verwaltet werden. Die Pflege dieses zentralen Ressourcenpools muß automatisch in allen Anwendungsphasen durch das Entwicklungssystem erfolgen und nicht durch den Benutzer. Hier gibt es zwischen den verschiedenen angebotenen Systemen erhebliche Unterschiede.

Die herkömmlichen Testzeiten mit ihren immer wiederkehrenden Umwandlungen müssen entfallen, entwickelte Anwendungen interaktiv sofort ausgeführt werden. Nur so läßt sich eine Reduzierung der Entwicklungszeiten und eine höhere Akzeptanz der Benutzer erreichen. Anwender und Entwickler arbeiten Hand in Hand, Kommunikationsprobleme reduzieren sich auf ein Mindestmaß.

Unterschiedliche Effizienz

Weiterhin darf ein Betriebssystem-, Release- oder Hardwarewechsel keine Auswirkungen auf die Anwendungen haben. Vernachlässigt wird sehr oft die Unabhängigkeit von Betriebssystemen und die Aufwärtskompatibilität. Ein Entwicklungssystem und die daraus resultierenden Anwendungen sind aus der Sicht des Betriebssystems als reine Applikationen anzusehen. Nur dann und wenn eindeutige Schnittstellen zum Betriebssystem vorliegen, wird diese Forderung erfüllt.

Diese angeführten Merkmale wirtschaftlicher Softwareentwicklung werden durch Entwicklungssysteme der vierten Generation realisiert. Im Komfort und der Effizienz dieser Systeme gibt es je nach Hersteller gewisse Unterschiede, die in der Integration von Anwendungsprozessor, Data Dictionary, Maskengenerator und Datenverwaltungssystem differenzieren. Getrennt entwickelte und nicht abgestimmte Komponenten vermindern Akzeptanz und Produktivität derartiger Entwicklungssysteme entscheidend. Die Verbindung herkömmlicher Komponenten durch einen übergeordneten Ablaufrahmen schafft noch keine Systemintegration. Die bekannten Probleme werden durch diese Konzeption nicht beseitigt.

Ein für die Effizienz des Systems entscheidender Baustein ist das Data Dictionary. Es ist die zentrale Verwaltung für Datendefinitionen. Strukturen beziehungsweise Views, Routinefunktionen, Masken, Prozesse und Datenschutzmechanismen. Optimal ergänzt wird das Data Dictionary durch integrierte Komponenten für das Datenmanagement (DB-System), die Datenkommunikation (DC-System) und integrierte Werkzeuge für die Anwendungsentwicklung. Letztere müssen Bestandteil des Gesamtsystems "Entwicklungswerkzeuge" sein. Ihre Aktivitäten müssen durch das Entwicklungssystem gesteuert, kontrolliert und dokumentiert werden und nicht durch den Benutzer. Nur dann sind die vorgenannten Forderungen und die damit verbundenen positiven Auswirkungen erreichbar. Wichtig ist auch, daß nicht nur einfache, sondern auch komplexe Anwendungen durch diese Systeme unterstützt werden.

Der Anwender sollte die angebotenen Produkte sehr genau prüfen. Wesentliche Unterschiede existieren nicht nur im Funktionsumfang, sondern besonders in der Integration des Gesamtsystems und in der Eigenschaft, auch komplexe Anwendungen mit guter Performance laufen zu lassen.