Praktikum aus Software Engineering

339.002 Wolfinger + SSW-Mitarbeiter Vorbesprechung: Mo 5.3.2012, 16:00, HF 9905

Ziele

Ziel dieses Praktikums ist es, ein größeres Softwareprojekt während eines Semesters eigenständig zu bearbeiten und durch alle Phasen (Anforderungserhebung, Entwurf, Implementierung, Test, Dokumentation) zu begleiten. Das Projekt sollte in Teams zu jeweils 2 Personen bearbeitet werden und ist am Ende des Semesters in einem Vortrag zu präsentieren.

Themen für Plux

Plux ist eine Plugin-Platform für Microsoft .NET (Plux-Webseite). Mit Plug&Play-Komposition setzt Plux Programme dynamisch aus Komponenten zusammen. Plug&Play erlaubt das Erweitern und Rekonfigurieren von Programmen ohne Konfiguration, ohne Programmierung und ohne dass das Programm neu gestartet werden muss.

  • Visualisierung der Kompositionsreihenfolge
    In Plux-Programmen können Komponenten dynamisch an- und abgesteckt werden. Unser Testwerkzeug probiert mögliche Kompositionsreihenfolgen aus und entdeckt dabei Fehler in den Komponenten. Dabei erzeugt es ein Protokoll mit allen Testfällen die Fehler entdeckt haben und analysiert was bei diesen Testfällen gleich ist. In dieser Arbeit soll mit C# und WPF ein Visualisierungswerkzeug entwickelt werden, das die entdeckten Gemeinsamkeiten graphisch darstellt.
    Betreuer: DI Löberbauer
    Bearbeiter: Philipp Hörtler, Simon Joachim Schatka

  • GUI-Framework für Plux-Web
    Plux unterstützt auch Webanwendungen. Eine Besonderheit dabei ist, dass Komponenten verteilt auf mehreren Rechnern laufen und eine gemeinsame Webanwendung bilden. Damit auch UI-Komponenten verteilt laufen können, enthält Plux eine eigene Web-UI-Bibliothek. Ziel dieses Projekts ist es, diese Bibliothek um Ajax-Funktionalität zu erweitern.
    Betreuer: DI Jahn
    Bearbeiter: Nikolai Spasov, Egor Erofeev

Themen im Bereich Systemwerkzeuge

  • Hintergrundübersetzungswerkzeug für .Net- und Java-Programme
    Dieses Werkzeug soll ein Quelltextverzeichnis beobachten und bei Änderungen einen Übersetzungsprozess im Hintergrund starten, z.B. wenn eine Datei gespeichert oder gelöscht wird. Dabei führt es die in einer Konfigurationdatei eingetragenen Aufgaben durch. Das Werkzeug soll folgende Aufgabenarten unterstützen: übersetzen mit MSBuild und Ant, einchecken und Tags setzen in Subversion und Git. Manche Aufgaben sollen nur dann ausgeführt werden, wenn die vorangegangene Aufgabe erfolgreich war. Die Aufgaben sollen auch verteilt auf mehreren Rechnern ausgeführt werden können. Das wird beispielsweise verwendet, um auf einem Linux-Rechner C#-Quelltext zu bearbeiten, den Quelltext in eine virtuelle Maschine mit Windows zu kopieren, und dort das Programm mit den Microsoft-.Net-Werkzeugen zu übersetzen.
    Betreuer: Dr. Wolfinger
    Bearbeiter: Christian Hartlmayr, Martin Lettner

  • Multi-Language Debugging in Eclipse
    Wir entwickeln derzeit JVM-basierte Laufzeitumgebungen für Sprachen wie JavaScript und Python. In dieser Arbeit soll die Erweiterbarkeit des Eclipse Debuggers ermittelt werden, vor allem um Unterstützung für das Debuggen dieser Programmiersprachen implementieren zu können. Dies beinhaltet eine Erweiterung der Eclipse Debugging Infrastruktur, die Zugriff auf Datenstrukturen innerhalb der laufenden Anwendung erlaubt. Der endgültige Umfang der Arbeit ist von der Komplexität der Eclipse Debugging Infrastruktur abhängig und wird im Laufe des Projektes festgelegt.
    Betreuer: Dr. Würthinger
    Bearbeiter: Manuel Rigger, Andreas Wöß

  • Query-Tool für eine tree-based Logging-Datenstruktur
    Unser Just-in-Time Compiler (Graal) erzeugt eine große Menge an Logging Informationen, die zur Diagnose von Fehlern und Auffälligkeiten verwendet werden können. Die Menge an Informationen ist zu groß für manuelles Suchen, deshalb soll in dieser Arbeit ein Tool entwickelt werden, dass die tree-based Logging Informationen liest und Abfragen darauf erlaubt. Dieses Tool soll eine GUI-Applikation sein, entweder als Swing-Applikation oder als Eclipse RCP Projekt, und Abfrage- und Filterfunktionen für die gängigsten Kriterien zur Verfügung stellen.
    Betreuer: DI Stadler
    Bearbeiter: Katrin Straßl, Alexander Stipsits

  • Replay-Debugger für Java
    In diesem Projekt soll aufbauend auf dem Capture- und Replay-Ansatz für Java, ein Replay-Debugger entwickelt werden. Es soll dabei die Ausführung eines Java-Programms in Form aller ausgeführten Source-Code-Zeilen in einem Java-Texteditor angezeigt werden. Der Entwickler kann dann die Ausführung im Detail inspizieren und sich dabei für jede Stelle im Ausführungsprotokoll die aktuellen Variablenwerte ansehen.
    Bearbeiter: Christian Huber, Armin Weidinger

Themen im Bereich Web-Programmierung

  • Immobilien-Web-Plattform
    Betreuer: Dr. Prähofer
    Bearbeiter: Sebastian Pöll

Benotung

Die Note wird aus der Qualität der erstellten Software (Benutzerfreundlichkeit, Robustheit, Klarheit der Architektur, Klarheit des Programmierstils, Dokumentation) ermittelt. Am Semesterende ist das Ergebnis in einem kurzen Vortrag zu präsentieren. Der Vortrag sowie der persönliche Einsatz während des Projekts fließen auch in die Note ein.

Abschlussvortrag

Termin: Mittwoch, 27.6.2012, 14:30 - 17:00 Uhr
Raum: K009D