Technik

Verwendete Technologien

FVS verwendet folgende Technologien:

Python

Python ist eine höhere Programmier- bzw. Skriptsprache und Open Source. Es ist eine multiparadimatische und dynamische Programmiersprache und ist 1991 erstmals erschienen. Obwohl Python mehrere Programmierparadigma unterstützt, wird in FVS vorrangig die objektorientierte Programmierparadigma verwendet.

Python wurde als Programmiersprache gewählt da sie einfach zu lernen, eine klare Syntax und viele Standard Bibliotheken von Haus liefert. Desweiteren wird Python ständig weiter entwickelt und verbessert und besitzt eine aktive Community. Python ist außerdem platformunabhängig, was die Verwendung von FVS auf den meisten Betriebssystemen möglich macht.

Qt & QML

Qt (aussgesprochen eng. cute) ist eine plattformunabhängige Bibliothek/Framework für grafische Benutzeroberflächen. Qt wird meistens in Verbindung mit der Programmiersprache C++ verwendet, jedoch kann es auch mit anderen Programmiersprachen, über sogenannte Sprachanbindungen [5] [6], verwendet werden.

Wenn das Produkt welches mit Qt entwickelt wird, nicht unter einen freien Lizenz steht, kann wahlweise eine kommerzielle Lizenz erworben werden. Wird jedoch eine freie Lizenz für das Projekt verwendet, kann Qt außerdem unter einen freien Lizenz verwendet werden.

QML ist eine Entwicklung von Qt zur Entwicklung von grafischen Benutzeroberflächen, welche vor allem Touch-Screen freundlich sind. Weiterhin ermöglich QML sehr viele Möglichkeiten zum Aufbau der grafischen Benutzeroberfläche. Die GUI lässt sich beinahe wie eine HTML&CSS Seite frei gestalten und kann somit genau so viele visuelle Effekte enthalten.

Qt und QML wurden ausgewählt, da es stark weiterentwickelt wird, es mit einer freien Lizenz verwendet werden kann und für spätere Versionen offizieller Support für Android, iPhone geplant ist (es gibt auch inoffizielle Ports [7]), was die Benutzer FVS noch effektiver verwenden lässt. QML wird außerdem bei Ubuntu Touch [8] von Haus aus unterstützt.

PySide

PySide ist eine Sprachanbindung für Python und Qt. PySide wurde im Gegenstatz zu PyQt [9] verwendet, da PySide das verwenden einer freien Lizenz erlaubt.

Der Grund wieso PySide überhaupt gewählt wurde, ist in den ersten beiden Punkten für Python und Qt erklärt.

MySQL

FVS benötigt für seine Arbeit eine Datenbank und MySQL ist eine der am weitesten verbreiteten Open Source Datenbanken.

Verwendete Bibliotheken

Im folgenden sollen Bibliotheken, welche in FVS verwendet wurden, jedoch nicht Teil der Standardbibliothek einer Sprache sind, aufgeslitet werden:

  • PyMySQL: Ein purer Python MySQL Klient. Wird in FVS verwendet für die Verbindung mit der MySQL Datenbank. [10]

Verwendete Code Ausschnitte

Liste mit allen Code Ausschnitten welche über copy/paste in FVS eingebunden wurden:

Verwendete Software/Programme

Während der Arbeit an FVS wurden verschiedene Programme verwendet:

  • Sublime Text 2 ist ein moderner, einfacher Text Editor für Programmierer. [11] Wurde zur Erstellung der Python Dateien verwendet.
  • Qt Creator ist eine IDE, speziell für das Qt Framework. [12] Wurde zur Erstellung der QML Dateien verwendet.
  • Zur Verwaltung des Programmcodes von FVS wurde git [13] als Versionsverwaltung [14] und bitbucket [15] als Host des Programmcodes verwendet.
  • MySQL Workbench [16] zur Erstellung/Bearbeitung/Verwaltung der MySQL Datenbank
  • Umbrello UML Modeller [17] ist ein KDE [18] zur Erstellung von UML Diagrammen für den Aufbau der Datenbank und dem allgemeinen Aufbau von FVS.
  • ReText [19] zum Schreiben der ReStructuredText [20] Datein für die Dokumentation von FVS.
  • cxFreeze [21] ist eine Zusammenstellung von Skripten zum Einfrieren von Python Anwendungen in ausführbare Dateien.
  • Shutter 0.89 [22] zum Erstellen und Bearbeiten der Screenshots für das Benutzerhandbuch

Footnotes

[1]http://python.org/
[2]http://qt-project.org/
[3]http://qt-project.org/wiki/Category:LanguageBindings::PySide
[4]http://www.mysql.com/
[5]http://de.wikipedia.org/wiki/Sprachanbindung
[6]http://en.wikipedia.org/wiki/Wrapper_library
[7]http://thp.io/2011/pyside-android/
[8]http://developer.ubuntu.com/get-started/gomobile/
[9]http://www.riverbankcomputing.com/software/pyqt/intro
[10]https://github.com/petehunt/PyMySQL
[11]http://www.sublimetext.com/
[12]http://qt-project.org/wiki/Category:Tools::QtCreator
[13]http://git-scm.com/
[14]http://de.wikipedia.org/wiki/Versionsverwaltung
[15]https://bitbucket.org/
[16]http://www.mysql.com/products/workbench/
[17]http://uml.sourceforge.net/
[18]http://www.kde.org/
[19]http://sourceforge.net/p/retext/home/ReText/
[20]http://docutils.sourceforge.net/rst.html
[21]http://cx-freeze.sourceforge.net/
[22]http://shutter-project.org/

Inhalt

Vorheriges Thema

Einleitung

Nächstes Thema

Projekt Aufbau

Diese Seite