Programming Languages

Portierung eines Visualisierungs-Frameworks von C# nach Python

Assigned to Michael Häglsperger.

Um die kundenorientierte Reichweite eines Unternehmens zu vergrößern, welches Softwareschnittstellen anbietet, ist es notwendig, diese Schnittstellen für verschie- dene Programmiersprachen bereitzustellen. Um dabei den Aufwand gering zu halten, soll großteils nur in einer Sprache entwickelt werden und die Software soll anschließend automatisch in andere Sprachen übersetzt werden. Die Firma yWorks entwickelt dafür das Übersetzungsprogramm Blunter. Unter Verwendung des Blunters soll das von yWorks nach dem Model-View-Controller (MVC)-Pattern programmierte Visualisierungs-Framework yFiles nach Python portiert werden. Für die graphische Darstellung in Python wird ein externes Graphical User In- terface (GUI)-Framework verwendet, welches bereits beim Übersetzungsprozess automatisch in die Python-Portierung integriert wird.

Ziel dieser Arbeit ist es die Praktikabilität der GUI-Frameworks TkInter, Kivy und Qt für die Portierung zu diskutieren: anhand deren Funktionsumfang, der Aktualität und dem Aspekt der kommerziellen Nutzung. Außerdem sollen der Prozess der Portierung und die auftretenden Probleme beleuchtet werden.

Es hat sich gezeigt, dass das GUI-Framework Qt durch seine vektor-basierte Rendering-Technik, den yFiles-ähnlichen Strukturen seines Graphics-Frameworks und Lizenz zur kommerziellen Nutzung am besten für die Portierung geeignet ist. Unter Verwendung von Qt wurden alle Komponenten des MVC-Patterns nach Python übersetzt. Damit wurde die Darstellung und Bearbeitung von Graphen in Python ermöglicht.

Die automatische Portierung wird dabei durch die auf wenigen Stellen im Code beschränkte Anknüpfung von yFiles an das GUI-Framework ermöglicht und kann nicht ohne Weiteres allgemein auf Visualisierungs-Frameworks angewandt werden. Des Weiteren stehen bis zu einem marktfertigem Produkt noch einige Aufgaben aus.

Contact

Philipp Schuster