Home
General
Staff
Contact
Partners
Alumni
Research
Areas
Projects
Papers
Books
Reports
Awards
Teaching
Lectures
Exams
B.Theses
M.Theses
PhD Theses
Go Abroad
Misc
Talks
Library
Gallery
Links
Search
Webmaster
|
Praktikum aus Software Engineering
339.002 |
Mössenböck + Assistenten |
Vorbesprechung am 8.3.2010, 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.
Bereits vergebene Themen
- Ein Source Code Profiler für C# 3.0
Patrick Höll, Thomas Klambauer
Im Rahmen einer Diplomarbeit (Klaus Lehner) wurde 2004 am SSW ein Profiler namens ProfIT
für C# 1.0 entwickelt (siehe Homepage von ProfIT).
ProfIT instrumentiert Quellcode, indem er an gewissen Stellen Zähler einfügt, die zur Laufzeit
erhöht und durch einen separaten Prozess ausgewertet werden. Auf diese Weise kann man die
Ausführungshäufigkeiten aller Anweisungen des instrumentierten Programms mit Hilfe einer
interaktiven Benutzeroberfläche erkunden, was für die Fehlersuche und Optimierung von
Programmen äußerst nützlich ist.
Im Rahmen des Praktikums aus Software Engineering soll ProfIT auf C# 3.0 angepasst und
unter .NET 3.5 zum Laufen gebracht werden. Zur Instrumentierung soll der Compilergenerator
Coco/R verwendet werden (eine Grammatik für C# 3.0 liegt vor). Für die grafische Oberfläche
wurden eigene User Controls verwendet, die eventuell gegen aktuelle Controls von .NET 3.5
ausgetauscht werden sollen.
Die Arbeit ist idealerweise für ein Team von 2 Personen gedacht, kann aber auch von einer
einzelnen Person gewählt werden.
- Compiler-Visualisierung
Daniel Thaller, Dominik Zaunrieth
In diesem Projekt soll das Visualisierungswerkzeug umgebaut werden, sodass es über ein Web-Interface benutzt werden kann.
Nach Eingabe eines Java-Quelltexts soll dieser automatisch zunächst auf Java Bytecodes und dann mit Hilfe des C1X Compilers nach Maschinencode kompiliert werden.
Die Visualisierung der Kompilierung soll danach in einer HTML-Seite und Bildern angezeigt werden.
- Dynamische Mixins für Java
Kerstin Breiteneder, Christoph Wimberger
Die Dynamic Code Evolution VM bietet erweiterte Möglichkeiten die Definition von Klassen zur Laufzeit zu verändern (HotSwapping).
In diesem Projekt soll unter Verwendung der DCE VM ein Mechanismus entwickelt werden, der es ermöglicht eine bestehende Klasse zur Laufzeit als Teil einer anderen Klasse einzubinden (siehe Mixin).
Es soll das Bytecode-Framework ASM verwendet werden um die Definition der neuen Klasse zu erstellen.
- Coco/R Unit-Tests
Bernd Landgraf, Jakob Springer
Der Compiler Generator Coco/R kann aus einer attributierten Grammatik
einen Scanner und einen Parser erzeugen. Um die Funktionalität von Coco/R stabil zu halten
führen wir einfache Unit-Tests aus. In diesen Unit-Tests werden erzeugte Scanner mit erwareten Scannern und
erzeugte Parser mit erwarteten Parsern textuell verglichen. Der textuelle Vergleich erhöt den Entwicklungsaufwand,
da ein Test schnell fehlschlaegt, und ein Fehler leicht übersehen werden kann.
In diesem Projekt soll eine Test-Infrastruktur auf abstrakterem Niveau entwickelt werden. Ein Testfall
in diesem Framework soll aus einer Testgrammatik, den zu parsenden Eingabedateien und den erwarteten
Ausgaben bestehen. Ein solcher Test schlägt nur fehl wenn der Compiler seine Funktion ändert,
wie er seine Funktion ausführt ist aber egal.
- Visualisieren von EBNF-Regeln
Andreas Müller, Rudolf Muehlbauer
Für viele Softwareentwickler ist das Schreiben von attributierte Grammatiken ungewohnt und daher schwierig.
Werkzeuge können helfen, zB: mit Syntax-Hervorhebung und Code-Vervollständigung.
Deshalb wurde am Institut ein Coco/R Eclipse Plugin entwickelt.
In diesem Projekt soll das Plugin um die Visualisierung von EBNF-Regeln erweitert werden.
Das Vorgänger-Proejkt EBNF Visualizer
hat sich bereits mit dem Thema beschäftigt. Sie können daraus Ideen übernehmen und Quellcode
portieren.
- Graphenlayout für Visualisierungswerkzeug
Andreas Gruber
Explorer ist ein graphisches Kompositionswerkzeug für das Plugin-Framework Plux.NET. Der Layoutmechanismus des Exploreres ist zuständig für die Anordnung von Knoten und Kanten im visualisierten Komponentengraph. In diesem Projekt soll der Layoutmechanismus derart verbessert werden, dass das Ergebnis auf dem Niveau der GraphViz-Bibliothek ist.
Noch offene Themen
- Visual Studio Integration für Plux.NET
Plux.NET ist eine Plugin-Platform für Microsoft .NET ( http://ase.jku.at/plux). Das Entwickeln
von Plux.NET Programmen mit Visual Studio soll durch integrierte Werkzeuge komfortabler gemacht
werden. Plux.NET 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.NET setzt Programme zusammen, indem sie Plugs in Slots einsteckt.
Zur komfortablen Entwicklung von Plux.NET 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.
- Realisierung eines Modellierungssystems mit Visual Studio DSL Tools
Die DSL Tools von MS Visual Studio bieten eine Werkzeugkette für die
Entwicklung von domänenspezifischen Modellierungssprachen. Im Zuge dieses
Projektes soll diese Werkzeugkette verwendet werden, um einen Prototypen
einer komponentenbasierten Modellierungssprache zu realisieren. Der Prototyp
soll enthalten:
- Die Definition der Modellierungssprache
- Die Realisierung eines graphischen Konfigurationssystems
- Die Codegenierung
Betreuer: Dr. Prähofer
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:
Raum:
|