Projektmanagement: Vourbeugen ist besser als Warten

21.05.1982

Statt sich mit dem Neuentwickeln von Programmen zu beschäftigen, sind die meisten Programmierer noch immer hauptsächlich mit deren Pflege und Wartung befaßt. Grund für dieses "Software-Dilemma": In der Anfangsphase eines Projektes werden vorbeugende Maßnahmen für die Wartung nicht in ausreichendem Maße und vor allem nicht rechtzeitig getroffen. Dabei sind für den späteren Erfolg die vorher getroffenen Qualitätssicherungsmaßnahmen und nicht die nachträglichen verbesserungsversuche entscheidend. Jede Wartung, die unter Zeitdruck durchgeführt wird, muß den Aufwand zwangsläufig hochtreiben. Dr. Harald Dietzsch rät, sich von der Vielzahl der Service-Verfahren nicht verunsichern zu lassen: "Der DV-Bereich sollte sich für ein Methodenkonzept entscheiden und es anwenden." ih

Professor Dr. Arno Schulz Institut für Informatik,

Johannes-Kepler-Universität Linz

Seitdem die NATO-Konferenz in Garmisch-Partenkirchen 1971 den Begriff "Software-Engineering" geprägt hat, versuchen die bundesrepublikanischen Programmierabteilungen das vorindustrielle Zeitalter der handwerklichen Fertigung durch eine industrieähnliche Produktion abzulösen. Dazu dient die Strukturierte Programmierung und strukturierte Software-Entwurfsverfahren, die in den 70er Jahren wie Pilze aus dem Boden geschossen sind. Trotzdem hat sich in vielen Programmierabteilungen fast nichts geändert. Der Testa und Wartungsaufwand ist noch immer größer als der Aufwand für die Neuentwicklung von Programmen, so daß die Masse der Programmierer mit der Programmpflege beschäftigt ist. Beispielsweise stellte eine Diebold-Studie vor einigen Jahren fest, daß nur 20 bis 30 Prozent der DV-Anwender, die eigene Rechner betreiben, systematisch Software-Entwurfsmethoden einsetzen. Diese Aussage wird noch einmal bestätigt durch die 1980 veröffentlichte GMD-Untersuchung über Maßnahmen zur Verbesserung der Software-Produktion. Dort wird ein "Methodenberg" für Programmentwurf und Codierung festgestellt, dem "Methodentäler" für die Anfangsphase der Softwareproduktion sowie für Test und Wartung gegenüberstehen, so daß die DV-Anwender vor allem auf eine Reduktion des Testaufwandes warten. Aus diesen Fakten schließt der renommierte Computerwissenschaftler Prof. Floyd von der Stanford-Universität, daß aus der Softwarekrise inzwischen ein Software-Dilemma geworden ist.

Was sind die Gründe für diese Entwicklung? Sind daran wirklich nur die oben zitierten "Methodentäler" schuld? Haben vielleicht die Programmierer versagt? Denn die meisten DV-Abteilungen sind historisch gesehen aus kommerziellen Betriebsbereichen und nicht aus Konstruktionsbüros heraus entstanden, so daß ihnen der Arbeitsstil des Ingenieurs, auch wenn man ihn fordert und anordnet, völlig fremd ist.

Obwohl in allen diesen Fragen ein Körnchen Wahrheit steckt, sehe ich primär den Grund für das Software-Dilemma darin, daß bisher im Software-Entwurfsprozeß der Größe "Qualität" in den Anfangsphasen eines Softwareprojekts keine oder zuwenig Beachtung geschenkt wird. Natürlich weiß man, daß ein Programm zuverlässig und fehlerfrei arbeiten soll. Aber ich selbst habe gerade wieder in den letzten zwölf Monaten in meinem Berufsalltag, als Leiter eines Universitätsrechenzentrums schmerzlich miterleben müssen, wie ein bekannter Computerhersteller erst in der Installationsphase versuchte, durch nachträgliche Programmänderungen und Redesign die geforderte Softwarequalität zu erreichen. Gefordert sind aber vorbeugende Qualitatssicherungsmaßnahmen und nicht nachträgliche Qualitätsverbesserungsversuche.

Was heißt Qualitätssicherung? Sie beginnt bereits in der Analyse- und Definitionsphase. Spezifikationsfehler lassen sich leicht beseitigen, wenn man sie bemerkt. Da Menschen keine Roboter sind und deshalb immer fehlerbehaftet arbeiten werden, müssen am Ende der Analyse- und Definitionsphase die Spezifikationen entweder maschinell durch ein

Softwarewerkzeug überprüft werden, oder ihre Richtigkeit ist formal zu beweisen. Dasselbe gilt für den Programmentwurf mit den Teilphasen: Datenentwurf, Grob- und Feinentwurf.

Qualitätssicherungsmaßnahmen sind in den herkömmlichen Ingenieurwissenschaften, wie dem Maschinenbau seit langem bekannt und gehören zum Repertoire jedes Konstrukteurs. So findet man in der VDI-Richtlinie 2222, in der 50 Jahre Konstruktionserfahrung niedergelegt sind, den Satz: "Die für die Teilfunktionen gefundenen Lösungsprinzipien sind durch orientierende Berechnungen und/oder Versuche zu stützen." In der Sprache des Softwareingenieurs heißt dies, daß entweder analytische Verifikationsmethoden oder Testmethoden frühzeitig anzuwenden sind. Auf den Softwareentwurf übertragen bedeutet diese Aussage, daß sowohl die Phase des Grobentwurfs als auch die des Feinentwurfs mindestens mit einem maschinellen Test abzuschließen sind, um die geforderte Qualität zu bestätigen. Für diese Aufgabe bieten sich Simulationsmethoden an oder auch Programmgeneratoren, die prüfen, ob die "Syntax" einer Programmentwurfsmethode eingehalten wurde.

Last not least ist spätestens seit den Raumfahrtprojekten bekannt, daß die Qualität eines technischen Produktes auch inhärent mit Projektführungstechniken verbunden ist. Die Programmdokumentation ist dabei ein wichtiger Bestandteil. Man erwartet deshalb mit Recht von einen modernen Softwarewerkzeug, daß es den Benutzer automatisch durch alle Phasen eines Softwareprojektes führt und die Ergebnisse seiner Tätigkeit Schritt haltend dokumentiert. DAS-Systeme als Pendant zum CAD der Hardwareentwicklung sind die Antwort auf diese Forderung.

Dr. Harald Dietzsch, Dreieich

Jede neue Anwendung erfordert neu entstehenden Aufwand für Wartung beziehungsweise Änderungen. Es gibt DV-Bereiche, deren Entwicklungskapazität inzwischen fast vollständig damit gebunden ist. Da wachsende DV-Anforderungen zu bedienen sind, ist dieser Zustand nicht haltbar. Vorbeugende Maßnahmen sind einzuleiten, deren Wirkung erst eintreten kann, wenn die unter diesen Maßnahmen entwickelten Anwendungen implementiert sind. Vorleistungen sind zu erbringen.

Welche vorbeugenden Maßnahmen können Erleichterungen bringen? Die wichtigste Maßnahme ist Durchsetzung eines Normierungskonzeptes. Ohne Normierung ist die effiziente und personenunabhängige Wartung umnöglich. Wartungsfreundlichkeit ist somit unabdingbares Qualitätsmerkmal heutiger Softwareprodukte.

Die Frage, welche Norm anzuwenden ist, kann nicht eindeutig beantwortet werden, denn Methoden gibt es viele. Wichtiger als die Frage, welches Normierungskonzept anzuwenden ist, ist die konsequente und durchgängige Anwendung eines Konzeptes sowie die Vermeidung häufigen Wechsels ausgewählter Bausteine.

Was steht hinter der Normierungsforderung? Ein DV-Bereich sollte sich für ein bestimmtes Methodenkonzept zur Systementwicklung entscheiden. Dieses Konzept schreibt einzuhaltende Normen bei allen Prozessen fest: Entscheidungsfindung, Kosten-Nutzen-Analysen, Kommunikation mit Benutzern, Arbeitsteilung zwischen Analytikern und Anwendungsprogrammierern, Dokumentation. Zu diesem Konzept gehören auch Softwareprodukte, die ihrerseits den Normierungseffekt verstärken: Entscheidungstabellen-Übersetzer,

Programmrahmen-Generatoren, Datenfeldverwaltungs-Systeme.

Die genannten Maßnahmen betreffen die Wartung individuell entwickelter Anwendersoftware. Bei gekaufter Software kommt zum Wartungsbeziehungsweise Änderungsproblem die Einpassung in bestehende Anwendungen. Sehr häufig werden die Aufwände unterschätzt, und Wartungsfreundlichkeif sollte bei der Auswahl ein wesentliches Kriterium sein.

Prof. Helmut Kernler

Leiter des Fachbereiches Wirtschaftsinformatik an der Fachhochschule Furtwangen

Für die Entwicklung von Softwareprodukten eignet sich die konsequente Unterteilung in folgende drei Phasen: Design, Konstruktion und Produktion.

Tools sollen Informatiker (Ingenieure) und Programmierer (Facharbeiter) bei ihrer Arbeit unterstützen. Sie können dies in zweifacher Hinsicht:

1. Es gibt viele Tools für die Dokumentation von erarbeiteten Ergebnissen. Sie erleichtern und standardisieren die Übergabe eines Projekts von der Design- in die Konstruktionsphase und von der Konstruktions- in die Produktionsphase. Ihr Einsatz ist häufig mit Mehraufwand verbunden: Der Informatiker muß Dokumentation erstellen hat. Der Vorteil einer besseren Softwarewartung wiegt diesen Nachteil auf, ist aber für den Entwickler weniger attraktiv.

2. Viel wichtiger sind die anderen Tools: Sie unterstützen den Designer, Konstrukteur und Programmierer bei seiner kreativen Arbeit. Gerade für diese Aufgabe gibt es bislang nur wenige Werkzeuge. Ich denke dabei an Software-Hilfen, die die Vollständigkeit eines Entwurfs überprüfen Redundanzen aufdecken, hohe Festigkeit und lose Koppelung von Moduln gewährleisten, Konstruktionsfehler und wartungsunfreundliche Passagen entdecken und im Dialog mit dem Entwickler Moduln sukzessive verbessern.

Diese zweite Art von Tools muß sehr unterschiedlich sein um die verschiedenartigen Anforderungen zu erfüllen Universalwerkzeuge, die alle Phasen und alle Forderungen abdecken sollen, sind hier fehl am Platze.

Ich bedaure, daß momentan die Werkzeuge zur Unterstützung von Design, Konstruktion und Programmierung gegenüber den Tools zur projektbegleitenden Dokumentation in den Hintergrund getreten sind, obgleich gerade sie die Produktivität der Informatiker gewaltig heben könnten.

Ich bedaure außerdem, daß zur Zeit nach einem umfassenden UniversaltooI für alle Zwecke gesucht wird, statt spezielle Werkzeuge einzusetzen, von denen jedes einen bestimmten Zweck erfüllt. Wer ein Getriebe konstruiert, verwendet auch verschiedene Hilfen: Formeln, Darstellende Geometrie, Tabellen, Taschenrechner und ähnliches. Wir Informatiker sollten akzeptieren, daß es auch bei der Suche nach Tools mehr als nur die Zustände O und I gibt.

Wolfgang Pätzold

Geschäftsführer der ADV/ORGA F. A. Meyer GmbH,Wilhelmshaven

In den Vereinigten Staaten schieben die Anwender einen Software-Entwicklungsstau von etwa zweieinhalb Jahren vor sich her. Amerikanische Analysen haben ferner ergeben, daß im Rahmen des Lebenszyklus eines DV-Anwendungssystems ein Drittel des Aufwandes für die Erstentwicklung und zwei Drittel für die anschließende Programmwartung und -pflege einzuplanen ist. In den bundesdeutschen DV-Abteilungen sieht es ähnlich aus: Bereits heute ist das Datenverarbeitungspersonal uberwiegend mit der Wartung und Pflege ihrer Software beschäftigt. Für die Entwicklung von neuen, leistungsfähigen DV-Anwendungen unter Ausnutzung aller technischen Möglichkeiten, welche die Informationsverarbeitung heute bietet, bleibt kaum noch Zeit.

Diese Aussagen unterstreichen, welche Bedeutung einer vorbeugenden Wartung von Softwaresystemen zukommt.

Vorbeugende Wartung heißt, frühzeitig Maßnahmen vorzusehen, statt bei Eintreten eines Wartungsfalles unter Zeitdruck handeln zu müssen. Also agieren statt reagieren. Wir haben die wesentlichen zehn Maßnahmen zu einem Maßnahmen-Nutzen-Katalog zusammengefaßt, der keinen Anspruch auf Vollständigkeit erhebt.

Mittelfristige Unternehmensziele feststellen

Der Nutzen dieser Maßnahme liegt in der rechtzeitigen Information über die mittelfristigen Perspektiven, die die DV-Nutzer zukünftig an die Anwendungen stellen werden. Es muß bekannt sein, in welche Richtung sich das Unternehmen entwickelt, welche neue Markte, Produkte etc. von den Anwendungen zukünftig abgedeckt werden sollen.

Rahmenplanung der Informationsverarbeitung

Diese Planung ist die Erarbeitung eines Gesamtsystems der Informationsverarbeitung mit allen dazugehörenden Integrationskreisen. Der Nutzen liegt in der Feststellung der integrativen Beziehungen der Anwendungen untereinander. Sie verhindern Insellösungen und zeigen rechtzeitig auf, welche Schnittstellen je Integrationskreis zur Umwelt vorzunehmen sind.

Vorgabe von verbindlichen Vorgehensweisen für die Systementwicklung

Diese Maßnahme beinhaltet den Einsatz von Methoden Normen, Richtlinien, Standards, Techniken, Dokumentationsverfahren und Modulbausteine. Der Nutzen besteht im wesentlichen in der Reduzierung von individuellen Lösungsvarianten auf eine weitgehend standardisierte Variante. Weiterhin helfen solche verbindlichen Vorgehensweisen bei der Standortbestimmung. Sie erhöhen außerdem die Transparenz, die letztlich für eine wirtschaftliche Wartung notwendig ist.

Einbeziehung der Fachabteilung in die Aufgabenentwicklung

Hierbei ist entscheidend, daß die DV-spezifischen Dinge außerhalb der Zusammenarbeit zwischen Fach- und DV-Abteilung bleiben. Im wesentlichen geht es hierbei um Strukturierungstechniken, mit denen Regeln, Bedingungen Ergebnisse und notwendige Eingaben gemeinsam festgelegt werden. Der Nutzen einer solchen gemeinsamen Erarbeitung besteht im Abbau der Mißverständnisse zwischen Nutzerwunsch und späterer Systemrealisierung.

Strukturierungstechnik zur Ermittlung DV-neutraler Aufgabenmoduln

Hinter dieser Maßnahme verbirgt sich die Überlegung daß die eigentlichen Aufgabenfunktionen im wesentlichen stabil sind und vielfach erst durch die DV-Umwelt in Mitleidenschaft gezogen werden. Es muß verhindert werden, daß DV-Technik, Hardware oder Systemsoftware die Aufgabenmoduln nachträglich beeinflüssen. Es darf keine Verquickung der Aufgabenmoduln mit deren übrigen DV-Technik erfolgen. Der Nutzen solcher DV-neutralen Aufgabenmoduln ist die überschaubare, eindeutige Teilaufgabe sowie die Modulnutzung unabhähgig von Hardware und Systemsoftware-Wechsel.

"Flexibilitätsfreiräume schaffen"

Wir wissen, daß in den Anwendungen permanent an bestimmten Stellen Engpässe entstehen können. Es geht darum frühzeitig Maßnahmen zu ergreifen und vorzusehen. Als Beispiel können dynamische Tabellendateien mit Dialogpflege genannt werden, in denen nicht nur Variable, sondern selbstverständlich auch Zeiträume, Zuständigkeiten und ähnliches als eigene Datei geführt werden. Ein "Überlaufen" ist damit schon einmal ausgeräumt. Auch die Daten-Organisation zu segmentieren nämlich zu jedem Anwendungsmodul das entsprechende Datensegment besonders zu definieren, ist eine Maßnahme, die Flexibilitätsfreiräume schafft. Wartungsdienste betreffen dann immer nur ein bestimmtes Segment. Man ist in der Lage, Segmente "vorzuhalten" . In jedem Falle ist nie die ganze Datei oder Datenbank von Wartungsmaßnahmen betroffen.

Einsatz von Tools zur Systementwicklung

Der Einsatz von Tools ist unseres Erachtens immer besser als Richtlinien und Standards, weil damit automatisch der Zwang zum gleichen Ergebnis erreicht wird. Als Beispiel für solche Tools seien hier die Generierung von Programmsteuerungen oder auch die Generierung von Standardfunktionen für Dialogprogramme angesprochen.

Solche Generierungen sollen in der Regel eine Trennung der Datenbereitstellung von der Ablauflogik und den Funktionsmoduln bewirken. Diese drei Teile sind bei herkömmlicher Programmierung so eng miteinander verflochten, daß bei Änderung eines Teiles die anderen Teile stark in Mitleidenschaft gezogen werden. Durch entsprechenden Tool-Einsatz kann eine derartige Entflechtung und damit Sicherung der Funktionsmoduln erreicht werden.

Werkzeuge lassen sich, sofern sie als Produktionstools verwendet werden, auch immer für die Wartung einsetzen. Sie ermöglichen eine absolute Präzision der durchzuführenden Änderungen. Ferner entfällt eine zeitraubende Programmierung. Beispiel: In unserem Hause wird ein Dialoggenerator eingesetzt, bei dem Bildschirmmasken, Fehlerprüfungen, Übertragungen zwischen Speicher zu Schirm sowie die Fehlerbehandlungen und der Dialograhmen im wesentlichen durch Definition erzeugt werden. Eine spätere Wartung von Dialogprogrammen erfolgt dann eben auch nur wieder per Definitionsänderung und nicht durch Neu oder Umprogrammierung.

Einsatz von Data-Dictionaries und Bibliotheksverwaltungs-Tools

Der Data-Dictionaries-Einsatz erlaubt die zentrale Verwaltung aller Label und Definitionen mit entsprechenden Referenznachweisen. Der Nutzen dieser Tools zielt wiederum auf die exakte Standortbestimmung ab, in welchen Anwendungen und Programmen welche Label und Definitionen zu verwalten sind. Ein solches Tool erlaubt dementsprechend die exakte maschinelle Änderung aller in der Referenz verwalteten Anwendungen. Das Bibliotheksverwaltungs-Tool sichert die Programmverwaltung und enthält gleichzeitig ein Wartungsverfahren. Alle Änderungen können rechtzeitig mit entsprechendem Änderungsdatum vorgegeben werden. Die einzelnen Tests laufen mit der jeweils gewünschten Programmversion, die durch das Wartungsverfahren verwaltet wird. Der Nutzen besteht in der maschinellen Wartung der Programme und darin, daß es nur eine zu pflegende Programmversion gibt. Die Pflege von Vielfachversionen und die Aufbewahrung von Altversionen entfällt.

Kompatible Datenbank- und Datenkommunikationsschnittstellen (KDBS/KDCS)

Diese Maßnahme besagt, daß die Anwendungen ausschließlich neutrale DB/DC-Zugriffe enthalten, also keine speziellen Hard- oder Systemsoftware-orientierten Befehle mehr benötigen. Ein entsprechendes Interfase übersetzt dann die neutralen Zugriffe in die vom Zielsystem gewünschten DV/DC-Zugriffe. Der Nutzen solcher Maßnahmen liegt in der Hardware- und Systemsoftwareunabhängigkeit. Sobald es bei Hardware- oder Systemsoftwarewechsel notwendig ist, neue Datenbanksysteme oder TP-Montore einetzen müssen, bleiben davon die eigentlichen Anwendungsteile völlig unberührt. Es ist lediglich dafür Sorge zu tragen, daß ein Interface für das neue DB oder DC-System geschrieben wird.

Organisation des Wartungsdienstes

In unseren Hause wurde ein Wartungshandbuch entwickelt, das die Ablauforgnisation einer Wartung regelt und Checklisten für Wartungsdiensten, enthält die die eizelnen Aktivitäten festlegen. Es wurden weiterhin Standardänderungen als Wartungsdienst vorgefertiegt. Dies gilt speziell für solche Änderungen, die in relativ kurzen Abstände immer wieder vorkommen. Der Nutzen dieses Wartungsverfahrens liegt in einem festen Formalismus in vorgefertigten Abläufen und in einer exakten

Aufgabenstellung. Letzlich entsteht dadurch ein Logbuch und eine lückenlose Aufzeichnung beziehungsweise Dokmentation der vorgenommenen Wartung.