Beispiel für ein CASE-Tool

Computergestützte Softwareentwicklung ( CASE ) ist ein Bereich von Softwarewerkzeugen zur Entwicklung und Implementierung von Anwendungen. CASE-Werkzeuge ähneln computergestützten Konstruktionswerkzeugen (CAD) für die Hardwareentwicklung und sind teilweise von diesen inspiriert. Ziel von CASE-Werkzeugen ist die Entwicklung hochwertiger, fehlerfreier und wartungsfreundlicher Software. [ 1 ] CASE-Software wurde häufig mit Methoden zur Entwicklung von Informationssystemen und automatisierten Werkzeugen für den Softwareentwicklungsprozess in Verbindung gebracht . [ 2 ]

Geschichte

Das 1968 an der University of Michigan gestartete Projekt „Information System Design and Optimization System“ (ISDOS) weckte großes Interesse am Konzept, Computersysteme zur Unterstützung von Analysten im komplexen Prozess der Anforderungsanalyse und Systementwicklung einzusetzen. Mehrere Veröffentlichungen von Daniel Teichroew begeisterten eine ganze Generation von Enthusiasten für das Potenzial der automatisierten Systementwicklung. Sein Werkzeug „Problem Statement Language / Problem Statement Analyzer“ (PSL/PSA) war ein CASE-Werkzeug, obwohl es dem Begriff vorausging. [ 3 ]

Ein weiterer wichtiger Aspekt ergab sich durch die logische Erweiterung des Datenwörterbuchs einer Datenbank . Durch die Erweiterung des Metadatenbereichs konnten die Attribute einer Anwendung in einem Wörterbuch gespeichert und zur Laufzeit verwendet werden. Dieses „aktive Wörterbuch“ wurde zum Vorläufer der moderneren modellgetriebenen Entwicklungsmethoden . Allerdings bot das aktive Wörterbuch keine grafische Darstellung der Metadaten. Die Verknüpfung des Konzepts eines Wörterbuchs, das die Metadaten der Analysten enthält (abgeleitet aus der Anwendung eines integrierten Methodensatzes), mit der grafischen Darstellung dieser Daten führte zu den früheren Versionen von CASE. [ 4 ]

Der nächste Marktteilnehmer war Excelerator von Index Technology aus Cambridge, Massachusetts. Während DesignAid auf vernetzten Mikrocomputern von Convergent Technologies und später Burroughs Ngen lief, brachte Index Excelerator auf der IBM PC/AT- Plattform auf den Markt. Obwohl die IBM-Plattform zum Zeitpunkt der Markteinführung und über mehrere Jahre hinweg im Gegensatz zu den Rechnern von Convergent Technologies oder Burroughs weder Netzwerkfunktionen noch eine zentrale Datenbank unterstützte, war die Anziehungskraft von IBM groß, und Excelerator erlangte Bekanntheit. Unmittelbar nach Excelerator folgten zahlreiche Angebote von Unternehmen wie Knowledgeware (James Martin, Fran Tarkenton und Don Addington), CA Gen von Texas Instruments und dem FOUNDATION-Toolset (DESIGN/1, INSTALL/1, FCP) von Andersen Consulting . [ 5 ]

CASE-Tools erlebten ihren Höhepunkt in den frühen 1990er Jahren. [ 6 ] Laut dem PC Magazine vom Januar 1990 boten über 100 Unternehmen fast 200 verschiedene CASE-Tools an. [ 5 ] Zu dieser Zeit hatte IBM AD/Cycle vorgeschlagen, eine Allianz von Softwareanbietern, die auf IBMs Software-Repository basierte und IBM DB2 auf Mainframes und OS/2 nutzte .

Die Werkzeuge für die Anwendungsentwicklung können aus verschiedenen Quellen stammen: von IBM, von Anbietern und von den Kunden selbst. IBM hat Partnerschaften mit Bachman Information Systems, Index Technology Corporation und Knowledgeware geschlossen , im Rahmen derer ausgewählte Produkte dieser Anbieter über ein ergänzendes Marketingprogramm von IBM vermarktet werden, um Angebote bereitzustellen, die eine vollständige Abdeckung des gesamten Produktlebenszyklus ermöglichen . [ 7 ]

Mit dem Niedergang der Mainframes verschwanden AD/Cycle und die großen CASE-Tools vom Markt und ebneten so den Weg für die heutigen gängigen CASE-Tools. Viele der führenden CASE-Anbieter der frühen 1990er-Jahre wurden von Computer Associates übernommen , darunter IEW, IEF, ADW, Cayenne und Learmonth & Burchett Management Systems (LBMS). Ein weiterer Trend, der die Entwicklung von CASE-Tools vorantrieb, war der Aufstieg objektorientierter Methoden und Werkzeuge. Die meisten Anbieter integrierten Unterstützung für objektorientierte Methoden und Werkzeuge. Darüber hinaus entstanden neue Produkte, die von Grund auf für den objektorientierten Ansatz konzipiert wurden. Andersen entwickelte sein Projekt Eagle als Alternative zu Foundation. Mehrere Vordenker der objektorientierten Entwicklung entwickelten jeweils ihre eigene Methodik und ihr eigenes CASE-Toolset: Jacobson , Rumbaugh , Booch usw. Schließlich wurden diese vielfältigen Toolsets und Methoden durch Standards der Object Management Group (OMG) konsolidiert . Die Unified Modelling Language (UML) der OMG ist heute weithin als Industriestandard für die objektorientierte Modellierung anerkannt .

CASE-Software

Werkzeuge

CASE-Tools unterstützen spezifische Aufgaben im Softwareentwicklungszyklus. Sie lassen sich in folgende Kategorien unterteilen:

  1. Geschäfts- und Analysemodellierung: Grafische Modellierungswerkzeuge. Z. B. E/R-Modellierung, Objektmodellierung usw.
  2. Entwicklung: Entwurfs- und Konstruktionsphasen des Lebenszyklus. Debugging-Umgebungen. Z. B. IISE LKO .
  3. Verifizierung und Validierung : Code und Spezifikationen auf Korrektheit , Leistung usw. analysieren.
  4. Konfigurationsmanagement: Steuerung des Ein- und Auscheckens von Repository-Objekten und -Dateien. Beispiele: SCCS , IISE.
  5. Metriken und Messung: Analysieren Sie den Code hinsichtlich Komplexität, Modularität (z. B. keine "go to"-Anweisungen), Leistung usw.
  6. Projektmanagement: Projektpläne, Aufgabenverteilung und Terminplanung verwalten.

Eine weitere gängige Methode zur Unterscheidung von CASE-Tools ist die Unterscheidung zwischen Upper CASE und Lower CASE. Upper CASE-Tools unterstützen die Geschäfts- und Analysemodellierung. Sie unterstützen traditionelle Diagrammsprachen wie ER-Diagramme , Datenflussdiagramme , Strukturdiagramme , Entscheidungsbäume , Entscheidungstabellen usw. Lower CASE-Tools unterstützen Entwicklungsaktivitäten wie physisches Design, Debugging, Konstruktion, Testen, Komponentenintegration, Wartung und Reverse Engineering. Alle anderen Aktivitäten umfassen den gesamten Lebenszyklus und gelten gleichermaßen für Upper und Lower CASE. [ 8 ]

Werkbänke

Workbenches integrieren zwei oder mehr CASE-Tools und unterstützen spezifische Softwareprozessaktivitäten. Dadurch erreichen sie Folgendes:

  • Eine einheitliche und konsistente Schnittstelle (Präsentationsintegration)
  • Nahtlose Integration von Werkzeugen und Werkzeugketten (Steuerungs- und Datenintegration )

Ein Beispiel für eine solche Arbeitsumgebung ist Microsofts Visual Basic -Programmierumgebung. Sie umfasst verschiedene Entwicklungswerkzeuge: einen GUI-Generator, einen intelligenten Code-Editor, einen Debugger usw. Die meisten kommerziellen CASE-Produkte waren solche Arbeitsumgebungen, die zwei oder mehr Werkzeuge nahtlos integrierten. Arbeitsumgebungen lassen sich analog zu Werkzeugen klassifizieren: Sie konzentrieren sich auf Analyse, Entwicklung, Verifizierung usw. und können sich auf Groß- oder Kleinschreibung oder Prozesse wie das Konfigurationsmanagement beziehen, die den gesamten Lebenszyklus abdecken.

Umgebungen

Eine Umgebung ist eine Sammlung von CASE-Werkzeugen oder -Arbeitsplätzen, die den gesamten Softwareentwicklungsprozess unterstützen soll. Dies steht im Gegensatz zu Werkzeugen, die sich auf eine bestimmte Aufgabe oder einen bestimmten Teil des Lebenszyklus konzentrieren. CASE-Umgebungen werden von Fuggetta wie folgt klassifiziert: [ 9 ]

  1. Toolkits: Lose gekoppelte Sammlungen von Werkzeugen. Diese basieren typischerweise auf Betriebssystem-Workbenches wie der Unix Programmer's Workbench oder dem VMS VAX-Set. Die Integration erfolgt üblicherweise über Pipes oder andere grundlegende Mechanismen zum Datenaustausch und zur Steuerung. Die Stärke der einfachen Integration ist gleichzeitig eine ihrer Schwächen. Die einfache Übergabe von Parametern über Technologien wie Shell-Skripte kann nicht die Art von ausgefeilter Integration bieten, die eine gemeinsame Repository-Datenbank ermöglicht.
  2. Vierte Generation: Diese Umgebungen werden auch als 4GL ( Fourth Generation Language Environments) bezeichnet, da die frühen Umgebungen für spezifische Sprachen wie Visual Basic entwickelt wurden. Sie boten als erste Umgebungen eine tiefe Integration mehrerer Tools. Typischerweise konzentrierten sich diese Umgebungen auf bestimmte Anwendungstypen, beispielsweise auf benutzerorientierte Anwendungen, die standardmäßige atomare Transaktionen mit einer relationalen Datenbank durchführten. Beispiele hierfür sind Informix 4GL und Focus.
  3. Sprachzentriert: Umgebungen, die auf einer einzigen, oft objektorientierten Sprache basieren, wie beispielsweise Symbolics Lisp Genera oder VisualWorks Smalltalk von Parcplace. In diesen Umgebungen waren alle Betriebssystemressourcen Objekte der jeweiligen Sprache. Dies ermöglichte zwar leistungsstarke Debugging- und grafische Funktionen, der entwickelte Code war jedoch größtenteils auf die spezifische Sprache beschränkt. Daher stellten diese Umgebungen innerhalb von CASE eher eine Nische dar. Sie wurden hauptsächlich für Prototyping und Forschungs- und Entwicklungsprojekte eingesetzt. Ein gemeinsames Kernkonzept dieser Umgebungen war die Model-View-Controller- Benutzeroberfläche (MVC), die es ermöglichte, mehrere Darstellungen desselben Designs konsistent mit dem zugrunde liegenden Modell zu gestalten. Die MVC-Architektur wurde sowohl von anderen CASE-Umgebungen als auch von vielen der damit entwickelten Anwendungen übernommen.
  4. Integriert: Diese Umgebungen sind ein Beispiel für das, woran die meisten IT-Fachleute zuerst denken, wenn sie an CASE denken. Beispiele hierfür sind IBMs AD/Cycle, Andersen Consultings FOUNDATION, das ICL CADES- System und DEC Cohesion. Diese Umgebungen versuchen, den gesamten Lebenszyklus von der Analyse bis zur Wartung abzudecken und bieten ein integriertes Datenbank-Repository zur Speicherung aller Artefakte des Softwareprozesses. Das integrierte Software-Repository war das charakteristische Merkmal dieser Tools. Sie boten verschiedene Designmodelle sowie Unterstützung für Code in heterogenen Sprachen. Eines der Hauptziele dieser Umgebungen war „Round-Trip-Engineering“: Änderungen auf Designebene sollten automatisch im Code abgebildet werden und umgekehrt. Diese Umgebungen waren typischerweise auch mit einer bestimmten Softwareentwicklungsmethodik verbunden. Beispielsweise war die FOUNDATION CASE Suite von Andersen eng mit der Andersen-Methode/1 verknüpft.
  5. Prozesszentriert: Dies ist die anspruchsvollste Integrationsform. Solche Umgebungen versuchen, nicht nur die Analyse- und Designobjekte des Softwareprozesses formal zu spezifizieren, sondern den Prozess selbst abzubilden und diesen formalen Prozess zur Steuerung und Lenkung von Softwareprojekten zu nutzen. Beispiele hierfür sind East, Enterprise II, Process Wise, Process Weaver und Arcadia. Diese Umgebungen sind per Definition an eine bestimmte Methodik gebunden, da der Softwareprozess selbst Teil der Umgebung ist und viele Aspekte der Werkzeugnutzung steuern kann.

In der Praxis war die Unterscheidung zwischen Arbeitsumgebungen und Programmierumgebungen flexibel. Visual Basic beispielsweise war eine Programmierarbeitsumgebung, wurde aber von vielen auch als 4GL-Umgebung betrachtet. Die Merkmale, die Arbeitsumgebungen von Umgebungen unterschieden, waren die tiefe Integration über ein gemeinsames Repository oder eine gemeinsame Sprache sowie eine bestimmte Methodik (integrierte und prozessorientierte Umgebungen) oder Domänenspezifität (4GL). [ 9 ]

Wichtigste Risikofaktoren für CASE

Zu den wichtigsten Risikofaktoren für Organisationen, die CASE-Technologie einführen, gehören:

  • Unzureichende Standardisierung: Organisationen müssen Methoden und Werkzeuge in der Regel an ihre spezifischen Anforderungen anpassen und übernehmen. Dies kann einen erheblichen Aufwand erfordern, um sowohl unterschiedliche Technologien als auch unterschiedliche Methoden zu integrieren. Beispielsweise unterschieden sich vor der Einführung des UML-Standards die Diagrammkonventionen und Methoden zur Gestaltung objektorientierter Modelle bei den Anhängern von Jacobson , Booch und Rumbaugh stark .
  • Unrealistische Erwartungen: Die Befürworter der CASE-Technologie – insbesondere Anbieter teurer Toolsets – schüren oft übertriebene Erwartungen, indem sie den neuen Ansatz als Allheilmittel für alle Probleme darstellen. In Wirklichkeit kann keine solche Technologie das leisten, und Unternehmen, die mit unrealistischen Erwartungen an CASE herangehen, werden zwangsläufig enttäuscht sein.
  • Unzureichende Schulung: Wie bei jeder neuen Technologie benötigt auch CASE Zeit, um Anwender in der Nutzung der Tools zu schulen und ihnen den Einstieg zu erleichtern. CASE-Projekte können scheitern, wenn den Anwendern nicht genügend Zeit für Schulungen eingeräumt wird oder wenn das erste Projekt mit der neuen Technologie selbst hochkritisch und risikoreich ist.
  • Unzureichende Prozesssteuerung: CASE bietet bedeutende neue Möglichkeiten zur innovativen Nutzung neuer Werkzeugtypen. Ohne die richtige Prozessführung und -steuerung können diese neuen Möglichkeiten jedoch auch erhebliche neue Probleme verursachen. [ 10 ]

Siehe auch

Referenzen

  1. ^ Kuhn, DL (1989). „Auswahl und effektive Nutzung eines computergestützten Softwareentwicklungswerkzeugs“. Jährliches Westinghouse-Computersymposium; 6.–7. November 1989; Pittsburgh, PA (USA); DOE-Projekt.
  2. ^ P. Loucopoulos und V. Karakostas (1995). System Requirements Engineering: Software, die effektiv funktionieren wird.
  3. Teichroew , Daniel; Hershey, Ernest Allen (1976). „PSL/PSA – eine computergestützte Technik zur strukturierten Dokumentation und Analyse von Informationsverarbeitungssystemen“ . In: Proceedings der ICSE '76 Proceedings of the 2nd International Conference on Software Engineering . IEEE Computer Society Press. Archiviert vom Original am 8. Dezember 2018. Abgerufen am 25. November 2014 .
  4. ^ Coronel, Carlos; Morris, Steven (4. Februar 2014). Datenbanksysteme: Entwurf, Implementierung und Management . Cengage Learning. S.  695–700 . ISBN 978-1285196145Abgerufen am 25. November 2014 .
  5. ^ a b PC Mag . Ziff Davis, Inc. 1990-01-30.
  6. ^ Yourdon, Ed (23. Juli 2001). „Können XP-Projekte wachsen?“ . Computerworld . Abgerufen am 25. November 2014 .
  7. ^ „AD/Cycle strategy and architecture“, IBM Systems Journal, Vol 29, NO 2, 1990; S. 172.
  8. ^ Software Engineering: Tools, Principles and Techniques von Sangeeta Sabharwal, Umesh Publications
  9. ^ a b Alfonso Fuggetta (Dezember 1993). „Eine Klassifizierung der CASE-Technologie“ . Computer . 26 (12): 25–38 . Bibcode : 1993Compr..26l..25F . doi : 10.1109/2.247645 . S2CID 954775. Archiviert vom Original am 7. Juni 2009. Abgerufen am 14. März 2009 . 
  10. ^ Computergestützte Softwareentwicklung. Archiviert am 20.01.2012 im Internet Archive . In: FFIEC IT Examination Handbook InfoBase . Abgerufen am 3. März 2012.

Weiterführende Literatur

Umfassender Überblick über CASE-Tools: Optimierung der Softwareentwicklung

Merkmale von CASE-Tools

Anwendungsfälle und Einsatzmöglichkeiten von CASE-Tools