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.

23.01.1987 - 

Vielfalt an Methoden und Verfahren stellt viele Anwender vor Probleme:

Durchgängiges Entwicklungskonzept ist gefragt

Verfahren, die den Softwareentwicklungsprozeß unterstützen, gibt es schon seit langem. Neu ist jedoch der Versuch, Software-Engineering-Konzepte rechnergestützt zu verwirklichen, die sich auf den gesamten Entwicklungsprozeß beziehen: Computer Aided Software Engineering (CASE) heißt eines der jüngsten Schlagworte der SW-Branche. Christoph Bobrowski gibt einen Überblick über diese Disziplin unter dem Aspekt der Software-Produktionsumgebung (SPU).

Seit knapp zwei Jahrzehnten sehen sich die Softwareproduzenten mit ständig steigenden Anforderungen an die Komplexität ihrer Produkte konfrontiert. Viele Fälle teuren Redesigns oder nicht mehr wartbarer, unübersichtlicher Programme sind auch der Fachöffentlichkeit bekannt. Daraus resultierende unvorhergesehene Kostenüberschreitungen können zu Belastungen des Verhältnisses zwischen Auftragnehmer und Auftraggeber führen und die Grundlagen der Wirtschaftlichkeitsberechnungen auf beiden Seiten total zerstören.

Der mittlerweile akzeptierte Ansatz zur Lösung dieser Probleme besteht in einer stärkeren Orientierung des Software-Entwicklungsprozesses an den Vorgehensweisen klassischer Ingenieurdisziplinen. Dieser Ansatz spiegelt sich in Begriffen wie "Software-Technik", "Software-Werkzeuge" und "Software-Engineering" wider. Spezielle Dienstleistungsprogramme, sogenannte "Software-Werkzeuge", gibt es schon seit langem. Neu ist der Versuch, Software-Engineering-Konzepte rechnerunterstützt zu verwirklichen, die sich auf den gesamten Entwicklungsprozeß der Software beziehen.

Spezifisches CASE-Konzept mit einer SPU realisieren

Folgerichtig spricht man vom "Computer Aided Software Engineering", abgekürzt CASE. Dabei handelt es sich um einen Oberbegriff, der vom einzelnen Software produzierenden Unternehmen mit Leben gefüllt werden muß und sich dann in einem spezifischen Konzept niederschlägt. Dieses Konzept wird schließlich mit Hilfe einer "Software-Produktionsumgebung" (SPU) realisiert. Eine Software-Produktionsumgebung besteht aus einer Menge von kooperierenden Softwarewerkzeugen, die auf gängigen Mikrorechnern oder Workstations ablauffähig sind.

Gegenwärtig gibt es auf dem Markt eine Vielzahl von spezialisierten Softwarewerkzeugen mit teilweise überlappenden Einsatzgebieten. Diese Tools sind im allgemeinen nicht so konzipiert, daß eine leichte Kommunikation zwischen ihnen möglich

wäre. Darüber hinaus sind die Benutzeroberflächen naturgemäß uneinheitlich. Der Anwender sieht sich also mit dem schwierigen Problem konfrontiert, sein CASE-Konzept mit Hilfe von Einzelwerkzeugen zu verwirklichen, die nicht vor dem Hintergrund durchgängiger Software-Engineering-Konzepte entstanden sind.

Auf der anderen Seite sind die meisten bisher erhältlichen "integrierten" Software-Produktionsumgebungen zumindest mittelfristig für den Anwender problematisch, denn sie erlauben keine leichte Integration von später hinzukommenden speziellen Werkzeugen, die gleichwohl mit den vorher existierenden Werkzeugen kommunizieren sollen. Oft hindern integrierte SPUs den Anwender sogar an der Nutzung des der SPU unterliegenden Betriebssystems, das ja durchaus nützliche Dienstleistungsprogramme anbieten kann.

Für die Anwender ist es meist wenig sinnvoll, ein unternehmensbezogenes CASE-Konzept selbst von Grund auf neu zu entwickeln, insbesondere da in Fachkreisen ein globaler Konsens über Software-Engineering-Ansätze herrscht.

Die Anwender erwarten vom Einsatz einer Software-Produktionsumgebung eine qualitative Verbesserung des Software-Entwicklungsprozesses. Sie erhoffen von einer SPU einen sichtbaren Nutzen, sowohl für den einzelnen Programmierer wie auch für den Manager, der schließlich die Investition in die SPU vertreten muß. Sie fordern zu Recht, daß diese Investition zukunftssicher ist und zukünftige technische Entscheidungen so wenig wie möglich präjudiziert.

Aus diesem Grund sollte eine Software-Produktionsumgebung Methoden und Werkzeuge für die Anforderungsanalyse bereitstellen, die auch von Nicht-Fachleuten akzeptiert werden und Programmierer beim Design von übersichtlichen Systemstrukturen unterstützen. Ferner muß sie Werkzeuge für die Wartungsphase und Produktverwaltungsfunktionen für das komplexe Produkt "Software" anbieten, die Basisdaten für eine kostenorientierte Bewertung des Software-Erstellungsprozesses liefern und sich in unternehmensspezifische Standard-Vorgehensweisen einpassen lassen.

Da CASE-Konzepte von vielen Anwendern verlangt und genutzt werden und die Realisierung einer Software-Produktionsumgebung meist mit erheblichem Aufwand verbunden ist, bieten Softwarehäuser Standardlösungen an. Aus den oben skizzierten Anwender-Forderungen folgt, daß eine Software-Produktionsumgebung hohen Anforderungen in den folgenden Bereichen genügen sollte:

- Methodologie:

Die SPU muß sich auf als praxistauglich erkannte Methoden stützen oder pragmatische, allgemein anerkannte Prinzipien des Software-Engineering verwirklichen. Das von der SPU nahegelegte methodische oder pragmatische Vorgehen muß jederzeit klar erkennbar sein.

- Design-Unterstützung:

Die SPU soll den Benutzer bei der Erarbeitung einer guten Systemarchitektur mit definierten Schnittstellen unterstützen. Die System-Sicht auf das zu lösende Problem muß - mit Unterstützung der SPU - transparent sein. Damit wird auch die Wartbarkeit der fertigen Software erhöht.

- Benutzerfreundlichkeit:

Der Umgang mit der SPU muß leicht erlernbar sein. Diese Forderung ist sehr wichtig, weil es verschiedene Arten von Benutzern der SPU gibt. Sie wird möglicherweise, in verschiedenem Umfang, von Programmierern, Projektleitern, technischen Controllern, Abteilungsleitern und Sekretärinnen genutzt werden.

- Praktikabilität:

Die SPU darf nicht nur einen offensichtlichen technischen Nutzen haben, sondern muß auch Werkzeuge zur Verfügung stellen, die den Dialog zwischen DV-Abteilung und Fachabteilung erleichtern. Sie muß die Basisdaten für Kostenanalysen von Softwareprojekten bereithalten und aufbereiten können.

- Flexibilität:

Die SPU soll für einen weiten Bereich von Anwendungen geeignet sein. Sie muß die leichte Integration kundenspezifischer Werkzeuge gewährleisten und die Einhaltung unternehmensspezifischer Projektstandards unterstützen.

- Nutzung von Standards:

Das der SPU zugrundeliegende Betriebssystem soll am Markt eingeführt und in einem Marktsegment erfolgreich sein. Bietet die SPU grafische Werkzeuge, so sollten diese gängige Grafikstandards nutzen. Anbieter von Software-Produktionsumgebungen können keine Systemstandards schaffen, sondern müssen sie nutzen. Eine Festlegung auf exotische Hardware ist zu vermeiden.

- Zukunftssicherheit:

Die Software-Architektur der SPU muß als Basis für zukünftige Entwicklungen der Software-Technik, wie sie zum Beispiel aus dem Bereich Künstlicher Intelligenz kommen, geeignet sein. Ebenso soll sich das Design der SPU an erkennbaren zukünftigen Entwicklungen orientieren. Beispiele sind die verstärkte Nutzung von Rechnernetzen, verteilten Datenbanken oder intelligenten grafischen Workstations.

CASE-Lösung unter reinem Technikaspekt inadäquat

Wie jede Ingenieur-Disziplin vereint auch das Computer Aided Software Engineering mehrere grundsätzliche Einsichten und setzt sie in praktikable Verfahren um. Daher sind CASE-Lösungen, die nur organisatorische Aspekte implementieren, ohne die technologische Basis zur Handhabung von Komplexität zu haben, ebenso inadäquat wie solche, die technologisch reizvoll sind, aber praktische Belange weitgehend ignorieren. Der beste Ansprechpartner für CASE-Lösungen sind daher heute unternehmensberaterisch kompetente Softwarehäuser.

Christoph Bobrowski ist Software-lngenieur und Trainer im Geschäftsbereich Systemhaus der SCS Technische Automation und Systeme GmbH, Hamburg.