Softwarestandards: Die Softwareentwicklungsstrategie
Modularer Aufbau und Wiederverwendung
Die Softwareentwicklung zeigt in der Praxis sehr oft ungenügende
Ergebnisse - man spricht in diesem Zusammenhang schon seit Jahrzehnten von
einer Softwarekrise, ohne dass sich an dieser Situation etwas geändert
hätte. Eine wichtige Ursache dafür liegt in einer ineffizienten
Organisation der Softwareentwicklung.
Der Erfolg der Softwarelösungen der Dialog Data beruht nicht zuletzt auf
der modularen Konzeption aller Anwendungen, die eine wesentliche
Voraussetzung für die Qualität der Softwareprodukte darstellt.
Voraussetzungen für den Einsatz von Bibliotheken
Um Softwarebibliotheken erfolgreich einsetzen zu können, sind etliche
Voraussetzungen zu erfüllen:
Die Software muss in einer
Programmiersprache entwickelt werden,
die auf allen Zielsystemen in kompatibler Form und ohne zusätzlichen
Aufwand
verfügbar ist.
Die Bibliotheken müssen mindestens 80 % aller benötigten Funktionen
abdecken. Andernfalls entartet die Softwareentwicklung in eine Entwicklung
von Softwarebibliotheken, wobei fast alle Vorteile dieses
Entwicklungskonzepts verloren gehen.
Die Module müssen universell verwendbar sein und mit Hilfe von
Parametern an die jeweiligen Bedürfnisse angepasst werden können. Ist
für jeden Anwender oder nach jeder gesetzlichen Änderung eine neue
Version eines Moduls zu entwickeln, wird die Verwaltung und Konfiguration
der Software sehr bald zu einem unlösbaren Problem. Eine einzige
Verwechslung von Modulversionen kann dazu führen, dass das gesamte
EDV-System des Anwenders zusammenbricht oder Dateien zerstört werden. In
den Bibliotheken der Dialog Data existiert aus diesem Grund keine einzige
Funktion in mehr als einer Version.
Organisation der Softwareentwicklung
Wie aus dem Organisationskonzept der Dialog Data zu ersehen ist, gliedert
sich der Entwicklungsbereich für Software in Abteilungen, deren
Aufgabenstruktur dem Schichtenmodell der Software entspricht: Auf
verschiedenen Ebenen werden Module entwickelt, die in einer Bibliothek
abgelegt und von dort zusammen mit anderen Modulen zu einem Produkt einer
höheren Ebene integriert werden.
Das Modularisierungskonzept muss mehrere Aspekte berücksichtigen:
- Jede Architekturkomponente sollte ein logisch zusammenhängendes
Teilproblem behandeln.
- Da große Systeme aus einer Vielzahl von Komponenten bestehen, muss
die Abhängigkeit jeder einzelnen Komponente von anderen Komponenten
möglichst klein sein.
- Die Funktionsweise jeder Komponente muss so definiert sein, dass sie
von anderen Komponenten benutzt werden kann, ohne dass die
Realisierungsdetails bekannt sind. Ein Entwickler kann Komponenten
verwenden, ohne zu wissen, wie diese funktionieren. Er muss nur
wissen, was sie leisten. Dieses Kriterium ist auch für die
Wartbarkeit von Bedeutung.
- Jede Komponente sollte von einer Person innerhalb eines
überschaubaren Zeitraumes (etwa 10 Manntage) implementiert und
getestet werden können.
Auf dieser Basis wird praktisch die gesamte Software der Dialog Data
entwickelt, was nicht nur eine Grundlage für die hohe
Wiederverwendungsrate und die daraus folgende Produktivität darstellt,
sondern eine der wesentlichsten Gründe dafür ist, dass die Applikationen
der Dialog Data über Jahre hinweg zuverlässig und fehlerlos ihre
Aufgaben bewältigen.
Standardisierte Funktionen
Eine wichtige Voraussetzung für eine ökonomische und benutzerfreundliche
Softwaregestaltung ist dadurch gegeben, dass der Programmierung eine
umfassende
Bibliothek mit kommerziellen Anwendungsfunktionen zur
Verfügung steht. Diese Bibliothek ist das Ergebnis einer zwanzigjährigen
Softwareentwicklung und enthält standardisierte Module zur Lösung
sämtliche in kommerziellen Anwendungen benötigter Teilaufgaben wie Ein-
oder Ausgabe eines Betrages oder eines Datums oder Abfragefunktionen zu
irgendwelchen Listen.
Diese Standardisierung trägt wesentlich zum
Bedienungskomfort der
Software bei: Es ist völlig ausgeschlossen, dass sich eine bestimmte
Funktion - etwa die Eingabe eines Datums - in einem Programm anders
verhält als in allen anderen Programmen. Jede einzelne Teilaufgabe, mit
welcher der Anwender über seinen Monitor oder den Drucker konfrontiert
ist, wird ausnahmslos von einer solchen Standardfunktion erledigt. Er kann
sich blind darauf verlassen, dass sich jede Funktion, die er einmal kennen
gelernt hat, in sämtlichen Programmen gleich verhält. Es ist also nicht
notwendig, für jedes Programm gesondert die Einzelheiten der Bedienung zu
erlernen, was den Einarbeitungsaufwand deutlich reduziert.
Ein zweiter Vorteil dieser Standardisierung zeigt sich bei der Softwareentwicklung:
Neue Programme oder Zusätze zu vorhandenen Verarbeitungen können mit
minimalem Aufwand erstellt werden, da sich der Programmierer um die
Standardfunktionen nicht kümmern muss, die meist einen wesentlichen Teil
des Programms ausmachen, sondern sich ganz auf die für die neue Anwendung
spezifischen Aufgaben konzentrieren kann. Mit Hilfe dieser
Standardfunktionen reduziert sich beispielsweise der Aufwand für ein
Erfassungsprogramm zu einer neuen Stammdatei von beliebigem Satzaufbau auf
eine Programmierzeit von drei bis vier Stunden.