Seite: Home > Software > Softwarestandards > Qualitätsmerkmale der Software > Vorteile für die Softwareentwicklung

Softwarestandards: Qualitätsmerkmale der Software
Vorteile für die Softwareentwicklung

Die Softwareentwicklung ist kein Selbstzweck, sondern steht ausschließlich im Dienst der Anwender. Es ist daher für die Kunden gleich wichtig wie für das Entwicklungsunternehmen, dass die Konzepte zur Herstellung von Software eine effiziente und vor allem fehlerlose Arbeitsweise ermöglichen.

Produktivität

Die Vorteile für die Effizienz der Softwareentwicklung sind offensichtlich: Beispielsweise kommt im Personalsystem an etwa achtzig verschiedenen Stellen eine Datumseingabe (Tag-Monat-Jahr) vor. Um auch nur in primitiver Form eine solche Eingabe zu verarbeiten und auf Korrektheit zu prüfen, sind mindestens 12 Programmzeilen nötig, insgesamt allein im Personalsystem also 960 (80 x 12) Zeilen. Steht eine Funktion zur Verfügung, reduziert sich der Programmieraufwand auf einen Funktionsaufruf pro Datumseingabe, also in diesem Beispiel auf ein Zwölftel.
Wenn in ausreichendem Maß fertige Funktionen zur Verfügung stehen (die Dialog Data verfügt derzeit über etwa 9.000 derartiger Bibliotheksroutinen), vermindert sich der Entwicklungsaufwand für Software um Größenordnungen. Neben allen anderen Vorteilen ermöglichen die Software Components Libraries eine wesentlich kürzere Entwicklungszeit und drastisch reduzierte Entwicklungskosten.

Mit Standardfunktionen für die automatische Verwaltung von Indexdateien samt Matchcode und Nummernverzeichnissen sowie den Maskenfunktionen kann zum Beispiel ein Erfassungs- und Änderungsprogramm für eine Stammdatei - etwa Bücher für ein Bibliotheksprogramm - in wenigen Stunden entwickelt werden. Man muss dazu nur die Felder im Datensatz und in der Bildschirmmaske und für jedes Eingabefeld eine Verarbeitungsfunktion (wieder unter Verwendung von Standardroutinen wie Datumseingabe oder Prüfung der Postleitzahl) definieren. Ohne dass sich der Programmierer darum kümmern muss, werden von diesem Programm automatisch bis zu zwölf verschiedene Dateien verwaltet, alle Anzeige- und Ausgabefunktionen am Terminal abgewickelt, Matchcodeabfragen erledigt und Nummeränderungen ausgeführt.

Wiederverwendbarkeit

Jede Aufgabe, die einmal gelöst und als Funktion in eine Bibliothek übernommen wurde, kann in der Folge ohne zusätzlichen Programmieraufwand verwendet werden, und zwar auch von Programmierern, die fachlich von der durch die Funktion gelösten Aufgabe gar keine Ahnung haben. Die wenigsten Programmierer, die Sortierfunktionen verwenden, können einen Sortieralgorithmus auch programmieren.

Modularisierung

Der Einsatz von Standardfunktionen führt automatisch zu einer Modularisierung der gesamten Software. Jede Funktion löst ein bestimmtes Problem in einer vorgegebenen Weise, und zwar in den meisten Fällen völlig unabhängig von den übrigen Funktionen der Verarbeitung. Damit kann man bei Bedarf sehr einfach einzelne Funktionen entweder erweitern oder gegen eine andere Funktion austauschen, wenn etwa anwenderspezifische Kostenrechnungsmodule eingesetzt werden können. Bei Betriebssystemen, die Shared Libraries unterstützen, können solche Modifikationen sogar ohne Neucompilation der Anwendungsprogramme vorgenommen werden.

Reduzierung der Komplexität

Wenn für eine bestimmte Aufgabe etliche Teilprobleme bereits in Form von fertigen Routinen gelöst sind, reduziert sich automatisch die Komplexität auf die verbleibenden Aufgaben. Die Entwicklung wird damit wesentlich vereinfacht und die Gefahr für Fehler deutlich reduziert.

Kopplung

Die Kopplung beschreibt die Komplexität der Beziehungen zwischen den Modulen und umfasst den Kopplungsmechanismus, die Breite der Schnittstellen und die Kommunikationsart zwischen den Modulen.
Manche gefährliche Kopplungsmechanismen (wie PERFORM in COBOL) sind in der Software der Dialog Data schon wegen der verwendeten Programmiersprache (C und C++) nicht möglich, andere (goto oder externe Verbindungen über globale Variablen) explizit verboten.
Die Schnittstellenbreite wird zwar so gering wie möglich gestaltet, allerdings in Hinblick auf die inkrementelle Entwicklung der Software fallweise mit vorläufig leeren Parametern versehen, um spätere Erweiterungen und den Austausch zusätzlicher Informationen ohne Veränderung der Schnittstellen zu ermöglichen.

Die Kommunikationsart wird durch die Art des Austausches von Daten und Steuerinformationen zwischen den Modulen bestimmt. Die Datenkopplung wird möglichst minimal gehalten, wobei es abgesehen von einigen begründeten Ausnahmefällennicht erlaubt ist, verschiedenen Wertebereichen eine unterschiedliche Bedeutung zuzuordnen (etwa Lohnartennummer > 400 ist Abzug). Die Festlegung der Bedeutung wird weitestgehend dem Anwender über entsprechende Kennzeichen überlassen. Die minimale Datenkopplung ist die Voraussetzung für die Entwicklung von universell verwendbaren Funktionen, wie sie zum Beispiel oben bei den strukturspezifischen Funktionalsystemen erwähnt wurden. Sie sind damit auch wiederverwendungsfreundlich, leicht zu warten und weniger fehleranfällig.

Bindung

Die Bindung (Kohäsion) beschreibt die Komplexität innerhalb der einzelnen Module.
Die funktionale Bindung ist so gestaltet, dass die Routinen eine bestimmte Aufgabe in möglichst einfacher Form lösen: In aller Regel wird mit einem Objekt eine Aktion ausgeführt. Natürlich kann eine solche Aktion andere Funktionen aufrufen, die ähnlich gestaltet sind, wodurch sich auch äußerst komplexe Vorgänge durch einfach gestaltete Funktionen realisieren lassen (etwa "Personalnummer abrechnen"). Erst die damit erreichte Kontextunabhängigkeit ermöglicht die Realisierung der bei der Strategie der Softwareentwicklung erwähnten Funktionalsysteme, parallel dazu erhöht sich die Wiederverwendbarkeit und sinkt die Fehleranfälligkeit. Auch können solche Funktionen relativ leicht erweitert werden, was eine wichtige Voraussetzung für die inkrementelle Entwicklung der Anwendungen ist.

Die Datenmodellierung sorgt durch Entwicklung entsprechender Funktionen für eine informale Bindung durch funktional gebundene Zugriffsoperationen, die für jede Datenabstraktion isoliert entwickelt werden und speziell mit dieser Datenstruktur operieren. Jedes Objekt hat seine eigenen Zugriffsfunktionen, über welche das Objekt ausschließlich bearbeitet wird. Damit verbunden ist die Realisierung des bei der Kapselung besprochenen Geheimnisprinzips.

Kapselung

Die bei der Modularisierung angewendeten Konzepte führen dazu, dass die Funktionen über definierte Schnittstellen aufgerufen werden, ohne dass die Vorgänge innerhalb der Funktion für den Anwender einer Routine sichtbar sind. Neben diesem Geheimnisprinzip werden durch eine entsprechende Kapselung zusammengehörige Daten und Operationen zu einer Einheit zusammengefasst.

Da jedes Objekt über seine eigenen Zugriffsfunktionen verfügt (informale Bindung) und diese für den Anwender der Funktionen verborgen bleiben, können derartige Operationen in einfacher Weise modifiziert oder ausgetauscht werden: Das Lesen eines Artikelstammsatzes liefert die benötigte Datenstruktur, ohne dass der Programmierer weiß, ob diese Daten aus einer oder aus mehreren physischen Dateien stammt oder aus einer externen Datenbank bezogen wurde. Gerade die Kapselung von auf externen Massenspeichern verwalteten Datenbeständen beseitigt eine in kommerziellen Anwendungen spezielle bei schreibenden Zugriffen sehr häufig zu beobachtende Fehlerquelle und ist ein wesentlicher Grund für die hohe Betriebssicherheit und die enormen Durchsatzraten der Anwendungssysteme.

Testbarkeit

Selbstverständlich ist eine einzelne Datumsroutine einfacher zu testen als ein System, bei dem über viele Programme verstreut an achtzig verschiedenen Stellen eine Datumseingabe ausprogrammiert wurde.

Durch die Modularisierung werden Softwaretests nicht nur wesentlich vereinfacht, es ist auch sichergestellt, dass die benötigte Funktionalität in allen Anwendungen verfügbar ist, die einen solchen Modul verwenden.

Wartbarkeit

Sowohl die Fehlerbehebung wie auch die Anpassung an neue Anforderungen werden durch die Verwendung von Standardfunktionen beträchtlich vereinfacht: In beiden Fällen braucht man nur die entsprechende Funktion zu bearbeiten, um in der gesamten Software den gewünschten Effekt zu erreichen.
Beispielsweise wurde die Betragseingabe nach Entwicklung des Formelprozessors um entsprechende Rechnenfunktionen erweitert. Ohne dass dem Programmierer bekannt war, wo die Funktion zur Betragseingabe überhaupt verwendet wird, wurde durch die Modifikation einer Routine die gesamte Software der Dialog Data um die Rechenfunktionen bei der Eingabe erweitert.
Wäre umgekehrt die Betragseingabe überall dort, wo sie gerade benötigt wird, in die Software hineinprogrammiert, wäre eine solche Änderung mit praktisch unlösbaren Schwierigkeiten verbunden: Wahrscheinlich würden wir gar nicht alle Stellen in den Programmen finden, an denen eine Betragseingabe vorkommt, auch wird sich kaum erreichen lassen, dass jede einzelne Änderung in identischer Form ausgeführt wird. Ganz abgesehen davon steht von vornherein fest, dass wir nicht über die nötige Kapazität zur Bewältigung dieser Aufgabe verfügen: Die Betragseingabe kommt in den Systemen der Dialog Data insgesamt 620 Mal vor. Rechnet man für Änderung und Test einer solchen Eingabe nur zwei Stunden Arbeit, ist ein Programmierer ein ganzes Jahr lang damit beschäftigt und wird nebenbei mit diesen Änderungen mindestens 40 bis 50 neue Fehler in die Software einbringen, zu deren Beseitigung ein weiteres Jahr Aufwand nötig ist.

Dieses Beispiel zeigt, dass die Softwarearchitektur einen ganz wesentlichen Einfluss auf die Leistungsfähigkeit eines Entwicklungsteams hat: Für eine Aufgabe, die ein Unternehmen mit entsprechend guten Voraussetzungen in acht Stunden fehlerlos bewältigt, braucht man woanders zwei Jahre.

Vorhersehbarkeit

Sämtliche in den Bibliotheken verfügbare Module werden in der bereits verfügbaren Software natürlich verwendet und im praktischen Einsatz getestet. Ihre Funktionalität ist schon bekannt, man muss nicht erst darauf warten, welche Ergebnisse die Neuentwicklung der Software zeigen wird. Damit sind schon vor Beginn der Entwicklung eines Programms detaillierte Aussagen über dessen Funktionalität möglich.

Plattformunabhängigkeit

Durch den modularen Aufbau der Bibliotheksfunktionen ist es relativ einfach, die einzelnen Funktionen so zu gestalten, dass sie unter mehreren unterschiedlichen Betriebssystemen verwendet werden können. Jene Funktionen, die für bestimmte Systeme spezielle Maßnahmen erfordern, können so gestaltet werden, dass sie bei der Compilation automatisch an das jeweilige Zielsystem angepasst werden. Auf diese Weise sind alle in den Bibliotheken vorhandenen Routinen sowohl auf allen von der Dialog Data betreuten UNIX-Systemen wie unter MS-DOS oder MS Windows einsetzbar.
Die universelle Verwendbarkeit der Module reduziert nicht nur den Entwicklungsaufwand, sondern gibt den Anwendern auch die Möglichkeit, bei Bedarf die vom UNIX-System gewohnten Programme auch auf Personalcomputern zu verwenden. Das wird zum Beispiel bei Kassensystemen, bei externer Erfassung von Lohn- oder Betriebsdaten oder bei der Bestellverwaltung auf Laptops verwendet. Auch die systemnahen Funktionen wie Sortierung, Windowmanagement oder Druckerausgabe werden auf jeder Plattform - angepasst an das jeweilige System - in identischer Form eingesetzt und zeigen überall die gewohnte Funktionalität.

Da alle Routinen die Daten zwischen den verschiedenen Darstellungsformen im Prozessor (Low bzw. High Byte Ordering) und unterschiedlichen Zeichensätzen automatisch konvertieren (auch das ist eine Bibliotheksfunktion), können alle Dateien ohne spezielle Umformung extern oder über das Netz direkt verwendet werden.

Softwarestandards Softwarestandards
Qualitätsmerkmale der Software Qualitätsmerkmale der Software 
Verbesserte Funktionalität Verbesserte Funktionalität
Bitte beurteilen Sie unsere Webseiten durch Klick auf eine Schulnote (noch besser über die Feedbackseite):
Die aktuelle Seite: 
Note 1 Note 2 Note 3 Note 4 Note 5
Gesamte Website: 
Note 1 Note 2 Note 3 Note 4 Note 5

Home  |  Unternehmen  |  Lösungen  |  Hardware  |  Software  |  Dienstleistungen  |  Linux  |  Konzepte  |  News & Infos  |  Webservice
Zurück zum Seitenanfang Fragen, Anregungen, Wünsche: Feedback * Impressum * Datenschutzerklärung * Update 20-Nov-2015

www.mibs.at: Das Mitarbeiterbetreuungssystem MIBS (neues Fenster)
www.linuxoffice.at
: Linux im Unternehmen (neues Fenster)
www.dialogdata.net: Providerfunktionen und Internetdienstleistungen (neues Fenster)


© Dialog Data GmbH., Zweiglgasse 11, A-8020 Graz, Steiermark/Austria, Tel. +43/316/810091, E-Mail: office@dialogdata.com, AGB