Bestehende Engpässe bei der SW-Erstellung müssen abgebaut werden:

CASE-Konzept verspricht einen Lösungsansatz

20.02.1987

In Zukunft dürfte sich der Trend fortsetzen, die Software-Erstellung weiter zu automatisieren. Ein möglicher Ansatz hierfür ist das Computer Aided Software Engineering (CASE). Entwicklung und State of the Art dieser noch relativ jungen Disziplin zeigt Jürgen Selig* in einem zweiteiligen Beitrag auf.

Seit den sechziger Jahren spricht man von den CA-Technologien - häufig zu Unrecht als Mode abgetan. Den Anfang machte CAD (Computer Aided Design = computerunterstütztes Konstruieren). Der Computer war weitgehend für kommerzielle Anwendungen eingeführt und akzeptiert. Neben alphanumerischen Geräten waren Plotter und grafische Terminals entwickelt worden. Da lag es nahe, den erreichten Stand der Technik zu nutzen, um den Konstrukteuren ein Hilfsmittel in die Hand zu geben, Zeichnungen mit Hilfe des Computers zu erstellen.

Die Ansprüche wuchsen, und neben der Zeichnungserstellung fanden CAD-Systeme Einsatz bei der 3D-Darstellung, der Simulation - zum Beispiel FEM-Berechnungen oder Kontrolle von Bewegungsabläufen. Parallel wurde die CAM-Technologie (Computer Aided Manufacturing = computerunterstützte Fertigung) entwickelt; ihr Ziel ist es, mit Hilfe des Computers Werkzeugbewegungen zu berechnen, zu kontrollieren und eventuell grafisch darzustellen, um Kollisionen mit dem Werkstück zu vermeiden. Die direkte Übergabe von Daten (zum Beispiel Werkstückgeometrie) vom CAD- an den CAM-Computer war dann die Geburt der CAD/CAM-Systeme. Nachdem immer höhere Anforderungen an die Integration gestellt und verwirklicht wurden, spricht man heute im Bereich der Mechanik nicht mehr von CAD/CAM, sondern von CIM (Computer Integrated Manufacturing = integrierte computergesteuerte Fertigung).

Auch in der Elektronik werden CAD- und CAM-Technologien eingesetzt, um zum Beispiel Chips oder Leiterplatten zu entwerfen, zu planen und zu fertigen. Die konsequente Weiterentwicklung und Integration hat hier zu CAE-Systemen (Computer Aided Engineering) geführt mit denen unter anderem Schaltungen entworfen werden, deren Logik der Computer überprüft. Diese Methode macht unter anderem die Herstellung von Prototypen überflüssig und erlaubt damit oft einen um Monate früheren Start der Fertigung. Ein weiterer Einsatzbereich ist die automatische Entflechtung von Leiterplatten.

Andere CA-Techniken sind beispielsweise CAP, die computerunterstützte Planung, oder CAT, das computergesteuerte Testen.

Alle CA-Techniken haben im wesentlichen folgendes gemeinsam:

- Einmal entwickelte Softwaremodule werden immer wieder, mit unterschiedlichen Parametern modifiziert, verwendet.

- Im allgemeinen wird Computer-Grafik eingesetzt.

- Die Systeme sind interaktiv.

- Der Grad der Flexibilität ist sehr hoch, so daß ein weites Spektrum von Anwendungen möglich ist.

- Die weitgehende Integration ermöglicht den nahtlosen Übergang von einem Bereich zum anderen.

- Sie bewirken eine bedeutende Produktivitätssteigerung.

Dies sind auch die wesentlichen Merkmale von der noch relativ jungen Technik "CASE" (Computer Aided Software Engineering). CASE-Systeme sind sogenannte SoftwareTools, die eingesetzt werden, um Software mit hoher Qualität wirtschaftlicher und schneller zu entwickeln.

Die Computer-Technik bis Mitte der sechziger Jahre stellt sich folgendermaßen dar: Einteilen konnte man in den Computer selbst, also die CPU mit den verschiedensten Speichereinheiten, die Hardware-Peripherie für die Ein- und Ausgabe sowie die gesamte Software. Es gab nur Single-user-/Single-task-Systeme, deshalb waren Betriebssysteme unbekannt. Mußte ein Anwendungsprogramm erstellt werden, so fing der Programmierer meistens bei "Null" wieder an. Die Eingabe der Daten erfolgte fast ausschließlich über Lochkarten und die Ausgabe über Drucker.

Seitdem hat sich vieles geändert: Auf der einen Seite sind die Computer-Systeme immer komplexer und zu Multi-user-/Multi-task-Systemen weiterentwickelt worden, auf der anderen Seite kamen viele Hilfsmittel hinzu, die die Erstellung von Anwendungsprogrammen erleichtern:

Im Bereich der Hardware hat es eine fast explosionsartige Entwicklung gegeben; hier sei nur kurz die Weiterentwicklung der Mainframes zu Minicomputern, Mikrocomputern, PCs, Vektor-Rechnern und Workstations erwähnt; hinzu kommt die zunehmende Vielfalt von Geräten für die Daten-Ein- und -Ausgabe bis hin zu komplexen Grafik-Geräten und schließlich die ständig zunehmende Bedeutung der Kommunikations-Hardware zur Datenübertragung zwischen einzelnen Rechnern sowie Rechnern und Endgeräten.

Softwareseitig gibt es heute keinen Rechner ohne Betriebssystem. Diese SW-Konstrukte werden immer komfortabler, um unter anderem den Kommunikationsbereich besser steuern zu können. Die Computer-Industrie hat Utility-Programme jeder Art geschaffen. Damit sollen bestimmte Teilarbeiten bei der Benutzung von Computern beschleunigt und vereinfacht werden.

Ein gutes Beispiel für die Entwicklung bis hin zur automatisierten Software-Erstellung ist der Bereich der Speicherung von Daten. Die Programmierer der sechziger Jahre speicherten Daten innerhalb ihres Programmes ab. Sehr bald stand fest, daß in einem Programm gespeicherte Daten auch in anderen benutzt, ergänzt oder verändert werden mußten. Die Softwerker entwickelten Methoden zur Speicherung - gegebenfalls außerhalb ihrer Programme. Dann wurde festgestellt, daß man diese gespeicherten Daten auch in von Kollegen geschriebenen Programmen benötigte; es entstanden Datenstrukturen, die für die Abteilung, den Betrieb, das Unternehmen, oder sogar unternehmensübergreifend vorgeschrieben waren. Diese Entwicklung führte zu den Datenbank-Management-Systemen (DBMS), ohne die eine moderne Computernutzung gar nicht mehr denkbar wäre.

In Zukunft dürfte sich der Trend fortsetzen, den Bereich der Software-Erstellung weiter zu automatisieren siehe Abbildung). Nur so wird es geringen, die bestehenden Engpässe zu überwinden, nämlich den ständig steigenden Bedarf an Software zu decken, die Programme an die kontinuierlich komplexer werdenden Hardware-Installationen anzupassen und dabei noch wirtschaftlich zu bleiben, das heißt, die Kosten im Griff zu behalten. Drei Bereiche, in denen bereits heute zukünftige CASE-Techniken eingesetzt werden, sollen als Beispiel dienen:

- Grafik-Software

Seit Mitte der siebziger Jahre werden zunehmend Grafik-Geräte für Bereiche wie Präsentations-Grafik CAD/CAM oder Business-Grafik eingesetzt. Dies führte dazu, daß zunächst die Hardware-Hersteller Software-Routinen anboten, die es dem Programmierer ermöglichten, seine Algorithmen in Grafik umzusetzen. Wurden zunächst Grafik-Anwendungen im wesentlichen in Form von schlüsselfertigen Systemen eingesetzt, so bekamen die Forderungen der Benutzer, selbst Anwendungspakete mit Grafikteilen erstellen zu können immer, immer größere Bedeutung; sie bewirkten schließlich die Einführung allgemein anerkannter Normen für grafische Software-Werkzeuge (zum Beispiel Core und GKS, oder in Zukunft Phigs). Heute sind bereits einige solcher Tool-Pakete im Einsatz; sie ermöglichen es dem Computer-Benutzer, aber auch Software- und Systemhäusern, schnell, wirtschaftlich und kompatibel zu anderen Programmen Computer-Grafik in ihre Anwendungsprogramme zu integrieren.

- Projekt-Management

Ein Grund für die schon heute sehr große Akzeptanz von Grafik-Paketen ist der Wunsch der Industrie beziehungweise der einzelnen größeren Unternehmen, allgemeingültige Standards zu verwenden. Hiervon verspricht man sich große Vorteile bei der Ausbildung sowie Weiterentwicklung und Wartung von Anwendungs-Software. Dies gilt aber auch generell für die Erstellung jedes Software-Paketes. Deshalb sind in den letzten Jahren verschiedene SW-Tools entstanden, die den Vorgang der Software-Erstellung steuern und verwalten.

Anbieter in diesem Bereich sind meistens Software- oder Beratungsunternehmen, die im Auftrag einzelner Kunden Anwendungspakete erstellen. Nachdem "zum x-tenmal das Rad erfunden" und sehr viel Zeit verlorengegangen war, um neue Mitarbeiter in Projekte und deren Struktur einzubinden, haben solche Unternehmen ihre Erfahrung in Prozeduren festgehalten. Diese sollen es nun ermöglichen, ein Projekt strukturiert nach einmal festgelegten Methoden und gut kontrolliert auszuführen. Der Automatisierungsgrad solcher schon im Markt angebotenen Systeme ist unterschiedlich. Das eine ist nur ein planerisches Instrument, das Zeitübersichten verschafft auf kritische Aktivitäten hinweist und die erforderlichen Berichte erstellt. Andere Systeme gehen bis hin zur Code-Generierung (manchmal sogar in verschiedenen Computer-Sprachen), dem Einbau von Sicherheitsverfahren, der Integration mit Grafik-Software-Paketen und DBMS-Systemen oder der automatischen Erstellung der kompletten Dokumentation.

- Benutzer-Oberflächen

So wie die schon erwähnten Grafik-Pakete einheitliche Methoden (einen Standard) im Bereich der grafischen Datenverarbeitung ermöglichen, besteht ein hoher Bedarf für Systeme, die ganz allgemein Benutzeroberflächen generieren und verwalten. Denn was für grafische Daten gilt, hat auch im alphanumerischen Bereich seine Berechtigung. Bei der Steuerung der Ein- und Ausgabe (zum Beispiel durch Befehls- oder Menüstrukturen) hängt die Qualität davon ab, wer zu welchem :Zeitpunkt diesen Teil des Programmes konzipiert, beziehungsweise geschrieben hat. Dies führt zu Problemen in den schon erwähnten Bereichen wie Schulung, Weiterentwicklung oder Wartung.

Hier sind nun die ersten Software-Werkzeuge auf den Markt gekommen, die es dem Benutzer ermöglichen, auf der Basis vordefinierter Module Benutzeroberflächen bis hin zu deren Logik zu erstellen und zu verwalten. Nach Vorgaben des Benutzers werden also Befehlsstrukturen oder Menüfelder mit sehr wenigen Angaben auf der Basis der Module automatisch generiert.

Der Programmierer kann sich folglich intensiver um den eigentlichen Applikations-Code kümmern, da die Benutzeroberfläche weitgehend automatisch erzeugt wird. Gute Benutzeroberflächen-Systeme bieten die Anbindung an Grafik-Pakete, die Möglichkeit, die Benutzeroberfläche mit aller Logik auch als Prototyp zu testen, die automatische Erstellung der Dokumentation und ähnliche weitere Funktionen.

Im ersten Teil seines Artikels steckt Jürgen Selig das CASE-Umfeld ab und zeigt praktische Einsatzmöglichkeiten. Die zweite Folge setzt sich mit den wirtschaftlichen Aspekten dieser Technik

auseinander.