Refine
Year of publication
- 2020 (3) (remove)
Document Type
- Bachelor Thesis (3) (remove)
Language
- German (3)
Has Fulltext
- yes (3)
Is part of the Bibliography
- no (3)
Keywords
- Air Quality Monitoring (1)
- Android <Systemplattform> (1)
- Complex Event Processing (1)
- Crowdsensing (1)
- Graja (1)
- Luftqualität (1)
- Monitoring (1)
- Portabilität (1)
- Raspberry Pi (1)
- React <Framework, Informatik> (1)
- Regressionstest (1)
- Siddhi (1)
- Softwareentwicklung (1)
- Softwaretest (1)
- bluetooth low energy (1)
- cross-platform (1)
- cross-plattform (1)
- flutter (1)
- iOS (1)
- react native (1)
Institute
- Fakultät IV - Wirtschaft und Informatik (3) (remove)
Der Autobewerter Graja, der in der Lehre zum Bewerten studentischer Java-Programme verwendet wird, stellt ein komplexes Softwaresystem dar. Aufgrund einer kaum vorhandenen Testabdeckung durch Modul- und Integrationstests, ist die Gewährleistung der fehlerfreien Funktionalität in Hinsicht auf die Weiterentwicklung nicht garantiert. Da sich Graja auf das ProFormA-Aufgabenformat stützt, stellt sich die Frage, inwiefern sich die im ProFormA-Aufgabenformat vorausgesetzten Musterlösungen, für einen automatisierten Regressionstestmechanismus eignen.
Das Ziel dieser Forschung ist es ein Konzept, für einen solchen Regressionstestmechanismus zu erstellen und mithilfe einer Referenzimplementierung als Graja-Erweiterung in die Praxis umzusetzen. Der daraus entstandene Mechanismus operiert durch Verhaltensaufzeichnung und Verhaltensabgleich und konvertiert so das in Graja beobachtete Bewertungsverhalten einer Musterlösung in einen Testfall. In der Testphase findet anschließend ein Abgleich des Soll-Verhaltens eines Testfalls und des beobachteten Ist-Verhaltens einer Musterlösung statt. Die Differenzen dieses Abgleichs sind als potenzielle Regressionen zu behandeln, da diese eine semantische Änderung des Bewertungsergebnisses darstellen.
Um diesen Verhaltensabgleich robust und mit möglichst wenigen Fehlalarme zu realisieren, wurden die in Graja verwendeten Datenmodelle auf Eignung bezüglich einer Verhaltensaufzeichnung untersucht. Außerdem fand eine Datenaufzeichnung mit einer Teilmenge der Musterlösungen statt. Nachfolgend wurde eine Analyse dieser Rohdaten, mit dem Ziel potenzielles Rauschen innerhalb der Aufzeichnungen zu detektieren, durchgeführt. So konnte letztendlich eine Strategie für eine Rauschunterdrückung innerhalb der Verhaltensaufzeichnung entwickelt werden.
Abschließend wurde ein Datenmodell entwickelt, das erlaubt, die durch den Verhaltensabgleich detektierten Regressionen verständlich und lokalisierbar darzustellen. Der durch diese Arbeit entstandene automatisierte Regressionstestmechanismus stellt somit eine Grundlage für die Gewährleistung der korrekten Bewertungsfunktionalität innerhalb des Graja-Entwicklungsprozesses dar. Durch das Detektieren von Regressionen mithilfe der Musterlösungen, lassen sich nun Änderungen an Graja gewissenhaft in eine Produktionsumgebung übernehmen.
Unter Crowdsensing versteht man Anwendungen, in denen Sensordaten kollaborativ von einer Menge von Freiwilligen erhoben werden. So kann Crowdsensing eingesetzt werden um die Luftqualität an Orten zu messen, an denen keine fest installierten Sensoren verfügbar sind. In Crowdsensing-Systemen müssen die Teilnehmer koordiniert und die Messdaten verarbeitet werden, um relevante Daten zu erhalten. Im Rahmen der Abschlussarbeit wurde ein System konzipiert und prototypisch umgesetzt, das auf einem Raspberry Pi (unter Einsatz geeigneter Sensoren) Sensordaten erhebt und mit der Complex Event Processing Technologie verarbeitet.
Vergleich von nativer App- und Cross-Platform-Entwicklung (Facebook React Native und Google Flutter)
(2020)
Die Entwicklung mobiler Applikationen für iOS und Android ist in der Regel mit viel Arbeit verbunden, da man für beide Plattformen gezwungenermaßen unterschiedlichen Quelltext schreiben muss. Abhilfe für dieses Problem schaffen Cross-Platform-Frameworks wie React Native von Facebook oder Flutter von Google. Anhand dieser Frameworks lassen sich Apps für beide Plattformen mit nur einer Codebase entwickeln. Eine kritische Stelle und oft gebrauchtes Kontra-Argument gegen die Entwicklung mit Cross-Platform-Frameworks ist die Hardwarenähe der nativen Applikationen, an welcher es den Frameworks vermeintlich mangelt. Doch wie ist der Stand der Dinge im Jahr 2020? Können Cross-Platform-Frameworks inzwischen performant und einfach auf Hardwarekomponenten zugreifen und machen damit die mühsame, native Entwicklung für iOS und Android vor allem in Anbetracht der Entwicklung von größerer Enterprise-Software obsolet?
Dieser Frage wird in dieser Arbeit nachgegangen und generell überprüft wie tauglich die Cross-Platform-Entwicklung ist. Nach dem Lesen dieser Bachelorarbeit sollte entschieden werden können, ob Cross-Platform-Frameworks für das Anwendungsproblem des Lesers geeignet sind. Um die Forschungsfrage zu beantworten, wurden je zwei Applikationen im Rahmen einer Fallstudie für je iOS und Android entwickelt, damit geprüft werden konnte, wie förderlich die zuvor genannten Frameworks sind. Der Fokus der Arbeit liegt also auf der Güte bzw. dem heutigen Stand der Cross-Platform-Entwicklung, vor allem im Bezug auf die Benutzung von Hardwarekomponenten bzw. betriebssystemspezifischen Diensten (Bluetooth, Kamera, etc.).
Die Ergebnisse der Fallstudie zeigen, dass es stets auf den Kontext und die Komplexität der zu realisierenden Anwendung ankommt inwiefern Cross-Platform-Frameworks verwendet werden können. In simplen Anwendungsfällen können Frameworks meist zu einer erheblichen Kostenminimierung und Zeitersparnis führen, wohingegen bei komplexeren Anwendungen relativ schnell Grenzen und starke Abhängigkeiten erreicht werden.