Dies sind die archivierten Webseiten des Lehrstuhls für Programmierung und Softwaretechnik (PST).
Die Seiten des Software and Computational Systems Lab (SoSy) finden Sie auf https://www.sosy-lab.org/.

Oberseminar 13.05.2014

Studentenvorträge zu Projekt- und Abschlussarbeiten

14:15h - 15:45h

Raum 057, Oet. 67

-------------------------------------------------------

Ekaterina Selivanova:  Komplexitätsanalyse für die Konvertierung objekt-orientierter Programme

Diplomarbeit

Aufgabensteller und Betreuer: Prof. Dr. Rolf Hennicker

Externer Betreuer: Johannes Langlotz M.Sc.

Für die Konvertierung von Programmcode, z.B. von Java nach C++, ist eine genaue Aufwandabschätzung  für die Projektplanung wichtig. Diese ist jedoch nur schwer umsetzbar. Hierfür müssen der Konvertierungsaufwand und die gegebenenfalls benötigten Anpassungen abgeschätzt werden, so dass ein Vergleich mit dem Aufwand für eine Neuentwicklung möglich ist. Ziel dieser Arbeit ist es, eine Methode zur realistischen Abschätzung des Konvertierungsaufwandes, durch Ermittlung von Metrikkennzahlen aus dem Ursprungsprogrammcode, zu finden. Hierzu sollen zunächst verschiedene Metriken, Tools zur Berechnung von Metriken und Konvertierungsprogramme für Java nach C++ untersucht werden. Für die Berechnung der Metrikkennzahlen werden exemplarisch Java-Programme bereit gestellt, welche über bestimmte zu definierende Charakteristika verfügen. Anschließend sind die Komplexität und die Metrikkennzahlen der ausgewählten Programme zu ermitteln. Im nächsten Schritt muss der Java Source Code mit den Converter Tools nach C++ konvertiert und dessen Metrikkennzahlen bestimmt werden. Die ermittelten Komplexitäten der C++ und Java-Programm sollen schließlich unter Berücksichtigung der zuvor definierten Charakteristika und gegebenenfalls weiteren Aspekten verglichen und analysiert werden.

-------------------------------------------------------

Estelle Perez: A Heuristic Approach to Detecting Cross-Language Links

Bachelorarbeit - betreut von Dr. Philip Mayer

Today, most software applications are written using more than one
programming language. Usually, such systems combine one general-purpose
language (GPL) with one or more domain-specific languages (DSLs),
used for specific aspects of the  program, like UI design or system
configuration.
In order to work as expected, corresponding artifacts from the different
languages must be linked together by a framework or virtual machine at
runtime. This is often done using string identifiers which occur in both
the DSL and GPL code. At design time, developers need to be aware of such
shared string identifiers forming so-called cross-language links, since
changing them alters the program's semantics. Unfortunately, standard
IDEs do not contain systematic support for this feature.

This thesis presents a heuristic approach for identifying cross-language
links for the GPL Java and the DSL-based frameworks Spring, Hibernate and Wicket.
Implemented within the Java IDE Eclipse, three different strategies
reflecting increasing levels of complexity are investigated on seven open
source case studies. Precision and recall of links are evaluated against
reference results from an existing model-based system, and runtimes of
both systems are compared.

-------------------------------------------------------

Tatiana Sizova: Grafische Visualisierung sprachübergreifender Verbindungen in der IDE

Bachelorarbeit - betreut von Dr. Philip Mayer

Heutzutage sind viele Softwaresysteme heterogen, d.h. sie bestehen aus mehreren Programmiersprachen. Da die Artefakte einzelner Sprachen dennoch ein System bilden, entstehen Verbindungen zwischen diesen Artefakten, die für die Funktion des Systems essentiell sind. Das Cross-Language Linking Framework (kurz XLL) analysiert solche Multi-Sprachen-Software und liefert als Ergebnis u.A. detaillierte Informationen über Quell- und Zielsprachen sowie über Verbindungen zwischen diesen. Die entstehenden Tabellen sind meistens sehr lang und bestehen aus mehreren tausenden Zeilen. Sie sind ideal für Analyse einer bestimmter Verweisung oder Funktion. Die Tabellen geben aber keinen Gesamtüberblick über die Struktur der Software. Eine graphische Visualisierung von Software ist oft ein starker und effizienter Mechanismus bei der Analyse großer Programme. Viele Studien haben gezeigt, dass Menschen die Informationen besser wahrnehmen, wenn sie mit Hilfe von Diagrammen oder Graphiken dargestellt werden. Ziel dieser Arbeit ist daher eine graphische Darstellung von Multi-Sprachen-Systeme mit Hilfe der einfachen farbigen 2D-Figuren wie Ellipsen, Bezier-Kurven und UML-Klassen-Figuren, die einfach und schnell ein komplettes Bild über die Größe der Sprachen, ihre Relationen und Anzahl der Verweise liefern. Die Graphik wird als ein Eclipse-Plugin mit Hilfe des Graphical Editing Framework (GEF) implementiert und wird innerhalb des XLL-Framework als View angezeigt.