Universität Karlsruhe
Software Engineering

Beschreibung

Objektorientierte Softwareentwicklung und Komponentensysteme.

Die Entwicklung komplexer Systeme ist nach wie vor eine schwierige Aufgabe. Entwickler müssen viele Aspekte, zahlreiche Abhängigkeiten und verschiedenste manchmal sogar widersprüchliche Anforderungen berücksichtigen.

Um die Komplexität bewältigen zu können, zerlegen Entwickler Systeme in handhabbare Teile - genannt Module oder Komponenten. Diese Teile sollten kohärente Aspekte kapseln; Änderungen in den Anforderungen sollten keine Änderungen verursachen, die über das ganze System verteilt sind. Ein allgemeines Vorgehen zur Dekomposition derart, daß alle Aspekte die Gegenstand der Änderung sind gekapselt sind, existiert leider nicht. Dekomposition kann entlang verschiedener Dimensionen geschehen wobei jede Dimension einige Aspekte gut kapselt während andere über das ganze System verteilt sind.

Komposition von Komponenten erfordert beinahe immer auch eine Adapation. Komponentenentwickler können die Umgebung, in die die Komponente eingesetzt wird, nicht vorhersehen; verschiedene Umgebungen erfordern verschiedene Modularisierungen.

Die manuelle Anpassung von Komponenten ist eine fehleranfällige und lästige Aufgabe. Stattdessen sollten Spezifikationen die notwendigen Anpassungen beschreiben. Programme, die aus diesen Spezifikationen generiert werden, führen die Komposition durch und nehmen notwendige Anpassungen automatisch vor.

Unsere Ansätze führen sowohl statische wie auch dynamische Anpassungen durch:

  • Metaprogramme, die in Java definiert sind, nehmen Komponenten als Eingabe und liefern angepasste Komponenten. Dazu stellt die COMPOST Bibliothek grundlegende Datenstrukturen und Transformationen zur VerfĂĽgung.
  • Komplexe Daten werden zur Laufzeit angepasst: XML Schemas beschreiben Datentypen, die von einer Komponenten geliefert und von einer anderen benötigt werden. XSLT Skripte definieren die Anpassung dazwischen. Ein generierter Hochgeschwindigkeitsadapter fĂĽhrt die eigentliche Anpassung durch. Das aXMLerate Projekt entwickelt derartige Generatoren.

Einen Überblick über unsere Kompetenzen im Bereich Software-Komposition sowie weitere detaillierte Informationen zu diesem Thema finden Sie auf unserer Software-Kompositions-Seite.

Projekte in diesem Bereich

Abgeschlossen

aXMLerate
aXMLerate - ein Werkzeugkasten zur schnellen XML Verarbeitung
CATE
Analyse- und Transformationsarchitektur fĂĽr Komponentensysteme
COMPOST
COMPOST - Das Kompositionssystem
EASYCOMP
Easy Composition in Future Generation Component Systems
IPD Web Reengineering
Software altert. So auch unsere alten 'neuen Webseiten'. Wartung und Pflege erzwungen eine Runderneuerung.
IPD Web-Site
Dynamische Generierung von HTML-Dokumenten aus Datenbankinformationen
MOST
Media Oriented Systems-Transport
VizzEditor
VizzEditor - Ein Rahmen zur schnellen Entwicklung von Programmvisualisierungen

Veröffentlichungen im Bereich

2004
PulvermĂĽller, Speck, XOpT - XML-Based Composition Concept
Heuzeroth, Heuzeroth, Aspektorientierte Konfiguration und Adaption von Komponenteninteraktionen
 
2003
Kleine, Erweiterung eines Metaprogrammiersystems um einen iterativ aktualisierbaren Zwischensprachaufbau
Heuzeroth, Heuzeroth, Löwe, Löwe, Mandel, Mandel, Generating Design Pattern Detectors from Pattern Specifications
Van Der Straeten, Speck, PulvermĂĽller, ClauĂź, Correctness of Model-Based Software Composition - Proceedings
Speck, PulvermĂĽller, Heuzeroth, Validation of Business Process Models
Heuzeroth, Heuzeroth, Löwe, Löwe, Understanding Architecture Through Structure and Behavior Visualization, Chapter 9 in book: Software-Visualization - From Theory to Practice
Heuzeroth, Heuzeroth, Holl, Holl, Högström, Högström, Löwe, Löwe, Automatic Design Pattern Detection
 
2002
Schonger, PulvermĂĽller, Sarstedt, Aspect-Oriented Programming and Component Weaving: Using XML Representations of Abstract Syntax Trees
PulvermĂĽller, Composition and Correctness
Speck, PulvermĂĽller, ClauĂź, Versioning in Software Modeling
Noga, Schott, Löwe, Lazy XML Processing
Schmidt, Realisierung eines invertierenden C-Zerteilers fĂĽr COMPOST
Holl, WerkzeuggestĂĽtzte Erkennung von statischen und dynamischen Mustern in objektorientierter Software
Löwe, Noga, Scenario-Based Connector Optimization - An XML Approach
Löwe, Noga, A Lightweight XML-based Middleware Architecture
Heuzeroth, Holl, Löwe, Combining Static and Dynamic Analyses to Detect Interaction Patterns
Löwe, Noga, Gaul, Foundations of Fast Communication via XML
 
2001
Löwe, Ludwig, Schwind, Understanding Software - Static and Dynamic Aspects
Schäfer, Realisierung eines invertierenden C-Präprozessors für COMPOST
Heuzeroth, Holl, Löwe, Combining Static and Dynamic Analyses to Detect Interaction Patterns
Goerigk, PulvermĂĽller, Speck, Sprachen, Architekturen und neue objektorientierte Softwaretechniken, TR No. 2018
PulvermĂĽller, Speck, D'Hondt, DeMeuter, Coplien, Feature Interaction in Composed Systems, ECOOP 2001 - Proceedings, TR No. 2001-14
Speck, PulvermĂĽller, Versioning in Software Engineering
Mehner, Mezini, PulvermĂĽller, Speck, Aspektorientierung - Workshop der GI-Fachgruppe 2.1.9 Objektorientierte Software-Entwicklung
PulvermĂĽller, Speck, Coplien, A Version Model for Aspect Dependency Management
PulvermĂĽller, Speck, Coplien, D'Hondt, DeMeuter, Position Paper: Feature Interaction in Composed Systems
Speck, PulvermĂĽller, Feature Modeling
Heuzeroth, Heuzeroth, Löwe, Löwe, Ludwig, Ludwig, Assmann, Assmann, Aspect-Oriented Configuration and Adaptation of Component Communication
Jaeger, Heuzeroth, Assmann, Automating the Management of Reusable System Components
Dieterich, Generierung von Graphersetzern als XML-Transformatoren
Gaul, Löwe, Noga, Specification in a large Industry Consortium - The MOST Approach
Löwe, Liebrich, VizzScheduler - A Framework for the Visualization of Scheduling Algorithms
 
2000
Noga, Erzeugung validierender Zerteiler aus XML Schemata
Speck, PulvermĂĽller, Component Frameworks for Software Generators
PulvermĂĽller, Generative and Component-Based Software Engineering
Speck, PulvermĂĽller, Mezini, Reusability of Concerns
PulvermĂĽller, Rashid, Speck, Supporting Composition using Assertions
Klaeren, PulvermĂĽller, Rashid, Speck, Aspect Composition applying the Design by Contract Principle
Ludwig, Ludwig, Heuzeroth, Heuzeroth, Metaprogramming in the Large
Fellhauer, Verteilte Gruppenarbeitssysteme im heterogenen Rechnerumfeld
 
1999
Assmann, Assmann, Aspect Weaving by Graph Rewriting
Heuzeroth, Reussner, A Meta-protocol and Type System for the Dynamic Coupling of Binary Components
Heuzeroth, Reussner, Dynamic Coupling of Binary Components and its Technical Support
Speck, Rashid, PulvermĂĽller, Chitchyan, Individual Software Development in Generative Programming
PulvermĂĽller, Aspekte in verteilten Umgebungen
Assmann, Assmann, Ludwig, Ludwig, Introducing Connections into Classes with Static Metaprogramming
PulvermĂĽller, Klaeren, Speck, Aspects in Distributed Environments
Login
Links