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.
- 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.
- 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.
- 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.
Offene Themen im Bereich Java Tools
Offene Themen im Bereich objekt-funktionale Programmierung
Offene Themen im Bereich Hotspot/Compiler
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
|