Softwarestandards: Die Softwareentwicklungsstrategie
Das Schichtenmodell der Anwendungssysteme
Die unterste Ebene des Schichtenmodells für Anwendungssysteme bilden
Funktionen, die als Schnittstelle zum Betriebssystem dienen und völlig
unabhängig von irgendwelchen Datenmodellen arbeiten. Hier werden
Dateizugriffe oder Terminaloperationen und ähnliche
systemnahe
Funktionen abgewickelt. Diese Softwareschicht ist eine ganz
wesentliche Voraussetzung für die Systemunabhängigkeit der
Anwendungsprogramme und erlaubt eine einfache Anpassung an
unterschiedliche Hardwarearchitekturen und Betriebssysteme.
Eine weitere Ebene des Schichtenmodels wird von verschiedenen Teilaufgaben
gebildet, die unabhängig von der konkreten Anwendung in kommerziellen
Systemen häufig benötigt werden. In diese Klasse fallen etwa die Eingabe
und Ausgabe numerischer Werte oder die Aufbereitung von Datumseingaben,
aber auch die Sortierung von Tabellen im Hauptspeicher.
Eine eigene Stufe innerhalb der Systemarchitektur bilden die
Operationen
mit Anwendungsdateien. Hier ist die modulare Struktur von besonderer
Bedeutung, weil die Funktionen für das jeweilige Datenmodell speziell
optimiert werden können. Jeder Zugriff auf eine bestimmte physische Datei
ist im gesamten Softwaresystem nur einmal programmiert und kann jederzeit
an geänderte Voraussetzungen angepasst werden. Die Anwendungssysteme
verwenden abstrahierte Datenstrukturen und kümmern sich nicht darum, in
welcher Form diese Daten physisch tatsächlich im System gespeichert
werden.
Der modulare Aufbau erlaubt auch eine
flexible Datenmodellierung.
Gleichartige Datenstrukturen werden von denselben Modulen bearbeitet, auch
wenn sie unterschiedlichen Anwendungen angehören. Damit reduziert sich
nicht nur der Aufwand für die Softwareentwicklung, das System wird auch
leichter bedienbar, weil verwandte Funktionen in allen Systembereichen
einheitlich behandelt werden.
Die nächste Ebene der Architektur bilden Funktionen zur
anwendungsorientierten
Lösung verschiedener Aufgaben, etwa die Abwicklung von
Bestandsveränderungen im Lager oder die Berechnung von Umsatzsteuerdaten.
Detailfunktionen werden zu umfangreicheren Operationen zusammengefasst,
die komplexe Aufgaben über eine standardisierte Schnittstelle abwickeln.
Eine solche Funktion ist etwa der Modul zur Verarbeitung einer
Buchungszeile, der über eine entsprechend definierte Schnittstelle einen
Buchungssatz erhält und alle damit zusammenhängenden Aufgaben abwickelt:
Schreiben der Journaldatei, Nachführen der Salden, Erstellen einer
Kostenrechnungsbuchung und bei Bedarf Erledigung aller dieser Aufgaben
auch für das Gegenkonto.
Sämtliche Buchungsvorgänge - nicht nur in der Finanzbuchhaltung, sondern
auch in allen anderen Systembereichen, etwa bei der Verbuchung von
Fakturen in der Warenwirtschaft - werden über diese Schnittstelle
abgewickelt. Die Softwareentwicklung muss sich mit Details der Verbuchung
nicht befassen, was die Fehlerquote bei Neuentwicklungen drastisch senkt,
umgekehrt können die hinter der Schnittstelle ablaufenden Vorgänge
jederzeit modifiziert, erweitert oder gänzlich neu gestaltet werden, ohne
dass die einzelnen Anwendungen dazu verändert werden müssten.
Die gesamte Anwendungssoftware stellt also ein hierarchisch
gegliedertes System von spezialisierten Teilaufgaben mit klar
definierten Schnittstellen dar. Die Anwendungsprogramme selbst bestehen
nur noch aus einer sinnvollen Aneinanderreihung von Funktionsaufrufen und
führen unmittelbar keinerlei Verarbeitungen aus. Anwendern mit eigener
Softwareentwicklung stehen alle Bibliotheken auch für die eigene
Programmentwicklung zur Verfügung, mit deren Hilfe individuelle Programme
mit minimalem Aufwand erstellt werden können.