Praktikum aus Software Engineering

339.002 Mössenböck + Assistenten Vorbesprechung: Mo, 7.3.2011, 16:00 Uhr, 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.

Vergebene Themen

  • 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: Bernhard Schenkermayr, Michael Herceg

  • Visualisierung der Komposition im Webbrowser
    Plux-Programme werden durch das Verbinden von Komponenten über Stecker und Steckplätze zusammengesetzt. Unser Werkzeug PluxViz visualisiert welche Komponenten miteinander verbunden sind und wie sich diese Verbindungen ändern während ein Programm läuft. PluxViz wurde mit WPF entwickelt und läuft auf dem Desktop. Wir benötigen diese Visualisierung auch für mit Plux entwickelte Webanwendungen. In dieser Arbeit soll mit einem GUI-Framework (zB Google Web Toolkit) eine neue Bedienoberfläche für PluxViz entwickelt werden, damit der Kompositionszustand auch im Webbrowser anzeigt werden kann.
    Betreuer: Dipl.-Ing. Jahn
    Bearbeiter: Philipp Lehner, Stefan Fischer

  • Visual Studio Integration für Plux
    Das Entwickeln von Plux-Programmen mit Visual Studio soll durch integrierte Werkzeuge komfortabler gemacht werden. Plux setzt Programme aus Plugins und Extensions zusammen. Extensions bieten selbst Funktionalität über Stecker (Plugs) an oder binden andere Extensions über Steckplätze (Slots) ein. Die Laufzeitumgebung von Plux setzt Programme zusammen, indem sie Plugs in Slots einsteckt.
    Zur komfortablen Entwicklung von Plux Plugins sollen vier in Visual Studio integrierte Werkzeuge entwickelt werden: (i) Projektvorlagen für Plugin- und Contract-Assemblies, (ii) ein Browser zum Anzeigen und Suchen aller Extensions und Slots in einem Plugin-Repository, (iii) einen Generator der für Extensions, Slots oder Plugs ein Grundgerüst erzeugt, und (iv) ein in MSBuild integriertes Analysewerkzeug das prüft ob die spezifzierten Plugs den Anforderungen der zugehörigen Slots entsprechen.
    Betreuer: Dr. Wolfinger
    Bearbeiter: DI (FH) Michael Roßbory, Dominik Gruber

  • Automatisierte Parameter-Optimierung
    Beim Start der virtuellen Maschine kann eine Vielzahl von Parametern angegeben werden. Ein Parameter wird entweder mit den Werten true/false oder mit ganzzahligen Werten belegt. Ziel des Projekts ist es ein Programm zu schreiben, das systematisch verschiedene Kombinationen der Belegung der Parameter ausprobiert. Die virtuelle Maschine soll für jede Belegung mit einem Java Benchmark gestartet werden. Als Auswertungswert soll die Laufzeit des Programms sowie die Laufzeit des Compilers gewählt werden können. Die Auswertung soll in einem Format abgespeichert werden, das mit gängigen Tabellenkalkulationswerkzeugen einfach importiert werden kann.
    Betreuer: Dipl.-Ing. Thomas Würthinger
    Bearbeiter: Simon Schatka, Christian Hartlmayr

  • Object data structure for Graal Hotspot Compiler
    Zur Zeit erzeugt der Graal Hotspot-Compiler aus einer High-Level Zwischensprache (LIR) direkt Maschinencode. Die Aufgabe dieser Arbeit ist es, zwischen der LIR und dem Maschinencode eine passende objektorientierte Datenstruktur zwischenzuschalten, um darauf vor der eigentlichen Ausgabe des Maschinencodes verschiedene Transformationen (z.B. Optimierungen) anwenden zu koennen.
    Betreuer: Dipl. Ing. Thomas Schatzl
    Bearbeiter: Benjamin Dallinger, Thomas Reinthaler

  • Bereinigung des Coco/R-Eclipse-Plugins
    Seit 2003 wird das Eclipse-Plugin und seit 2008 das NetBeans-Plugins für Coco/R unabhängig entwickelt. Die Plugins sind mitlerweile so umfangreich, dass ihr Code bereinigt und zusammengefürt werden soll. In dieser Arbeit soll der Funktionslogik-Code aus dem Eclipse-Plugin extrahiert werden, damit das NetBeans-Plugin darauf aufbauen kann.
    Betreuer: DI Löberbauer
    Bearbeiter: Andreas Greilinger, Konstantin Bina


Offene Themen für Plux

Plux ist eine Plugin-Platform für Microsoft .NET (http://ase.jku.at/plux). 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.

  • Steuerung der Komposition mit Kommandozeile im Webbrowser
    Plux-Programme können rekonfiguriert werden, indem man Stecker aus Steckplätzen aussteckt oder in Steckplätze einsteckt. Unser Werkzeug PluxConsole ist eine Kommandozeilenbedienoberfläche mit der die Komposition gesteuert werden kann. PluxConsole wurde mit WPF entwickelt und läuft auf dem Desktop. Wir benötigen dieses Werkzeug auch für mit Plux entwickelte Webanwendungen. In dieser Arbeit soll mit einem GUI-Framework (zB Google Web Toolkit) eine neue Bedienoberfläche für PluxConsole entwickelt werden, damit die Komposition auch im Webbrowser gesteuert werden kann.
    Betreuer: Dr. Wolfinger

Offene Themen im Bereich Java Tools

  • Code View Debugger für Java
  • Beschreibung Aufgabenstellung CodeView Debugger
    Betreuer: Dr. Prähofer

Offene Themen im Bereich objekt-funktionale Programmierung

  • Fallstudie Web-Framework Lift in Scala
    Lift ist ein neues, in Scala entwickeltes Web-Framework. In diesem Projekt soll Lift anhand einer kleinen Fallstudie evaluiert parawerden.
    Betreuer: Dr. Prähofer

Offene Themen im Bereich Hotspot/Compiler

  • Object graph tracing for Java Hotspot
    Der Objektgraph eines Java-Programmes soll durch Augmentierung des Java-Hotspot Compilers aufgezeichnet werden. Weiters sollen die anfallenden Rohdaten in ein passendes programmunabhaengiges Format zur Weiterverarbeitung konvertiert werden.

Falls Sie an einem der noch offenen Themen interessiert sind, setzen Sie sich bitte möglichst bald mit Prof. Mössenböck in Verbindung. Ideal wäre es, wenn Sie auch bereits einen Teampartner (eine Teampartnerin) mitbringen.

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: Mi, 22.6.2011, 15:30-17:00 Uhr
Raum: T112