Stichwort "Integrierte Projektunterstützungs-Umgebung" (Teil 4):

SW-Entwicklung legt Grundstein für Qualität

29.07.1988

Durch die Entwicklungsabteilungen geistert eine neue Zauberformel: Integrated Project Support Environment (IPSE). Mit einer siebenteiligen Serie von Wolfgang Grandell und Gerhard Friederich* will die COMPUTERWOCHE zur Entmystifizierung dieses Begriffs beitragen.

*Wolfgang Grandel ist Vertriebsleiter, Gerhard Marketing-Leiter Europa - beide im Produktbereich Maestro der Softlab GmbH, München.

Software-Qualität beginnt mit der Software-Entwicklung: Während dieser Phase unterstützt eine Vielzahl von Tools den Anwender bei der Qualitätssicherung. Nicht nur in die Entwicklungsumgebung integrierte Werkzeuge, auch Projektdatenbank und Dokumentation sowie die Segmentierung des Projekts, sichern die Qualität.

Was heißt "Qualität" bei Software-Produkten? Erst wenn diese Frage beantwortet ist, kann über Verbesserungen geredet werden. Die Literatur kennt eine Menge von Qualitätsmerkmalen, die sich auf zwei Hauptaspekte konzentrieren: Die funktionale Qualität, die die Anwenderseite betrifft und sich auf Leistungsumfang, Bedienerfreundlichkeit, Datensicherheit und Antwortverhalten bezieht, sowie die realisierungstechnische Qualität, die durch Begriffe wie Anpassungsfähigkeit, Modifizierbarkeit und Portabilität definiert ist. Insgesamt umfaßt die realisierungstechnische Qualität alles, was mit der Wartung eines Software-Produktes zu tun hat.

Eng verbunden mit dem Qualitätsbegriff ist die Sicherstellung der Qualität während der Software-Entwicklung als ein zentrales Leistungsmerkmal der Integrierten Projektunterstützungs-Umgebung (IPSE). Alle Instrumente der IPSE tragen zur Verbesserung in der Qualität der Programme bei.

Das Augenmerk richtet sich hier auf die Instrumente, bei denen die Effektivität und die Rationalisierung die größten Wirkungen zeigen. Im Vordergrund stehen die zur Vereinfachung der Entwicklungsarbeit in vielfältiger Form angebotenen Software-Entwicklungs-Tools. Sie erleichtern nicht nur die Programmierarbeit, sondern verringern auch entscheidend die Fehlerquote. Damit verkürzen diese Werkzeuge die Testzeiten und erleichtern die Maßnahmen zur Qualitätssicherung wesentlich; bei ihrer Beurteilung ist zu beachten, daß sie nicht "stand-alone" arbeiten, sondern sich in das Entwicklungssystem integrieren lassen.

Voraussetzung für den integrierten Einsatz von Entwicklungs-Tools ist ein Projektlexikon. Es bildet die Datenbasis für den Tool-Verbund. Dort werden beispielsweise alle Arten von Objekten, Relationen und Attributen (Datenbankanwendungen) sowie beispielsweise kompilierte Bildschirm-Layouts verwaltet.

Zum Design- und Generierungs-Prozeß trägt dieses Lexikon insofern bei, als in ihm auch die Ergebnisse aus grafischen Entwurfsmethoden abgelegt und zur Wiederverwendung bereitgehalten werden. Seine Hauptaufgabe besteht jedoch im einheitlichen Abspeichern von Arbeitsergebnissen, die mit unterschiedlichen Werkzeugen erstellt wurden. Dabei sollen externe, editierbare Ergebnisse durch Kompilierung in interne Formate überführt werden.

In dem so entstandenen einheitlichen Datenmodell lassen sich die formatierten Ergebnisse leichter verwalten, vergleichen und miteinander in Relation setzen. Im integrierten Entwicklungssystem ist das Projektlexikon wesentlicher Bestandteil der Entwicklungsdatenbank.

Leicht erlernbare Struktursprache wichtig

Ein wichtiges Werkzeug zur Verbesserung der Software-Qualität ist eine leicht erlernbare Struktursprache. Wird sie bereits bei der Programmdefinition angewandt, lassen sich die Programmvorgaben schon nach den Prinzipien der strukturierten Programmierung aufbauen, Programmvorgabe und Programm bleiben so immer ein einziges Dokument, aus dem bei Bedarf die entsprechenden Auswertungen erzeugt werden können.

Eine solche Struktursprache stellt einen Pseudo-Code dar. Die Update-Funktionen, ermöglichen ein Topdown-Design in der Entwicklung und zusätzlich eine schrittweise Verfeinerung in der Progammlösung.

Mit Hilfe von Strukturprogrammen lassen sich alle Änderungen zur Aktualisierung der Dokumentation auf dem Bildschirm oder auf einem Drucker ausgeben. Eingerückte Listen, die ebenfalls aus der Struktursprache gewonnen werden können, bilden eine weitere Auswertungsmöglichkeit, wobei auf Wunsch der zugehörige Source-Code mit ausgegeben werden kann. Es ist sicher zu erkennen, daß mit diesem Werkzeug auch die Qualität neu entstandener Software leichter sicherzustellen ist.

Tabellengetriebene Code-Generatoren gehören zu den am weitesten verbreiteten und bekannten Werkzeugen für die Software-Entwicklung. Sie stehen heute schon für alle gängigen Zielsprachen wie Cobol, C, PL/1, Pascal, "Natural" und "Delta" zur Verfügung. Neben der Programmlogik der Zielsprache werden alle erforderlichen Steuerbefehle erzeugt. Änderungen im Steuerfluß werden automatisch bei Neugenerierungen berücksichtigt.

Die Gestaltung und Verwaltung von Bildschirm-Layouts stellt eine schwierige Aufgabe bei der Software-Entwicklung dar. Einmal erfordert ihr Aufbau beachtliche Fertigkeiten, zum anderen müssen sie exakt auf den Host-Anwender zugeschnitten sein. Hier kann ein besonderes Werkzeug sehr nützlich sein, das sowohl die Layout-Gestaltung mit der Vergabe von Feld-Attributen gestaltet, als auch die Anzeige der Attribute und die Überprüfung des Cursor-Verhaltens. Die Kompilierung erfolgt dann über einen Eintrag der Daten in eine Hostunabhängige Meta-Code-Datei.

Beträchtlichen Nutzen bietet ein solches Mapper-Tool beim sogenannten Prototyping, der Simulation einer Dialog-Transaktion. Dabei erhält der Anwender einen realistischen Eindruck vom späteren Programmablauf. In einem simulierten Host-Dialog werden dabei verschiedene Layouts mit Testdaten auf ihre Einsatzfähigkeit geprüft.

Durch derartige Verfahren lassen sich einmal die Entwicklungskosten senken, weil der Anwender direkt entscheiden kann, welche der angebotenen Alternativen seinen Vorstellungen am nächsten kommt. Zum anderen minimiert dieses Verfahren den späteren Wartungsaufwand, da für Änderungen auf die im Projektlexikon gespeicherten Dokumente zurückgegriffen werden kann.

Eine wesentliche Hilfe bei der Programmentwicklung stellt ein Tool dar, das eine direkte Verbindung zum Data-Dictionary des Host herstellen kann. Mit dieser Benutzerschnittstelle lassen sich zum Beispiel Prozeßfunktionen oder Projekte auf den Zielrechner übertragen. Andererseits können die Data-Dictionaries des Host in das Projektmanagement des Entwicklungssystems eingegliedert werden.

Für die Prüfung der Programme oder einzelner Programmteile auf Redundanz und Widersprüche (Plausibilitätsprüfung) ist die Entscheidungstabellen-Technik ein sehr zweckmäßiges Werkzeug; es hilft bei der interaktiven Führung in der Entwicklungs- und in der Wartungsphase. Diese Technik unterstützt außerdem die Konsolidierung vollständiger Tabellen und dient zur Aufbereitung von Programmen zur Inspektion am Bildschirm oder am Drucker. Die Bearbeitung der Entscheidungstabellen erfolgt dabei im strukturierten Anzeigemodus. Über ein Menü werden alle erforderlichen Dienstleistungsfunktionen abgerufen.

Fehlerverringerung schafft Zeit für Kreativität

Die hier vorgestellte Palette von entsprechenden Software-Entwicklungswerkzeugen erhebt keinen Anspruch auf Vollständigkeit, gibt aber einen Einblick in die Möglichkeiten, die eine Integrierte Projektunterstützungs-Umgebung (IPSE) eröffnet. Es ist sehr leicht einzusehen, daß durch derartige Tools die Gefahr von Fehlern geringer wird. Darüber hinaus steht dem Entwickler bei Verwendung solcher Hilfsmittel mehr Zeit zur Verfügung, um im kreativen Teil seiner Arbeit effektiver zu sein.

Eine besondere Bedeutung für die Qualität der Softwareprodukte ist die Dokumentation. Da hier in den traditionellen Entwicklungsmethoden häufig gravierende Fehler begangen werden, bedarf dieser Punkt besonderer Beachtung. In einer effektiven Produktionsumgebung sollte der Vorgang des Dokumentierens parallel mit der Entwicklung der Programme erfolgen. Am sinnvollsten ist eine automatische Dokumentation.

Geeignete Dokumentation ist ein Qualitätsmerkmal

Allein die Tatsache, daß für ein Programm eine für den Anwender brauchbare Dokumentation Vorliegt stellt bereits ein Qualitätsmerkmal dar. Die Dokumentation erleichtert Installation und Einweisung; außerdem unterstützt sie den Benutzer im Einsatz des Programms und ist von unschätzbarem Wert bei der Wartung der Programme. Perfekte Dokumentationen erleichtern die Fehlersuche und verkürzen Änderungs- und Pflegezeiten - vor allem dann, wenn diese Aufgaben in einer IPSE ausgeführt werden.

Die Verifikation der Entwicklungsleistung ist ein entscheidender Beitrag zur Verbesserung der Softwarequalität. Auch dabei spielt die Integration der Produktionsumgebung eine Rolle. Eine Generalforderung sollte die Teilprodukt-orientierte Qualitätssicherung sein.

Die Gefahr der Produktion von Software minderer Qualität wird in dem Maße eingeschränkt, wie das Gesamtprojekt in Teilprodukte zerlegt wird, die einzeln auf ihren Qualitätsstand hin überprüft werden können. Die Erfahrung beweist es: Je kleiner die in sich geschlossenen Produktionsabschnitte sind, um so besser ist die Qualitätssicherung und damit auch die Endqualität des Produkts.

In dem Beitrag über das Projektmanagement wurde dargestellt, wie ein Projektbaum entwickelt wird und wie die einzelnen Teile des Projektes zu behandeln sind. Das schlägt bis zur Qualitätssicherung durch. Die Projektbibliothek ist dafür das wichtigste Instrument.

Neben der rein konstruktiven spielt aber auch die analytische Qualitätssicherung eine wichtige Rolle. Geheimhaltungsvorschriften bei bestimmten Programmteilen lassen sich auch in der Phase der Qualitätssicherung nur dann optimal realisieren, wenn die Zugangsbestimmungen zu diesen Programmteilen auch in der Prüfphase der Produkte exakt eingehalten werden. Das ist ein besonderes Merkmal der IPSE.