Technisch-wissenschaftliches Programm

Best-Paper-Award
gesponsert von
Eine Übersicht über das vollständige Programm der SE2010 finden Sie unter Programm.

Programm am Donnerstag, 25.02.2010

Begrüßung
09:00 - 09:15 Uhr
Prof. Dr. Gregor Engels
Tagungsleiter
Prof. Dr. Nikolaus Risch
Präsident der Universität Paderborn
Prof. Dr. M. Goedicke
GI - FB Softwaretechnik
 
Keynote 1
09:15 - 10:15 Uhr

Prof. Dr. Manfred Nagl
RWTH Aachen

Software-Werkzeuge - Grundlage für effiziente, komplexe Entwicklungsprozesse


Session Chair:
Wilhelm Schäfer
 
 
Keynote 2
13:30 - 14:30 Uhr

Dr. Rainer Janßen
Münchener Rückversicherungsgesellschaft

Software Engineering und -Architektur in der Praxis


Session Chair:
Gregor Engels
 
 
SE FIT Vorträge
16:00 - 18:00 Uhr

Programm am Freitag, 26.02.2010

 
 

Komponentenmodelle

Session 1
Donnerstag, 25.02.10
10:45 - 12:15 Uhr
Session Chair: Claus Lewerentz

Extending Web Applications with Client and Server Plug-ins

Autoren: Markus Jahn, Christian Doppler Laboratory for Automated Software Engineering
Reinhard Wolfinger, Christian Doppler Laboratory for Automated Software Engineering
Hanspeter Mössenböck, Christian Doppler Laboratory for Automated Software Engineering

Plug-in frameworks support the development of component-based soft-ware that is extensible and customizable to the needs of specific users. However, most current frameworks are targeting single-user rich client applications but do not support plug-in-based web applications which can be extended by end users. We show how an existing plug-in framework (Plux.NET) can be enabled to sup-port multi-user plug-in-based web applications which are dynamically extensible by end users through server-side and client-side extensions.

Representing Formal Component Models in OSGi

Autoren: Marco Müller, Universität Duisburg-Essen
Moritz Balz, Universität Duisburg-Essen
Michael Goedicke, Universität Duisburg-Essen

Formal component models have been subject to research for decades, but current component frameworks hardly reflect their capabilities with respect to composition, dependency management and interaction modeling. Thus the frameworks don’t exploit the benefits of formal component models like understandability and ease of maintenance, which are enabled when software is composed of hierarchical and reusable components that are loosely coupled, self-describing and self-contained. In this contribution, we try to examine the discrepancies between the state of research and the capabilities of an existing module framework, the widely-used OSGi bundle management framework for the Java platform. Based on this we propose modifications and enhancements to the OSGi framework that allow to exploit the benefits of formal component models in OSGi-based applications.

Automated Benchmarking of Java APIs

Autoren: Michael Kuperberg, Karlsruhe Institute of Technology
Fouad ben Nasr Omri, Karlsruhe Institute of Technology
Ralf Reussner, Karlsruhe Institute of Technology

Performance is an extra-functional property of software systems which is often critical for achieving sufficient scalability or efficient resource utilisation. As many applications are built using application programmer interfaces (APIs) of execution platforms and external components, the performance of the used API implementations has a strong impact on the performance of the application itself. Yet the sheer size and complexity of today’s APIs make it hard to manually benchmark them, while many semantical constraints and requirements (on method parameters, etc.) make it complicated to automate the creation of API benchmarks. Additionally, modern execution platforms such as the Java Virtual Machine perform extensive nondeterministic runtime optimisations, which need to be considered and quantified for realistic benchmarking. In this paper, we present an automated solution for benchmarking any large APIs that are written in the Java programming language, not just the Java Platform API. Our implementation induces the optimisations of the Just-In-Time compiler to obtain realistic benchmarking results. We evaluate the approach on a large subset of the Java Platform API exposed by the base libraries of the Java Virtual Machine.
 

Moderne Architekturstile

Session 2
Donnerstag, 25.02.10
14:30 - 15:30 Uhr
Session Chair: Ralf Reussner

Model-Driven Software Migration

Autoren: Andreas Fuhr, Universität Koblenz-Landau
Tassilo Horn, Universität Koblenz-Landau
Andreas Winter, Carl von Ossietzky Universität Oldenburg

In this paper we propose model-driven techniques to migrate legacy systems into Service-Oriented Architectures (SOA). The proposal explores how querying and transformation techniques on TGraphs enable the integration of legacy assets into a new SOA. The presented graph-based approach is applied to the identification and migration of services in an open source Java software system.

Towards an Architectural Style for Multi-tenant Software Applications

Autor: Heiko Koziolek, ABB Corporate Research

Multi-tenant software applications serve different organizations from a single instance and help to save development, maintenance, and administration costs. The architectural concepts of these applications and their relation to emerging platform-asa- service (PaaS) environments are still not well understood, so that it is hard for many developers to design and implement such an application. Existing attempts at a structured documentation of the underlying concepts are either technology-specific or restricted to certain details. We propose documenting the concepts as a new architectural style. This paper initially describes the architectural properties, elements, views, and constraints of this style. We illustrate how the architectural elements are implemented in current PaaS environments, such as Force.com, Windows Azure, and Google App Engine.
 

Modellgetriebene Softwareentwicklung

Session 3a
Freitag, 26.02.10
09:00 - 10:30 Uhr
Session Chair: Mario Winter

Pseudo-Modelldifferenzen und die Phasenabhängigkeit von Metamodellen

Autor: Udo Kelter, Universität Siegen

Beim Vergleichen von Dokumenten werden manchmal Unterschiede angezeigt, die man als inhaltlich belanglos ansieht; solche Differenzen werden als Pseudodifferenzen bezeichnet. Wir betrachten dieses Phänomen für den speziellen Fall des Vergleichs von Modellen, deren Struktur durch ein Metamodell definiert wird, wie z.B. in der UML. Einen großen Teil der Pseudodifferenzen kann man darauf zurückführen, daß Metamodelle selbst abhängig von Entwicklungsphasen auf der Metaebene sind. Die Pseudodifferenzen entstehen hier, weil "spätphasige" Metamodelle benutzt werden. Weitere Typen von Pseudodifferenzen entstehen infolge von Editierkommandos bzw. elementaren Änderungen in abstrakten Syntaxgraphen, die nur durch mehrere zusammenhängende Änderungen auf der nächsttieferen Ebene realisiert werden können, ferner infolge suboptimaler Differenzen.

Objektrelationale Programmierung

Autoren: Dilek Stadtler, FernUniversität Hagen
Friedrich Steimann, FernUniversität Hagen

Bislang gelten vor allem objektrelationale Datenbanken als Antwort auf den sog. Impedance mismatch zwischen den Welten der relationalen Datenhaltung und der objektorientierten Programmierung. Angesichts jüngster Bestrebungen, im Gegenzug relationale Elemente in die objektorientierte Programmierung einzubringen (wie etwa mit Microsofts LINQ-Projekt), zeigen wir auf, wie das inhärent Zeiger dereferenzierende Modell der objektorientierten Programmierung erweitert werden kann, so daß sich auch relationale Teile eines Datenmodells direkt, d.h. ohne Ergänzung umfangreichen stereotypen Codes, in objektorientierte Programme umsetzen lassen.

Indicator-Based Inspections: A Risk-Oriented Quality Assurance Approach for Dependable Systems

Autoren: Johannes Kloos, Fraunhofer Institute Experimental Software Engineering
Frank Elberzhager, Fraunhofer Institute Experimental Software Engineering
Robert Eschbach, Fraunhofer Institute Experimental Software Engineering

We are surrounded by ever more dependable systems, such us driving assistance systems from the automotive domain or life-supporting systems from the medical domain. Due to their increasing complexity, not only the development of but also the quality assurance for such systems are becoming increasingly difficult. They may cause various degrees of harm to their environment. Hence, in order to reduce risks associated with these systems, development as well as quality assurance normally use risk analysis as a basis for constructive and analytical measures against these risks. One of the aims of quality assurance is fault detection and fault forecasting. In this paper, the authors present indicator-based inspections using Goal Indicator Trees, a novel risk-oriented quality assurance approach for fault detection. It can be used to detect faults of different types, like safety faults or security faults. Starting from typical risk analysis results like FMECA and FTA, the approach systematically derives quality goals and refines these goals into concrete quality indicators that guide the indicator-based inspection. Quality indicators can be mapped to concrete checklists and concrete inspection goals in order to support inspectors checking artifacts in a fine-grained way with respect to certain quality properties. The approach is explained and demonstrated with respect to the quality property safety, but tends to be generalizable to further quality properties.
 

Komponenteninteraktion

Session 3b
Freitag, 26.02.10
09:00 - 10:30 Uhr
Session Chair: Bernhard Rumpe

Formale Semantik modularer Zeitverfeinerung in AutoFocus

Autor: David Trachtenherz, Technische Universität München

Moderne automobile eingebettete Systeme bilden hochkomplexe verteilte Steuergerätenetzwerke. Modellbasierte Entwicklung ist ein verbreiteter Ansatz, um dieser Komplexität zu begegnen. AutoFocus ist ein CASE-Werkzeugprototyp zur formal fundierten modellbasierten Entwicklung eingebetteter Systeme. Ein Modell wird hierarchisch aus Komponenten aufgebaut, die über getypte Kanäle kommunizieren. AutoFocus verfügt über eine robuste und übersichtliche formale Semantik: die Kommunikation und Ausführung sind über einen globalen Takt für alle Komponenten synchronisiert. In diesem Artikel stellen wir eine Erweiterung der AutoFocus-Semantik um eine Zeitverfeinerung von Komponenten vor. Diese ermöglicht eine einfachere Modularisierung von Systemen, eine bessere Strukturierung von Verhaltensspezifikationen und eine bessere Abbildung auf die Zielplattform realer eingebetteter Systeme. Gleichzeitig bleiben die Vorteile fest getakteter AutoFocus-Semantik wie starke Kausalität und sichere Terminierung von Berechnungsschritten erhalten.

Modeling and Verifying Dynamic Communication Structures based on Graph Transformations

Autoren: Claudia Priesterjahn, Universität Paderborn
Stefan Henkler, Universität Paderborn
Wilhelm Schäfer, Universität Paderborn
Martin Hirsch, Universität Paderborn

Current and especially future software systems increasingly exhibit socalled self* properties (e.g., self healing or self optimization). In essence, this means that software in such systems needs to be reconfigurable at runtime to remedy a detected failure or to adjust to a changing environment. Reconfiguration includes adding or deleting software components as well as adding or deleting component interaction. As a consequence, the state space of self* systems becomes so complex, that current verification approaches like model checking or theorem proving usually do not scale. Our approach addresses this problem by first defining a so-called “regular” system architecture with clearly defined interfaces and predefined patterns of communication such that dependencies between concurrently running component interactions are minimized with respect to the system under construction. The construction of such architectures and especially its reconfiguration is controlled by using graph transformation rules which define all possible reconfigurations. It is formally proven that such a rule set cannot produce any “non-regular” architecture. Then, the verification of safety and liveness properties has to be carried out for only an initially and precisely defined set of so-called coordination patterns rather than on the whole system.

Anforderungen klären mit Video-Clips

Autor: Kurt Schneider, Leibniz Universität Hannover

Viele große Softwaresysteme sind heute vernetzt, in Geräte eingebettet und mit Anzeigesystemen verbunden. Sie erscheinen den Nutzern als komplizierte, computergestützte Umwelt, deren Bestandteile kaum zu unterscheiden sind. Die Geräte und ihre Umgebung, die Software und die Bedürfnisse der Benutzer entwickeln sich während des Betriebs ständig weiter. Damit ein Systemteil nützlich und wettbewerbsfähig bleibt, braucht man fortwährend Rückmeldungen und Bewertungen. Die Techniken des klassischen Requirements Engineering reichen dazu aber nicht aus. In diesem Beitrag stellen wir einen Ansatz vor, um mit kurzen und einfachen Videoclips in dieser Situation an Feedback heranzukommen. Bei deren Auswertung werden aktuelle Anforderungen identifiziert und geklärt.
 

Produktlinienentwicklung

Session 4a
Freitag, 26.02.10
11:00 - 12:30 Uhr
Session Chair: Florian Matthes

Virtuelle Trennung von Belangen (Präprozessor 2.0)

Autoren: Christian Kästner, Otto-von-Guericke-Universität Magdeburg
Sven Apel, Universität Passau
Gunter Saake, Otto-von-Guericke-Universität Magdeburg

Bedingte Kompilierung mit Präprozessoren wie cpp ist ein einfaches, aber wirksames Mittel zur Implementierung von Variabilität in Softwareproduktlinien. Durch das Annotieren von Code-Fragmenten mit #ifdef und #endif können verschiedene Programmvarianten mit oder ohne diesen Fragmenten generiert werden. Obwohl Präprozessoren häufig in der Praxis verwendet werden, werden sie oft für ihre negativen Auswirkungen auf Codequalität und Wartbarkeit kritisiert. Im Gegensatz zu modularen Implementierungen, etwa mit Komponenten oder Aspekte, vernachlässigen Präprozessoren die Trennung von Belangen im Quelltext, sind anfällig für subtile Fehler und verschlechtern die Lesbarkeit des Quellcodes. Wir zeigen, wie einfache Werkzeugunterst ützung diese Probleme adressieren und zum Teil beheben bzw. die Vorteile einer modularen Implementierung emulieren kann. Gleichzeitig zeigen wir Vorteile von Präprozessoren wie Einfachheit und Sprachunabhängigkeit auf.

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

Autoren: Sebastian Oster, Technische Universität Darmstadt
Philipp Ritter, Technische Universität Darmstadt
Andy Schürr, Technische Universität Darmstadt

Software-Produktlinien-Entwicklung bietet eine systematische Wiederverwendung von Software-Artefakten. Auf Grund der Tatsache, dass viele Produkte aus einer Produktlinie abgeleitet werden können, ist es unerlässlich Testverfahren zu entwickeln, die zum einen eine möglichst vollständige Abdeckung von allen möglichen Produkten sicherstellen und zum anderen weniger aufwändig sind, als jedes Produkt einzeln zu testen. In diesem Beitrag wird die Entwicklung eines neuen Algorithmus zur Auswahl einer Menge von Produktinstanzen als Testkandidaten beschrieben. Dieser vereint Techniken der Modelltransformation, des kombinatorischen Testens und des Lösens binärer Constraintsysteme vermittels Forward Checking.

The Impact of Variability Mechanisms on Sustainable Product Line Code Evolution

Autor: Thomas Patzke, Fraunhofer Institute Experimental Software Engineering

Many software development organizations today aim at reducing their development effort, while improving the quality and diversity of their products by building more reusable software, for example using the product line approach. A product line infrastructure is set up for deriving the similar products, but this infrastructure degenerates over time, making reuse increasingly hard. As a countermeasure, we developed a practical method for guiding product line developers in evolving product line code so that its decay caused by reuse is avoided. This paper gives an overview of some of our findings.

Because product line code differs from single systems code only in its genericity, expressed by variability mechanisms, we analyzed to what degree the selection of certain mechanisms affect the code’s reuse complexity. Using the Goal-Question- Metric (GQM) approach, we developed a quality model that lead to an extensible product line complexity metrics suite.

A case study compared the evolution qualities of different product line implementations, with the following results: Cloning, the simplest mechanism, leads to similar short-term complexities than more advanced ones, making its interim usage appropriate. In the longer term, any other mechanism has a clearly lower complexity trend, especially if it is selected according to the variability management task at hand. A mix of Conditional Compilation and Frame Technology provides the best long-term evolution potential.

 

Eingebettete Systeme

Session 4b
Freitag, 26.02.10
11:00 - 12:30 Uhr
Session Chair: Michael Goedicke

Entwicklung eines objektiven Bewertungsverfahrens für Softwarearchitekturen im Bereich Fahrerassistenz

Autoren: Dirk Ahrens, BMW Group Deutschland
Andreas Frey, BMW Group Deutschland
Andreas Pfeiffer, BMW Group Deutschland
Torsten Bertram, Technische Universität Dortmund

Der vorliegende Beitrag beschreibt ein Vorgehensmodell und die erzielten Ergebnisse im Umfeld der Bewertung von Softwarearchitekturen von Automotive Embedded Software. Softwarearchitektur stellt im Allgemeinen ein entscheidendes Instrument zur Beeinflussung nicht-funktionaler Eigenschaften (z.B. Skalierbarkeit, Erweiterbarkeit, Portierbarkeit) von Software dar, bis heute gibt es jedoch keinen geeigneten Ansatz, die Qualität solcher Architekturen objektiv und quantitativ zu ermitteln und zu bewerten.

Zunächst wird ein Qualitätsmodell mit einer Vielzahl unterschiedlicher Kriterien aufgestellt, welches auf die Bedürfnisse von Automotive Embedded Software angepasst ist. Für die relevanten Kriterien werden auf dieser Basis insgesamt acht Metriken zur quantitativen Beurteilung von Automotive Softwarearchitekturen erarbeitet.

Zur automatisierten Anwendung dieser Metriken ist eine Einbettung in den aktuellen Entwicklungsprozess notwendig. Diese Anpassungen und die daraus resultierende und eingesetzte Infrastruktur für den Bewertungsablauf wird ebenso vorgestellt wie der schlussendlich implementierte Softwareprototyp auf Java-Basis. Mit diesem Entwicklungswerkzeug ist eine automatisierte, schnelle, komfortable und individuell konfigurierbare Bewertung von vorhandenen Softwarearchitekturentwürfen möglich.

Abgerundet wird der Beitrag durch ausgewählte Anwendungsbeispiele und den Ausblick auf die weiteren anstehenden Arbeiten in diesem Umfeld.

Multi-Level Test Models for Embedded Systems

Autoren: Abel Marrero Pérez, Daimler Center for Automotive IT Innovations Technische Universität Berlin
Stefan Kaiser, Daimler Center for Automotive IT Innovations Technische Universität Berlin

Test methodologies for large embedded systems fail to reflect the test process as a whole. Instead, the test process is divided into independent test levels featuring differences like the functional abstraction levels, but also similarities such as many functional test cases. Desirable instruments such as test front-loading feature a considerable test effort and test cost reduction potential, but their efficiency suffers nowadays from the strict separation of the test levels and the consequent lack of appropriate mechanisms for reusing tests across test levels. Multi-level test cases have shown to provide the means for a seamless test level integration based on test case reuse across test levels. This paper extends this concept by introducing multi-level test models which are capable of systematically integrating different functional abstraction levels. From these models, we can derive multi-level test cases that are executable at different test levels. With this novel approach, multi-level testing benefits from the principles of model-based testing while the requirements for providing multi-level capabilities to any test models are analyzed and described.

Der Einsatz quantitativer Sicherheitsanalysen für den risikobasierten Test eingebetteter Systeme

Autoren: Heiko Stallbaum, Universität Duisburg-Essen
Andreas Metzger, Universität Duisburg-Essen
Klaus Pohl, Universität Duisburg-Essen

Um die oft hohen Sicherheitsanforderungen eingebetteter Systeme (im Sinne von Safety) zu gewährleisten, werden bei ihrer Entwicklung sowohl dynami-sche Testverfahren als auch statische Sicherheitsanalysen eingesetzt. Für den Test bieten sich insbesondere risikobasierte Ansätze an, da sie sicherstellen, dass solche Teile bzw. Anforderungen des Testobjektes früher und intensiver getestet werden, deren Versagen bzw. Nichterfüllung zu einem hohen Produktrisiko führen, also z.B. zu sehr hohen Schäden für Mensch und Umwelt. Der Einsatz eines risikoba-sierten Testansatzes erfordert jedoch aufgrund der notwendigen Produktrisikobe-wertungen hohen Zusatzaufwand. In diesem Beitrag wird ein Ansatz dargestellt, der risikobasierte Testtechniken mit quantitativen Sicherheitsanalysen kombiniert. Hierdurch werden Synergieeffekte erzielt, die eine separate Produktrisikobewer-tung obsolet machen und den entsprechenden Zusatzaufwand für den risikobasier-ten Test vermeiden. Die Anwendbarkeit des Ansatzes wird anhand eines Beispieles aus dem industriellen Umfeld demonstriert.

Impressum | Webmaster | Letzte Änderungen am : 13.01.2011