Refine
Document Type
- Bachelor Thesis (5) (remove)
Language
- German (5)
Has Fulltext
- yes (5)
Is part of the Bibliography
- no (5) (remove)
Keywords
- Software (5) (remove)
Institute
Open Access
- Closed (3)
- Closed Access (2)
Durch den digitalen Wandel, sowie durch die an Benutzerfreundlichkeit und Leistung zunehmenden technischen Geräte im Endbenutzer-Bereich beginnt die Bedeutung von Augmented-Reality Applikationen zu wachsen. Daher ist das Ziel dieser Arbeit die Entwicklung einer Engine auf iOS Basis, zur Dastellung von Augmented-Reality Inhalten. Die Engine wurde nach dem Vorbild von Komponenten-basierten Game Engines entworfen, da diese beinahe identische Anforderungen besitzen. Die, im Rahmen dieser Arbeit erstellte Engine wurde mit Unterstützung der 5d lab Gmb entwickelt. Durch die Verwendung des, nach Erfahrungswerten, schnellsten Mobile Augmented Reality SDK und einer gelungenen Engine-Architektur konnte ein Produkt entwickelt werden, dass mit bestehenden Applikationen konkurrenzfähig ist.
Das Softwareunternehmen HRworks implementiert eine Personalverwaltungssoftware unter Verwendung der Programmiersprache Smalltalk und des Model-View-Controller (MVC) Musters. Innerhalb des Unternehmens erfordert jede Model-Klasse des Patterns das Vorhandensein einer korrespondierenden Controllerklasse. Controller verfügen über ein wiederkehrendes Grundgerüst, das bei jeder neuen Implementierung umgesetzt werden muss. Die Unterscheidungen innerhalb dieses Grundgerüsts ergeben sich lediglich aus dem Namen und der spezifischen Struktur der korrespondierenden Model-Klasse. Die vorliegende Arbeit adressiert die Herausforderung der automatischen Generierung dieses Controllergrundgerüsts, wobei die Besonderheiten jeder Model-Klasse berücksichtigt wird. Dies wird durch den gezielten Einsatz von Metaprogrammierung in der Programmiersprache Smalltalk realisiert und durch eine Benutzeroberfläche in der Entwicklungsumgebung unterstützt. Zusätzlich wird der Controller um eine Datentypprüfung erweitert, wofür ein spezialisierter Parser implementiert wurde. Dieser extrahiert aus einem definierten Getter der Model-Klasse den entsprechenden Datentyp des Attributes. Im Ergebnis liefert die Arbeit eine Methodik zur automatisierten Generierung und Anpassung von Controllergrundgerüsten sowie dazugehörigen Teststrukturen basierend auf der jeweiligen Model-Klasse. Zusätzlich wird die Funktionalität der Controller durch eine integrierte Datentypprüfung erweitert.
Im Rahmen dieser Abschlussarbeit wurde ein automatisertes Test-Framework für eine Datenanalyse-Software namens MARS entwickelt. Der Zweck der Entwicklung dieses Frameworks ist es, die von der Software, zurückgegebenen Ergebnisse zu testen und zu vergleichen. In Zukunft soll dieses Framework verwendet werden, um den Start von Tests bei jeder neuen Version von MARS zu automatisieren.
Darüber hinaus ist dieses Framework in zwei Versionen erhältlich. Die erste ist eine grafische Version, um bestimmte Tests gezielt auszuführen und zu evaluieren. Die zweite Version ist eine Kommandozeilenversion, die es ermöglicht, schnell mehrere Tests zu generieren. Diese Version kann bspw. von einem Jenkins-Server aus gestartet werden.
Das Test-Framework wurde mit der Programmiersprache Python erstellt und mit dem Qt-Framework grafisch unterstützt. Die Vielzahl an Modulen und die große Anzahl an Nutzern machen Python zu einer beliebten Sprache für diese Art von Anwendungen. Die hohe Modularität von Qt für Python und die einfache Handhabung machen es zu einem reichhaltigen Werkzeug für die Erstellung von grafischen Benutzeroberflächen.
Mit zunehmender Komplexität von Softwaresystemen wird es immer schwieriger Performance Auswirkungen durch Änderungen an der Software zu erkennen. Meist werden Performance-Probleme zu spät erkannt und die Ursachensuche stellt dann eine große Hearusforderung dar, da es viele Einflussfaktoren gibt und oft nicht bekannt ist, wie lange das Problem schon besteht. Hier setzt das kontinuierliche Performance Monitoring an, denn damit wird die Performance fortlaufend zu jeder Softwareversion gemessen und der Verlauf der Performance über die Zeit erfasst.
In dieser Arbeit wird ein Konzept zu diesem Monitoring entwickelt. Konkret wird dabei die Performance eines 2D Laserscanners untersucht, der mit der Zynq Ultrascale+ MPSoc Plattform realisiert wurde. Eine wichtige Komponente des Systems stellt das verwendetete Embedded Realtime Linux dar. Deshalb wird dessen Performance, anhand definierter Parameter aus der Literatur, gemessen. Dafür werden vorhandene Tools zum Auslesen dieser Parameter untersucht und schließlich eingesetzt, um diese auf dem System zu erfassen. Eine weitere wichtige Performancekenngröße stellen die Durchlaufzeiten von Daten durch das System dar. Diese Laufzeiten werden an bestimmten Punkten im C++ Programmcode gemessen und anschließend mit einer Python Anwendung ausgewertet.
Für jede neue Softwareversion wird automatisch eine Messung der Linux Performance, sowie der Durchlaufzeiten durchgeführt. Die dabei gewonnenen Daten werden mit einem Datei basierten Ansatz in Artifactory abgelegt, aus welchen schlussendlich Auswertungen, in Form von HTML Dateien, erstellt werden. Diese enthalten verschiedene Visualisierungen der Messergebnisse einer Messung, sowie den Verlauf der Durchschnittswerte je Softwareversion. Das Ausführen der Messungen auf dem Gerät, sowie die Auswertung der Messergebnisse führt ein dafür entwickeltes Python Programm aus.