Adaptierbare CASE-Werkzeuge in prozeßorientierten Software-Entwicklungsumgebungen

Die Entwicklung von Software-Systemen ist eine komplexe und anspruchsvolle Aufgabe, die bei grosen Systemen meist auf mehrere Entwickler verteilt wird. Software-Entwicklungs-methoden strukturieren die Arbeit der Beteiligten: Sie legen Arbeitsschritte und Produkte fest, die in den einzelnen Schritten erzeugt oder verarbeitet werden. Produkte sind hier verschiedene Arten von Software-Dokumenten. Die Arbeit konzentriert sich auf die fruhen Software-Entwicklungsphasen Analyse und Entwurf, in denen Anforderungen ermittelt und Modelle wichtiger Aspekte des Systems erstellt werden. In diesen Phasen kommen Upper-CASE-Werkzeuge zum Einsatz, mit denen die verschiedenen Arten von Software-Dokumenten bearbeitet, gepruft und in andere Formate transformiert werden konnen. Die Werkzeuge mussen also die im jeweiligen Dokument verwendeten Konzepte (wie Entitatstyp, Klasse, Vererbungsbeziehung) und die zugehorigen Notationen und Darstellungen unterstutzen. Die Anforderungen an CASE-Werkzeuge unterscheiden sich stark, da sie in unterschiedlichen Organisationen, von Personen mit unterschiedlichen Aufgaben und Zielen und zur Entwicklung unterschiedlicher Arten von Systemen eingesetzt werden - zum Teil sind die Anforderungen auch unbekannt, wenn in einem Projekt neue Wege beschritten werden. Eine wichtige Anforderung an die Werkzeuge ist daher, das sie an die jeweilige Einsatzsituation angepast werden konnen. Herkommliche CASE-Werkzeuge erfullen diese Anforderung nur unzureichend. Meta-Umgebungen erleichtern den Bau angepaster Werkzeuge, allerdings konzentrieren sich die meisten bekannten Ansatze auf nur einen bestimmten Aspekt: Den Bau von CASE-Werkzeugen fur einen gegebenen Dokumenttyp oder die Unterstutzung des gegebenen Vorgehens- oder Prozesmodells. In der Arbeit wird ein Ansatz zum Bau von prozesorientierten Software-Entwicklungsumgebungen entwickelt, mit dem CASE-Werkzeuge masgeschneidert und mit dem Software-Entwicklungsprozes integriert werden kAonnen. Die resultierenden Umgebungen nutzen ein Object Management System (OMS) als zentrales Repository. Wichtige Merkmale sind die feingranulare Modellierung der Dokumente und eine Werkzeugarchitektur, mit der die Dienste des OMS zur Implementierung der Werkzeugfunktionen direkt ausgenutzt werden konnen. In der Arbeit wird ein Framework mit Werkzeugkomponenten entwickelt, das zum Bau mehrbenutzerfahiger und verteilt einsetzbarer Werkzeuge verwendet wird. Werkzeuge konnen einfach und schnell aus vorhandenen Komponenten zusammengesetzt und Parameter zur Steuerung dieser Komponenten festgelegt werden. Weiterhin konnen Komponenten erweitert und angepast werden, wodurch eine hohe Flexibilitat bei der Adaptierung von Werkzeugen erreicht wird. Zur Beschreibung des Prozesmodells wird eine einfache Prozesmodellierungssprache vorgeschlagen. Mit Framework-Komponenten kann eine Prozesmaschine zur Steuerung und Uberwachung des Prozesses gebaut und flexibel um prozesspezifische Funktionen erweitert werden. Das Prozesmodell dient hier als Spezifikation fur die Prozesmaschine. Die gebauten CASE-Werkzeuge werden mit dem Prozes integriert, passen sich also an die aktuelle Prozessituation an und ermoglichen es dem Entwickler, den Prozesfortschritt zu beeinflussen. Mit dem Bau von Planungs- und Managementwerkzeugen und ihrer Integration in die Umgebung wird die Flexibilitat des Ansatzes gepruft. Software development is a complex and demanding task, frequently carried out by teams of multiple developers. Software development methods define the steps to be taken and the products to be maintained in order to attain a successful project outcome. Thus, methods outline the structure of a project. In the early phases, upper-CASE tools are used to edit, check, and transform various types of software documents. The requirements for these tools vary considerably, depending on the organization, user role, task, and kind of system to be developed. Consequently, tools have to be adaptable to the actual situation. Traditional CASE tools do not fulfill this demand sufficiently. Meta environments support tool developers in building customized tools. However, known systems are focused on only one aspect: The adaptation to different document types or the adaptation to different process models. The thesis describes an approach for building process-centered software development environments (PSEEs). The resulting environments contain tools which are tailored to the given situation and are integrated with the software development process. An important component of these environments is an Object Management System (OMS). It serves as a central repository for both, software documents and information concerning the current process state. The OMS integrates the various tools with their different views on the common data- base and offers numerous services which are used for implementing tool functions - among them views, access controls, transactions, and distributed notifications. Thereby, the costs for building meta environments and for building their instances, i.e. concrete environments, are reduced. The services mentioned can only be used if data models are fine-grained and if tools implement an OMS-oriented architecture. In the thesis, this architecture has been implemented in a framework. It is used to build distributed multi-user tools. The framework consists of components for building CASE tools and process tools. The configuration of tools depends on the data model of software documents and on additional information. These additional information are codified in tool parameters which are associated to type definitions in the data model. The resulting tool specification is called tool schema. Besides this black-box reuse, tool components can be extended with tool-specific functionality. This white-box reuse requires a more extensive knowledge and offers more flexible means for tool adaptation. For the description of process models we define a simple process modeling language which is used for demonstration purposes only. Based on the framework, a process engine can be built. It controls process performance and can be flexibly extended with process-specific functionality. CASE tools adapt themselves to the current process situation and allow their users to influence process performance. Additionally, tools for planning and managing software processes have been built and have been integrated into the environment to underline the flexibility of the approach.