Diplomarbeit:

Integration neuer Repository- und Steuerungskomponenten in ein CASE-System

Verfasser: Michael Maczan


Zusammenfassung:


CASE (Computer Aided Software Engineering):

Die ingenieurm��ige Entwicklung von Software unter Verwendung von Software-Produktionsumgebungen (SPU). CASE zielt auf die weitgehende Automatisierung des Software- Entwicklungsprozesses ab.
Das Softwareengineering fokussiert auf die Gesamtaufgabe der Software-Entwicklung, zerlegt diese schrittweise in Teilaufgaben und stellt f�r diesen gesamten Software-Lebensweg eine breite Palette spezifischer Methoden und Verfahren bereit. Software-Produktionsumgebungen konzentrieren sich auf die Automatisierung einzelner Teilaufgaben und stellen korrespondierend ein oder mehrere rechnergest�tzte Hilfsmittel (CASE-Werkzeuge, CASE tools) zur Verf�gung.
CASE kombiniert beide Bereiche zu einem abgestimmten System von Methoden, Verfahren und Werkzeugen f�r die Software-Entwicklung einschlie�lich der projektbegleitenden Ma�nahmen des Projekt-, Konfigurations- und Qualit�tsmanagements und ber�cksichtigt dabei insbesondere die spezifischen Anforderungen der Software-Entwickler.
Dabei stellt die Systematisierung der Software-Entwicklung die Grundlage f�r den sinnvollen Einsatz einer Rechnerunterst�tzung dar. Durch das Verzahnen beider Bereiche kann eine bessere Beherrschung der Komplexit�t, eine Steigerung der Software-Qualit�t und eine Verbesserung der Produktivit�t im Software- Entwicklungsprozess erwartet werden.

Bez�glich der Abstimmung von Werkzeugen mit Methoden und Verfahren sind weiterhin Defizite erkennbar: zum Teil werden Methoden und Verfahren durch Werkzeuge unterschiedlich interpretiert. Die Durchg�ngigkeit rechnergest�tzter Methoden und Verfahren �ber alle Phasen eines Entwicklungsprozesses ist vielfach eingeschr�nkt.

PUSH

Das PUSH-System ist ein in mehreren Diplom- und Projektarbeiten entstandenes CASE-System.
Es ist eine Client-Server-Anwendung, die sowohl server- als auch clientseitig mit Java 2 realisiert wurde.
Es existiert ein Prototyp, in dem die wichtigsten Anforderungen umgesetzt worden sind.
Die zentrale Stellung in diesem System nimmt die Steuerungskomponenete ein. Diese stellt f�r die Kommunikation zwischen den Clients Funktionalit�t bereit und kapselt den Zugriff auf die Datenbank und das File-System. Eine andere Aufgabe der Steuerung ist die Bereitstellung der Dienste (Aktivit�ten), die ein User nutzen kann.
Diese Steuerungskomponente wurde im Rahmen einer Diplomarbeit von Sascha Hosse realisiert.
Drei weitere Komponenten geh�ren zum System: Der Entwicklungsgraph Editor dient der Darstellung der sich im PUSH-System befindlichen Daten.
Er besteht haupts�chlich aus einer graphischen Komponente (GUI), die die Schnittstelle des Users zum System bildet.
Ein Benutzer meldet sich am System an und kann mit Hilfe der graphischen Oberfl�che die von ihm ausgew�hlten Daten bearbeiten.
Der Entwicklungsgraph Editor wurde im Rahmen einer Projektarbeit \cite{PAH2000} von Florian Hacklinger realisiert.

Das Repository hat als Aufgabe die persistente Speicherung aller (relevanten) sich im System befindenden Daten.
Das Kernst�ck der Repository ist eine objekt-relationale Datenbank. Das Repository stellt Methoden zur Verf�gung, die von der Steuerung genutzt werden, um Daten des Systems persistent abzulegen und diese wieder auszulesen.
Da PUSH ein multiuser-f�higes System ist, sorgt diese Komponente auch f�r die Realisierung der Lock-Mechanismen f�r Objekte, die von mehreren Benutzern gleichzeitig bearbeitet werden k�nnen.

Die Workflow Engine steuert die Arbeit mit den sich im System befindenden Dokumenten.
Sie wird mit einem vorher erzeugten Workflow gestartet und kennt in jedem Stadium des Entwicklungsprozesses die ausf�hrbaren Aktivit�ten.
Es ist m�glich, das PUSH-System ohne eine Workflow Engine zu betreiben. Dann sind alle Aktivi�ten immer ausf�hrbar.
Diese Komponente ist im Rahmen einer Diplomarbeit von Michael Barth entstanden.

Au�erdem existiert ein Workflowgraph Editor mit dem sich Workflowgraphen erstellen und ver�ndern lassen.
Der Editor ist als ein externes Tool an das PUSH-System angebunden.
Diese Komponente ist das Ergebnis einer weiteren Projektarbeit und wurde von J�rgen Klaunzler realisiert.
F�r die Entwicklung des PUSH-Systems lag nur eine objektorientierte Analyse vor.
Eine ausgepr�gte Design-Phase hat keine gro�e Rolle gespielt, da es sich um die Realisierung eines ersten Prototypen gehandelt hat. Allein die Anforderungen an das System und nicht Merkmale wie Performance , Kommunikation zwischen den Komponenten oder die Wahl einer geeigneten Technologie f�r die �bermittlung der Nachrichten waren entscheidend.

Somit ergeben sich f�r diese Diplomarbeit folgende Ziele, die man in zwei Kategorien einteilen kann:

Spezielle Ziele, die f�r das PUSH-System von Bedeutung sind.
Da die Analyse weitgehend ausgearbeitet ist, werden hier nur Korrekturen dieser Ergebnisse vorgenommen.
Der Schwerpunkt liegt auf der Ausarbeitung eines Designs und einer effizienten Implementierung.

Die allgemeinen Ziele sind:

Die speziellen Ziele dieser Arbeit lauten: