TUD Logo

TUD Startseite » ... » Ergebnisse studentischer Arbeiten » Große Belege » Michael Voß

Computergraphik

Belegarbeit von Michael Voß

API für Plugin und Treiber basierte Softwareentwicklung

Lehrstuhl für Computergraphik und Visualisierung


Student: Michael Voß
Betreuer: Prof Dr. rer. nat. Stefan Gumhold
Verantwortlicher Hochschullehrer: Prof Dr. rer. nat. Stefan Gumhold

Motivation

Ein wichtiger Aspekt bei der Entwicklung eines Softwareprojekts ist die Flexibilität. Gerade im Bereich von Desktop-Anwendungen ist es von großem Vorteil, Software erweiterbar zu gestalten, da hier die Anforderungen, welche die Nutzer an die Anwendung stellen, stark variieren können. Eine Methode um solche Flexibilität zu gewährleisten, ist das Nutzen von Plugins. Sie ermöglichen eine Kapselung von Funktionalität und können diese jeder kompatiblen Anwendung zur Verfügung stellen. Ziel dieser Arbeit war es, eine Programmierschnittstelle (API ) zur Plugin basierten Softwareentwicklung zu gestalten. Diese soll es ermöglichen, dass bestehende und neue Anwendungen durch Plugins erweitert oder als Plugin umgeschrieben werden können. Dabei sollte auf die Kompatibilität der API zu Windows und Linux geachtet werden. Außerdem galt es zu untersuchen, in wie Weit die im Mittelpunkt stehende "native" C++ API, auch auf die "managed" .NET Umgebung anwendbar bzw. erweiterbar ist.

Beschreibung

Die im Rahmen des Belegs erstellte Plugin API baut auf dem Konzept der dynamischen Bindung und dem von dynamischer Bibliotheken auf. Beide werden im Beleg erläutert und anderen Bibliotheks- bzw. Bindungsarten gegenüber gestellt. Desweiteren wird auf die Struktur der API eingegangen und einzelne Komponenten vorgestellt. Ein weiterer wichtiger Gesichtspunkt bei der Entwicklung der API war die Plattformunabhängigkeit und damit verbunden die Interoperabilität zwischen "unmanaged" und "managed" Code.

Ergebnisse

Neben der eigentlichen Plugin API wurden drei Beispielanwendungen entwickelt, welche die Funktionsweise der bisher erstellten Schnittstellen veranschaulichen sollen. Sie repräsentieren eine DirectX, eine OpenGL und eine .NET Anwendung.

Screenshot
DirectX Beispielanwendung
Screenshot
OpenGL Beispielanwendung

Ausblick

Für den Einsatz der Plugin API in speziellen Anwendungen wird es notwendig werden weitere Schnittstellen zu definieren. So sind z. B. Schnittstellen für den Umgang mit Datenströmen denkbar. Auch im Bereich unkonventioneller Eingabemethoden können weitere Schnittstellen sinnvoll sein. Außerdem könnte die Klasse zum Laden von Plugins um verschiedene benutzerfreundliche Funktionen erweitert werden. Vorstellbar wäre hier z. B. eine Methode die alle Plugins aus einem Verzeichniss ließt.

Download

Stand: 1.2.2010, 14:40 Uhr
Autor: Prof. Dr. rer. nat. Stefan Gumhold