1194 research outputs found
Sort by
Innovationsplattform
Der Auftraggeber möchte ein Minimum Viable Product (MVP), welches die Kernfunktionen der
Applikation enthält. Es musste ein Kompromiss gefunden werden zwischen Vorstellung des
Auftraggebers und dem technisch machbaren innerhalb der gesetzten Projektlaufzeit. Zudem musste
ein Konzept entwickelt und implementiert werden, welches die Applikation nach aktuell geltenden
Softwareengineering-Prinzipien abbildet.
Um diese Aufgaben zu bewältigen, hat das Projektteam den agilen Scrum-Ansatz gewählt. Damit
konnten Erkenntnisse und Erfahrungen laufend in die Entwicklung miteinfliessen. Zuvor wurde der
gesamte Projektumfang in einem Workshop zusammen mit dem Auftraggeber erfasst und grob
abgegrenzt. Die effektive Spezifizierung der Features fand jeweils in der Sprintplanung statt.
Als Architektur hat sich das Projektteam für eine modulare Aufteilung in Frontend und Backend
entschieden. Das Frontend wurde mit Vue.js als Single Page Application erstellt. Das Backend wurde
mittels serviceorientierter Architektur hauptsächlich mit ASP.NET Core entwickelt. Die gesamte
Applikation wurde mit Docker containerisiert.
Der Auftraggeber erhält eine erste ausführbare Version seines Produkts. Die Produktidee konnte in
kurzer Zeit umgesetzt werden. Das MVP kann nun zur Generierung von Nutzerfeedback verwendet
werden. Der Grundstein für Erweiterungs- und Wartungsprojekte ist dank der modularen
Softwarearchitektur gelegt. Durch die Verwendung von Docker erhält man eine hohe Flexibilität beim
Deployment. Die Applikation kann plattformunabhängig installiert und betrieben werden
SD-WAN Topology Viewer (Folgearbeit)
Software defined WAN (SD-WAN) is a fast emerging and trending new technology to interconnect worldwide distributed company branches or customers. Many of the market leading network equipment providers, like Cisco, have developed their own SD-WAN solution. For IT professionals using SD-WAN solutions in global companies, the complexity of their network quickly becomes overwhelming. As a result, it is even harder to keep track of the network topology.
Cisco’s SD-WAN solution vManage is a web application shipped alongside their SD-WAN technology and is primarily designed for configuration purposes. Although it provides a simple graphical overview of the distribution of the individual routers on a world map, it lacks to apply a proper user centered approach. It is not designed for active monitoring of the infrastructure and does not display the IPSec tunnels. With the rise of SD-WAN, its products and non-existent monitoring solutions, the foundation for a solution to this problem has already been laid.
In contrast to Ciscos vManage web application, the SD-WAN Topology Viewer (SDWANTV) puts the emphasis on a clean visual representation of the topology and a historical view of the metrics. As the foundation of the bachelor thesis, we have taken the result of a previous semester thesis. We extended the existing software with much needed new functionalities and dramatically improved the software architecture. With a historical metric dashboard and a customer limited view, the SDWANTV extended the target audience to customer and network administrators alike.
Our system fetches all information from Ciscos vManage API with a scheduled task runner. The tasks then propagate the collected data to a timescale database and via active WebSocket connections directly to state-of-the-art single page application written in React. Due to the strict separation between frontend and backend, a user can enjoy real time state updates of the topology and observe the latest as well as historical tunnel metrics via a REST Application Programming Interface (API) in one single cloud ready application, shipped with a helm chart for easy installation
Mobile Fingerprinting 3.0 (SA)
Reisedaten von Passagieren dienen den Transportunternehmen zu identifizieren, welche Strecken viel genutzt werden und helfen, die Fahrpläne entsprechend zu optimieren. Momentan werden diese Reisedaten durch manuelle Fahrgastbefragungen ermittelt. Mobiltelefone und Peripheriegeräte wie Kopfhörer oder Smartwatches sind heute weit verbreitet. Diese senden fortlaufend Funksignale aus, die potentiell für eine Zählung der Passagiere genutzt werden könnten. In Vorarbeiten hat sich gezeigt, dass ein Tracking mittels WiFi mittlerweile unmöglich ist. In dieser Arbeit wurde erforscht, ob und wie ein Tracking passiv per Bluetooth möglich ist.
Im faradayschen Käfig des ICOM und in öffentlichen Bereichen wurden die Bluetooth Signale von vier unterschiedlichen iPhone Modellen, drei Android Geräten sowie verschiedenen Peripheriegeräten untersucht und daraus eine Software Suite zum Erfassen, Speichern und Visualiseren der Daten entwickelt. Für das Sniffen der Bluetooth Signale wurde der Ubertooth One verwendet.
Audiodaten werden mit dem BR/EDR Protokoll versandt. Dort werden ausreichende Teile der nicht randomisierten Bluetooth Addressen direkt herausgegeben, was ein Tracking dieser Geräte trivial macht. Bluetooth Low Energy Geräte randomisieren in der Regel ihre Addressen und ändern sie circa alle 15 Minuten. Eine Korrellationslogik wurde implementiert, welche anhand von zeitlichen und räumlichen Daten sowie den in Advertisements enthaltenen 16-Bit Service UUID und Company Ids den Adresswechsel in gesendeten Advertisements detektiert. Bei neueren iPhones ist so ein Tracking möglich, die untersuchten Android Geräte sind aber nur detektierbar, wenn eine entsprechende App wie die Swiss Covid App installiert ist. Die Korrelation stösst an Grenzen, wenn ein Adresswechsel bei einer grossen Anzahl von präsenten Geräten erfolgt, zum Beispiel bei Einfahrt in einen Bahnhof
Redesign eines User Interface für klinische Studien
Ein in Zürich ansässiges Startup namens Leitwert GmbH hat eine Web-Applikation für die Durchführung von klinischen Studien mit Wearables (Sensor zur Aufzeichnung von Gesundheitsdaten) entwickelt. Im bisherigen Entwicklungsprozess wurden die Nutzer nur am Rande involviert. Im Auftrag von Leitwert wurde im Rahmen der vorliegenden Masterarbeit ein nutzerzentriertes Redesign dieser Web-Applikation erarbeitet, welches die Bedürfnisse der Nutzer eruiert und konsequent in den Fokus nimmt
Nabu - Chatbot-Assistent für Ausbildungszwecke (SA)
Problemstellung:
Chatbots sind ein immer weiter verbreitetes Mittel, um Nutzern das schnellere Erlernen eine Applikation, einfacheren Zugriff auf Informationen sowie eine natürlichere Interaktionserfahrung zu ermöglichen.
Diese Arbeit soll untersuchen, ob eine prototypische Implementation eines solchen Chatbots inklusive der notwendigen Umgebung auch für einen Hochschulkontext möglich ist. Studierende sollen über den Chatbot schneller und einfacher Zugriff auf wichtige Informationen erhalten, insbesondere auf fachliche und organisatorische Daten zu Vorlesungen.
Ziel der Arbeit:
Ziel dieser Arbeit ist die Implementation eines Chatbots zur Unterstützung des Lernprozesses, der sich nach den Bedürfnissen der OST richtet. Dieser Chatbot soll zweierlei Aufgaben übernehmen können:
- Die Beantwortung von fachlichen Abfragen zu Unterrichtsmaterial unter Angabe von Quellen
- Das Bereitstellen von administrativen Informationen zu Ereignissen wie Testat-Abgaben oder Prüfungsterminen
Zur Nutzer-Interaktion mit dem Chatbot sind Client-Applikationen nötig, die ein Chat-Interface zur Verfügung stellen. Diese sollen ebenfalls im Rahmen dieser Arbeit erstellt werden.
Darüber hinaus soll eine Umgebung zur Verfügung gestellt werden, welche Dozierenden das Erfassen von Informationen aus Vorlesungsunterlagen und das Bereitstellen im Chatbot erlaubt, damit sie abgefragt werden können.
Ergebnis:
Primäres Resultat der Arbeit ist ein funktionstauglicher Chatbot, genannt Nabu, der fachliche und administrative Anfragen zu Vorlesungen beantworten kann. Die zugrunde liegende Technologie ist MindMeld, ein auf Machine-Learning basierendes Konversations-Framework von Cisco, das in Python geschrieben und als Open-Source-Software verfügbar ist.
Zu diesem Chatbot gehört eine vollständige Daten-Pipeline, welche die Erfassung von Informationen aus Vorlesungsunterlagen im Keyword-Verfahren sowie von organisatorischen Daten zu wichtigen Terminen erlaubt.
Zusätzlich wurden zwei Chatbot-Frontends erstellt: Das eine ist in Moodle, die von der OST verwendete Learning-Management-Plattform, integriert. Beim anderen handelt es sich um einen Bot für die Messenger-Applikation Telegram. Über diese Clients können die erfassten Daten abgefragt werden.
Obwohl grundsätzlich voll funktionsfähig, mangelt es der Applikation noch an einigen sicherheitsrelevanten Aspekten, weswegen sie noch nicht zum unmittelbaren Deployment bereit ist
P2P Library in Golang (SA)
TomP2P ist eine Peer to Peer (P2P) Library, die eine Distributed Hash Table (DHT) für verteilte Anwen-dungen bereitstellt. Die Realisierung der Library in der Programmiersprache Java und die Verwendung des Internetprotokolls TCP verlangsamen die Applikation. Im Gegensatz dazu, bietet das neue QUIC-Protokoll mit seinem intelligenten Congestion Control Algorithmus eine performantere und auf die heu-tigen Anforderungen zugeschnittene Alternative. Sie ist allerdings wegen ihres breiten Anwendungs-spektrums sehr komplex. Entwickelt werden soll deshalb ein auf UDP aufbauendes Protokoll, das die Zuverlässigkeit von TCP sicherstellt und zur Congestion Control den «Bottleneck Bandwidth and Round-trip propagation time» (BBR) Algorithmus von QUIC verwendet. Für die sichere Übertragung der Daten von P2P soll das Noise-Framework zum Einsatz kommen.
Zu Beginn wurde basierend auf dem UDP-Protokoll ein Automatic Repeat reQuest (ARQ) Protokoll in der Entwicklungsumgebung Goland realisiert. Parallel dazu wurde eine Testumgebung aufgebaut, welche die Implementation integral auf die Standard- und Spezialfälle hin testet. Die Continuous Integration (CI) erfolgte auf einer virtuellen Maschine der OST mit Gitlab CI. Im späteren Verlauf wurde die für die BBR unverzichtbare Delivery Rate Estimation entwickelt. Die Korrekheit wurde anschliessend auf dem Internet mithilfe von GCloud getestet und interaktiv verbessert. Gegen Ende wurde die Security mit dem Noise-Framework realisiert.
Die entwickelte Lösung erlaubt eine sichere, performante und zuverlässige Kommunikation zwischen mehreren Peers
Completeness Estimation of OpenStreetMap POI Data Using Machine Learning Approaches
As OpenStreetMap (OSM) gains traction and is considered a viable alternative to service providers like Google Maps, the question of the quality of the provided data becomes increasingly important. A key factor for the quality of geographical data is the completeness of entities that are included or omitted in a dataset. And currently, there is no general solution to determine it. The vision of this project is to lay the groundwork for an approach with an open-source tool that can be used by the community and by users to check desired areas for completeness.
This work aims to estimate intrinsically - i.e., without comparing to a 'golden dataset' - the number of Points of Interest (POIs) in a defined area. These values compared to the number of existing POIs act as an indicator for completeness. The nature of the problem and the size of available data is predestined for machine learning (ML) methods. An initial model was trained based on high-resolution imagery (orthophotos). It showed that there are relationships that can be detected by ML algorithms. Thus, a model was trained using only intrinsic data provided by OSM. Under the assumption that the training and validation areas are completely mapped, the implemented model performs well enough to show a trend where entities are missing.
The results are visualized in a color-coded grid showing the areas which are predicted to either be complete, improvable, or incomplete. As it is trained on data in Swiss cities it works best for urban areas in Switzerland and neighboring countries because of the geographic and demographic similarities. By use of re-training the model it is possible to predict other areas. One drawback of the intrinsic approach is that a certain amount of existing data is needed to make a prediction. Further, the quality of the prediction itself can only be measured on the assumption that the training and validation areas are well mapped. In conclusion, we provide a model which estimates the completeness of an area and indicates if further investigation is needed
Folgearbeit: Automation of the OST-RJ Examination Scheduling
As stated in our prior semester project "Automation of the OST-RJ Examination Scheduling", December 2020, exam scheduling is a known NP-complete problem. Finding the best solution for such a problem is nearly impossible for a human and takes forever for a computer. Computer-aided exam scheduling, or generally speaking problem-solving, takes advantage of trying many possible solutions in an automated way and combining it with algorithms that help optimize the solving process. Testing the quality of a solution is carried out based on several constraints and their assigned penalties and weights. Precisely tailored mathematical calculations and carefully chosen algorithms are required for providing solutions that meet the requirements in a reasonable amount of time.
The version developed for the bachlor's thesis expands the functionality of the exam scheduler not only to cover the mandatory constraints but also to optimize the solution based on availabilities, optimal distributions, and nice-to-have properties such as lunch breaks. Furthermore, considerable improvements have been made to the user interface, allowing the user to import data, control the solving process, visualize the exam schedule, gain insights into the resulting solution, and manually modify the schedule to work with the application hand in hand.
The software and its results are ready for a first pilot phase. Although some manual pre-processing of the exam schedule is still required, scheduling becomes much more comfortable, reliable, and of much higher quality. The process of examination scheduling is reduced from several weeks to an absolute minimum in the range of days or even hours. Our comparison of automatically generated examination schedules with manually created ones shows at least equal if not better results
Simulatorsoftware für ZSL 90 Systemtestanlage
Problem: Die Siemens Mobility AG ist in der Bahnbranche tätig und entwickelt durch Veranlassung eines Servicevertrages mit Kunden eine neue Systemtestanlage für das Zugsicherungssystem mit Linienleiter (ZSL 90). Für diese Systemtestanlage wird eine Simulatorsoftware benötigt, welche mittels einer virtuellen Zugstrecke und virtuellem Zug neu entwickelte Zugbeeinflussungshardware testet.
Ziel: Im Rahmen dieser Bachelorarbeit wird eine Simulatorsoftware für die neue Systemtestanlage entwickelt. Dies ermöglicht simulationsgetriebene Entwicklung neuer Hardware, um diese effizient und sicher zu testen, ohne diese in einen physischen Zug einzubauen. Die Software muss die strengen Spezifikationen der Siemens einhalten, damit ein gesetzeskonformer Betrieb der neu entwickelten Hardware möglich ist. Damit der Simulator nach Abschluss dieser Arbeit weiterentwickelt werden kann, wird eine modulare Architektur gewählt.
Methode / Vorgehen: Ausgehend einer anfänglichen Analyse mit den am Projekt beteiligten Entwicklungsabteilungen wird die Software nach der agilen Methode Scrum entwickelt. Wöchentlich wird der Stand der Arbeit mit den verantwortlichen Entwicklungsabteilungen der Siemens abgeglichen, sowie Rücksprache mit dem Betreuer der Ostschweizer Fachhochschule gehalten.
Ergebnisse: Die erstellte Lösung kann eine Zugfahrt in Echtzeit simulieren. Dabei werden die physikalischen Zug-Daten emuliert. Während der Simulation werden alle relevanten Daten an die Zugbeeinflussungshardware gesendet. Zu Testzwecken können die Daten sowohl richtig als auch falsch sein, um das Verhalten der Hardware zu überprüfen. Durch den Einsatz der Anwendung kann der Testprozess neuer Hardware vereinfacht, digitalisiert und optimiert werde
Secure Software Lab
Aufgabenstellung / Zielsetzung
In dieser Arbeit wurde ein Prototyp einer Lernplattform erstellt. Diese Lernplattform stellt eine webbasierte, auf Desktop Geräte optimierte Lernumgebung dar, in der Benutzer mehrere Kurse belegen können. Jeder dieser Kurse soll mindestens eine Aufgabe enthalten, die wiederum externe Ressourcen beinhalten kann und in einer separaten, auf Docker basierten virtuellen Umgebung verfügbar ist. Der Benutzer kann Lösungen zu Aufgaben einreichen und erhält vom System ein Feedback. Um die Vertraulichkeit der Daten zu gewährleisten, besteht die Lernplattform aus mehreren Sicherheitszonen. Zusätzliche Use Cases wurden für die Weiterentwicklung der Lernplattform definiert.
Vorgehen / Technologien
Spezifische Lösungen für Lernplattformen für sichere Softwareentwicklung (Hacking Lab, OWASP SKF, Eigenentwicklung) wurden analysiert und gegenübergestellt. Die Entscheidung fiel auf eine Neuentwicklung, da man flexibler bei der Wahl von Technologien und der Erweiterung von neuen Funktionen ist. Allgemeine E-Lernplattformen wie Moodle wurden nicht betrachtet, da diese das Einbetten von virtuellen Umgebungen in den Aufgaben nicht unterstützen. Die Architektur der Lernplattform besteht aus einem Frontend, einer Web API, einer Datenbank, einem Content Server als Docker Host für virtuelle Umgebungen, einem Identity Provider (IDP) und einem Reverse Proxy. Durch die strikte Trennung vom Frontend, das mit React realisiert und der Web API, die mit .NET Core umgesetzt wurde, kann das Frontend durch eine Mobile App ausgetauscht oder erweitert werden. Die Web API, welche in C# geschrieben ist, kommuniziert mit einer PostgreSQL Datenbank über das Entity Framework Core. Ausserdem steuert die Web API den Docker Host des Content Servers, um Dockerumgebungen für die Aufgaben zur Verfügung zu stellen. Die Authentisierung wurde mit dem Keycloak IDP realisiert. Der Reverse Proxy Traefik verbindet das Frontend, Web API, Keycloak und die virtuellen Umgebungen. Für die Kerntechnologien der Lernplattform wurde eine ausführliche Architekturentscheidung erstellt.
Ergebnisse und Anwendungsmöglichkeiten
Das Ergebnis ist eine webbasierte Lernplattform, in der sich Benutzer einloggen, Übungen lösen und Ergebnisse einreichen können. Jeder Kurs kann mehrere Aufgaben haben, die wiederum auch virtuelle Umgebungen beinhalten kann. Der Benutzer kann Lösungen einreichen, die dann automatisiert vom System geprüft werden. Die Erstellung und Bearbeitung der Kurse und Aufgaben erfolgt über die direkten Anpassungen auf der Datenbank. Keycloak wird über ein Import Script konfiguriert und ist für die Erstellung der Benutzer sowie für die Verteilung der Benutzerrollen zuständig. Die Lernplattform wird über die dockercompose Datei bereitgestellt