Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

10.11.1989 - 

Halbherzige Teillösungen schreiben nur den Ist-Zustand fest

Erfolgreicher CASE-Einsatz erfordert eine Gesamtstrategie

Eine Integrierte CASE-Umgebung bedeutet eine hohe Investition, die nur in einer Gesamtstrategie der Anwendungsentwicklung zu rechtfertigen ist. Wolfgang Wiechert* nennt die Faktoren, die für einen erfolgreichen Computereinsatz in der Software-Entwicklung maßgeblich sind.

Selbstverständlich haben die Software-Entwickler sehr früh begonnen, den Computer für die eigene Arbeit einzusetzen: Der Assembler diente ja schon dazu, Software mit Hilfe des Computers zu erstellen. Ebenso werden heute diverse Sprachübersetzer, Maskengeneratoren, Editoren, Programmgeneratoren und andere Werkzeuge in der Software-Entwicklung eingesetzt. Allerdings soll sich der Computereinsatz in der Software-Entwicklung nicht bloß auf die Anwendung isolierter oder teilintegrierter Werkzeuge beschränken.

Software umfaßt auch die Projektdefinition

Wir sind daran gewöhnt, den Source-Code eines Programmes als Software zu bezeichnen, vielleicht auch den Input für eine Masken- oder eine Dateibeschreibung. Wenn nun ein Entity-Relationship-Diagramm automatisch in Dateibeschreibungen umgesetzt wird, so sind wir wohl berechtigt, auch dieses Diagramm als Software zu bezeichnen.

Software ist die Gesamtheit aller Dokumente, die bei der Entwicklung eines computergestützten Systems anfallen oder benötigt werden. Software umfaßt also die Projektdefinition ebenso wie die Wirtschaftlichkeitsuntersuchung, die Maskenbeschreibung ebenso wie das Programm, das Benutzer und RZ-Handbuch ebenso wie das Testkonzept.

Computereinsatz in der Software-Entwicklung bedeutet nun nicht etwa, daß alle Dokumente, die ein Entwickler für notwendig erachtet, etwa in einem Editor erfaßt und im Computer in beliebigen Bibliotheken abgelegt werden, Vielmehr sprechen wir von Computereinsatz erst dann, wenn die Dokumenttypen vorgedacht sind und eine strukturierte, datenbankartige Abspeicherung der Dokumente möglich wird.

Den Speicher für die Dokumente nennen wir Entwicklungsdatenbank; das System zur Entwicklung, Verwaltung und Wartung der Dokumente heißt Software-Entwicklungsumgebung. Unter Computereinsatz in der Software-Entwicklung verstehen wir den Einsatz einer Software-Entwicklungsumgebung auf Basis einer Entwicklungsdatenbank.

Was sind nun die Erfolgsfaktoten für den Computereinsatz in der Softwareentwicklung? Zunächst ist eine Struktur für die Entwicklungsdatenbank notwendig. Dazu benutzen wir für jeden Abschnitt ein oder mehrere Regelwerke, auch Methoden genannt.

Eine Methode gibt an, welche Ergebnisse erzielt und wie sie dargestellt werden, wie diese Ergebnisse geprüft werden können und mit welchen Entwurfs. Grundsätzen und Aktivitäten man zu den Ergebnissen kommt. Eine Methode basiert auf einer klaren Definition der Begriffe, mit denen sie arbeitet, und legt einen Ausschnitt der Entwicklungsdatenbank fest.

Selbstverständlich besteht die Forderung, daß der gesamte Entwicklungsprozeß von der Idee bis zum produktionsreifen System durchgängig methodenunterstützt abläuft. Außerdem sollen die Methoden integriert sein und zwar sowohl Horizontal (zwei Methoden desselben Abschnitts) als auch vertikal (zwei aufeinander aufbauende Methoden in zwei Abschnitten).

Auf zwei Methoden sei hier besonders hingewiesen:

- die Informationsstrukturanalyse (ISA, Datenmodellierung) und die

- Spezifikation der Systemfunktionen (SSF).

Die Datenmodellierung beruht heute meist auf dem Entity-Relationship-Ansatz, benötigt aber, um den Bedürfnissen der Praxis zu genügen, die Erweiterungen Aggregation, Gruppierung und Spezialisierung/Generalisierung sowie ein Konzept zur Behandlung von Integritätsbedingungen.

Ziel der Datenmodellierung ist es, ein den Anwendungen gegenüber neutrales, gegenüber Datenbanksystemen unabhängiges Begriffssystem zu schaffen, das die Grundlage für eine Entwicklung von integrierten Anwendungssystemen bildet. Ein solches Datenmodell kann automatisch in ein konkretes Datenbankschema (zum Beispiel in DB2 oder Adabas) umgesetzt werden und wird damit auch zur wesentlichen Grundlage für die Anwendungsprogramme.

Die Spezifikation als detaillierte Festlegung einer Leistung aus fachlicher Sicht befindet sich seit jeher in einem Dilemma: Entweder benutzt sie eine Hochformate, maschinell umsetzbare Sprache, die dann vom Fachbereich nicht verstanden wird und so für eine Abstimmung nicht geeignet ist. Oder sie kann zwar aufgrund irgendeiner Art von strukturierter Prosa zur Klärung fachlicher Anforderungen herangezogen werden, wird dann aber inkonsistent zum Programm. Machmal tut sie auch teilweise das eine und sonst das andere.

Abstimmbarkeit und Durchgängigkeit zugleich lassen sich nur sicherstellen, wenn Spezifikation und Programm in letzter Konsequenz zusammenfallen. Um trotzdem die Spezifikation als fachlich-logische Sicht beizubehalten, sind Standardisierung und Wiederverwendung von Leistung sowie die Ablauffähigkeit der Spezifikation notwendig. So wird es möglich, unterhalb der Ebene der Systemfunktionen nur noch die individuellen Leistungen abzustimmen und das Prototyping als Abstimmungsmittel einzusetzen.

Die Frage, wie die bei der Software-Entwicklung entstehenden Dokumente strukturiert sind, führt zu den Methoden. In ähnlicher Weise führt die Frage, wie diese Dokumente verwaltet werden, zum Administrationskonzept.

Die erste wesentliche Forderung in diesem Zusammenhang lautet: Die gesamte Software eines Unternehmens wird logischzentral gehalten. Nur so lassen sich die allgemeinen Datenbankanforderungen jederzeit und überall verfügbar, aktuell und zuverlässig, redundanzfrei sowie konsistent erfüllen. Zudem gibt es nur auf diese Weise eine Chance für Standardisierung, Wiederverwendbarkeit und ein unternehmensweites Datenmodell.

Diese Forderung macht es allerdings notwendig, neben Namenskonventionen und Stichwortkonzept auch die Mehrprojektverarbeitung zu unterstützen. Hierbei werden Dokumentmengen (Kontexte) geschaffen, die eine Abgrenzung von Anwendungssystemen untereinander ermöglichen. Darüber hinaus wird jedem Entwickler kontextspezifisch eine Rolle zugeordnet, die seine auf den Dokumenten des Kontextes erlaubten Operationen definiert.

Viele Faktoren tragen zum Erfolg bei

Während der Entwicklung durchläuft ein Dokument verschiedene Zustände, zum Beispiel: angelegt, in Arbeit, abgenommen, freigegeben. Das Lebenslaufkonzept regelt die Zustandsübergänge für Dokumente und Dokumentgruppen in Abhängigkeit von der erreichten Qualität. Dokumente, die sich im Zustand "freigegeben" oder "in Produktion" befinden, können nicht mehr überschrieben werden; ihre Weiterentwicklung führt zu einer neuen Version.

Für Software mit Produktcharakter, also für eine Entwicklung in Versionen für unterschiedliche Zielumgebungen mit konfigurierbarem Leistungsumfang, ist schließlich ein Konfigurationskonzept notwendig. Daneben bedarf es natürlich noch der aus den 70er Jahren bekannten Konzepte für Vorgehen und Projektmanagement.

Ein weiterer Erfolgsfaktor für den Computereinsatz in der Software-Entwicklung ist natürlich die Software-Entwicklungsumgebung (SEU) selbst. Die Software-Architektur einer SEU enthält in ihrem Mittelpunkt die Komponenten zur Unterstützung der Konzepte. Es ist entscheidend, mit welchem Erfüllungsgrad die Konzepte abgebildet und wie Konzepte und SEU in puncto Terminologie, Metastruktur, Inhalt, Handbücher und Schulung aufeinander abgestimmt sind.

Als ein Beispiel dafür soll das Konzept der Spezifikation dienen: Technisch bedarf es dazu einer ablauffähigen Spezifikationssprache, die ohne umständliche Techniken wie Kompilieren oder Binden auskommt und beispielsweise einen Maskeneditor und komfortable Testmöglichkeiten enthält.

Weiterhin ist ein Montage-Mechanismus notwendig, der standardisierte, wiederverwendbare und individuelle Leistungen zu einem ablauffähigen Programm zusammenfaßt. Drittens bedarf es der Ausführung von Montage, Spezifikation und Test aus der Entwicklungsumgebung heraus, ohne daß diese verlassen werden muß.

Aus der Vielzahl der Erfolgsfaktoren sei die Benutzeroberfläche hervorgehoben; im Idealfall läßt sie die Vielfalt der angebotenen Funktionen (von der Projektdefinition über Datenmodell, Spezifikation der Systemfunktionen, Maskeneditierung, Programm-Montage und Datenbank-Schemagenerierung bis zur Testausführung) für den Benutzer als ein einheitliches System erscheinen. Ein-/ Ausgabemedium ist je nach Zweckmäßigkeit eine Workstation, zum Beispiel ein PC mit Grafikfunktionen oder ein nichtprogrammierbares Terminal, auf dem ebenfalls Funktionen wie Window, Arbeitsplan und Log zur Verfügung stehen.

Die Software-Entwicklungsumgebung soll die Zielumgebung bedienen. Wer unbedingt in PL/1 programmieren will, der kann mit einer SEU, die Cobol-Programmteile generiert, nichts anfangen. Wer mit Natural und Adabas arbeitet, fühlt sich mit Cobol-Code und DB2-Schemagenerierung schlecht bedient.

Software-Entwicklungsumgebung und Zielumgebung müssen also aufeinander abgestimmt sein. Unter anderem sollte das erstellte Programm in der Software-Entwicklungsumgebung ausführbar oder zumindest testbar sein. Wer heute mit einer Software-Entwicklungsumgebung unterschiedliche Zielumgebungen - zum Beispiel Cobol/CICS/DB2 sowie C/UNIX - bedienen will, bekommt Probleme.

Zur erfolgreichen Umsetzung der Konzepte mit Hilfe einer Software-Entwicklungsumgebung bedarf es mindestens dreier zentraler Funktionen: Zum einen koordiniert die Datenadministration auf der Basis eines unternehmensweiten Datenmodells die Entstehung anwendungsspezifischer Datenmodelle und setzt diese gemeinsam mit den Datenbankadministratoren in systemspezifische Datenbankstrukturen um. Darüber hinaus schult und berät die Datenadministration die Anwender in der Datenmodellierung.

Noch nicht so verbreitet wie diese seit Jahren etablierte

Funktion ist ihr Pendant auf der Funktionsseite: die Funktionsadministration. Die Tatsache, daß jedes anspruchsvolle Projekt ein Team zur Schaffung von sogenannten Standards bildet, ist ein deutlicher Hinweis auf die Notwendigkeit dieser Funktion. Zu deren Aufgaben gehören die unternehmensweite Schaffung von Dialogkonventionen, Datenbankzugriffsschichten, Rahmenprogrammen, wiederverwendbaren Leistungen, Typisierungen und Zugriffsberechtigungsverfahren, deren Einbringung in die Anwendungssysteme sowie ebenfalls die Schulung und Beratung der Anwender.

Wie bei einem Betriebs- oder Datenbanksystem bedarf es schließlich auch bei einer Software-Entwicklungsumgebung einer Systemadministration. Aufgaben sind hier die Einrichtung der SEU, deren Anpassung an die spezielle Situation, die Schaffung von Projektumgebungen und Benutzer-Profilen, die Verwaltung des Entwicklungsdatenbankinhalts und wiederum die Schulung und Beratung der Anwender. Da die genannten Funktionen eng zusammenhängen, sollten sie zweckmäßig in einer Abteilung "Zentrale Anwendungs-Unterstützung" oder "Qualitätssicherung" zusammengefaßt werden.

Durch den Einsatz der hier skizzierten Konzepte sowie einer Software-Entwicklungsumgebung verlagert sich der Aufwand zunehmend in Anforderungsanalyse und Fachkonzept. Es ist naheliegend, daß zum Beispiel für Datenmodellierung, Dialoggestaltung und Prototyping ein starker Einbezug der Fachabteilung über den Erfolg entscheidet. Solange der Fachbereich der Meinung ist, daß er nach Abliefern von 100 Prosa-Seiten in einem 20-Mann-Jahre Projekt seiner Pflicht genügt hat und nun wie ein Besteller auf die Lieferung der Ware warten kann, ist der Mißerfolg unausweichlich. Softwareentwicklung ist eine Gemeinschaftsaufgabe von Fach- und IV-Bereich.

Erst wenn die Komponenten Integrierte Software-Technologie, Software-Entwicklungsumgebung, Zielumgebung und Organisation aufeinander abgestimmt sind, sprechen wir von einer Integrierten CASE-Umgebung. Der Aufbau einer solchen Integrierten CASE-Umgebung ist zwar eine technische Herausforderung, von mindestens ebenso großer Bedeutung ist aber die Einführungsstrategie. Sie entscheidet letzten Endes ebenso über Erfolg oder Mißerfolg wie die technische Güte von Software-Technologie und Software-Entwicklungsumgebung.

Ein paar einfache, zum Teil bewußt provozierende Empfehlungen sollten dabei beachtet werden:

1. Fragen Sie sich, warum Sie eine Integrierte CASE-Umgebung einfuhren wollen. Welche Anwendungssysteme wollen Sie in den nächsten fünf bis sieben Jahren entwickeln? Welche Bedeutung haben diese Anwendungssysteme für Ihr Unternehmen? Immerhin müssen Sie Ihr Management für erhebliche Investitionen gewinnen.

2. Widersetzen Sie sich einer Kosten-/Nutzen-Betrachtung rein quantitativer Art. Wenn es immer nach rechenbaren Größen ginge, hätten Sie heute noch kein Datenbanksystem (vielleicht auch noch keine Telefonanlage) in Ihrem Unternehmen (und vielleicht auch keine Kunden mehr).

3. Die Einführung einer Integrierten CASE-Umgebung ist die größte Neuerung in der (zugegebenermaßen noch jungen) Geschichte der Anwendungsentwicklung. Es handelt sich um eine Innovation, für deren Durchsetzung Sie Kraft und Ausdauer benötigen. Bedenken Sie, daß es bei jeder Innovation Gesetzmäßigkeiten gibt, die Sie kennen sollten.

4. Fangen Sie nicht zu spät an. Nichts ist schädlicher, als wenn die Einführung der CASE-Umgebung mit der Entwicklung der wichtigsten Anwendungssysteme einhergeht.

5. Legen Sie sich eine Vorgehensweise für Auswahl und Einführung der CASE-Umgebung zurecht und halten Sie diese durch. Schliddern Sie nicht durch den Kauf von scheinbar billigen isolierten PC-Tools allmählich in eine unkontrollierbare Situation. Betrachten Sie solche Systeme allenfalls als Möglichkeit zum Lernen.

6. Glauben Sie nicht, daß sich mit "wenig Aufwand" aus den Komponenten, die sich in den letzten zehn Jahren bei Ihnen angesammelt haben, eine Integrierte CASE-Umgebung aufbauen läßt. Komfortables Editor-System, Data Dictionary, Programmiersprache der Vierten Generation und grafisches Front-End- von vier verschiedenen Herstellern. Haben Sie den Mut, das eine oder andere System über Bord zu werfen, auch wenn Ihre Mitarbeiter sich umstellen müssen oder wenn es viel Geld gekostet hat.

7. Bleiben Sie bei der Entscheidung "make or buy" Realist. Bedenken Sie, daß Hersteller von integrierten CASE-Umgebungen zur Zeit pro Jahr mindestens 40 Mannjahre nur für die Entwicklung aufwenden. Es gibt schließlich auch keine DV-Abteilung mehr, die ihr Datenbanksystem selbst entwickelt.

8. Ihre Vorgehensweise ist (scheinbar) ganz einfach. Es geht um die Einführung einer (Standard-)Software in einem Fachbereich, der DV-Abteilung heißt. Beherzigen Sie bei Ihrem Vorgehen alles, was Sie bei jedem anderen Fachbereich auch berücksichtigen: informieren, motivieren, Angst nehmen, schulen, beraten, Erwartungen auf ein realistisches Maß führen, Betroffene zu Beteiligten machen etc. Sorgen Sie dafür, daß sich nicht nur eine kleine Schar "Auserwählter" mit CASE beschäftigt. Binden Sie alle wesentlichen Anwendungsentwickler in die Gestaltung ein. Automatisieren Sie nicht den Ist-Zustand.

Fangen Sie das zweite Anwendungs-Projekt frühestens ein Halbjahr nach dem ersten an. Das Pilotprojekt sollte kein "Mickey-Mouse"-Projekt, muß aber "politisch unbelastet" sein. Machen Sie nicht zuviel auf einmal. Beginnen Sie mit den Methoden, setzen Sie das Administrationskonzept ein, danach das Vorgehenskonzept und dann erst das Projektmanagement. Gehen Sie auch innerhalb dieser Schritte evolutionär vor.

Warum eigentlich ist der Computereinsatz in der Software-Entwicklung wichtig? Dazu ein paar Beobachtungen: Zum einen bilden Informationssysteme in vielen Unternehmen die realen Abläufe ab und sorgen für einen effizienten Arbeitsprozeß.

Ohne Software lassen sich viele Unternehmensprozesse gar nicht mehr durchfuhren. Außerdem verändert sich der Markt in vielen Branchen blitzschnell: Was heute noch "in" ist, kann morgen schon veraltet sein. Wer hier Erfolg haben will, muß über flexible Informationssysteme verfügen, die schnell an gewandelte Anforderungen angepaßt werden können.

Überdies stellen sich Produzenten in zunehmendem Maße auf Kundenwünsche ein; individuelle Produkte lösen die Massenfertigung ab. Dies bringt aber einen steil steigenden Bedarf an Informationsverarbeitung mit sich.

In einer Zeit, da die Entstehung eines Produkts immer länger dauert, die Nutzung des Produkts immer kürzer wird, entscheidet der richtige Zeitpunkt der Markteinführung über den Erfolg. Wer zu spät kommt, muß sich mit einem kleinen Marktvolumen zufrieden geben. Da immer häufiger auch Software für Produktion und Markteinführung benötigt wird, muß ihre Entwicklung beschleunigt werden.

Software durchdringt zunehmend alle Unternehmensbereiche, sie muß realitätsgerecht und flexibel sein. Die Entwicklung und Änderung von Software muß außerordentlich schnell erfolgen. Beide Forderungen lassen sich nur erfüllen, wenn die Software-Entwicklung systematisch vorgedacht und durch Computereinsatz unterstützt wird.

Wo Software für den Erfolg des Unternehmens entscheidend ist, muß ihre Entwicklung ingenieurmäßig und computerunterstützt erfolgen,

*Dr. Wolfgang Wiechert ist Mitglied der Geschäftsleitung des EDV Studio Ploenzke in Wiesbaden.

Der Beitrag ist dem Tagungsband des Kongresses "Software für den Computer aus dem Computer" entnommen. Der 630 Seiten starke Band kann beim Veranstalter CSE Conferences, Seminars, Education, Rheinstraße 28, 8000 München 40, Telefon 0 89/3 60 86-1 69, zum Preis von 145 Mark bestellt werden.