Realisierung eines OMG-konformen Tradingdienstes

Zielstellung:

In verteilten Anwendungen bzw. Informationssystemen besteht die Notwendigkeit, Objekte zur Laufzeit des Systems zu entdecken bzw. das Vorhandensein von bestimmten Objekten zu propagieren. Dies erfordert neben einem Namensdienst einen weiteren Dienst, der die Funktionalität von gelben Seiten für Objekte im verteilten System realisiert. Mit der Spezifikation des Tradingdienstes (Trading Object Service) durch die OMG ist für CORBA-Umgebungen die Schnittstelle eines derartigen Dienstes beschrieben.
Ziel des Großen Beleges ist es, eine Implementierung eines einfachen Tradingdienstes vorzunehmen. Mittels einer anschaulichen Beispielanwendung ist die Funktionstüchtigkeit der Implementierung anhand typischer Anwendungsszenarien eines Tradingdienstes zu demonstrieren.
Den Anwendungsbereich für die Beispielanwendung sollten Dienste für Telekommunikations- und Datennetze bilden. Denkbare beispielhaft zu realisierende Dienste sind z.B.: Verzeichnisdienste, Universelle Adressen, Mobilitätssupport und andere.
Dazu sind folgende Teilaufgaben zu lösen:


Untersuchung zur Entwicklung eines UML/OCL- CASE-Tools

Zielstellung:

Im Großen Beleg ist zu untersuchen, wie ein experimentelles Werkzeug zur Unterstützung der UML einschließlich der Constraintsprache OCL erstellt werden kann. Es ist zu versuchen, diese Aufgabe im Rahmen der internationalen Entwicklungskooperation Argo/UML zu lösen.
Dazu sind folgende Teilaufgaben zu lösen:

In der Entwicklungsphase ist eine gute Zusammenarbeit mit dem Bearbeiter des Themas "Java-Implementierung der OCL-Basisbibliothek" anzustreben. Eine Beteiligung an der internationalen Arbeitsgruppe zu dem OpenSource-Projekt "Argo/UML" ist wünschenswert.


Java-Implementierung der OCL-Basisbibliothek

Zielstellung:

Der UML-Standard umfaßt eine sogenannte Object Constraint Language (OCL), die zur präzisen Definition von semantischen Bedingungen über Klassenmodellen verwendet wird, z.B. Invarianten, Vor- und Nachbedingungen von Operationen. Die OCL wird in der Semantikdefinition der UML verwendet, um auf der Basis des Metamodells Randbedingungen für die Diagramme von UML-Modellen zu beschreiben. Die Sprache kann aber auch zur Anreicherung konkreter Systemmodelle mit formal definierten Randbedingungen verwendet werden. OCL basiert auf sogenannten Navigationsausdrücken und umfaßt zwei deutlich getrennte Teile: eine umfangreiche Basisbibliothek, die u.a. Kollektionen, Mengen, Bags und Sequenzen beinhaltet, sowie Sprachelemente, die auf die sogennanten Properties (z.B. Attribute, Assoziationsteilnahme) von Objekten zugreifen. Die Semantik der Sprachelemente von OCL soll in Java realisiert werden. Das bedeutet, daß für jedes OCL-Sprachelement ein Java-Methodenaufruf vorgesehen wird und daß jeder OCL-Ausdruck einfach als Java-Ausdruck über diesen Methoden darstellbar und auswertbar wird. Die Syntaxanalyse der konkreten OCL-Syntax wird in dieser Aufgabenstellung ausgeklammert.
Es sind folgende Teilaufgaben zu lösen:

Die Arbeit sollte in enger Abstimmung mit dem Studenten Sven Obermaier erfolgen, der im Rahmen des Großen Belegs eine Integration eines vorhandenen OCL-Parsers in das CASE-Tool Argo/UML durchführt. Eine Beteiligung an der internationalen Arbeitsgruppe zu dem OpenSource-Projekt "Argo/UML" ist wünschenswert.


Realisierungsstudie für ein verteiltes Informationssystem mit WWW-basiertem Zugriff

Zielstellung:

Die Diplomarbeit wird in Zusammenarbeit mit der Siemens AG München, Bereich Informations- und Kommunikationsnetze, durchgeführt. Arbeitsort für die Erstellung der Diplomarbeit ist Dresden und München.
Es ist eine Studie zu erstellen, wie sich die Anforderungen des Industriepartners an ein verteiltes Informationssystem mit am Markt verfügbaren Produkten moderner objektorientierter Technologie realisieren lassen. Die dabei zu betrachtenden Produkte umfassen Middleware zur Objektkommunikation (CORBA) sowie objektorientierte Datenbanken. Gegebenenfalls sind weitere Dienste zu betrachten, wie z.B. Dienste für verteilte Transaktionen.
Anwendungsgebiet ist die Ermittlung von Konfigurationen für vermittlungstechnische Geräte aus den Informationsbeständen weiträumig (evtl. weltweit) verteilter heterogener Datenbanken durch eine Anwendung (Produktkonfigurator), die über herkömmliche Web-Browser im Internet bzw. Intranet zugänglich ist.
Ziel der Diplomarbeit ist es, die Verwendbarkeit, Kompatibilität und Praxistauglichkeit moderner Softwaretechnologien zu beurteilen. Zu diesem Zweck ist ein kleiner Prototyp der Anwendung mit stark eingeschränktem Funktionsumfang (möglicherweise in verschiedenen Varianten) zu erstellen. In der Ausarbeitung sollen ein Vorschlag für ein Vorgehensmodell, eine Produktempfehlung sowie eine Architektur des Systems beschrieben werden, um eine spätere Entwicklung des Informationssystems mit vollem Funktionsumfang zu erleichtern.
Dabei sind folgende Teilaufgaben zu lösen:


Persistente Objekte in Visual Age für Java

Zielstellung:

Bei der Erstellung von Anwendungssystemen mittels objektorientierter Sprachen, wie z.B. Java, ist die dauerhafte Speicherung (Persistenz) von Objektzuständen von zentraler Bedeutung. Mit dem spracheigenen Mechanismus der Objektserialisierung bietet Java eine einfache Möglichkeit, Persistenz von Objekten zu realisieren. Dieser Mechanismus eignet sich recht gut für die Speicherung einzelner unabhängiger Objekte bzw. Objektbäume beim Programmieren im Kleinen. Für die Speicherung vieler, miteinander interagierender Objekte in größeren Anwendungssystemen scheint dieser Mechanismus allerdings nicht geeignet. Vielfach besteht auch die Anforderung, die Speicherung der Objekte in bestimmten Datenspeichertypen, z.B. relationalen DBS, zu realisieren.
Hier liegen die Grenzen der Objektserialisierung. Ziel des Großen Beleges ist es deshalb, den Persistence Builder-Mechanismus (Toolset für die Erstellung von Enterprise JavaBeans und die Zuordnung dieser Beans zu Datenbanken) der VisualAge für Java (Enterprise Edition) - Umgebung bezüglich der Verwendbarkeit für die Realisierung der Persistenz von Objekten in größeren Anwendungssystemen zu untersuchen und zu bewerten.
Die Bewertung ist anhand einer Beispielimplementierung vorzunehmen. Den Anwendungsbereich für die Beispielimplementierung sollte dabei ein Terminverwaltungssystem bilden. Grundzüge dieses Systems können der Vorlesung "Softwaretechnologie I" entnommen werden.
Es sind folgende Teilaufgaben zu lösen:


Evaluation of Database Design and Reverse Engineering Tools for a Large Software System

Zielstellung:

Relational databases are commonly used for large commercial applications because of their powerful capabilities and the matured and wellunderstood relational technology.
The design and maintenance of a relational database is embedded in the software development process of different applications that share the same data. For high productivity it is necessary to use CASE tools supporting design, maintenance and specification of applications as well as databases. The problem with often used tools is that they are supporting well the forward engineering process, but maintenance and reverse engineering functionality is still immature. In view of the experience that an estimated 80 percent of the software cost are spent on enhancing and maintaining existing software, we have an unsatisfactory situation. One of the important requirements is that tools ensure consistency between specification and code resp. database schema during the lifetime of software systems.
For improvement of the existing software development process at Pre Press it is essential to understand the capabilities and methodological approaches of available tools. This is meant as a first step towards follow-up work which may aim at specific enhancements or additions to the existing tools.Therefore, several commercial CASE tools should be evaluated in the following steps:


Entwurfsmuster für objektrelationale Datenbank- Anwendungen

Zielstellung:

Finden von Entwurfsmustern zur Einbindung relationaler Datenbanken in objektorientierte Anwendungen.
Aufbauend auf vorhandenen experimentellen Erfahrungen zur Abbildung von Objektmodellen auf relationale Datenbanken und der Erprobung des Object Builders Persistence sollen folgende Teilaufgaben gelöst werden:


Persistente Objekte und verteilte Transaktionen

Zielstellung:

CORBA-Architekturen, Persistenz von Objekten und verteilte Transaktionen sind, zumindest im einzelnen, theoretisch gut verstandene Konzepte bzw. Techniken.
In der praktischen Anwendung wird die Frage aufgeworfen, wie diese zukunftsweisenden Softwaretechniken zusammenspielen und welche Anforderungen an Funktionalität und Architektur von Softwaresystemen zur Verwaltung verteilter persistenter Geschäftsobjekte existieren.
Ziel der Diplomarbeit ist es, eine Grundlage zur Bewertung von Systemen zu schaffen, die verteilte Objekte, Persistenz und verteilte Transaktionen integrieren. Die Bewertungskriterien sind aus konkreten Workflow-Anwendungen abzuleiten und anhand einer Prototypimplementierung zu demonstrieren.
Dabei sind folgende Teilaufgaben zu lösen:


Untersuchungen zur Implementierung der ODMG- 2.0-Schnittstelle für Java-Objekte auf Basis einer relationalen Datenbank

Zielstellung:

Die Anwendungsprogrammierschnittstelle von Java unterstützte zunächst nur die Ein- und Ausgabe elementarer Datentypen (JDK 1.0). In vielen objektorientierten Programmumgebungen ist es jedoch wichtig, auch über Ein- und Ausgabefunktionen für Objekte zu verfügen. Die Persistenz eines Objektes bezeichnet die Eigenschaft, das Objekt einschließlich aller vom Objekt direkt und indirekt erreichbaren anderen Objekte zu speichern und sie damit über die Lebenszeit eines Programms hinaus zu erhalten. Mit JDK 1.1. werden erste Konzepte für die Verwaltung persistenter Objekte bereitgestellt (OSS-Klassen für die Konvertierung von Objekten in eine serielle Bytestrom-Darstellung, java.sql für die Anbindung einer offen gelegten relationalen Datenbank). Der nächste Schritt ist das Ablegen der Objekte selbst in eine Datenbank. Dazu bietet sich die Implementierung der von der ODMG vorgeschlagenen Schnittstelle ODMG-2.0/Java-Binding an. Das muß nicht zwangsweise auf Basis einer objektorientierten Datenbank erfolgen. Aufgrund der Reife und weiten Verbreitung der relationalen Technologie sollte dies transparent ebenso mit einer relationalen Datenbank möglich sein. Die Diplomarbeit soll Techniken zur Implementierung einer ODMG-2.0-Schnittstelle auf Basis einer relationalen Datenbank untersuchen.
Dazu sind folgende Teilaufgaben zu lösen:


Untersuchungen zur Abbildung von OCL-Ausdrücken auf SQL

Zielstellung:

Die Object Constraint Language (OCL), seit September 1997 Bestandteil der Unified Modeling Language (Version 1.1), stellt Sprachkonstrukte zur formalen Beschreibung von Bedingungen in objektorientierten Modellen bereit. In dieser Arbeit soll die Verwendung von OCL-Ausdrücken zur Spezifikation von Integritätsbedingungen über persistenten Objekten in Klassenmodellen betrachtet werden. Unter der Annahme, daß persistente Klassen auf der Basis einer relationalen Datenbank implementiert werden, ist die Abbildung von OCL-Ausdrücken auf SQL theoretisch und experimentell zu untersuchen. Dabei sind insbesondere die fortgeschrittenen Möglichkeiten zur Integritätssicherung zu berücksichtigen, die in SQL-92 und SQL3 (Trigger, rekursive Anfragen, Stored Procedures) festgeschrieben sind.
Es sind folgende Teilaufgaben zu lösen:

[pdf]

Reverse Engineering von Cobol- Datenbank-Anwendungen

Zielstellung:

Das Thema ist in das Forschungsgebiet "Migration von Datenbanken und Datenbankanwendungen" eingeordnet, welches die Entwicklung von Softwaretechniken einschließlich adäquater Werkzeuge zur Unterstützung des schrittweisen Übergangs von der relationalen zur objektorientierten Technologie zum Inhalt hat. In Zusammenarbeit mit dem Softwarehaus sd&m und aufbauend auf den bisherigen Arbeiten am Lehrstuhl in diesem Gebiet sind Techniken und Werkzeuge zum Reverse Engineering (Redokumentation und Design Recovery) von Cobol-Programmen mit eingebettetem SQL am Beispiel einer Legacy-Cobol-Datenbankanwendung zu untersuchen. Ziel der Arbeit ist die Entwicklung einer Technik, die unter Anwendung eines geeigneten Werkzeuges eine nachfolgende Migration der Legacy-Anwendung in ein objektorientiertes System unterstützt.
Dazu sind folgende Teilaufgaben zu lösen:


Methode und Prototyp für das Reverse Engineering von PL/SQL-Datenbankanwendungen.

Zielstellung:

Die Datenbank-Programmiersprache PL/SQL der Oracle Corporation ist seit fast 10 Jahren weltweit im Einsatz. Erweiterte Nutzerforderungen und der Übergang zu objektorientierten Technologien auf der Grundlage von Java erfordern einen Neuentwurf. Zur Reduzierung des dafür erforderlichen Aufwandes an Zeit, Ressourcen und Kosten ist es sinnvoll, geeignete Methoden und rechnergestützte Verfahren zum Reengineering von PL/SQL-Anwendungen zu entwickeln. Die Diplomarbeit soll dazu einen Beitrag leisten, indem zunächst das Reverse Engineering von PL/SQL-Moduln mit dem Ziel einer objektorientierten Restrukturierung untersucht wird. Dazu ist eine Methode zu entwickeln und diese als Prototyp für ein entsprechendes Tool zu realisieren.


Einsatz von Java Beans in einem Anwendungsframework

Zielstellung:

Für ein Reengineering des Praktikumsframeworks SalesPoint ist der Einsatz von Java Beans zu untersuchen und prototypisch zu implementieren.


Entwicklung eines Frameworks für die Codegenerierung am Beispiel von SQL

Zielstellung:

Die Diplomarbeit hat das Ziel, die Generierung von SQL-Skripten aus UML-Modellen prototypisch zu implementieren. Dazu ist ein Framework zu entwickeln, das die Generierung beliebigen Codes auf der Basis von Metamodellen effektiv unterstützt.


Entwurf und Implementation eines modularen OCL-Compilers

Zielstellung:

Der UML-Standard umfaßt eine sogenannte Object Constraint Language (OCL), die zur präzisen Definition von semantischen Bedingungen über Objektmodellen verwendet wird (Invarianten, Vor- und Nachbedingungen von Operationen). Aufbauend auf dem Ergebnis des Großen Beleges, d.h. der OCL-Basisbibliothek, die die vordefinierten OCL-Typen implementiert, soll ein Baukastensystem für einen OCL-Compiler entworfen, implementiert und dokumentiert werden. Dabei ist hoher Wert auf Wiederverwendbarkeit der einzelnen Bausteine, eine weitgehende Konformität zum aktuellen OMG-Standard(entwurf) und die Erweiterbarkeit für unterschiedliche Zielsprachen zu legen. Aktuelle Entwicklungen und parallel laufende Arbeiten sind zu beachten. Sofern möglich, ist auch eine Wiederverwendung von Entwicklungsergebnissen anderer Forschungsgruppen (z.B. Parser-Entwicklungen) wünschenswert.


XMI für prozedurale Programmstrukturen und Transformation in UML

Zielstellung:

Im Bereich des Reverse und Reengineerings von Altanwendungen wird gegenwärtig immer häufiger der Ruf nach Migration oder Wrapping dieser Anwendungen in objektorientierte Architekturen laut. Die Schwierigkeit dabei besteht nicht nur im Paradigmenwechsel, sondern auch im (dem Rengineering inherenten) Problem des Zusammenfügens unterschiedlichster Informationen aus Programmen (möglicherweise in verschiedenen Sprachen), Datenbank(en, schemas) und weiteren Software-Artifakten. Um dieses "Puzzle" an Informationen in generischen Reengineering-Umgebungen verarbeiten zu können, erscheint die Verwendung eines allgemein akzeptierten Austauschformates für Metainformationen sinnvoll. Der gegenwärtige vielversprechende Standardisierungsprozeß von XMI (XML Metadata Interchange) als Anwendung von XML liefert eine Technik zur Generierung von DTDs (Document Type Definitions) als Repräsentation von Metamodellen (z.B. UML, MOF). Die Idee für das objektorientierte Reengineering von prozeduralen Altanwendungen ist, ein weitgehend allgemeingültiges Metamodell für prozedurale Programmiersprachen zu entwerfen und daraus auf Basis von XMI ein DTD zu generieren. Dieses DTD kann für konkrete Reengineering-Aufgaben um weitere Metainformationen angereichert werden. Die Verarbeitung, Manipulation bzw. Transformation dieses "prozeduralen" DTDs und seiner Instanzen in Form von XML-Dateien (Beschreibung von konkreten Programmen) kann mit DTD2J bzw. Dresden UML Toolset (DUT) erfolgen. So ist es z. B. möglich, mit Hilfe von Transformationsalgorithmen auf dem Java-Metadatenmodell von DUT ein UML-Modell für die Altanwendung zu erzeugen.
Dazu sind folgende Teilaufgaben zu lösen:


Enterprise JavaBeans und JavaBeans

Zielstellung:

In unterschiedlichen Literaturquellen wird die Enterprise JavaBeans (EJB)-Technologie als Erweiterung der JavaBeans-Technologie beschrieben. Das entspricht nicht den Tatsachen. Die Spezifikationen der Firma Sun für JavaBeans und Enterprise JavaBeans beschreiben disjunkte Technologien. Als sinnvoll erscheint jedoch eine (möglicherweise von Sun gewollte) Vereinigung beider Technologien.
Ziel der Arbeit ist es, das Verhältnis der Technologien EJB und JavaBeans aufzuarbeiten. Dabei sollen Chancen sowie Vor- und Nachteile der Vereinigung beider Technologien aufgezeigt werden. Die getroffenen Aussagen sind an Beispielen zu veranschaulichen. Der praktische Teil der Arbeit baut auf folgenden Referenzimplementierungen der Firma Sun auf:

Dabei ist es das Ziel des praktischen Teils der Diplomarbeit, eine Plattform aufzubauen, die der Vorführung und Schulung von EJBs auf der Basis von JavaBeans (entsprechend dem Ergebnis der Vorstudie) dient. Gegebenenfalls sind dazu die Tools der Referenzimplementierung zu erweitern, z.B. die Erweiterung der beanbox zu einer EJB-beanbox.
Es sind folgende Teilaufgaben zu lösen:

Der Punkt 4 der Teilaufgaben ist bei der Durchführung der Diplomarbeit mit dem Betreuer abzustimmen.


Realisierungsstudie für das MetaBase-Modul auf Basis der EJB-Technologie

Zielstellung:

Der Große Beleg wird in Zusammenarbeit mit der Se@rchBroker AG Dresden durchgeführt. Arbeitsorte für die Erstellung des Großen Beleges sind die TUD und die Se@rchBroker AG.
Ziel der Arbeit ist es, den aktuellen Stand der SUN Enterprise JavaBeans (EJB)-Technologie aufzuarbeiten sowie Vor- und Nachteile dieser Technologie in der praktischen Anwendung aufzuzeigen. Weiterhin soll die Einbettung der EJB-Technologie in die Java2 Enterprise Umgebung bewertet werden. Vertiefend soll dies für die Technologie der JavaServer Pages (JSP) erfolgen.
Basierend auf dem von der Se@rchBroker AG vorgegebenen Anwendungsbereich ist eine Technologieuntersuchung durchzuführen, wie die Spezifikation für das MetaBase-Modul mittels EJB unter Verwendung der SUN-Referenz-Umgebung (Java2 Enterprise Edition) zu implementieren ist.
Dabei sind folgende Teilaufgaben zu lösen:


Prototypische Untersuchungen zur Implementierung eines OCL-to-SQL-Compilers

Zielstellung:

Aufbauend auf bisherigen Projekten des Lehrstuhles soll ein OCL-Compiler entwickelt werden, der für OCL-Invarianten SQL-Constraints generiert und in ein zugehöriges relationales Datenbankschema einfügt (Arbeitsname "OCL2SQL-Compiler"). Dieser OCL-zu-SQL-Transformation liegt zum einen die verwendete objektrelationale Abbildung (Abbildung des objektorientierten auf ein relationales Datenmodell) und zum anderen die Abbildung der Integritätsbedingungen zugrunde. Teilweise ist die Abbildung der Integritätsbedingungen von der objektrelationalen Abbildung abhängig. Die Abbildung der OCL-Integritätsbedingungen auf SQL wird durch Muster--kata-loge beschrieben. Verschiedene solche Kataloge wurden in Vorarbeiten entwickelt, u.a. in dem UML'99-Artikel Demuth/Hußmann.

Die Implementierung des OCL2SQL-Compilers soll zunächst die für die Praxis relevante Klasse-zu-Tabelle-Abbildung berücksichtigen. Die Realisierung der Klasse-zu-Tabelle-Abbildung selbst ist nicht Gegenstand der Arbeit. Dabei ist aber eine Schnittstelle für die Verwendung anderer Abbildungen zu definieren und diese möglichst klein zu halten. Der Compiler ist weitgehend portabel zu halten, d.h. es sind möglichst SQL92- standardkonforme Integritätsbedingungen zu generieren. Um die Anwendbarkeit des OCL2SQL-Compilers demonstrieren zu können, soll der erzeugte Code auf Basis von Oracle 8i lauffähig sein.


Entwurf und Implementierung einer Methode für das Reverse Engineering von PL/SQL-Datenbankanwendungen

Zielstellung:

Die Datenbank-Programmiersprache PL/SQL der Oracle Corporation ist seit fast 10 Jahren weltweit im Einsatz. Erweiterte Nutzerforderungen und der Übergang zu objektorientierten Technologien auf der Grundlage von Java erfordern einen Neuentwurf. Zur Reduzierung des dafür erforderlichen Aufwandes an Zeit, Ressourcen und Kosten ist es sinnvoll, geeignete Methoden und rechnergestützte Verfahren zum Reengineering von PL/SQL-Anwendungen zu entwickeln. Die Diplomarbeit soll dazu einen Beitrag leisten, indem zunächst das Reverse Engineering von PL/SQL-Moduln mit dem Ziel einer objektorientierten Restrukturierung untersucht wird. Dazu ist eine Methode zu entwickeln und als Erweiterung eines vorhanden Tool-Prototypen zu realisieren. Die Arbeiten sind aufbauend auf einer vorliegenden Diplomarbeit zu einem Tool-Prototyp Plstruct, der einen PL/SQL-Parser, -Editor und ein Repository beinhaltet sowie einer weiteren Diplomarbeit zu einem PL/SQL-zu-Java-Converter auszuführen.

Der analysierte PL/SQL-Code ist dann die Basis für die angestrebte objektorientierte Restrukturierung. In Fortsetzung zu der vorliegenden Arbeit ist weiter und tiefer gehend zu prüfen, welche der in der Literatur beschriebenen Methoden der objektorientierten Restrukturierung für PL/SQL geeignet erscheinen. Eine Methode ist auszuwählen bzw. an die Spezifik von PL/SQL anzupassen und prototypisch in einer Plstruct-Erweiterung zu implementieren.


Einsatz von UML-Werkzeugen beim Extreme Programming

Zielstellung:

Das sogenannte "Extreme Programming" nach Kent Beck ist ein moderner Ansatz zur Softwareentwicklung, der die Ideen des inkrementellen Prototyping und der laufenden Qualitätssicherung mit größter Konsequenz anwendet. Beim Industriepartner Net-Linx liegen umfangreiche praktische Erfahrungen mit der Entwicklung prototypischer Java-Software nach diesem Verfahren vor. Leider hat die verwendete Methodik auch zur Folge, dass kaum Dokumentation in Form abstrakterer Darstellungen des Codes vorliegt.

Ziel der Arbeit ist es, den möglichen Einsatz der Unfied Modelling Language (UML) im Kontext von Extreme-Programming-Projekten zu untersuchen. Ein denkbares Einsatzfeld für UML ist die abstrakte Visualierung von Programmstrukturen und Architekturen, was bei der im Extreme Programming betonten Refaktorisierung von Programmen nützlich sein kann. Es ist offensichtlich, daß hierzu fortgeschrittene Werkzeuge mit guter Unterstützung des "Round-Trip-Engineering" nötig sind. In den Untersuchungen soll deshalb vom Einsatz des Werkzeugs "Together" ausgegangen werden.

Im einzelnen sind folgende Aufgaben zu lösen:

Methodisch sind neben Experimenten mit dem vorliegenden Java-Code und dem Werkzeug auch Befragungen von Entwicklern und anderen Personen (evtl. Fragebogenaktion, Interviews) einzusetzen. Auch die Begleitung kleinerer Weiterentwicklungsprojekte bei Net-Linx im Stil des Extreme Programming sind denkbar.


Werkzeugunterstützung für die Überprüfung der Einhaltung von OCL-Geschäftsregeln in Java-Programmen

Zielstellung:

Am Lehrstuhl Softwaretechnologie steht ein Compiler für die Spezifikationssprache OCL (Object Constraint Language) der OMG in Java-Code zur Verfügung (Diplomarbeit Finger). Ziel der Diplomarbeit sind erste Schritte dazu, die praktische Eignung dieses Compilers für die Qualitätsverbesserung von Java-Programmen zu untersuchen. Anwendungsfall ist die Überprüfung bereits existierender Java-Programme daraufhin, ob in OCL spezifizierte Geschäftsregeln zur Systemlaufzeit eingehalten werden. Der Schwerpunkt der Arbeit liegt auf der Bereitstellung eines geeigneten Werkzeugs für solche Untersuchungen. Daneben sind praktische Experimente mit vom Industriepartner vorgegebenem Java-Code durchzuführen.


Vergleich und Bewertung von Frameworks aus der Sicht des Softwarentwicklers

Zielstellung:

Einarbeitung in die zwei Frameworks San Francisco (IBM) und SalesPoint (TUDresden/Uni Bundeswehr München)
Untersuchungen zu einem möglichen Entwurf der gegebenen Beispiel-Verkaufsanwendung FAST-FOOD-RESTAURANT (siehe
http://www2.informatik.unibw-muenchen.de/Lectures/SalesPoint/tutorial/german/index.html) auf Basis des Frameworks San Francisco
einschließlich von ausgewählten Implementierungsexperimenten
Erarbeitung wichtiger Kriterien für den Vergleich und die Auswahl von Anwendungsframeworks aus der Sicht des Softwareentwicklers
Vergleich und Bewertung der Frameworks SalesPoint 2.0 und IBM San Francisco anhand des aufgestellten Kriterienkataloges.
Die vergleichenden Aussagen zu den beiden Frameworks sollen mit aussagekräftigen und möglichst kleinen Beispielcode- und -entwurfsfragmenten illustriert werden.


Mobile Agenten für ein Netzwerkadministrations-System

Zielstellung:

Mobile Agenten gewinnen überall dort an Bedeutung, wo umfangreiche Informationen an mehreren, in einem Netzwerk verteilten Quellen anfallen und wo Verwaltungsaufgaben an Netzknoten vor Ort vorgenommen werden können. Dies trifft unter anderem für das experimentelle ELISA-Netzwerk zu, in dem sog. Edge Devices statistische Informationen über die aktuelle Netzwerkkonfiguration und die Auslastung der Netzwerkverbindungen bereitstellen und Änderungen an der jeweiligen Konfiguration in beschränktem Umfang zulassen.

Ziel des Großen Beleges ist es, mobile Agenten zu realisieren, die im ELISA-Netzwerk Administrationsaufgaben selbstständig übernehmen. Dazu sollen sie die vorhanden Schnittstellen des Edge Devices bzw. dessen Service Managements benutzen. Sie sollen in der Lage sein, eine eigenständige Bewertung statistischer Informationen vorzunehmen und anhand dessen eine Entscheidung über notwendige Konfigurationsänderungen zu treffen bzw. diese Änderung selbst vorzunehmen. Die Ergebnisse der Agententätigkeit sollten dokumentiert werden, und der Netzwerkoperator sollte in geeigneter Weise informiert werden.


UML im objektorientierten Reverse Engineering strukturierter DB-Anwendungen

Zielstellung:

In der Praxis existieren bzw. entstehen immer noch Anwendungen, insbesondere Datenbankanwendungen , die mittels strukturierter Methoden entwickelt wurden bzw. werden. Aufgrund der stärker werdenden Forderung nach objektorientierten Technologien ist häufig ein Reverse Engineering dieser Anwendungen wünschenswert. Dabei liegt es nahe, das in erstellten Analyse- und Entwurfsdokumenten vorhandene Wissen zu nutzen und in die objektorientierte Welt zu überführen. Ziel ist es, den aktuellen Stand des Vorgehens zur Transformation von Modellen der strukturierten Methoden in die UML zu erarbeiten. Dabei ist festzustellen, ob bereits Werkzeuge zur Unterstützung der Überführung vorhanden sind. Anhand eines realen Projektes soll die Transformation von Entity-Relationship- und funktionalen Modellen durchgeführt werden.


Darstellung von Straßennetzen im Internet mit SVG

Zielstellung:

Zur Darstellung und Manipulation von Straßennetzen im Internet ist zu untersuchen, inwieweit sich das XML-basierte Datenformat SVG (Scalable
Vector Graphics) nutzen lässt, einschließlich des Nachweises der praktischen Machbarkeit. Weiterhin soll die Speicherung und Abfrage von geographischen
Informationen in einer XML-Datenbank untersucht werden.


Muster bei der Kombination von Objektdiensten mit Anwendungssystemen

Zielstellung:

CORBA Objektdienste sind komplexe Dienste, die auf Schnittstellenebene beschrieben sind. Dies stellt Anwendungsentwickler, die diese Dienste nutzen möchten, vor das Problem, sich mit der gesamten Komplexität des Dienstes auseinandersetzen zu müssen. Betrachtet man die Art und Weise, wie typische Dienste mit Anwendungen verknüpft werden, läßt dies vermuten, daß hierbei immer wiederkehrende Muster (Verknüpfungs-Muster) auftreten. Eine Identifizierung derartiger Muster und deren Zuordnung zu Objektdiensten kann eine Grundlage bilden, um die Arbeit mit diesen Diensten sowohl auf der Ebene der Implementierung als auch der Modellierungsebene (insbesondere in der Entwurfsphase) zu vereinfachen. Das Ziel des Großen Beleges ist es, anhand einer zu erstellenden Beispielanwendung die Verknüpfung der Anwendung mit Objektdiensten auf Muster hin zu untersuchen. Dabei soll die Untersuchung auf dem Vorschlag aus [1] aufsetzen, und die dort vorgeschlagenen Grundmuster "Vererbung", "Delegation" und "Verwendung" am Beispiel überprüfen und gegebenenfalls die Muster erweitern. Werden neue Muster gefunden, sind diese in geeigneter Art und Weise zu dokumentieren. Als Beispielanwendung dient die Realisierung einer Einwahlsoftware für mehrere Klienten in einem LAN. Bei der Erstellung dieser Anwendung soll konsequent auf vorhandene Objektdienste (z.B. den PrismTech OpenFusion-Diensten und den Transaktionsdienst von Inprise) zurückgegriffen werden. Die Einwahlsoftware soll dabei die folgende Funktionalität umfassen:

Im Großen Beleg sind folgende Teilaufgaben zu lösen:

Das Ergebnis zu Punkt 1 der Teilaufgaben ist bis spätestens Ende Januar mit dem Betreuer abzustimmen.


Fallstudie - SOAP als Integrationstechnologie für verteilte Middlewarearchitekturen

Zielstellung:

Der Große Beleg wird in Zusammenarbeit mit der itemic AG i.G. Dresden durchgeführt. Arbeitsorte für die Erstellung des Großen Beleges sind die TUD und die itemic AG.

Die itemic AG i.G. entwickelt eine JAVA-basierte Plattform zur Integration von Softwarekomponenten, die der Aufnahme, Analyse und Darstellung von Meß- bzw. Statistikdaten aus der Halbleiterherstellung dienen. Der Plattform liegt eine Multi-Tier-Server Architektur zugrunde, die einzelnen Komponenten kommunizieren hierbei mittels CORBA.

Innerhalb dieser Plattform sollen bereits beim Kunden vorhandene Softwaremodule möglichst einfach integriert werden können. Da diese oftmals als Visual Basic Module vorliegen, ist hier eine Brücke zwischen CORBA und (D)COM zu schlagen.

Ziel der Arbeit ist es, zu untersuchen, in wie weit das Simple Object Access Protocol (SOAP) Einsatz finden kann.

Konkrete Arbeiten erfolgen dabei mit dem XML-CORBA Link der Firma Rogue Wave Software (oder einer vergleichbaren SOAP-Implementierung). Die Ergebnisse sollen aktuellen Entwicklungen bei der OMG sowie den CORBA-COM-Bridges gegenübergestellt werden.

Die Untersuchungen sollen anhand eines einfachen Nutzermanagements erfolgen, welches Anwendern - und Softwaremodulen gleichermaßen - Zugriff auf Funktionalitäten von anderen Softwaremodulen gewähren bzw. verweigern soll. Dabei sollte der zu entwickelnde Prototyp des Nutzermanagements einem VB-Modul zur Visualisierung von Meßdaten ermöglichen, auf die Serverdaten zuzugreifen und eventuell Statistiken zu speichern. Hierzu sollten dem Nutzermanagement die vom Server zu vergebenen Rechte bekannt gegeben werden, so daß das VB-Modul bzw. dessen Anwender diesen nutzen kann.

Es sind folgende Teilaufgaben zu lösen:


Untersuchung der Modellierung von Variabilität in UML

Zielstellung:

Die UML ist für die iterative/inkrementelle Entwicklung von Softwaresystemen sehr gut geeignet. Die vorhandenen Modellelemente eignen sich jedoch derzeit nur zur Modellierung eines konkreten Produktes.

In den letzten Jahren wurde das Konzept der merkmals-orientierten Domänenmodellierung (feature-oriented doman analysis, FODA) in verschiedenen Ansätzen für spezifische Anwendungsgebiete weiterentwickelt (FODAcom, FeatuRSEB) und mit der Wiederverwendung von Software (wie z.B. RSEB und anderen) kombiniert. Teilweise wurden dabei verschiedene Darstellungsvarianten in UML entwickelt, die jedoch nur ausgewählte Problembereiche abdecken.

Ziel dieser Arbeit ist es, die UML auf Möglichkeiten zur Modellierung von Variabilität aus der Sicht der Produktlinien-orientierten Softwareentwicklung hin zu untersuchen. Dazu soll betrachtet werden, wie man in UML Varianten modellieren könnte beziehungsweise welche Erweiterungen dazu notwendig sind. Die Untersuchung möglicher Erweiterungen soll auf die Standard-Erweiterungsmechanismen der UML beschränkt werden.

Die Diplomarbeit wird in Zusammenarbeit mit der Intershop Software Entwicklungs GmbH durchgeführt. Arbeitsorte für die Erstellung der Diplomarbeit sind die TU Dresden und Intershop Jena. Es sind folgende Teilaufgaben zu lösen:

[pdf]

UML/OCL für die Integritätssicherung in Datenbankanwendungen

Zielstellung:

Die Unified Modelling Language (UML) liefert mächtige Konzepte für die objektorientierte Modellierung persistenter Daten einschließlich der
Formulierung von Integritätsbedingungen mit Hilfe der Object Constraint Language (OCL). Berücksichtigt man den gegenwärtigen Stand der Technik, so ist die Implementierung persistenter Objekte in relationalen Datenbanken mit Hilfe der Sprache SQL in vielen realen Anwendungen eine gute Wahl.

Erste Forschungsarbeiten in diesem Bereich haben die grundsätzliche Technologie entwickelt, aus UML-Modellen/OCL-Constraints relationale
Datenbankschemas angereichert um SQL-Constraints automatisch zu erzeugen. Das Problem der Anwendung dieser Technologie liegt in Beschränkungen
der Ausführung von SQL-Constraints gängiger Datenbank-Management-Systeme. Die Diplomarbeit soll aufbauend auf den bisherigen Forschungsergebnissen Möglichkeiten der Anpassung und Anwendung des am Lehrstuhl entstandenen "OCL-to-SQL"-Prototypen untersuchen.
Dazu ist zunächst eine Studie zu realen und sinnvollen Möglichkeiten der Überprüfung von Integritätsbedingungen in relationalen Datenbank-Anwendungen
zu erstellen. Dies beinhaltet die Ermittlung konkreter Anforderungen von Datenbankanwendern an die Integritätssicherung. Auf Basis dieser Studie und den bisherigen Forschungsergebnissen ist eine konkrete UML/OCL-basierte Strategie für die Integritätssicherung einer relationalen Datenbank einschließlich Werkzeugunterstützung zu erarbeiten bzw. zu implementieren.


Object-Oriented Modeling of a System for Automated Vehicle Guidance

Zielstellung:

At Fraunhofer Institute of Transportation Systems and Infrastructure Controls Engineering (FhG-IVI) Dresden, systems are developed that allow
an automated, driver-less guidance of road vehicles. They integrate several sensor data, involve road maps, infrastructure data, and vehicle
data, analyse them by algorithms and background knowledge, and influence the vehicle motion using controllers and actors. For a test car operating under laboratory conditions, a system model is to be designed starting with existing requirements. It has to identify hardware, software components as well as objects of the environment and interfaces between them in the form of static structures, dynamic behaviours, and general regularities. The work should be preceded by a retrieval of existing software design tools taking into consideration a practical use in the vehicle and traffic context. The design process itself is to be done formally within the languages UML and OCL supported by the design tool Together. The resulting model should be verified and simulated partially using suitable additional software tools. Furthermore, the software development methodology to build up the design model is to be worked out
and fixed so that the approach can be applied to similar problems, too.


Enterprise JavaBeans und JavaBeans

Zielstellung:

In verschiedenen Literaturquellen wird die Enterprise JavaBeans (EJB)-Technologie als Erweiterung der JavaBeans-Technologie beschrieben. Das entspricht nicht den Tatsachen. Die Spezifikationen der Firma Sun für die beiden Komponentenmodelle JavaBeans und Enterprise JavaBeans beschreiben voneinander unabhängige Technologien. Als sinnvoll erscheint jedoch eine (möglicherweise von Sun gewollte) Vereinigung beider Technologien.
Ziel der Arbeit ist es, das Verhältnis der Technologien EJB und JavaBeans aufzuarbeiten. Dabei sollen Chancen sowie Vor- und Nachteile der Vereinigung beider Technologien aufgezeigt werden. Die getroffenen Aussagen sind an geeigneten Beispielen zu veranschaulichen.
Die Arbeit baut inhaltlich auf den aktuellen Spezifikationen der Firma Sun auf:

Der praktische Teil der Arbeit soll sich mit der Umsetzung gefundener Verknüpfungspunkte beider Technologien beschäftigen. Das Ziel ist hierbei, die Möglichkeit einer durchgehend visuellen Anwendungserstellung aus vorgegebenen Komponenten (JavaBeans und Enterprise JavaBeans) zu unterstützen.

Es sind folgende Teilaufgaben zu lösen:

  1. Ausarbeitung des Zusammenhangs von JavaBeans und EJB sowie der Möglichkeiten der Vereinigung beider Technologien.
  2. Entwurf und prototypische Implementierung eines Generators, der basierend auf einem EJB Jar-File eine JavaBeans konforme Zwischenschicht generiert, die einen Zugriff auf EJBs bei der visuellen Programmerstellung ermöglicht.
  3. Geeigneter Nachweis der Funktionstüchtigkeit des Generators. Dies könnte z.B. an Hand einer visuell erstellten Beispielanwendung erfolgen.

Die Teilaufgabe 2 ist entsprechend der Ergebnisse der Teilaufgabe 1 anzupassen.


Vergleichende Studie zu den Komponentenmodellen EJB, COM+ und CCM

Zielstellung:

Die Komponentenorientierte Programmierung und die ihr zugrunde liegenden Komponentenmodelle spielen bei der Softwareentwicklung, insbesondere in den späteren Phasen (z.B. der Implementierungsphase) des Software-Lebenszyklus, eine zunehmend bedeutsame Rolle. Dies spiegelt sich in der Vielzahl der in den letzten Jahren entstandenen Komponentenmodelle wider. Typische Vertreter hiervon sind die Komponentenmodelle Enterprise JavaBeans (EJB) der Firma SUN, Component Object Model plus (COM+) der Firma Microsoft sowie das von der Object Management Group (OMG) spezifizierte CORBA Component Model (CCM). Allen diesen Modellen liegt die zentrale Idee einer grobgranularen, wiederverwendbaren Software-Komponente zugrunde. Hierbei stellt sich jedoch die Frage, wie sich die Entscheidung für eines der Komponentenmodelle auf die Softwareentwicklung in den früheren Phasen, insbesondere der Entwurfsphase, auswirkt. Denkbar ist hierbei die Verfügbarkeit entsprechender Ausdrucksmittel in der Modellierung (z.B. entsprechende UML-Modell-elemente), für die eine Abbildung auf ein konkretes Komponentenmodell generiert werden kann. Dies könnte im Idealfall eine Unabhängigkeit des Entwurfsmodells zum später zu verwendenden Komponentenmodell ermöglichen. Um bewerten zu können, ob es derartige Ausdrucksmittel gibt, erscheint ein technologischer Vergleich der Komponentenmodelle notwendig.

Ziel dieser Arbeit ist es, einen solchen technologischen Vergleich unter Berücksichtigung der verteilten Komponentenmodelle EJB, COM+ und CCM durchzuführen und Richtlinien für die Modellierung komponentenbasierender Anwendungen zu erarbeiten. Neben der Aufarbeitung allgemeiner Vergleiche dieser drei Modelle, wie sie sich in verschiedenen Literaturquellen finden lassen, steht insbesondere die Untersuchung der diesen Modellen zugrundeliegenden Architektur im Mittelpunkt dieser Arbeit. Daraus sind Rückschlüsse auf den Entwurf und die Modellierung komponenten-basierender Anwendungssysteme zu ziehen.

Es sind folgende Teilaufgaben zu lösen:


Werkzeugunterstützung für UML-Profiles

Zielstellung:

Die Unified Modeling Language (UML) ist eine auf einem Metamodell basierende allgemeine Modellierungssprache. Zur Anpassung an spezielle Anwendungsgebiete beschreibt die UML Spezifikation Mechanismen (Stereotypen, Tagged Values und Constraints) zur Erweiterung des Metamodells. Zusammengehörige (z.B. auf Grund der Zugehörigkeit zum gleichen speziellen Anwendungsgebiet) Erweiterungen werden in einem sogenannten UML Profile zusammengefaßt. In der aktuellen UML Spezifikation (UML 1.3 bzw. UML 1.4 Draft) erfolgt die Beschreibung des Aufbaus eines solchen Profiles nur informativ. Erforderlich erscheint darüber hinaus ein vorgegebenes Format zum Austausch solcher Profiles zwischen verschiedenen CASE-Tools. Derartige Mechanismen sind in der aktuellen UML Spezifikation nicht beschrieben.

Ziel dieser Arbeit ist es daher, existierende UML-Werkzeuge auf Ihre Profile-Unterstützung hin zu untersuchen. Als Grundlage für die Untersuchung sollen dabei existierende UML-Profiles (z.B. das "UML Profile for CORBA") herangezogen werden. Des weiteren soll mindestens ein UML-CASE-Tool daraufhin untersucht werden, wie die Integration einer vollständigen UML-Profile-Unterstützung zu realisieren wäre. Im Ergebnis sind konkrete Empfehlungen für die in weiterführenden Arbeiten zu erfolgende Realisierung einer Profile-Unterstützung zu geben.

Es sind folgende Teilaufgaben zu lösen:

Hinweis: Die Wahl des vertiefend zu untersuchenden Tools ist mit dem Betreuer abzustimmen.

[pdf]

Industriestudie zum Einsatz von CORBAservice konformen Dienstimplementierungen bei der Entwicklung CORBA-basierter Anwendungen

Zielstellung:
Der Große Beleg wird in Zusammenarbeit mit der AIS Automation Dresden GmbH durchgeführt. Arbeitsorte für die Erstellung des Großen Beleges sind die TUD und AIS.

Im Rahmen der CORBAservice Spezifikationen hat die Object Management Group (OMG) eine Sammlung von domainunabhängigen Objektdiensten spezifiziert. Objektdienste sollen vorgefertigte Lösungen für immer wiederkehrende Aufgaben bei der Entwicklung verteilter, CORBA-basierter Anwendungen bieten. Implementierungen sehr grundlegender Objektdienste (wie z.B. dem Ereignisdienst) sind zumeist Bestandteil derzeit am Markt existierender kommerzieller CORBA-Implementierungen (z.B. Inprise Visibroker). Daneben entwickelt sich ein Markt von Anbietern separater Dienstimplementierungen, die eine weit größere Zahl der Dienste aus der CORBAservice Spezifikation realisiert haben. Ein Beispiel hierfür ist die Sammlung "OpenFusion" der Firma PrismTech.

Ziel der Arbeit ist es, eine Auswahl der verfügbaren Objektdienste, am Beispiel "OpenFusion", auf ihre Praxistauglichkeit hin zu überprüfen. Dazu sind Anwendungen des Praxispartners zu analysieren und auf die Einsatzmöglichkeit von Objektdiensten hin zu untersuchen. Die Realisierbarkeit ist anhand einer prototypischen Implementierung nachzuweisen, im Rahmen derer Teile der existierenden Anwendungslogik durch Objektdienste zu ersetzen sind. Im Ergebnis der Arbeit sind Aussagen über die Praxistauglichkeit der Objektdienste zu treffen. Insbesondere sollte dies Aspekte wie: Performance, Einarbeitungsaufwand in die Dienste, Einsparungspotential beim Einsatz von Objektdiensten, u.a. umfassen.

Es sind folgende Teilaufgaben zu lösen:


Die GoF-Entwurfsmuster in Java

Zielstellung:

Der GoF-Musterkatalog (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Design Patterns, Addison-Wesley, 1994) gilt als
die Bibel der Musterphilosophie in der Softwaretechnik. Das Originalbuch enthält 23 Entwurfsmuster, illustriert durch
C++-Beispiele. Inzwischen sind zahlreiche weitere Bücher zum Thema Muster geschrieben worden. Darunter gibt es auch Bücher, die den Anspruch haben, die GoF-Entwurfsmuster in Java zu erklären. Schaut man sich diese Bücher genauer an, so ist man mit dem Problem zum
Teil sehr komplexer und nicht vollständiger Quellcode-Beispiele konfrontiert. Der Große Beleg soll deshalb aufbauend auf Vorarbeiten einen Katalog lauffähiger und übersichtlicher Java-Beispiele für die GoF-Muster erarbeiten.


Evaluation von Java Data Objects

Zielstellung:

Enterprise JavaBeans (EJB) haben sich in jüngster Zeit zu einer Standardtechnologie für Enterprise-Anwendungen insbesondere im
eBusiness-Bereich entwickelt. Dies liegt nicht zuletzt an der umfangreichen Unterstützung automatischer Persistenz durch
Container-Managed Persistence. An vielen Spezifikationsänderungen zwischen den einzelnen EJB-Versionen wird aber auch ersichtlich, dass
dieses Persistenzframework noch nicht vollständig ausgereift ist. Vor allem komplexe Abhängigkeiten zwischen Entity Beans verursachen häufig
gravierende Probleme. Eine faszinierende und vielversprechende Alternative zu Enterprise JavaBeans (insb. Entity Beans) scheint sich durch die Java Data Objects (JDO) (java.sun.com/aboutJava/communityprocess/jsr/jsr_012_dataobj.html) zu bieten. Insbesondere das Problem eines effizienten Persistenzframeworks mit vielen komplexen Beziehungen zwischen den "Entity"-Objekten wird hier adressiert. Java Data Objects ist eine noch sehr junge Technologie, gleichwohl gibt es (mindestens) eine funktionsfähige Implementierung im Rahmen des Castor-Projekts
(http://castor.exolab.org), welche für Tests zur Verfügung steht. Hauptaufgabe im Rahmen des Großen Beleges ist die Evaluation der
Technologie der Java Data Objects.


Untersuchung von UML-to-OCL-Transformationen

Zielstellung:

Zahlreiche Modellkonstrukte in UML können sowohl in graphischer Notation als auch als OCL-Constraints ausgedrückt werden. Beispiele dafür sind
Multiplizitäten und Spezialisierungen von Assoziationen in Klassendiagrammen. Die Vorteile der Nutzung von OCL-Constraints gegenüber der graphischen Modellierung liegen oftmals zum einen in übersichtlicheren (graphischen) UML-Modellen und zum anderen in einer effizienteren Technik zur präziseren Codegenerierung. Insbesondere die Codegenerierung von UML-CASE-Tools läßt derzeit noch zu wünschen übrig.
Constraints wie z.B. Multiplizitäten oder Subset-Beziehungen zwischen Assoziationen können (wenn überhaupt) zwar graphisch modelliert werden,
finden aber in der Codegenerierung der UML-CASE-Tools keine Berücksichtigung. Die Diplomarbeit soll diese Problematik analysieren und prototypisch ein Tool für sinnvolle UML-to-OCL-Transformationen entwickeln.


Entwicklung eines konfigurierbaren Datenbankschemagenerators

Zielstellung:

Die Generierung relationaler Datenbankschemas (als SQL-Skripte) ist technischer Standard in Datenmodellierungswerkzeugen.
Mit der wachsenden Akzeptanz von UML gibt es immer mehr kommerzielle Werkzeuge (Datenmodellierungs- als auch UML-CASE-Tools),
die eine Generierung von SQL-Skripten auf der Basis von UML-Klassendiagrammen unterstützen. Allerdings ist die Qualität der
insbesondere von UML-CASE-Tools generierten Datenbankschemas teilweise sehr unbefriedigend. Die Kritik bezieht sich dabei sowohl auf die Korrektheit der Abbildung als auch auf die Unterstützung flexibler Abbildungsvorschriften.
Im Rahmen des "Dresden OCL Toolset" wird ein hinsichtlich flexibler Abbildungsvarianten konfigurierbarer Datenbankschemagenerator benötigt, der die UML-Modelle verschiedener CASE-Tool-Hersteller lesen und verstehen kann. Die technische Lösung für einen solchen herstellerunabhängigen Generator ist derzeit XMI. Das Dresden OCL Toolset stellt bereits ein XMI-basiertes Repository sowie einen ersten Prototypen für den Datenbankschemagenerator bereit. Die Diplomarbeit hat das Ziel, auf Basis der Vorarbeiten einen Datenbankschemagenerator zu entwickeln.


Framework zur Generierung von webbasierten Formularen

Zielstellung:

Eine häufig auftretende Standardaufgabe innerhalb von webbasierten Applikationen ist die Dateneingabe über Formulare und deren Speicherung und Weiterverarbeitung.
Anwendungsfälle sind zum Beispiel:

In der Diplomarbeit sind die in diesem Zusammenhang in Frage kommenden Technologien zu untersuchen. Es ist eine Architektur zu entwerfen, die den aufgeführten Anforderungen genügt. Desweiteren ist ein XML-basiertes Beschreibungsformat zur Abbildung der Formularlogik zu entwickeln. Das Framework ist prototypisch zu implementieren und zu testen.

Der Prototyp soll folgenden Forderungen genügen:


Übertragung unterbrochen

chließlich Anzeige)

Bei der Entwicklung des Frameworks sollte besonderer Wert auf die Anwendung objektorientierter Entwurfsprinzipien wie z.B. Entwurfs- und Architekturmuster gelegt werden. Es ist zu prüfen, ob die Entwicklung oder Wiederverwendung ("build or buy"-Prinzip) von Softwarekomponenten sinnvoll ist.

Weitere wünschenswerte Anforderungen an das Framework sind:


Entwurfsmusterkatalog für Komponentencontainer

Zielstellung:

Komponentenmodelle gewinnen in der Anwendungsentwicklung eine zunehmende Bedeutung. Beispiele für aktuelle Komponentenmodelle sind: Enterprise JavaBeans (EJB) von SUN, Component Object Model Plus (COM+) von Microsoft sowie das CORBA Component Model (CCM) der OMG. Zentraler Bestandteil solcher Komponentenmodelle ist der Komponentencontainer. Dieser stellt die Laufzeitumgebung für Komponenten dar und bietet den enthaltenen Komponenten Dienste an, wie z.B. für Persistenz, Transaktionen und Prozeßverwaltung. Weitere Dienste sind denkbar, z.B. Dienste, die es Komponenten erlauben, quantitative Aussagen über ihr Verhalten (z.B. Antwortzeiten) zu treffen. Im Rahmen des COMQUAD-Projektes soll z.B. ein Komponentenmodell entwickelt werden, in dem der Komponentencontainer u.a. einen solchen Dienst anbietet.

Das Ziel dieser Diplomarbeit ist es, bestehende Architektur- und Entwurfsmuster zur Realisierung von Komponentencontainern zu identifizieren und in der Art eines Entwurfsmusterkataloges nach [Gamma] zu beschreiben und zu katalogisieren. Diese Arbeit liefert somit eine wichtige Vorarbeit für spätere Bemühungen im COMQUAD-Projekt, einen eigenen Komponentencontainer zu konzipieren und zu implementieren.

Die Grundlage der Untersuchung bilden dabei existierende EJB und CCM konforme Implementierungen von Komponentencontainern, die im Quellcode vorliegen.

Die durch die Entwurfsmuster zu beschreibenden Lösungsansätze sollen Problemstellungen umfassen wie:

Es sind in der Diplomarbeit folgende Teilaufgaben zu lösen:

Die Auswahl der näher zu untersuchenden Komponentencontainer ist in Abstimmung mit dem Betreuer zu treffen.


Beispielkatalog für EJB-Entwurfsmuster

Zielstellung:

Das Komponentenmodell Enterprise JavaBeans (EJB) der Firma SUN gewinnt in der komponentenbasierten Anwendungsentwicklung eine zunehmende Bedeutung.

Der Einsatz eines solchen Komponentenmodells hat bei der Realisierung von Anwendungen starke Auswirkungen auf den Entwurf und die dort zu treffenden Entscheidungen, die auf das EJB Komponentenmodell ausgerichtet sein müssen. Derartige Entwurfsentscheidungen sind bereits in Form von Entwurfsmusterkatalogen für EJB beschrieben.

Das Ziel dieser Belegarbeit ist es, an Hand einer Beispiel-Implementierung die beschriebenen Entwurfsmuster zu verifizieren sowie die Kataloge in bezug auf ein durchgehendes Beispiel zu ergänzen.

Der Anwendungsbereich des Beispiels sollte sich an dem Hotel-Beispiel aus [Cheesman] orientieren.

Es sind folgende Teilaufgaben zu lösen:


Generierung serverseitiger Komponenten basierend auf UML Profiles

Zielstellung:

Das komponentenorientierte Paradigma umfaßt die Idee, Anwendungen aus vorgefertigten Komponenten zusammenzufügen. Der praktische Einsatz zeigt, daß Anwendungen zu einem großen Teil auch selbst entwickelte Komponenten beinhalten, die speziell für die zu entwickelnde Anwendung erstellt wurden. Hierfür wäre es wünschenswert, die Kombination einzelner Komponenten bereits auf Spezifikationsebene, z.B. in Modellen des Entwurfes, zu beschreiben. Ergebnis einer solchen Beschreibung könnte die automatische Generierung von Informationen für die Komponentenimplementierung, Anwendungszusammenstellung und -installation sein.

Ziel dieser Arbeit ist es daher, die Anforderungen an die Beschreibung der Kombination von serverseitigen Komponenten zu sammeln und zu spezifizieren. Dabei konzentriert sich die Untersuchung schwerpunktmäßig auf die Komponententechnologie Enterprise JavaBeans (EJB) und das im Rahmen des Java Community Prozesses entwickelte "UML Profile for EJB" (JSR 26). Aktuelle Standardisierungsbemühungen der Object Management Group (OMG) sind zu beobachten.

Im theoretischen Teil der Arbeit erfolgt, basierend auf den ermittelten Anforderungen, eine Beschreibung der Abbildung von "UML Profile for EJB" Elementen auf eine EJB-Komponentenimplementierung (Java-Code, Deployment Descriptor Informationen, EJB Konstrukte). Das Ziel hierbei ist, über die im Profile beschriebenen Abbildungen hinaus, den Komponentenentwickler von immer wiederkehrenden Implementierungsaufgaben zu entlasten. Wo notwendig, ist das "UML Profile for EJB" hierfür zuvor anzupassen. Folgende Bereiche sind denkbar:

Der praktische Teil dieser Arbeit beschäftigt sich mit der prototypischen Implementierung eines einfachen Generators, der ausgehend von einem auf diesem Profile basierenden Modell (z.B. vorliegend als XMI Datei) eine entsprechende EJB-Komponentenimplementierung generiert. Die Funktionsfähigkeit des Generators ist an Hand einfacher Beispiele nachzuweisen.

[pdf]

Abbildung von OCL auf EJB-QL

Zielstellung:

Das Werkzeug Together 5.0 bietet eine automatische Generierung von Java-Code für Enterprise Java Beans (EJB) auf speziellen Varianten von UML-Klassendiagrammen. In anderen Werkzeugen ist die Unterstützung von EJB in Vorbereitung. Es ist zu untersuchen, inwieweit sich die Spezifikation
von Abfrageoperationen für Entity-Beans bereits auf UML-Ebene mit Hilfe der Object Constraint Language (OCL) spezifizieren lässt. Die für EJB-Werkzeuge benötigte Spezifikation in der Sprache EJB-QL (EJB-Query Language) ist dabei aus dem OCL-Text zu generieren. Prinzipielle Zielrichtung ist eine Untersuchung, ob die zusätzliche Anfragesprache EJB-QL praktisch überflüssig gemacht werden kann.

Dazu sind folgende Teilaufgaben zu lösen:


Writing a Tutorial for Using "Dresden OCL Toolset"

Specification:

Design and write a tutorial for learning the Object Constraint Language (OCL) and using "Dresden OCL Toolset" (http://dresden-ocl.sourceforge.net/index.html). The intention of the tutorial is to help students in software engineering courses learning the Unified Modeling Language (UML) including OCL. The context of using UML/OCL is the development of Java applications. Furthermore, the tutorial shall be provided on the web as part of the documentation of the Dresden OCL Toolset.

That implies the following detailed requirements:


Development of a C++ client for a Java QoS API based on CORBA

Objectives:

Quality of Service (QoS) in the Internet becomes more and more important. The research project AQUILA develops an architecture that offers QoS to Internet applications. The approach relies on the so-called Resource Control Layer (RCL), which consists of distributed components written in Java and communicating via CORBA, more precisely via the JDK 1.3 ORB. One component of the RCL, the End-user Application Toolkit serves - among others - an Application Programming Interface (API). Novel Internet applications may use it in order to benefit from QoS. This API is CORBA based as well as the interfaces between the RCL components, and it uses the same ORB. The project consists in developing a sample C++ client for this API that shows how C++ applications can use it.

In detail, the following tasks have to be done:


Oberflächengestaltung und Architektur zu einem Intelligenten Editiersystem für Zeichnungen

Zielstellung:

Am Lehrstuhl für Erkennende System und Bildverarbeitung entstand ein Softwaresystem, das zum automatischen Analysieren von Technischen Zeichnungen beliebiger Art dienen soll. Besonderheit des Systems ist eine Lernkomponente, die aufgrund von Beobachtung der Benutzerinteraktion Verbesserungen bestimmter Parameter (bedingte Häufigkeiten) trifft.

Die Aufgabe besteht darin, einen tragfähigen Entwurf für die Benutzerinteraktions-Komponente eines solchen Systems zu liefern. Dazu sind folgende Einzelaufgaben zu lösen:

Als Ergebnis wird ein Architekturkonzept sowie ein erster, möglicherweise noch unvollständiger, Prototyp erwartet, der auf der vorausgesetzten Plattform (Windows MFC, AutoCAD, Micorsoft C++) aufsetzt.


Modellierung .NET basierter Anwendungssysteme mit der UML

Zielstellung:

Mit dem .NET Framework (kurz: .NET) stellte die Firma Microsoft Ihre neue Entwicklungsplattform vor, die zum einen die Basis für verschiedene Programmiersprachen (z.B. C#, C++ u.a.) bilden soll, zum anderen aber auch die Ausführung .NET basierter Anwendungen auf verschiedenen, auch anderen Plattformen als Windows, ermöglichen soll. Es integriert außerdem weitere Dienste, z.B. solche, die zur Erstellung verteilter, auf dem Internet basierter Anwendungen benötigt werden. .NET stellt somit eine direkte Konkurrenz zu der Java 2 Platform Enterprise Edition (J2EE) und der darin enthaltenen serverseitigen Komponententechnologie Enterprise Java Beans (EJB) dar.

Ziel dieser Diplomarbeit ist es, ein Konzept zur Modellierung von .NET-Anwendungen mittels der UML zu erarbeiten. Dabei ist die Komponententechnologie im .NET Framework zu betrachten, wobei in einem ersten Schritt der Komponentenbegriff in .NET aufgearbeitet und dem Komponentenbegriff in der J2EE, insbesondere der EJB Technologie, gegenübergestellt werden soll. Weitere Betrachtungen im theoretischen Teil dieser Arbeit sollen UML Erweiterungen (z.B. das UML Profile für EJB und das UML Profile für CORBA) für bestehende Komponententechnologien berücksichtigen. Nach dem Vorbild der genannten Profiles ist ein UML Profile für .NET Anwendungen zu erstellen, oder falls möglich und sinnvoll sind Abbildungen von diesen Profiles nach .NET zu beschreiben. Aktuelle Standardisierungsbemühungen der Object Management Group (OMG) sind dabei zu beobachten (z.B. UML Profile für EDOC, UML 2.0, MDA).

Im theoretischen Teil sollen folgende Teilaufgaben gelöst werden:

Der Umfang der beiden letztgenannten Teilaufgaben ist im Laufe der Arbeit mit dem Betreuer abzustimmen.

Im praktischen Teil dieser Arbeit soll der komponentenorientierte Entwurf eines einfachen Online-Shops (angelehnt an die Aufgabenstellung aus dem Praktikum zur Lehrveranstaltung "Software-Komponenten") erfolgen. Dieser Entwurf ist in einen Entwurf für .NET zu überführen und mittels des erstellten Profiles zu beschreiben. Die dafür notwendigen Schritte sind in geeigneter Art und Weise darzulegen. Abschließend soll die Tragfähigkeit des Entwurfs mittels einer Implementierung (möglichst erstellt in C#) nachgewiesen werden.


Modellierung CORBA basierter Anwendungssysteme mit der UML

Zielstellung:
Das von der OMG spezifizierte UML Profile für CORBA umfaßt Erweiterungen der UML zur Beschreibung von Konstrukten der CORBA Interface Definition Language (IDL). Es bietet allerdings keine Unterstützung für die Beschreibung der Implementierung von CORBA-Objekten sowie deren Integration mit CORBA Objektdiensten. Hierfür ist eine Erweiterung der UML notwendig, z.B. in der Form eines oder mehrerer zusätzlichen Profiles.

Das Ziel dieser Diplomarbeit ist es daher, aufbauend auf [1] und [2] ein Konzept für eine Erweiterung der UML, zur Unterstützung der oben genannten Aspekte, basierend auf dem UML Profile für CORBA zu erarbeiten. Vorgeschlagene Erweiterungen sollen dabei auf den Erweiterungsmechanismen der UML 1.4 beruhen und Erweiterungen der UML zur Modellierung folgender Problembereiche anbieten:

Ein Ziel ist hierbei, durch die Einführung spezieller UML Elemente die Beschreibung von notwendigen Informationen bei der Modellierung zu ermöglichen, um eine weitreichende Code-Generierungsfunktion unterstützen zu können. Aktuelle Standardisierungsbemühungen der Object Management Group (OMG) sind dabei zu beobachten.

Im praktischen Teil der Arbeit sollen an Hand von Beispielen aus [2] die vorgeschlagenen Erweiterungen geprüft, die Anwendbarkeit der erarbeiteten Profiles demonstriert und die Möglichkeiten der Code-Generierung (ggf. von Hand) aufgezeigt werden.

Es sind folgende Teilaufgaben zu lösen:


Aspektorientierte Programmierung und EJB im Vergleich

Zielstellung:

Das Konzept der Aspektorientierten Programmierung (AOP) ist ein relativ neuer Ansatz bei der Entwicklung komplexer Softwaresysteme. Der Schlüsselgedanke ist dabei eine Modularisierung durch Trennung unterschiedlicher Aufgabenbereiche ("separation of concerns"). Dabei werden verschiedene Teilaspekte eines Systems, zum Beispiel technische Anforderungen an ein Softwaresystem wie Synchronisation, Fehlerbehandlung oder Transaktionsmanagement unabhängig von der fachlichen Funktionalität implementiert. Über einen Präprozessor wird der Aspekt- mit dem Systemquellcode verwebt und erst dann compiliert. Mit dem AspectJ-Compiler und dem Präprozessor Aspect Weaver gibt es bereits Werkzeuge, welche eine Integration von AOP in Java-Entwicklungen ermöglicht.

Eine weitere Technologie, die zunehmend an Bedeutung in der Anwendungsentwicklung gewinnt, ist die Komponententechnologie Enterprise JavaBeans (EJB) der Firma SUN. Auch in diesem Konzept wird die technische Funktionalität von der Geschäftslogik getrennt. Dies geschieht hier durch die Bereitstellung eines Containers, welcher als Laufzeitumgebung für reine Geschäftskomponenten dient.

Es stellt sich nun die Frage, ob die Aspektorientierte Programmierung eine gleichwertige bzw. sogar effektivere Lösung für die Trennung von technischer Funktionalität und Geschäftslogik bei der Entwicklung von verteilten Anwendungen darstellt als EJB. Ziel dieser Arbeit ist es deshalb, diese beiden Konzepte anhand des Entwurfs und der Realisierung einer Beispielanwendung unter diesem Gesichtspunkt zu vergleichen.

Es sind folgende Teilaufgaben zu lösen:


Evaluation der Praxistauglichkeit von OCL-Spezifikationen

Zielstellung:

Die Technologie der Object Constraint Language, die ein Bestandteil der inter­nationalen Standard-Modellierungssprache UML ist, könnte zur Lösung eines altbekannten Problems beitragen: Präzise Spezifikation von Software-Schnitt­stellen in einer für die praktische Softwareentwicklung einfach handhabbaren Form. In Zusammenarbeit mit dem Industriepartner sd&m Research (München) soll untersucht werden, in welchem Umfang die bestehende Sprache OCL für prak­tische Spezifikationsaufgaben geeignet ist bzw. welche prinzipiellen Fortent­wick­lungen der Sprache hierfür sinnvoll wären. Zu diesem Zweck sind Teile eines von sd&m bereitgestellten Baukastens von wiederverwendbaren Standard-Software-Komponenten (in Java), die derzeit in natürlicher Sprache spezifiziert sind, in OCL zu spezifizieren. In Zusammenarbeit mit dem Industriepartner sind geeignete Kriterien für die Praxistauglichkeit der Sprache zu definieren und die OCL-Spezifikation gegen diese Kriterien zu evaluieren. In diesem Zu­sammen­hang sind geeignete weitere Konzepte zu entwickeln, z.B. eine Klassi­fikation von Problemen, für die OCL besonders günstig oder ungünstig ist, oder eine Definition von speziellen OCL-Spezifikations-Stilen, ggf. auch Erwei­terungen der Sprache OCL. Ein auf diese Ergebnisse aufbauender Arbeitsschritt wäre die prototypische Untersuchung von OCL-Werkzeugen, etwa des am Lehrstuhl entwickelten OCL-Java Compilers. Dieser Themenbereich soll im Rahmen dieser Arbeit zumindest andiskutiert werden.

[pdf]

Modelling of safety-critical control systems for transportation with Statemate

Zielstellung:

In transportation systems, a large part of the control software has very high correctness requirements, since malfunction of the software can cause serious accidents. The thesis studies the application of modern software technology to a small case study from the area of transportation systems (radio-controlled railway crossing). It will be investigated to which extent the software tool Statemate can be applied to such a case study in order to achieve a higher degree of correctness of control software.

The following tasks have to be carried out, and their results have to be reported in the thesis:

The last item in the above list targets at the core question how the correct-ness of software can be improved using tools like Statemate. The discussion should cover possibilities like automated test case generation, model checking or mathematical verification. Besides a practical evaluation of the suitability of Statemate for certification tasks is expected.


Dynamische Rekonfiguration eines Application Servers

Zielstellung:

Beim Industriepartner Deutsche Post ITSolutions GmbH wird eine Webapplikation zur Datenauswertung entwickelt. Diese dient der Erstellung von Reports und baut auf dem Datenbestand einer existierenden Oracle-Datenbank auf. Die Schnittstelle zwischen Datenbank, Web-Server sowie Web-Browser soll durch einen Application Server realisiert werden. Diese werden daher auch als Middleware bezeichnet. Unter jboss.org steht ein open-source J2EE Application Server JBOSS mit integriertem Servlet-Container zur Verfügung.

Ziel der Diplomarbeit ist es, eine solche dynamische Konfigurationsmodifikation am Beispiel des JBOSS Web Application Servers zu entwickeln und hinsichtlich ihrer Performance gegenüber einer statischen Standardkonfiguration, bei der die Konfiguration zur Laufzeit des Servers nicht geändert wird, zu prüfen.

Es sind folgende Teilaufgaben zu lösen:


Vergleich des Persistenzkonzeptes der EJB-Technologie mit der Datenbank-Framework-Technologie von Newtron

Zielstellung:

Der Große Beleg wird in Zusammenarbeit mit der Newtron AG Dresden durchgeführt. Arbeitsorte für die Erstellung des Großen Beleges sind die TUD und die Newtron AG.

Ziel dieser Arbeit ist die Evaluierung und der Vergleich zweier Java-basierter Frameworktechnologien in Bezug auf Datenbankzugriffs- und Transaktionskonzepte.

Die Datenbank-Framework Technologie der Newtron AG ist dabei mit dem Entity Beans-Konzept der Enterprise JavaBeans (EJB)-Technologie zu vergleichen. Hinter-grund dieser Evaluierung ist das langfristige Bestreben der Newtron AG, vermehrt Standard-technologien einzusetzen. Auf der Basis einer prototypischen Beispiel-anwendung (mit einem einfachen Nutzerinterface in Swing) sind die Technologien hinsichtlich der Einfachheit der Programmierung, Anpaßbarkeit und Wieder-ver-wend-bar-keit von Komponenten zu vergleichen. Zum Vergleich sollen mehrere Implementierungen der EJB-Spezifikation herangezogen werden. Die genaue Auswahl ist dabei mit den Betreuern abzustimmen.

Optional soll auch ein Vergleich zwischen den Message-Driven Beans in EJB und den asynchronen, datenbank-basierten Business Components des newtron-Frameworks durchgeführt werden.

Vergleich und Evaluierung sind jeweils unter dem Blickwinkel einer möglichen Portierung der Newtron-Software auf die EJB-Technologie durchzuführen. Dabei ist zu bewerten, ob ein vollständiger Umstieg oder eine teilweise Ersetzung des Newtron Frameworks möglich und empfehlenswert ist.

Es sind folgende Teilaufgaben zu lösen:


Evaluation des Projekts "Quality Objects"

Zielstellung:

Mit dem Projekt Quality Objects (QuO) der Firma BBN Technologies wurde ein Framework für die Durchsetzung von Qualitätsanforderungen in verteilten, hauptsächlich CORBA-basierten Anwendungen entwickelt. Dabei sollten besonders die speziellen Anforderungen, wie geringe bzw. stark schwankende Übertragungsraten von WANs und mobilen Netzen berücksichtigt werden. Zu diesem Zweck wurden im Rahmen des Projekts eine Reihe von Quality Description Languages (QDL) entwickelt, die nach dem Prinzip der aspektorientierten Programmierung verschiedene QoS-Merkmale beschreiben, sowie mögliche Adaptionsmechanismen bei Nichteinhaltung der Vorgaben definieren.

Da die Spezifikation und Durchsetzung von QoS-Anforderungen eines der Ziele der Forschergruppe COMQUAD ist, sollen im Rahmen dieser Diplomarbeit die Konzepte der QuO in Bezug auf die Beschreibung von QoS-Parametern und Adaptionsmechnismen, sowie das zugehörige QuO-Toolkit (enthält neben der QDL auch QDL-Compiler und Bibliothekskomponenten) evaluiert werden.

Zu lösende Teilaufgaben:


Entwurf eines abstrakten CAD-Adapters für ein Mustererkennungssystem

Zielstellung:

Durch ein bei der kubit GmbH entwickeltes Mustererkennungssystem Ypsilon werden Strichzeichnungen von Gebäudegrundrissen In eine anspruchsvolle primitive Bauteilstruktur migriert. Für die Kommunikation mit der Außenwelt ist die Einbettung des Verfahrens, dessen Kern vollständig in reinem ANSI/ISO-C++ kodiert ist, in konkrete CAD-Systeme und Architekturapplikationen geplant. Um ein Maximum an Flexibilität und Entkopplung zu erreichen, ist die Identifikation einer abstrakten Sicht auf die gängigen CAD-Systeme erforderlich.

Ziel der Diplomarbeit ist die objektorientierte Ausarbeitung einer solchen Sicht, die sowohl den Import von primitiven Objekten (Linien, Texten usw. sowie deren Attributen) nach Ypsilon als auch den Export der relationalen und typisierten Gebäudebauteile in typische CAD-Systeme unterstützt. Das Design ist in UML zu dokumentieren und für das CAD-System AutoCAD prototypisch in C++ zu implementieren. Die Flexibilität des Entwurfes ist exemplarisch an einem zweiten CAD-System (z. B. MicroStation) zu untersuchen.

Bei der Diskussion der Lösung sind folgende Qualitätskriterien zu beleuchten:


Möglichkeiten und Grenzen modellbasierter Anwendungsentwicklung am Beispiel von "Bold for Delphi"

Zielstellung:

Die Softwareentwicklung auf der Basis von Modellen ist eine alte Idee im Software Engineering. Viele Projekte, die eine vollständige Modellierung des Geschäftsbereiches angestrebt haben, sind jedoch aufgrund verschiedener Ursachen gescheitert. Eine der Ursachen liegt in der unzureichenden Werkzeugunterstützung. Die Unified Modeling Language (UML) einschließlich der Object Constraint Language (OCL) sowie deren Werkzeugunterstützung durch CASE-Tools und neuen Entwicklungsumgebungen versprechen Besserung. "Bold for Delphi" (BfD) z.B. unterstützt die Implementierung des Modells, die Generierung der Datenbankstrukturen, der Geschäftsobjekte sowie der graphischen Benuteroberfläche (GUI). Die Diplomarbeit soll die realen Möglichkeiten und Grenzen modellbasierter Anwendungsentwicklung untersuchen und diese für BfD im Detail evaluieren.

Dabei sind folgende Teilaufgaben zu lösen:


Codegenerierung für UML-Klassendiagramme mit Auswertung semantischer Zusatzinformation

Zielstellung:

Der derzeitige Stand kommerzieller Werkzeuge für die Generierung von Java-Code aus UML-Klassendiagrammen ist daraufhin zu untersuchen, inwieweit semantische Zusatzinformationen von Klassendiagrammen berücksichtigt werden (z.B. Multiplizitäten, Constraints wie {ordered}, Komposition, qualifizierte Assoziation, Assoziationsklassen, rekursive Assoziationen, n-näre Assoziationen, Dependency, OCL-Constraints).

Dazu sind folgende Teilaufgaben zu lösen:


Analysis of the Metamodeling Semantics for OCL

Zielstellung:

The standard specification language OCL (Object Constraint Language) is currently undergoing a main revision (for version 2.0). During the revision process, in which Dresden University of Technology is involved, a metamodel for the abstract syntax of OCL has been defined, and a first draft for a semantics of OCL was formulated in UML and OCL itself. The goal of this work is to provide a thorough review of the metamodels provided in the draft documents, using advanced OCL tools. The following steps have to be carried out:

A possibility will be established to discuss upcoming questions for clarification with the authoring team of the OCL 2.0 draft standard.


Entwicklung und prototypische Realisierung eines Plug-In zur Unterstützung von UML-Profiles in Rational Rose

Zielstellung:

Die Unified Modeling Language (UML) ist eine auf einem Metamodell basierende allgemeine Modellierungssprache. Zur Anpassung an spezielle Anwendungsgebiete beschreibt die UML Spezifikation Mechanismen (Stereotypen, Tagged Values und Constraints) zur Erweiterung des Metamodells. Zusammengehörige (z.B. auf Grund der Zugehörigkeit zum gleichen speziellen Anwendungsgebiet) Erweiterungen werden in einem sogenannten UML Profile zusammengefaßt. In der aktuellen UML Spezifikation (UML 1.4) erfolgt die Beschreibung des Aufbaus eines solchen Profiles als stereo-typisiertes Package. Daher ist, zumindest theoretisch, die Beschreibung von UML-Profiles mittels XMI als Austauschformat möglich.

Ziel dieser Arbeit ist es, aufbauend auf den Ergebnissen des Großen Belegs [1], ein Plug-In zur Unterstützung von UML-Profiles in dem CASE-Tool Rational Rose zu konzipieren und prototypisch zu realisieren. Dabei soll das Plug-In ein in XMI vorliegendes UML Profile einlesen und basierend auf den enthaltenen Elementen die Entwicklungsumgebung von Rational Rose anpassen können. Die entwickelte Lösung ist mit der in anderen CASE-Tools (z.B.: Objecteering) vorhandenen Unterstützung für UML-Profiles zu vergleichen. Die Funktionstüchtigkeit des Plug-In ist beispielhaft an Hand eines UML-Profiles zur Modellierung von Variabilitäten zu zeigen.

Die Überprüfung eines erstellten UML Modells an Hand der im Profile vorgegebenen Einschränkungen (Constrains) soll in dieser Arbeit unberücksichtigt bleiben.

Die Diplomarbeit wird in Zusammenarbeit mit der Intershop Software Entwicklungs GmbH durchgeführt. Arbeitsorte für die Erstellung der Diplomarbeit sind die TU Dresden und Intershop Jena.

Es sind folgende Teilaufgaben im Einzelnen zu lösen:

Referenzen:

[pdf]

Dokumentenverwaltung von ProjectWeb unter Berücksichtigung des Knowledge Engineerings.

Zielstellung:

Die aktuelle Dokumentenverwaltung von ProjectWeb (Webumgebung zur Unterstützung verteilter Projekte entwickelt am Lehrstuhl Softwaretechnologie der TU Dresden) ist ein nicht ausgereifter erster Versuch Dokumente zu verwalten. Sie ist entstanden, ohne z.B. auf allgemeine Regeln des Knowledge Management zu achten. Fehlende Funktionalitäten sind z.B. das Versionsmanagement von Dokumenten, eine professionelles Schlagwort-Management, ein Schlagwort-Synonymverwaltung und eine fehlertolerante Suche.

Ziel der Arbeit ist eine Dokumentenverwaltung zu entwickeln, die sich an Erkenntnissen des Knowledge Engineering orientiert. Ziel der Dokumentenverwaltung ist die Verwaltung projektenintern erstellter Dokumente sowohl als Referenzendokumente zu unterstützen. Typische Funktionen dieses Modul sind u.a. Versionierung, Ablegen, Archivieren, Suchen, Abrufen, Bereitstellen, Referenzierung von Dokumenten etc. Daneben können Dokumente mit privaten (bzw. öffentliche) Annotationen versehen werden.

Es sind folgende Teilaufgabe zu lösen:

Implementierung des Funktionsmoduls. Es ist besondere viel Wert auf der Dokumentation (für Benutzer sowie für Entwickler) zu legen.


Studie zum systematische Testen von Webbasierten Client-Server Anwendungen

Zielstellung:

Das Testen von Software ist ein wesentlicher Bestandteil der Softwarequalitätssicherung.

Methoden aus dem Testen traditionellen Anwendungen wie Modul-, Unit-, Programm-, Integrations-, System-, Abnahme-, Performance- und Regressionstests oder White-box- und Black-box-Test sind bekannt. Das Testen von Webbasierten Anwendungen erfordert aber einiges Umdenken (z.B. es ist nicht nur die Funktionalität auf einigen wenigen Rechnerkomponenten zu testen. Vielmehr sind bei Testen die vielen, Webbasierte Anwendungen beeinflussenden Netzwerktechnologien mit zu berücksichtigen). Möglicherweise sind ebenfalls neue Testtypen, wie z.B.: Link-, Skalierbarkeits-, Speicherleck- Test u.v.a.m. zu entwickeln. Ständige Veränderungen und Erneuerungen in der Internet-Technologien erfordern regelmäßige Wiederholung der Test mit automatisierenden Tools, und neue, wie z. B.: Skalierbarkeits-Test.

Ziel der Arbeit ist es daher, anhand der Beispielsanwendung ProjectWeb, ein Konzept für eine generische Testumgebung für webbasierte Anwendungen auszuarbeiten. Unter Testumgebung versteht sich ein Framework bestehend aus Testmethoden, Werkzeugen, Dokumentation und Testplan.

Dabei ist zu Untersuchen, welche Testansätze es für webbasierte Anwendungen gibt. Insbesondere ist zu untersuchen, wie webbasierten Client-Server Anwendungen automatisch zu testen sind, welche Toolunterstützung dafür existiert und welche zusätzliche Testtypen bezogen auf die Anwendung ProjectWeb (bzw. jExam) notwendig sind. Das ausgearbeitete Konzept ist prototypisch für ProjectWeb umzusetzen.

Es sind folgende Teilaufgabe zu lösen:


Extension of a DiffServ enabled IP core network for delivering QoS to xDSL access

Objectives:

The research project AQUILA develops an architecture for delivering Quality of Service in IP networks based on the Differentiated Services approach. However, it addresses mainly the QoS aspects of backbone networks by guaranteeing QoS from edge to edge (router) but not typical access scenarios such as xDSL. It is the task of this Master Thesis to analyse, design, and prototypically implement a QoS infrastructure for xDSL access networks based, interfacing the existing backbone QoS architecture of the AQUILA project. In detail, the following tasks have to be done:


Evaluierung der QoS-Unterstützung in TAO/ACE

Zielstellung:

Das Projekt COMQUAD hat eine Systemarchitektur und dazugehörende Entwicklungsmethodik zum Ziel, die die Komposition adaptiver Software aus Komponenten unter Berücksichtigung zusagbarer nicht-funktionaler Eigenschaften unterstützen. In diesem Rahmen sind auch Fragestellungen der Ressourcenzusicherung auf Grund von QoS-Anforderungen an Komponenten zu untersuchen. Im Middleware-Bereich gibt es bereits Architekturen, die die Durchsetzung von QoS-Anforderungen in Netzwerk-Endsystemen bereitstellen. Bekannt sind hier TAO, ein RT-CORBA-ORB, der auf dem Framework ACE aufsetzt. Beides sind open-source Projekte der Distributed Object Computing (DOC) Group. Im Rahmen dieser Belegarbeit ist die QoS-Unterstützung von TAO und ACE näher zu untersuchen und zu bewerten. Dabei liegt der Schwerpunkt auf der Durchsetzung von QoS-Anforderungen innerhalb des Endsystem (vertikal). Diese Arbeit liefert damit eine wichtige Vorarbeit für die spätere Konzeption der COMQUAD-Architektur. Die Evaluierung soll anhand eines Beispiels erfolgen. Nach derzeitigem Stand sind folgende Schwerpunkte zu beachten. Diese können bei Bedarf während der Bearbeitungszeit in Absprache mit dem Betreuer anders gesetzt werden.


Entwicklung einer Laufzeitumgebung für Komponenten mit Ressourcenanforderungen

Zielstellung:

Eines der Ziele im Projekt COMQUAD ist die Spezifikation und Durchsetzung des Ressourcenbedarfs von Komponenten. Dabei werden nicht nur klassische Betriebsmittel wie CPU und Speicher als Ressourcen verstanden, sondern auch Komponenten. Die Spezifikation der Ressourcenanforderungen erfolgt über eine deklarative Sprache. Der Vorgang der Aushandlung und Reservierung der Ressourcen entsprechend der spezifizierten Forderungen soll dagegen durch einen Container erfolgen und damit für die Komponente transparent bleiben. Die Aufgabe der Diplomarbeit besteht darin, die Architektur einer solchen Laufzeitumgebung zu entwickeln und prototypisch zu implementieren. Aufgebaut werden kann dabei auf Erfahrungen aus der Belegarbeit "Aspektorientierte Programmierung und EJB im Vergleich".

Bei der Diskussion der Lösung sind folgende Kriterien zu beachten :

[1] Jörg Nothnagel: Ressourcenverwaltung in DROPS. Diplomarbeit an der TU Dresden, Professur Betriebssysteme, Juli 2002

[pdf]

Entwurf und Implementation eines metamodellbasierten OCL-Compilers

Zielstellung:

Die Object Constraint Language (OCL) hat sich in den letzten Jahren als fester Bestandteil der Unified Modelling Language (UML) etabliert. Ihr Zweck bestand ursprünglich in der Formulierung von semantischen Bedingungen über Objektmodellen, wie z.B. Invarianten oder Vor- und Nachbedingungen von Operationen. Darüber hinaus erkannten die Nutzer der OCL das Potential für andere Verwendungszwecke, wie z.B. als Anfragesprache über Objektmodellen.

Im neuesten Vorschlag für die UML 2.0 wurde die OCL deshalb vollständig überarbeitet und als allgemeine Anfragesprache definiert, die überall dort benutzt werden kann, wo präzise Ausdrücke über UML-Modellen benötigt werden. Teil des Vorschlages ist die Beschreibung der Konzepte und der Semantik mit Hilfe eines Metamodells das zur Meta Object Facility (MOF) konform ist. Ziel dieser Beschreibung ist u.a. die Integration der OCL in das Metamodell der UML.

Am Lehrstuhl wurde in früheren Forschungsarbeiten, basierend auf der Version 1.3 des UML-Standards, ein OCL-Compiler entworfen und implementiert. Dieser ermöglicht das Parsen, Typchecken, Normalisieren und Übersetzen von OCL-Ausdrücken in eine Zielsprache wie z.B. Java oder SQL. Eine Anpassung des existierenden Compilers an die Spezifikation des Vorschlages für die UML 2.0 würde einen hohen Aufwand bedeuten und erscheint langfristig als keine gute Lösung.

Deshalb soll, basierend auf dem Vorschlag für das Metamodell der OCL, ein OCL-Compiler entworfen und Teilkonzepte prototypisch implementiert werden. Dazu sind folgende Teilaufgaben zu realisieren:

Auf eine gute Dokumentation des Entwurfes und der prototypisch implementierten Artefakte ist großer Wert zu legen, damit Studenten in Folgearbeiten auf den erzielten Ergebnissen aufbauen können.


Objektorientierte Modellierung und Implementierung eines Datentyps für historische Daten

Zielstellung:

Die Unterstützung eines standardisierten Datentyps Datum (DATE) ist in herkömmlichen SQL-Datenbanksystemen Stand der Technik.
Die Verwendung dieses Datentyps für historische Datenbanken ist jedoch ungeeignet für die Verwendung in historischen Datenbanken. Datumsangaben in historischen (insbesondere mittelalterlichen) Quellen zeichnen sich durch Ungenauigkeit (z.B. "um 1140"), Relativität und Zeitspannen (z.B. "1103 vor März 24") sowie weitere Besonderheiten (z.B. "Sonntag Laetare anno 1539") aus. Die Historiker benötigen deshalb in verschiedenen Projekten eine für ihre Archivierungs-, Recherche und Auswertungszwecke ädequate Unterstützung von historischen Datumsdaten.

In Zusammenarbeit mit dem Institut für Sächsische Geschichte und Volkskunde e.V. sind in einem ersten Schritt die Anforderungen an einen historischen Datumsdatentyps zu untersuchen. Das "historische Datum" ist dann entsprechend objektorientiert zu modellieren. Die prototypische Implementierung soll für die Verwendung in relationalen Datenbanken erfolgen. Dazu ist insbesondere die Technik nutzerdefinierter Datentypen in Java zu evaluieren (Verwendung von Sybase oder Oracle).
Die Ergebnisse des Großen Beleges sind mit dem Stand der Technik auf dem Gebiet temporaler und historischer Datenbanken zu vergleichen.


 

Integration of the Dresden OCL Toolset into Together/J

Objectives:

The Object Constraint Languge (OCL) is part of the Unified Modeling Language (UML). So far there are many commercial UML CASE tools like Together/J which but not support the creation and processing of OCL constraints. The intention of the project is to provide UML tool support for Together/J users extended by OCL.

The Dresden OCL Toolset consists of several tools which support the handling of OCL constraints (parsing, typechecking, code generation of Java and SQL, code instrumentation of Java application programs). It is an Open Source project (see http://dresden-ocl.sourceforge.net/index.html) founded by the Dresden University of Technology. The OCL tools need UML model information that has to be provided through the interface "ModelFacade". Thus, for an integration of the Dresden OCL Toolset the ModelFacade must be implemented for Together/J in a first step. This can be realized by using the Together/J API. The integration of the Dresden OCL Toolset GUI into Together/J is already done by Stefan Ocke. After the implementation of the ModelFacade you would be able to create and parse OCL constraints as part of Together/J UML class diagrams. The next useful step is the integration of the Java Code Instrumentation (OCL Injector by Ralf Wiebicke) to generate the Java
code for checking the OCL constraints. Regarding this task you can benefit by the ArgoUML/OCL example as well as by ideas of Stefan Ocke.

Comprising, the following task are to be solved:


Entwurf und prototypische Implementation eines OCL2.0-Parser

Zielstellung:

Die OCL (Object Constraint Language) ist eine textuelle, formale Teilsprache der Modellierungssprache UML (Unified Modeling Language). Am Lehrstuhl Softwaretechnologie wurde ein Toolset (Dresden OCL Toolset) zur Unterstützung der OCL in CASE-Tools und anderen Anwendungen entwickelt. Im Prozess der Weiterentwicklung der UML entstehen neue Versionen der OCL. Dies zwingt zu einer ständigen Anpassung des OCL-Parsers aus dem Dresden OCL Toolset.
Mit dem Übergang zur Version 2.0 der OCL ergibt sich durch die Einführung einer abstrakten Syntax und deren Trennung von der konkreten (textuellen) Syntax eine völlig neue Qualität, die neue Ansätze im Parser erforderlich macht. Ziel der Arbeit ist es, den OCL Parser des Dresden OCL Toolset auf die Sprachversion 2.0 umzustellen. Gleichzeitig soll die Struktur des Parsers flexibler gestaltet werden, so dass Anpassungen an neue Versionen leichter erfolgen können. Es ist somit ein Parser für OCL 2.0 zu entwickeln, der Texte, die in der konkreten Syntax ausgedrückt sind, einlesen und in eine Instanz der abstrakten Syntax übersetzen kann. Die Übersetzung (d.h. der Code des Parsers) soll dabei möglichst aus der Spezifikation und den dort angegebenen zusätzlichen Regeln (disambiguating rules, synthesizing rules) hergeleitet werden. Die Generierung des Parsers aus der Spezifikation der konkreten Syntax soll soweit wie möglich automatisiert werden. Wo dies nicht möglich ist, soll zumindest ein systematisches manuelles Vorgehen entwickelt werden. Im Einzelnen sind die folgenden Schritte durchzuführen:

Als "Nebenprodukt" sollen Fehler und Inkonsistenzen der OCL2.0-Spezifikation aufgelistet und kurz beschrieben werden.


Konzeption und prototypische Umsetzung eines Spezifikationswerkzeugs für CQML+-Spezifikationen

Zielstellung:

Zur Spezifikation von nicht-funktionalen Eigenschaften (Quality of Service, QoS) in der komponentenbasierten Softwareentwicklung wird im Projekt COMQUAD CQML+ - eine Spezifikationssprache auf Basis von CQML - verwendet. Diese Sprache ist für die Verwendung durch menschliche Entwickler sowie mit starkem Fokus auf Wiederverwendbarkeit von Spezifikationsteilen entworfen. Sie ist daher stark strukturiert und verwendet Konzepte wie Namen und Namensräume, um das einfache Verstehen einer Spezifikation durch Menschen zu fördern. Für die maschinelle Verarbeitung sind viele dieser Konstrukte unnötig und bedeuten einen Verarbeitungsoverhead. Daher verwaltet und verarbeitet die Laufzeitumgebung für COMQUAD-Komponenten diese Informationen in einem XML-basierten QoS-Deskriptor, welcher für die Verarbeitung durch die Maschine optimiert wurde.

Ziel der Diplomarbeit soll es sein, ein einfaches Spezifikationswerkzeug für Komponenten mit QoS-Beschreibungen zu entwickeln. Das Werkzeug soll es ermöglichen, CQML+-Spezifikationen zu parsen und daraus XML QoS-Deskriptoren zu generieren. Dazu ist zunächst das bereits vorliegende XML-Schema für QoS-Deskriptoren zu analysieren und ggf. weiter anhand der Erfahrungen aus der Diplomarbeit von Brit Engel zu optimieren.

Da das zu entwickelnde Spezifikationswerkzeug Teil eines Toolsets werden soll, ist die CQML+-Spezifikation zunächst in eine Instanz des CQML+-Metamodells (Repository) zu übersetzen, bevor der XML-Deskriptor generiert wird. Um die Wiederverwendung einzelner Teile in anderen Werkzeugen zu unterstützen, ist auf Modularität zu achten, insbesondere sollen Parser/Typechecker, Repository und Codegenerierung möglichst stark entkoppelt werden.

Es sind folgende Teilaufgaben zu lösen:

  1. Analyse und Optimierung des XML-Schemas
  2. Vervollständigung des CQML+-Parsers
  3. Entwurf und Umsetzung eines Typecheckers
  4. Entwurf und Umsetzung des Repositories
  5. Entwurf und Umsetzung der Codegenerierung

Einsatz von Metriken und Programmierrichtlinien bei der objektorientierten Softwareentwicklung

Zielstellung:

Software-Metriken werden in der Analysephase, Entwurfsphase, Implementierungsphase als auch in der Test- und Wartungsphase bei der Softwareentwicklung angewendet. Der wachsende Anspruch an Qualität und Zuverlässigkeit von Softwareprodukten führt zu der Notwendigkeit, Software objektiv zu bewerten, d.h. „messen“ zu können. Programmierrichtlinien dienen der besseren Lesbarkeit und damit Wartbarkeit des Quelltextes sowie der Vermeidung potenzieller Fehlerquellen. So existieren beispielsweise Namenskonventionen für Bezeichner oder Richtlinien für Klammersetzung.

 Ziel dieser Diplomarbeit ist es, einen Überblick über existierende objektorientierte Metriken und Programmierrichtlinien für die Programmiersprache Java zu geben und den Einsatz im Entwurf und Implementierung beispielhaft zu untersuchen.

Folgende Schwerpunkte sind zu betrachten:


Usability bei administrativen Aufgaben am Beispiel von ProjectWeb

Zielstellung:

Das Einrichten dynamischer Webplattformen ist erfahrungsgemäß eine komplexe Aufgabe. Datenbanken müssen konfiguriert, Webserver, sowie Applikationsserver installiert werden etc.

Beim Einrichten eines Projektes mit ProjectWeb (JSP/EJB-basierte Webumgebung zur Unterstützung verteilter Projekte entwickelt am Lehrstuhl Softwaretechnologie) ist zur Zeit vor allem Handarbeit zu leisten. In mehreren Schritten muß der Applikationsserver JBoss installiert, an das System des Serverrechners angepaßt werden, sowie die ProjectWeb-Software projektspezifisch konfiguriert und installiert werden. Dabei muß der Administrator zum Beispiel XML-Konfigurationsdateien bearbeiten, oder auch das ProjectWeb-Datenschema in einer Datenbank erzeugen. So benötigt er außer Kenntnissen über eine vorhandene Datenbank und über das zu erzeugende Projekt noch Wissen über den Aufbau der ProjectWeb-Distribution, sowie über die Konfiguration des JBoss Applikationsservers.

Ziel der Arbeit ist, ein Installationsprogramm für ProjectWeb zu entwickeln, das sich an Richtlinien bzw. Regeln der Bedienbarkeit orientiert. Es soll Details über den Aufbau der ProjectWeb-Distribution sowie über die JBoss-Konfiguration vor dem Administrator verbergen und eine benutzerfreundliche Oberfläche für die Eingabe der restlichen Informationen anbieten. Funktionen dieses Installationsprogrammes sollen die Installation des Applikationsservers, die (ggf. mehrfache) projektspezifische Konfiguration (Instantiierung) und Installation (Deployment) der ProjectWeb-Software und die Verwaltung der Instanzen für verschiedene Projekte sein.

Es sind folgende Teilaufgabe zu lösen:


Sicherung der Integrität von Softwarekomponenten

Zielstellung:

Im DFG-geförderten Forschungsprojekt COMQUAD wird eine Komponentenarchitektur entwickelt, welche die zusagbare Erfüllung nicht-funktionaler Eigenschaften wie Dienstgüteparameter oder Sicherheitseigenschaften durchsetzen soll. Diese Arbeit beschäftigt sich mit der Integrität der Komponenten als einem Aspekt der Sicherheitsanforderungen. Dabei geht es zunächst um die Überprüfung der Integrität des Programmcodes, um unerkannte Modifikationen zu verhindern. Existierende Ansätze zur Zertifizierung von Programmcode sind hinsichtlich ihrer Eignung für die beschriebene Komponentenarchitektur zu bewerten. Die Zertifizierung von Programmcode soll auch zum Schutz des Rechners vor den Programmen beitragen, indem nur Software aus vertrauenswürdigen Quellen ausgeführt wird. Als zweiter Schwerpunkt der Arbeit sind Möglichkeiten zur Beschreibung der Vertrauenswürdigkeit von Komponenten (z. B. Hinweise auf den Hersteller und die durchgeführten Tests) aufzuzeigen und deren Nutzung in der Komponentenarchitektur vorzusehen.

In dieser Arbeit ist ein Konzept für die Integration dieser beiden Aspekte in das Containerkonzept des Projektes COMQUAD zu entwickeln und prototypisch zu implementieren. Die Anforderungen an die Komponenteninfrastruktur und an die Laufzeitumgebung sind herauszuarbeiten. Die Ansätze sind abschließend bzgl. der durch sie erreichbaren Sicherheit zu bewerten.

Schwerpunkte:


Entwicklung einer CQML+-Basisbibliothek

Zielstellung:

Bei der Entwicklung von Softwaresystemen spielen neben den funktionalen auch nicht-funktionale Eigenschaften eine wichtige Rolle. Beispiele für solche Eigenschaften sind Antwortzeiten von Systemen, Verzögerungen bei der Datenübertragung, Speicherbedarf etc. Das Projekt COMQUAD beschäftigt sich mit der Spezifikation und Durchsetzung solcher Eigenschaften im Kontext komponentenbasierter Systeme sowie mit der entsprechenden Entwicklungsmethodik. Zur Spezifikation nicht-funktionaler Eigenschaften wird CQML+ verwendet. Diese Sprache erlaubt es, quantitative Maße nicht-funktionaler Systemeigenschaften (sogenannte Charakteristiken) zu definieren, über welche anschließend Einschränkungen formuliert werden können.

CQML+ ist auf starke Wiederverwendbarkeit ausgelegt. Durch die Trennung von Charakteristiken und Einschränkungen ist es beispielsweise möglich einmal definierte Charakteristiken wiederzuverwenden.

Ziel der Arbeit soll es nun sein, eine Bibliothek von Basischarakteristiken aufzubauen, die um Nutzereigenschaften strukturiert erweiterbar ist. Die Verwendung und Verwaltung einer solchen Basisbibliothek innerhalb eines Spezifikationswerkzeuges muss ebenfalls möglich sein. Des weiteren ist eine geeignete Suchstrategie zum Finden von Charakteristiken in der Bibliothek zu entwickeln.

Bei der Konzeption der Bibliothek ist auf die Integration bereits existierender Werkzeugbausteine zu achten. Im wesentlichen handelt es sich dabei um die abstrakte Syntax von CQML+ und den CQML+-Parser.

Im Einzelnen sind die folgenden Teilaufgaben zu lösen:


Konzeption eines Codegenerators zur Überwachung nicht-funktionaler Eigenschaften

Zielstellung:

Bei der Entwicklung von Softwaresystemen spielen neben den funktionalen auch nicht-funktionale Eigenschaften eine wichtige Rolle. Beispiele für solche Eigenschaften sind Antwortzeiten von Systemen, Verzögerungen bei der Datenübertragung, Speicherbedarf etc. Das Projekt COMQUAD beschäftigt sich mit der Spezifikation und Durchsetzung solcher Eigenschaften im Kontext komponentenbasierter Systeme sowie mit der entsprechenden Entwicklungsmethodik. Zur Spezifikation nicht-funktionaler Eigenschaften wird CQML+ verwendet. Diese Sprache erlaubt es, quantitative Maße nicht-funktionaler Systemeigenschaften (sogenannte Charakteristiken) zu definieren, über welche anschließend Einschränkungen formuliert werden können.

Zur Laufzeit einer Anwendung ist es nötig, zu überwachen, daß die spezifizierten zusagbaren nicht-funktionalen Eigenschaften auch tatsächlich eingehalten werden. Da der Softwareentwickler beliebige Maße mit prinzipiell beliebiger Semantik definieren kann, ist es sinnvoll, den Überwachungscode aus der Spezifikation der Charakteristik abzuleiten.

Ziel der Arbeit ist die Entwicklung eines Konzepts zur Generierung von Überwachungscode aus einer QoS-Spezifikation in CQML+. Im Rahmen dieser Arbeit soll dabei zunächst das Aufgabengebiet exploriert und ein Prototyp im Sinne eines Machbarkeitsnachweises erstellt werden.

Dazu ist zunächst ein Konzept für die Überwachung von QoS-Eigenschaften zur Laufzeit zu entwickeln, das Möglichkeiten zur Integration characteristik-spezifischen Messcodes bereitstellt. Anschließend ist ein Konzept zur Erzeugung solchen Codes aus Charakteristik-Spezifikationen zu entwickeln, ein einfacher Generator für charakteristik-spezifischen Messcode zu entwerfen und prototypisch umzusetzen.

Es sind jeweils prinzipielle Problemstellungen und Optimierungsmöglichkeiten aufzuzeigen.

Im Einzelnen sind die folgenden Teilaufgaben zu lösen:


 

Entwurf und prototyische Realisierung eines Java-basierten, WebDAV-fähigen Content-Repositorys für ein Information-Retrieval-System

Zielstellung:

Content-Repositories beherbergen und verwalten digitale Informationen jeglicher Art. Der Zugriff auf diese Informationen geschieht weitgehend über spezielle Anwendungen. Mit der Bereitstellung der WebDAV-Erweiterung des Standard-Internet-Protokolls HTTP können beliebige WebDAV-konforme Clients auf ein solches Repository lesend und schreibend zugreifen.

Ziel dieser Arbeit ist es, beispielhaft für das Information-Retrieval-System inter:gator der Firma interface projects GmbH, die o.g. Erweiterung vorzunehmen. Dabei soll inter:gator mit dem Apache Jakarta-Slide-Framework integriert werden, das bereits den Zugriff auf Informationen durch eine WebDAV-Schnittstelle gewährleistet. inter:gator beinhaltet Verfahren zur Modellierung semantischer Zusammenhänge im Content-Repository mittels Ontologien. Die WebDAV-Schnittstelle soll Anwendern eine Dateisystemsicht auf virtuelle Verzeichnisstrukturen bereitstellen.

Schwerpunkte:


 

SQL-Codegenerierung in der metamodellbasierten Architektur des Dresden OCL Toolkit

Zielstellung:

Die Unified Modelling Language (UML) liefert mächtige Konzepte für die objektorientierte Modellierung einschließlich der Formulierung von Integritätsbedingungen mit Hilfe der Object Constraint Language (OCL). Ein Anwendungsfall dafür ist die modellgetriebenen Entwicklung von Datenbank-Anwendungen. Aufbauend auf den Arbeiten der TU Dresden zum Dresden OCL Toolkit soll die SQL-Codegenerierung in die metamodellbasierte OCL20-Architektur integriert werden.


 

Java-Codegenerierung und Instrumentierung von Java-Programmen in der metamodellbasierten Architektur des Dresden OCL Toolkit

Zielstellung:

Die Unified Modelling Language (UML) liefert mächtige Konzepte für die objektorientierte Modellierung einschließlich der Formulierung von Integritätsbedingungen mit Hilfe der Object Constraint Language (OCL). Ein Anwendungsfall dafür ist die modellgetriebenen Entwicklung von Java-Anwendungen. Aufbauend auf den Arbeiten der TU Dresden zum Dresden OCL Toolkit soll die Java-Codegenerierung und Instrumentierung von Java-Programmen an die metamodellbasierte OCL20-Architektur angepasst werden.


 

Integration von Together Control Center mit OCL2SQL

Zielstellung:

Die Unified Modelling Language (UML) liefert mächtige Konzepte für die objektorientierte Modellierung persistenter Daten einschließlich der Formulierung von Integritätsbedingungen mit Hilfe der Object Constraint Language (OCL). Berücksichtigt man den gegenwärtigen Stand der Technik, so ist die Implementierung persistenter Objekte in relationalen Datenbanken mit Hilfe der Sprache SQL in den meisten realen Anwendungen die einzige Alternative. Erste Forschungsarbeiten in diesem Bereich haben die Technologie entwickelt, aus UML-Modellen/OCL-Constraints relationale Datenbankschemas angereichert um SQL-Constraints automatisch zu erzeugen. Der Codegenerator OCL2SQL des Dresden OCL Toolkit generiert aus OCL1.3-Invarianten SQL-Definitionsanweisungen zur Überprüfung von Constraints innerhalb des Datenbanksystems. OCL2SQL gibt es derzeit ausschließlich als eigenständiges Tool, welches UML-Modelle in Form von XMI-Dateien importiert. Der Codegenerator soll nun im Rahmen dieser Diplomarbeit in die UML-Umgebung Together Control Center integriert werden.