Verbundkonzept sichert langfristig Produktivitätsgewinne:

Methoden und Tools arbeiten Hand in Hand

24.07.1987

Der Einsatz moderner Software-Toolls führt in den meisten Fällen schon nach kurzer Zeit zu erheblichen Produktivitätsgewinnen. Ein integriertes Verbundkonzept aus durchgängiger Methode, direkter Tool-Unterstützung und entsprechendem Training ist jedoch langfristig noch wesentlich effektiver. Peter Janß* stellt einen solchen Gesamtansatz vor.

Die Gestaltung der Informationsverarbeitung, das heißt die bewußte Nutzung der Ressource "Information", ist eine wesentliche unternehmerische Aufgabe. Ein Hauptbestandteil der Tätigkeiten innerhalb eines Betriebes und damit ein wesentlicher Kostenfaktor ist die Bearbeitung von Informationen. Flexibilität und Adäquatheit der Informationsverarbeitung haben somit direkte Auswirkungen bis zu Entscheidungsprozessen und Reaktionsfähigkeit eines Unternehmens.

Eine entsprechende Zielstrebigkeit bei der Anpassung und Integration von Informationstechnologie an die Bedürfnisse der Geschäftsabläufe und dessen bewußte Planung durch alle Management-Ebenen ist somit notwendig. Dabei stehen zwei Forderungen im Mittelpunkt: Es gilt, den Einsatz von Informationstechnologie so gut wie möglich in die Unternehmensstrategie einzubinden. Außerdem ist es wichtig, eine dauerhafte, aber gleichzeitig flexible Infrastruktur aufzubauen, die durch gut zugängliche Betriebsdaten gekennzeichnet ist, sowie die adäquaten Kommunikations- und Computer-Hilfsmittel in einer passenden Organisation einzufahren.

Die stetig wachsende Dynamik des Wirtschaftsgeschehens, zunehmender Konkurrenz- und Kostendruck sowie eine nicht im geschäftspolitischen Sinne schritthaltende Mobilität des DV-Bereiches und des entsprechenden Anwendungsrückstaus machen ein grundsätzliches Umdenken bei allen Beteiligten erforderlich. Geschäftsstrategie und planmäßige Informationssystementwicklung müssen zusammenpassen - die Entwicklung der Informationsverarbeitung ist bewußt in die Unternehmensstrategie miteinzubeziehen.

Diese Faktoren und ein Design, das von vorneherein auf modernen Techniken basiert, sind Grundlagen einer zukunftsorientierten Entwicklungsmethodik. Die Logik eines konsequenten Information-Engineering ist klar umfassender als die eines Software-Engineering - die geschäftliche Umwelt wird als ein integraler Bestandteil aufgefaßt und die Anwendung der Datenverarbeitung klar als Unterstützung der Geschäftsabläufe definiert.

Aufgrund der wachsenden Anforderungen an die Flexibilität von Verarbeitungs- und Informationssystemen ist ein logisch aufgebautes Design auf der Basis einer möglichst redundanzfreien Speicherung und vielseitigen Benutzbarkeit ("shared database design") erforderlich. Nur wenn die Basisproduktionssysteme auf einer logisch sauberen Grundlage arbeiten, ist eine einfache Realisierung von hierauf aufbauenden Systemen bis hin zu Decision-Support-Systemen möglich.

Enduser werden von Nutzern zu Beteiligten

Die Nutzung von flexibler Hardware, flexiblen Datenbanksystemen sowie modernen Sprachkonzepten und eines Dictionary bildet hierzu eine selbstverständliche Voraussetzung. Mit der technischen Auswahl und dem Einsatz entsprechender Hard- und Software, zum Beispiel einer Sprache der vierten Generation zur Beschleunigung der Programmierung, ist es allerdings noch keineswegs getan.

Ein dem Gesamtproblem angepaßter, ingenieursmäßiger Ansatz ist erforderlich, der in definierter Weise die Probleme strukturiert und bearbeitet und zu prüfbaren Ergebnissen führt. Hierzu muß ein vernünftiger Einsatz moderner, jedoch erprobter Verfahren vorhanden sein - zusammen sollten sie eine durchgängige Entwicklungsmethodik formen, die auch den Prozeß zur Systementwicklung weitgehend automatisiert.

Bei der Erstellung von Systemen handelt es sich im wesentlichen um die Modellierung von Geschäftsabläufen. Eine Entwicklungsmethode, die darauf zielt, qualitativ hochwertige Systeme zu schaffen, muß deshalb mit einer Untersuchung der Geschäftsabläufe beginnen. Unter starker Einbeziehung der Benutzer sind nach definierten Regeln Geschäftsmodelle zu erarbeiten. Die Enduser werden damit von reinen Nutzern zu Beteiligten.

Technische Strategie allein reicht nicht aus

Anwender-Geschäftswissen wird strukturiert; damit läßt sich unabhängig von einer eventuellen technischen Realisierung auf logischer Grundlage eine Anwendungsspezifikation (basierend auf Daten und Funktionsmodellen) schaffen, die direkt das Geschäft unterstützt. Nur auf diese Weise sind ganzheitliche Arbeitsabläufe planbar und die produzierten Unterstützungssysteme haben ihre Wurzeln direkt in den Abläufen.

Der Ansatz, Geschäftsabläufe zu beschreiben, schafft gleichzeitig ein Wissen, das in vielen Projekten eingesetzt werden kann; die Ergebnisse sind somit nicht nur innerhalb eines Projektes, sondern auch übergreifend weiterverwendbar. Dieser Ansatz schafft gleichzeitig wesentlich stabilere Systeme höherer Qualität als konventionelle DV-Ansätze und unterstützt insbesondere eine leichte Anpaßbarkeit an Veränderungen. Dies wird auch durch eine möglichst späte Umsetzung in die technische Umgebung gefördert.

Geschäftsplan und Benutzerprioritäten sind in die Entwicklung miteinbezogen, und es wird klar zwischen Geschäftsbeschreibung und technischer Durchführungsbeschreibung in unterschiedlichen Detaillierungsebenen getrennt. An die Stelle eines problemorientierten Ansatzes tritt eine bewußte Planung. Eine Informationsstrategie ist nicht nur als technische Strategie zu begreifen.

Eine Methode sollte den gesamten Prozeß der Software-Entwicklung von der Zielformulierung über die Spezifikation bis hin zur Generierung von Systemen durch einen umfassenden und integrierten Satz von Techniken unterstützen.

Informationssysteme beeinflussen nahezu alle Prozesse innerhalb eines Unternehmens - ein reibungsloses Zusammenspiel dieser Systeme ist somit wesentlich für die Funktion des Gesamtunternehmens. Entsprechend muß auch eine Informationsstrategie der Erstellung derartiger Systeme über das Gesamtunternehmen gegeben sein, bei der die aus den Geschäftszielen resultierenden kritischen Erfolgsfaktoren direkt die Prioritäten der erforderlichen Systementwicklungen beeinflussen.

Um ein möglichst flexibles, dabei aber reibungslos integriertes Gesamtsystem zu schaffen, ist es somit zunächst einmal wichtig, die wesentlichen Unternehmensfunktionen und -daten organisationsunabhängig auf einer groben Detaillierungsebene möglichst exakt zu definieren, und deren Zusammenhang darzustellen. Ergebnis einer derartigen Untersuchung sollte die Definition von Architekturen für die benötigten Informationen, die erforderlichen Systeme und die hierfür erforderlichen technischen Architekturen sein, die dann zusammengefaßt und priorisiert in einem Entwicklungsplan einen Rahmen für alle weiteren Aktivitäten bilden.

Wesentlich für die generelle Strukturierung ist ein Denken in Architekturen: die Definition und Abgrenzung von Bereichen, verschiedenen Detaillierungsebenen und klaren Schnittstellen sowie dem höchstmöglichen Grad an Wiederverwendbarkeit. Unter dem Aspekt der strukturierten Verfeinerung selektiert jede Folgephase der Entwicklung aus der vorherigen einen Teilbereich mit klaren Schnittstellen und fügt eine Ebene der Detaillierung hinzu. Innerhalb dieses Top-down-Ansatzes bildet somit jede Phase die Architektur für die detaillierteren Definitionen der Folgephase und garantiert damit Konsistenz und Einheitlichkeit.

Die Informationsstrategie bildet die Architektur der Geschäftsbereiche, diese wiederum die Architektur für die Geschäftssysteme. Eine konsequente Problemstrukturierung, die klare Zuordnung von Verantwortlichkeiten und explizite Checkpunkte für Entscheidungen der Weiterentwicklung werden erreicht. In der Gesamtheit der Entwicklung ergibt sich damit eine erhebliche Beschleunigung, da Folgeprojekte bereits einen definierten Rahmen vorfinden und Grundsatzuntersuchungen nicht mehrfach durchzuführen sind.

Eine Methode darf nicht so starr sein, daß sie keine alternativen Entwicklungspfade zulaßt. Die Entscheidung für manuelle Realisierung oder Schnellpfade der Entwicklung wie Enduser-Computing oder die Nutzung von Standardsoftware müssen von vornherein vorgesehen sein.

Zwingende Voraussetzung ist es, daß jeweils klar definierte Grundlagen und Voraussetzungen sowie die Absicherung der Einpaßbarkeit vorliegen. Die unterschiedlichen Pfade sollten in einen Gesamtrahmen integriert sein. Die Methode muß die eingesetzten Techniken in einer zusammenhängenden Form kombinieren.

Kombination von Techniken sorgt für Praktikabilität

Die Methode sollte klar beschrieben sein - und zwar nicht nur als Sammlung von Checklisten und Aktivitäten, sondern mit den jeweils angewandten Techniken sowie Hilfen und Beispielen. Der Entwicklungszyklus ist in genau definierte, praktikable Stufen einzuteilen. Jede Stufe besteht aus einer Anzahl von Tasks, die jeweils einen bestimmten Zweck dienen, erprobte Techniken nutzen und klar definierte, nachprüfbare Ergebnisse erzeugen; somit bilden sie Meilensteine für die Entwicklung.

Wesentlich für eine Methode ist, daß sie nicht versucht, alle verfügbaren Techniken einzusetzen, sondern sich auf wenige, gut ineinandergreifende und erprobte Techniken sowie Standards beschränkt; diese müssen auf logischer Grundlage basieren und sich in unterschiedlichen Phasen (im richtigen Detaillierungsgrad) durchgängig verwenden lassen.

Gerade die Kombination dieser Techniken und die direkte Weiterverwendung der entstehenden Ergebnisse macht die Praktikabilität einer Methode aus. Wesentliches Kennzeichen einer fortschrittlichen Methode ist die Anwendung von nichtprozeduralen Konzepten. Entsprechend einem Basisgedanken der Sprachen der vierten Generation sollte der System-Schwerpunkt statt auf Wie im Detail ist es zu tun?" mehr auf " Was muß getan werden?" liegen.

Daten und Funktionen parallel betrachten

Wesentlich ist, daß Daten wie auch Funktionen und deren Interaktion parallel betrachtet und aufeinander abgestimmt werden. Datenmodellierung (Entity-Relationsship-Modelle) und Funktionsmodellierung (Hierarchien, Abhängigkeiten) sind gängige Techniken, die zu einem Gesamtkonzept kombiniert und konsequent über alle Phasen integriert sein sollten. Iteration zwischen den verschiedenen Phasen sichert Anpaßbarkeit und Vollständigkeit.

Entscheidend bei einer Methode, die sowohl bei Anwendern als auch Analysten, Designern oder Programmierern Akzeptanz findet, ist eine einfache Benutzbarkeit und Unterstützung bei der Einführung. Das verlangt die Verwendung einheitlicher, aber an die jeweiligen Bedürfnisse anpaßbarer Kommunikationsmittel, die von allen Beteiligten getragen werden, sowie den Nachweis einer echten Unterstützungsfunktion. Um die teuren Fehler der frühen Phasen zu vermeiden, ist ebenfalls eine bewußte und starke Einbeziehung der Benutzer erforderlich.

Hierzu eignen sich besonders grafische Darstellungsmöglichkeiten. Die Eingabe der für die Systemgenerierung erforderlichen exakten Spezifikationen sollte nicht durch Texte oder mit Hilfe einer abstrakten Syntax, sondern über ein anwenderfreundliches Medium erfolgen. Dieses muß sowohl anschaulich wie präzise sein und gleichzeitig die Kommunikation zwischen Fachabteilung, Design und Realisierung fördern und es gestatten, vorhandene Ergebnisse direkt weiterzuverwenden.

Strukturierte Grafik kann sowohl als gemeinsames Kommunikationsmedium zwischen Analysten und Anwendern wie auch als direktes Update-Medium des Dictionary dienen. Die Möglichkeit der Farbe als Unterscheidung und Kennzeichnung läßt sich hierbei bewußt nutzen.

Für die effektive und korrekte Nutzung einer Entwicklungsmethode ist ein entsprechendes Verständnis sowohl der Zusammenhänge wie auch der Details der einzelnen Schritte erforderlich. Bei der Einführung einer Methode müssen somit Hilfsfunktionen und ein auf die Methode abgestimmtes Trainingsprogramm vorhanden sein.

Der Zwang, integrierte, dabei aber flexible Anwendungssysteme zu entwickeln, kann nur durch den Einsatz von an diesen Zielen sich orientierenden, selbst automatisierbaren Methoden unterstützt werden. Umgekehrt ist beim Einsatz von Tools auf die direkte Unterstützung einer durchgängigen Methode zu achten, da sonst Definitions- und Schnittstellenprobleme auftreten.

Eine Methode muß von vorneherein auf eine weitgehende Automatisierung abzielen. Es sollte hierbei kein Bruch zwischen der Methode und der Darstellung in einem Tool vorhanden sein - die Methode bildet also eine direkte Designvorgabe für ein Tool. Eine automatische Toolunterstützung hat ebenso wie die Methode den gesamten Entwicklungsprozeß zu unterstützen.

Qualität der Inhalte muß abgesichert sein

Hierbei ist auf eine wirkliche Automatisierung zu achten, nicht nur auf eine Mechanisierung - das heißt eine echte Verbesserung der Inhalte durch Nutzung der Computerunterstützung und nicht nur die Anwendung der bisherigen Vorgehensweise mit Maschinenunterstützung. Eine automatische Unterstützung sollte somit einerseits die Verwaltung von Ergebnissen unterstützen, andererseits aber auch direkte methodische Hilfe anbieten - nicht nur die Existenz von Ergebnissen prüfen, sondern auch die Qualität der Inhalte weitgehend absichern.

Automatisierung bedeutet somit nicht nur die Inanspruchnahme genereller Services durch den Rechner wie strukturierte Speicherung und Erzeugung einer integren, aktuellen, vollständigen und einheitlichen Dokumentation, sondern weitergehend die direkte Erzeugung von Systemteilen. Fehlermöglichkeiten lassen sich reduzieren, und es wird aktiv Hilfe bei der Entwicklung geboten, was zu Produktivitätssteigerungen wie zu einer höheren Qualität der entstehenden Systeme führt.

Konsistenzchecks sichern die Entstehung einer integrierten Dokumentation unter Verwendung definierter Standards ab. Das bedeutet eine direkte Unterstützung der Arbeit durch Vorschläge von seiten des Systems.

Metamodell dient zur formalen Definition

Eine Automatisierung sollte Umsetzungen weitestgehend automatisch vornehmen - zum Beispiel die Umsetzung der Spezifikation in ein vollständiges und lauffähiges System und nicht nur in Code-Skelette. Diese Umsetzung darf nicht nur einmal geschehen, sondern muß im Wartungsfall wiederholbar und anpaßbar sein. Systemgenerierung direkt aus Spezifikationen erbringt einerseits Kostenvorteile durch Überspringen der entsprechenden Umsetzungsphase, sichert aber gleichzeitig auch noch eine durchgängige Dokumentation. Erst diese automatische Umsetzung erbringt letztendlich einen Nachweis der korrekten Zielrichtung der angewandten Techniken in Methode und Tool, der Durchgängigkeit und Vollständigkeit.

Grundlage einer Automatisierung ist die explizite Repräsentation der Entwicklungsmethode, zum Beispiel durch ein "Metamodell", also ein Modell, welches die Struktur und die angewandten Techniken sowie deren Zusammenhänge, Konsistenz- und Transformationsregeln innerhalb der Methode beschreibt. Durch ein derartiges Metamodell wird die Methode formal definiert. Ein Tool kann dynamisch durch diese Metamodellstruktur gesteuert werden.

Stabilität auch in veränderlichen Umgebungen

Dies führt zu integrierten Full-Life-Cycle-Methoden mit einer entsprechenden CADME-Unterstützung (Computer Aided Development and Maintenance Environment).

Derartige Tools speichern alle zum Geschäft gehörenden Informationen sowie die technische Umgebung in unterschiedlichen Detaillierungsebenen mit allen Formen von Daten und Aktivitäten, von Assoziationen zwischen diesen, von Konditionen, die ihre Existenz und ihr Verhalten und die Verwendung von Information betreffen. Die Speicherung dieser Informationen hat weitestgehend unabhängig von der technischen Zielumgebung zu erfolgen, um gemeinsame und stabil bleibende Beschreibungen für unterschiedliche oder sich ändernde Umgebungen zu ermöglichen.

Zur Realisierung der Anforderungen von Multiuser-Zugriffen bei gleichzeitiger übergreifend integrierender Kontrolle ist die Funktion eines zentralen Dictionary notwendig. Als Kern jeglicher Automatisierung der Systementwicklung dient zum Beispiel eine zentrale Enzyklopädie die die Basis für Entwicklung und Kontrolle von Veränderungen und jeglicher Dokumentation ist.

Automatisierung verkürzt den Entwicklungszyklus

Als Arbeitsstationen werden meist PCs eingesetzt. Moderne CASE-Tools mit dem Konzept einer derartigen Enzyklopädie erlauben einen solchen Ansatz der interaktiven Modellierung mit Hilfe einer Grafikoberfläche und die entsprechend strukturierte Speicherung. Eine ergonomisch gut gestaltete Benutzeroberfläche erhöht gleichzeitig die Akzeptanz von Methode und Tool.

Aufgrund der Durchgängigkeit einer Methode ist eine weitgehende Tool-Unterstützung sowohl für die zeitraubenden Routinetätigkeiten wie für komplexe Prüfung und automatische Umsetzung der Ergebnisse möglich. Mit Hilfe der Tool-Unterstützung können aus den Analyse- und Designergebnissen direkt und automatisch Systeme erzeugt werden. Eine echte Automatisierung verkürzt den Entwicklungszyklus somit wesentlich. Die Strategie der Systemgenerierung führt zur Beschleunigung nicht nur der Phase der Programmierung/Codierung, sondern auch der Wartung.