Refine
Document Type
- Bachelor Thesis (4)
Year of publication
- 2020 (4) (remove)
Language
- German (4)
Keywords
- Programmierung (4) (remove)
Institute
Die vorliegende Bachelorarbeit beschäftigt sich mit dem Thema “Programmierung einer App zur Steuerung visuell schwebender Wassertropfen”, ist ein App, die mit Xcode entwickelt wurde und für iPhone und iPad geeignet ist. Diese App wird verwendet, um die Frequenz des Wasserventils einzustellen und die Vorrichtung drei verschiedene Wassertropfen-Schwimmzustände aufweisen zu lassen. Diese Bachelorarbeit kann hauptsächlich in dreie Prozesse Unterteilt werden, nämlich Verständnis, Programmierung und Test.
Die vorliegende Bachelorarbeit beschäftigt sich mit dem Thema „Planung, Aufbau, Test und Optimierung einer Vorrichtung zur visuellen Erzeugung schwebender Wassertropfen“, ist eine Praktische Anwendung, die auf Theorie also Stroboskopeffekt basiert. Gemäß dem Abtasttheorem kann man durch Einstellen der Frequenz der LED und des Wasserventils zur visuellen Erzeugung schwebender Wassertropfen. Dieser Bachelorarbeit kann hauptsächlich in viere Prozesse unterteilt werden, nämlich Planung, Aufbau, Test und Optimierung.
Im Rahmen der Abschlussarbeit soll untersucht werden, inwiefern die Kombination von live objects der Realm Database auf der einen Seite und Combine und SwiftUI auf der anderen, die entstehende Komplexität und Fehleranfälligkeit bei der App-Entwicklung in iOS reduzieren kann. Es soll ein durchführbarer praktischer Teil in Form einer Chat-App entstehen und getestet werden, die die Vor- und Nachteile der genannten Techniken verdeutlicht.
Ein Compiler oder Assembler wandelt Quellcode in ein ausführbares Programm um. Das resultierende Binary besteht aus Befehlen und Ressourcen, wie Bilder, Sounds oder anderen Informationen. Ohne den Ausführungskontext kann jedoch nicht im Vorhinein mit absoluter Sicherheit eine Angabe gemacht werden, bei welchen Bytes es sich um Anweisungen und bei welchen Abschnitten im Programm es sich um Ressourcen handelt. Bei einer Untersuchung oder einem
Dekompilierungsvorgang der binären Datei gestaltet sich diese bzw. dieser ohne vorliegenden Quellcode sehr schwierig. Als Beispiel für eine Von-Neumann-Architektur wurde in dieser Arbeit der Game Boy mit seiner
Sharp-LR35902-CPU gewählt. Mit Banking verwendet die Architektur sowohl historische Technologien, ähnelt aber dennoch sehr den derzeit häufig genutzten x86-64-CPUs von Intel oder AMD. Außerdem bieten die kleinen Programme von maximal zwei Mebibyte die Möglichkeit, auch in ineffiziente Ansätze auszuprobieren. In dieser Arbeit wurde anhand der folgenden sieben Lösungsansätze erläutert, wie man eine Befehl-Ressourcen-Trennung erzielen kann.
Manueller Ansatz (siehe Kapitel 3.1)
Metadaten-Ansatz (siehe Kapitel 3.2)
Alles-Befehle-Ansatz (siehe Kapitel 3.3)
Statistischer Ansatz (siehe Kapitel 3.4)
Emulationsansatz (siehe Kapitel 3.5)
Programmflussansatz (siehe Kapitel 3.6)
Brute-Force-Ansatz (siehe Kapitel 3.7)
Insbesondere wurden drei automatisierte bzw. teilautomatisierte Ansätze implementiert und anschließend
mit einer manuellen Trennung als Referenzwert verglichen. Dabei erzielte, bei dem verwendeten Kontrollprogramm ”StefaN”, der Programmflussansatz ein gutes Ergebnis.
Das mittels Emulationsansatz gewonnene Ergebnis schloss etwas schlechter ab. Der Brute-Force-Ansatz scheiterte an exponentiellen Wachstum und erzielte damit das schlechteste Ergebnis. Eine korrekte Trennung konnte nur mit dem manuellen Ansatz erreicht werden. In dieser Arbeit konnte keine vollautomatisierte Lösung für das Problem gefunden werden. Grundsätzlich kann festgehalten werden, dass eine Befehl-Ressourcen-Trennung einer ausführbaren Binärdatei auch in Zukunft eine Herausforderung darstellt.