Zum Hauptinhalt springen

Universität - GH Essen

Universität - GH Essen
Fachbereich Mathematik und Informatik
Spezifikation von Software Systemen 

Prof. Dr. Michael Goedicke

 

Arbeitsschwerpunkte

Inkrementelle Softwareentwicklung

Die Entwicklung großer Softwaresysteme benötigt eine disziplinierte Vorgehensweise. Auch sind während eines solchen Projektes viele Anforderungs-, Design- und Implementierungsaspekte noch nicht bekannt oder endgültig festgelegt, sondern werden erst im Laufe des Projekts erkannt. Nun stellt sich die Frage, wie der Entwicklungsprozeß dann organisiert werden sollte. Dazu zählt auch die entsprechende Unterstützung durch Formalismen, Repräsentationsschemata und Werkzeuge. Beide Aspekte der Softwareentwicklung - die Eigenschaften des Produkts zu verschiedenen Entwicklungszeitpunkten und der Entwicklungsprozeß selber - müssen entsprechend strukturiert werden. Beide Beschreibungen müssen in Form von unabhängigen Komponenten strukturiert werden, damit die o.a. Aspekte in flexibler Art und Weise angelegt, geändert und kombiniert werden können. Anstatt also statische Systeme und Entwicklungsprozesse zu beschreiben, ist die Vorwegnahme von möglichen Änderungen notwendig.

Verteilte Softwarekomponenten

Durch die o.a. Vorgaben muß jede Beschreibung von Softwareaspekten (Anforderungen, Design und Implementierung) in Komponenten organisiert werden. Um unabhängige Komponenten zu erhalten, ist es wichtig, Schnittstellen zwischen diesen und entsprechende abstrakte semantische Eigenschaften in den Schnittstellen zu definieren. Das Gesamtsystem und dessen Struktur wird dann durch die Verbindung von Komponenten an ihren Schnittstellen beschrieben. Die Eigenschaften der Spezifikation müssen natürlich auch strukturiert werden. Ein allgemeines Softwarekomponentenmodell zusammen mit einem formalen Evaluierungsschema ist entwickelt worden. Weiterhin wurde die Architektur-Beschreibungssprache (engl. Architecture Description Language, ADL) Pi entwickelt, die viele der o.a. Komponenteneigenschaften verwirklicht. Verschiedene Softwarearchitekturen für interaktive und verteilte Anwendungen sind mit Hilfe der Pi-Sprache entwickelt worden. Diese Arbeit wird zusammen mit Herbert Weber (FhG ISST Berlin /Dortmund/CIS TVB Berlin), Ernst-Erich Doberkat (Softwaretechnologie, Universität Dortmund) und L. Budach (Universität Potsdam) durchgeführt. Die aktuelle Forschung beinhaltet neben der Weiterentwicklung der Pi-Sprache bzgl. Verteilung und Performance Evaluierung auch die Erzeugung einer CORBA-kompatiblen verteilten Implementation einer Pi-Architekturbeschreibung sowie das Ableiten eines Performance Modells in QSDL.

Sichtenorientierte Softwareentwicklung und Systematische Konstruktion von Entwicklungsmethoden

An der Entwicklung von großen Softwaresystemen sind i. A. mehrere Entwickler beteiligt, z.B. Systemanalytiker, Datenbankdesigner, Programmierer und Anwender. Diese beteiligten Personen haben unterschiedliche Sichten auf das zu erstellende Softwaresystem. Alle Beteiligten verwenden normalerweise unterschiedliche Notationen, um ihre Sicht auf das System zu beschreiben. Das ViewPoints-Rahmenwerk - entwickelt in Zusammenarbeit mit A. Finkelstein (University College, London), J. Kramer und B. Nuseibeh (beide Imperial College, London) - stellt ein universelles Rahmenwerk zur Darstellung der unterschiedlichen Sichtweisen und der Abhängigkeiten zwischen diesen Sichtweisen dar. Ein Softwaresystem wird durch eine Menge von unterschiedlichen ViewPoints beschrieben. Diese ViewPoints können unterschiedliche Notationen zur Beschreibung verwenden. Durch entsprechende Aktionen werden die Beschreibungen auf Inkonsistenzen überprüft.

Das ViewPoints-Rahmenwerk wird ebenfalls zur systematischen Konstruktion von Entwicklungsmethoden genutzt, dabei werden vollständige Methoden als eine Menge von kooperierenden ViewPoints beschrieben. Das Auffinden, Behandeln und Entfernen von Inkonsistenzen wird in Form von Regeln angegeben.Von besonderem Interesse sind dabei ViewPoints, die einen reibungslosen Übergang zwischen den Anforderungen und dem Design ermöglichen. Philosophie hinter dem ViewPoints-Rahmenwerk ist ein `Leben mit Inkonsistenzen', d.h. Inkonsistenzen werden nicht traditionell als Fehler betrachtet, sondern als Information, die den Entwicklungsprozeß voran treibt.

Zur Zeit wird das ViewPoints-Rahmenwerk für die Methodenentwicklung und für die Anforderungsbeschreibung von Groupware-Systemen verwendet. Außerdem wird das ViewPoint Rahmenwerk mit Hilfe von modularen Graphgrammatiken formalisiert.

Graphen und Graphersetzungen

Die Popularität von Repräsentation-Schemata wie z.B. Datenfluß Diagramme, EER-Notationen und OOA/OOD-Diagramme läßt darauf schließen, daß mit ihrem zugrundeliegenden Datenmodell - Graphen - statische Eigenschaften von Entitäten und die Struktur ihrer Beziehungen intuitiv beschreibbar sind. Um Änderungen und Dynamik in solchen graphbasierten Repräsentationen zu beschreiben, ist eine strukturierte und abstrakte Methode Graphen zu modifizieren notwendig. Graphersetzungsregeln und Graphgrammatiken dienen diesem Zweck. Jedoch verhindern es solche lokalisierten Modifikationen nicht, daß Graphen beliebig unstrukturiert wachsen. Folglich reichen Graphgrammatiken alleine nicht aus, um Graphen in einer natürlichen und problembezogen Art und Weise zu strukturieren. Es ist daher wünschenswert, Graphmodifikationen bzgl. verschiedener Granularitätsstufen zuzulassen. Zu diesem Problem haben wir ein Graphgrammatik-Modulkonzept entwickelt, daß es erlaubt, Typen von Graphen inklusive Graphersetzungsregeln, die auf Graphen eines gegebenen Typs operieren, zu definieren. Während andere Graphgrammatik-Modulkonzepte sich mit Graphersetzung auf einer sehr abstrakten Ebene beschäftigen, haben wir unseren Ansatz Problemen des Software Engineering gewidmet. So wurde unser Modulkonzept inspiriert durch den Gedanken der wiederverwendbaren Software-Komponente. Wir wenden unseren modularen Graphgrammatik-Ansatz auf unterschiedlichste Problemgebiete an, z.B. traditionelle Probleme des Software Engineering wie die formale Spezifikation graphischer Benutzungsoberflächen und die Formalisierung von Software Architekturen, interdisziplinäre Anwendungen wie linguistische Probleme sowie auch für Requirements Engineering in schlecht definierten Problem-Domänen und zur Repräsentation der Semantik verteilter Objekte. Die Arbeiten erfolgen in Koordination mit H. Ehrig (Technische Universität Berlin).

Computerunterstützte Gruppenarbeit

Das Forschungsgebiet Computerunterstützte Gruppenarbeit (engl. Computer-Supported Cooperative Work, CSCW) beschäftigt sich mit dem Design von Softwaresystemen, die die Arbeit von interdisziplinären, verteilten Arbeitsgruppen unterstützen sollen. Diese Softwaresysteme werden häufig als Groupware bezeichnet. Einige Beispiele für bereits existierende Groupware-Systeme sind Mehrbenutzereditoren, Entscheidungsunterstützende Systeme für Gruppen und Workflow-Management-Systeme.

Unsere Arbeitsgruppe beschäftigt sich mit der Entwicklung einer Entwicklungs- und Laufzeitumgebung für Groupware-Systeme. Da das Forschungsgebiet Computerunterstützte Gruppenarbeit interdisziplinär ist, müssen bei der Entwicklung von Groupware-Systemen nicht nur technische Aspekte, sondern auch Aspekte aus der Soziologie, der Organisationstheorie und der Arbeitsphysiologie berücksichtigt werden. Somit wird eine Spezifikationsmethode auf einem hohen Abstraktionsniveau benötigt, die dem Entwickler die Möglichkeit bietet, sich auf das eigentliche Anwendungsprogramm und dessen Benutzbarkeit zu konzentrieren anstatt auf technische Einzelheiten. Natürlich soll das zu erstellende Groupware-System die Grundsätze der Softwaretechnik unterstützen, z. B. Modularität, Vorwegnahme von möglichen Änderungen, Unterstützung der inkrementellen Entwicklung, etc. Unser Ansatz verwendet das ViewPoints-Rahmenwerk.

Semantik-Verhandlung in dynamischen verteilten Systemen

Für die inkrementelle Entwicklung und dynamische Evolution von konfigurierbaren Software Systemen basierend auf verteilten Komponenten ist die Verhandlung der Komponenten-Semantik ein wichtiger Aspekt. Zusätzlich zur Repräsentation und Überprüfung von semantischen Eigenschaften zur Designzeit ist dynamische semantikgesteuerte Komponenteninteraktion zur Laufzeit besonders wichtig. Unserer Ansatz zur Realisierung von Semantikverhandlung in flexiblen und konfigurierbaren verteilten Systemen benutzt als Technik modulare Graphgrammatiken: Repräsentation und Überprüfung von semantischen Eigenschaften mit Graphersetzungstechniken wird begleitet von Konzepten zur Handhabung von Modularität, Skalierbarkeit und dynamischem Verhalten. Wir motivieren unseren Ansatz durch die Integration von semantikgesteuerter Objektinteraktion in verteilten und dynamischen CORBA-Systemen (basierend auf CORBA's Dynamic Invocation Interface).
 

Projekte

QUAFOS - Quantitative Analyse von formal spezifizierten verteilten Softwaresystemen

Das Forschungsvorhaben dient der Entwicklung von Methoden und Werkzeugen zur entwurfsbegleitenden modellgestützten Leistungsanalyse von verteilten Systemen. Als Ausgangspunkt zur Konstruktion von quantitativ bewertbaren Modellen dienen die Spezifikationssprachen Pi für verteilte modulare Systeme und die SDL-Erweiterung QSDL zur quantitativen Bewertung von Kommunikationsprotokollen. QUAFOS wird von der Deutschen Forschungsgemeinschaft seit 1996 finanziert und ist ein Gemeinschaftsprojekt der Arbeitsgruppen `Spezifikation von Softwaresystemen' (M. Goedicke) und `Systemmodellierung' (B. Müller-Clostermann).

Domain Specific Software Development using ViewPoints (ARC)

Das Ziel dieses Projektes ist es, domänenspezifische Informationen im Bereich der Softwareentwicklung einzuführen und die Rollen und Sichten der verschiedenen Beteiligten am Softwareentwicklungsprozeß darzustellen. Das Projekt wird in Zusammenarbeit mit Jeff Kramer, Bashar Nuseibeh und Anthony Finkelstein durchgeführt.

RENOIR

RENOIR ist ein Netzwerk von Forschungsgruppen, die im Bereich Requirements-Engineering tätig sind. Die Aufgabe von RENOIR ist es, Koordinationsmechanismen und Infrastrukturen bzgl. der Forschung im Requirements-Engineering Bereich zu entwickeln. Es wird finanziert über das vierte Rahmenwerk Programm (FP4) der Europäischen Gemeinschaft im Rahmen der Forschungsförderung innerhalb der Informationstechnologie (ESPRIT).
 

Veröffentlichungen

  • Goedicke, M., Meyer, T., Piwetz, C.: A High Level Design Framework for Software Systems, akzeptiert zur Veröffentlichunng in Transactions of the SDPS Journal of Integrated Design and Process Science, 1997.
  • Goedicke, M., Meyer, T.: Design and Evaluation of Distributed Component-Oriented Software Systems, Second Workshop on Component Oriented Programming (WCOP 97), Jyväskylä, Finnland, gekürzte Versionen auch als Technical Report, Turku Centre for Computer Science, und WCOP 97 Paper Workshop Reader, Springer, 1997.
  • Goedicke, M., Meyer, T., Piwetz, C.: On Detecting and Handling Inconsistencies in Integrating Software Architecture Design and Performance Evaluation, eingereicht, 1998.
  • Goedicke, M.: Java in der Programmierausbildung: Konzept und erste Erfahrungen, Proceedings STJA 97 - SmallTalk and Java in Industry and Education, Ilmenau, Deutschland, 1997, auch in Informatik Spektrum, Band 20, Heft 6, Springer, Dezember 1997.
  • Goedicke, M., Piwetz, C.: On Modelling Inconsistencies in Software Development Processes with Graph Based Notations, Workshop ``Living with Inconsistencies'', Int. Conference on Software Engineering, Boston, USA, 1997.
  • Goedicke, M., Meyer, T.: Dynamic Semantics Negotiation in Distributed and Evolving CORBA Systems: Towards Semantic-Directed System Configuration,, Proc. 4th International Conference on Configurable Distributed Systems, Annapolis, USA, 1998.
  • Goedicke, M., Nuseibeh, B.: The Process Road between Requirements and Design, Proc. 2nd World Conference on Integrated Design and Process Technology, Society for Design and Process Science, Austin, USA, 1996.
  • Goedicke, M., Sucrow, B. E.: Towards a Formal Specification Method for Graphical User Interfaces using Modularized Graph Grammars, Proc. 8th International Workshop on Software Specification and Design, Schloss Velen, Deutschland, IEEE Computer Society Press, 1996.
  • Goedicke, M., Sucrow, B. E.: Towards A Flexible Software Architecture of Interactive Systems, Critical Issues in User Interface Systems Engineering, Springer, 1996.

     

Produkte und Werkzeuge

PIES

Das Pi-Editier-System (PIES) ist eine Entwicklungsumgebung für die Pi-Sprache. Es erlaubt Pi-Spezifikationen zu editieren und auf kontextfreie und kontextsensitive Korrektheit zu überprüfen, sowie Konfigurationen grafisch zu visualisieren und Zielcode für C++ und SunSoft's CORBA-Implementation NEO zu generieren. Ein WWW-basierter Zugriff auf PIES sowie Java-Codegenerierung befinden sich in der Entwicklung.

Graphersetzungsmaschine

Die Graphersetzungsmaschine wurde in der funktionalen Programmiersprache ML implementiert. Sie erlaubt Graphen, Graphersetzungsregeln und Graphgrammatiken zu definieren, sowie Graphmorphismen und Graphsprachen zu berechnen und Graphersetzungsschritte manuell einzeln oder automatisiert anzuwenden. Kanten und Knoten können mit beliebigen ML Ausdrücken markiert werden oder mit Termen, deren Unifikation als Bedingung in den Graphersetzungsschritt einfließt. Aktuelle Arbeiten sind eine grafische Benutzungsoberfläche und die Integration in CORBA.

Kontaktadresse:

Prof. Dr. Michael Goedicke
Universität - GH Essen
Fachbereich Mathematik und Informatik
Spezifikation von Software Systemen
45127 Essen
Tel.: (0201) 183-2168, Fax: -2419
goedicke@informatik.uni-essen.de