1194 research outputs found
Sort by
Ressourcenmonitor Widget für First Responder Applikation
Bereits heute laufen in den Einsatzzentralen vieler Blaulichtorganisationen verschiedene Anwendungen und Applikationen, welche die Einsatzmittel steuern oder überwachen. Dies gilt auch für die bereits existierende Applikation «Momentum» der Firma «sureVIVE». Die Applikation ermöglicht es in Notfallsituationen, insbesondere bei plötzlichem Herzstillstand (SCA), schnell den richtigen Retter zu identifizieren und zu alarmieren. Die bestehende Anwendung bietet für einen einfachen Überblick aber zu viele Optionen und Möglichkeiten.
Im Rahmen dieser Arbeit wurde eine einfache und schnelle Übersicht in Form eines Widgets gebaut. Als Grundlage dazu diente ein Requirements Engineering mit einem grossen Anwender der «Momentum» Applikation. Die für die bestehende Applikation bereits existierenden REST-API Endpunkte wurden zudem auf eine Kommunikation mittels Messaging umgestellt. Dies ermöglicht eine Aktualisierung der Daten in Echtzeit und somit eine aktuelle Übersicht über die Einsatzmittel der «Momentum» Applikation. Für die Umsetzung wurde für das Frontend Angular sowie Java mit Spring für das Messaging-Backend verwendet. Das Messaging selbst erfolgt über einen Azure Servicebus
A Command-Line Tool for Managing Recurring Architectural Decisions: Design, Implementation, and Empirical Evaluation
This thesis presents the design, implementation, and evaluation of ADG (Architectural Decision Guidance), a command-line tool for managing recurring architectural decisions. Based on previous conceptual work and a Clean Architecture decision handbook, ADG offers a structured, metadata-driven approach to managing the lifecycle of Architectural Decision Records (ADRs). Implemented in Go and aligned with Clean Architecture principles, ADG supports modular decision models using editable Markdown files, nested links, and guidance templates.
ADG facilitates the creation, tagging, linking, validation, and reuse of ADRs through 18 command-line interface (CLI) commands, promoting model-driven knowledge reuse across projects. One of its key features is support for guidance modeling, which allows curated decision templates to be instantiated and merged across contexts.
An empirical evaluation involving a software architect and a graduate student demonstrated the usability and practical relevance of the tool in realistic scenarios. ADG distinguishes between three roles: Knowledge Engineers, Model Tailors, and Architects/Developers. These roles enable collaboration through structured workflows. The result is an extensible CLI prototype that advances the practical tooling landscape for decision-centric architecture modeling
Zero-Knowledge Sudoku
Imagine sharing that you know a secret without revealing the secret itself. This is what zero-knowledge proofs (ZKPs) aim to do. In ZKPs there is a prover who claims knowledge of something and a verifier who checks this claim. The goal of this project is to further explore current technologies revolving around ZKPs and understand possible adaptations to an everyday application beyond blockchain use cases.
To explore the practical use of ZKPs, this project introduces a web puzzle application that keeps the solutions of individual users private using ZKPs. A user can solve a logic- based puzzle like Binairo or Sudoku and check the validity of their solution by sharing only a ZKP of the solution. That way, the solution never leaves the user’s device. To further strengthen the security, the following two checks are implemented: (1) making sure that the solution matches the original puzzle, and (2) integrating the user’s ID during the generation process. These checks prevent users from reusing a proof to “solve” other puzzles or for the proof to be stolen by another user. To implement this application, different ZKP frameworks are considered. Circom and snarkjs are selected because of their active development, clear documentation and good web development capabilities.
The final result is a secure application that demonstrates how ZKPs can be applied in a realistic and practical way. This highlights their broader potential in digital security. In most applications, the impact of ZKPs is intentionally hidden, as good cybersecurity aims to operate in the background. The ZKP-Puzzles application puts the ZKPs in the spotlight and visualizes how ZKPs work
Urban Sprawl Metrics
Die Zersiedelung beschreibt die unkontrollierte Ausbreitung der Siedlungsfläche auf Kosten von Natur- und Landwirtschaftsflächen.
Das Bundesamt für Raumentwicklung (ARE) hat den Auftrag des Bundes, die Zersiedelung in der Schweiz zu beobachten und diese einzugrenzen.
Politisch bezeugte besonders die gescheiterte "Zersiedelungsinitiative" vom 10. Februar 2019 die Dringlichkeit der Thematik.
Die Zersiedelung ist demnach nicht nur ein geographisches, sondern auch ein gesellschaftliches Thema.
Mit der von Schwick et al. im Buch "Zersiedelung messen und begrenzen" begründeten Methoden zur Bestimmung der Zersiedelung wurde ein Fundament zur Erfassung dieses Problems geschaffen.
Das Projekt zielt darauf ab, den "USM Calculator" Webservice, eine Webapplikation, basierend auf den erwähnten Methoden, um zusätzliche Funktionen zu erweitern.
Die angestrebten Ziele umfassen die Ermöglichung weiterer Schritte in Richtung Unabhängigkeit von dritter Software, wie beispielsweise QGIS.
Ausserdem wird die Machbarkeit einer parallelisierten Berechnung mehrerer Regionen untersucht, um grössere Datenmengen effizienter zu berechnen.
Im Rahmen dieser Arbeit wurde der Webservice um zusätzliche Funktionen ergänzt, die es ermöglichen, die statistischen Inputdaten für die Bestimmung der Zersiedelung zu bearbeiten.
Ausserdem wurde eine Lösung konzipiert, um die Rasterdaten der bebauten Fläche anzupassen und deren Einfluss auf die Zersiedelung unmittelbar zu untersuchen.
Die Inputdaten können direkt im Frontend (umgesetzt mit Vue.js) der Webapplikation angepasst werden.
Dabei kann die bebaute Fläche, die mittels GeoTIFF-Raster auf einer Leaflet-Karte dargestellt wird, pixelweise verändert werden.
Anschliessend kann das Raster als Input für die Verarbeitung im Python-Backend verwendet werden.
Zudem können statistische Inputdaten (GeoPackage, GeoJSON), wie z.B. die Einwohneranzahl oder Arbeitsplätze einer Region bearbeitet werden.
Die parallelisierte Berechnung mehrerer Untersuchungsgebiete wurde evaluiert und führt zu einer reduzierten Rechenzeit.
Die Erweiterungen tragen massgeblich dazu bei, Veränderungen der Siedlungsstruktur besser verfolgen zu können.
Für Raumplanende fällt die Anpassung der Inputdaten und anschliessende Kalkulation einfacher aus.
Die Förderung des Verständnisses von Zersiedelung sowie die Entwicklung von Massnahmen zu deren Eindämmung kann durch den Einsatz der Software in der Lehre und Forschung weiter vorangetrieben werden
Hydra - Multi-Incident Management - Simplified
Die vorliegende Masterarbeit beschäftigt sich mit der Entwicklung eines Softwaresystems zur Unterstützung der freiwilligen Feuerwehr bei der Bewältigung von Mehrfachereignissen, wie z. B. Hochwasser. Das System Hydra zielt darauf ab, die administrative und kommunikative Belastung während solcher Ereignisse zu reduzieren. Die webbasierte Plattform ermöglicht die Erfassung und Priorisierung von Meldungen sowie das Zuweisen von Einsatzkräften zu Ereignissen. Die Visualisierung laufender Einsätze auf einer interaktiven Karte sowie ein Kanban-Board bieten eine gute Übersicht über die aktuelle Lage. Diese Visualisierung ist in zwei Varianten verfügbar, einerseits für den Einsatzleiter und andererseits für die Truppchefs.
Die Arbeit basiert auf einer umfassenden Analyse der Anforderungen und Prozesse der themengebenden Feuerwehr. Diese identifizierte die Notwendigkeit eines einfachen und erweiterbaren Systems, das ohne grossen Schulungs- und Wartungsaufwand eingesetzt werden kann.
Erste Rückmeldungen der Anwender zeigen, dass eine einfache übersichtliche Darstellung der Ereignisse die administrative Belastung reduziert und dazu beitragen kann, die Effizienz der Einsatzkräfte zu steigern
Systematische Weiterentwicklung des Wortschatztrainers
Diese Masterarbeit entstand in Zusammenarbeit mit dem Lehrmittelverlag Zürich (LMVZ) und zielte darauf ab, den digitalen Wortschatztrainer des Französisch-Lehrmittels «disdonc!» zu überarbeiten und nutzerfreundlicher zu gestalten. Grundlage war das Collaborative UX Design, das nach einer Evaluation verschiedener Vorgehensmodelle aufgrund seines kollaborativen Ansatzes gewählt wurde.
Zu Beginn wurde eine Planung für das Projekt erstellt. Verschiedene Vorgehensmodelle wurden evaluiert, um das Passende für dieses Projekt zu finden. Das Projektteam entschied sich für das Model Collaborative UX Design. Dazu wurde eine Risikoanalyse und ein Stakeholdermanagement entwickelt, um die beteiligten Akteure rund um den Wortschatztrainer zu berücksichtigen. Der LMVZ war mit zwei Vertreter:innen aktiv eingebunden, die regelmässig über Fortschritte informiert und in wichtige Entscheidungen einbezogen wurden.
Die entwickelte Lösung des Wortschatztrainers (WST) basiert auf in qualitativen Untersuchungen erhobenen Daten, die nach einem klar strukturierten Vorgehen erarbeitet und validiert wurden. Dabei entstanden essenzielle Artefakte wie die Primäre Persona und die User Journey, welche die Grundlage für ein präzises Verständnis der Nutzerbedürfnisse und der Problemstellung bilden. Im Problem Statement Map wurden bestehende Herausforderungen sowie neue Zielsetzungen dokumentiert.
Die Analyse der bestehenden Lösung erfolgte auf Basis definierter Kriterien, wobei gewonnene Erkenntnisse gezielt in die neue Lösung integriert wurden. Die Ausrichtung an den fünf Dimensionen von W. Quesenbery erlaubte eine gezielte Fokussierung auf relevante UX-Metriken, wodurch die Ergebnisse zukünftig messbar sind. Diese fundierte Grundlage sorgte dafür, dass während der Ideations- und Konzeptionsphase ein klarer Produktfokus vorhanden war, gleichzeitig jedoch genügend Raum für kreative und innovative Ansätze blieb.
Das Szenario und die User-Story Map halfen, die zentralen Ziele weiter zu konkretisieren und Interaktions- sowie Funktionspunkte gezielt zu priorisieren. Auf dieser Basis wurde ein Prototyp entwickelt, der durch mehrere Iterationen getestet und optimiert wurde. Nach Abschluss des Testings wurde eine Priorisierung der erarbeiteten Features durchgeführt, wobei eine klare UX-Matrix sowie der Entwicklungsaufwand berücksichtigt wurde.
Die finale Lösung zeichnet sich durch eine verbesserte Benutzerfreundlichkeit, didaktische Qualität und eine stärkere Ausrichtung auf die Bedürfnisse der Schüler:innen aus. Während dem Projekt wurden dazu elf Schüler:innen befragt und zwei Testingrunden mit weiteren elf Schüler:innen durchgeführt. Dabei hat das Projektteam gelernt, wie wichtig ein angenehmes Umfeld für junge Testpersonen ist, und das Verständnis zum Thema Lernverhalten wie auch zur Didaktik konnte vertieft werden
BoltFinder: A Prototype for ML-Assisted Climbing Route Digitization
Switzerland has around 47,000 climbing routes, yet detailed information about these routes is fragmented across various platforms and printed guidebooks. The Swiss Alpine Club (SAC), a leading climbing organization, currently manages climbing sectors manually, highlighting the lack for automation. An automated solution poses challenges, such as gathering a comprehensive dataset, detecting small objects such as bolts and anchors, and using algorithmic traversal of predictions to determine accurate climbing routes for diverse areas. Tackling these challenges streamlines climbing route digitization.
BoltFinder is a proof-ofconcept solution leveraging machine learning to automate digitization of climbing routes. BoltFinder uses YOLOv11 to detect bolts and anchors in climbing wall images. Based on these detections, routes are identified through an algorithm that leverages Voronoi diagrams. A React-based frontend offers a user-friendly interface for reviewing and editing predictions and routes. The backend consists of an ExpressJS API for managing the business workflow, including the route generation algorithm, and a FastAPI responsible for handling image tiling and generating predictions. The PostgreSQL database employs a relational data model to organize and manage route structures. Model tracking is managed through MLFlow, ensuring robust performance monitoring, scalability, and adherence to MLOps principles.
The prototype uses YOLOv11 to detect bolts and anchors. Using 1024px tiles, the model exhibits a mAP\@25 score of 0.89 for bolts. YOLOv11 surpasses Faster R-CNN in precision and F1 score by ~20%. The system identifies climbing routes with an accuracy of 78% across 102 routes. 21 identified routes exhibit minor deviation whereas major deviation is observed in only one route. These results establish BoltFinder as an automated solution for climbing route digitization, providing significant value to climbers and the SAC. The prototype shows strong potential. Further improvements are possible via drone imagery, classifying different bolt types, and identifying bolt conditions like rust or wear
Concept Alternatives for the Management of Architectural Decisions in Clean Architectures
As software systems become more complex, it is increasingly important to design architectures that can adapt to change, scale effectively, and remain easy to manage. Clean Architecture is a popular approach that helps achieve these goals by organizing systems into layers, each with clear responsibilities. However, applying Clean Architecture can be challenging, especially when it comes to making and keeping track of important architectural decisions. The existing decision management tools often lack domain-specific features and can be difficult to use. There is a need for a better tool that not only helps document decisions, but also guides users through making them in a structured and consistent way.
The objective of this project was to design a new tool concept to address the shortcomings of current tools for managing architectural decisions, particularly in the context of Clean Architecture. This involved analyzing existing tools to understand their limitations, developing a conceptual framework for a new tool that guides users through architectural decision-making, and creating an initial proof-of-concept to demonstrate feasibility. The envisioned tool should help users make decisions in a guided manner and to document those decisions in a way that supports the development of the software. The second objective was to analyze and collect key architectural decisions that repeatedly occur when working with Clean Architecture. The resulting collection is envisioned to guide software architects and developers effectively when they make decisions that align with the key principles of Clean Architecture. This collection also serves as an example of a guidance model that shows the viability of the proposed tool concepts.
The project resulted in an outline for the new tool and a proof-of-concept implementation in Go. The new tool will have an easy-to-use command line interface. It works in combination with the Clean Architecture decision collection that provides concise step-by-step guidance on key architectural decisions such as setting up the initial structure of the system, defining key components and choosing how different parts of the system will interact. The proof-of-concept, while simple, demonstrates how such a tool could work and lays the foundation for further development. Future enhancements could include features such as interactive decision workflows, integration with software development environments, and advanced analysis tools (for example, machine learning) to help make better decisions. Overall, the tool together with the proof-of-concept provide a suited starting point for improving the way in which architectural decisions are made and documented, helping to create more flexible and maintainable software systems
How to vim
Text editing is a ubiquitous task. Its efficiency varies depending on the chosen editor and, more significantly, on a user's skill level. Modal editors offer strong benefits, like allowing users to keep their hands on the keyboard. However, their commands are often unintuitive and pose a steep learning curve for beginners. This thesis aims to make the initial experience with modal editing more pleasant and less frustrating.
To achieve this, a beginner-friendly modal editor based on Vim's keybindings is implemented. The editor is developed using algebra-driven design and Haskell. True to its name, Vim with training wheels supports new users through contextual help texts and colors, along with a tutorial that emphasizes understanding over rote memorization. It includes essential features such as editing and command undo functionality
Securaware: Plattformlösung zum individualisierten CybersecurityTraining für Privatpersonen
Phishing zählt zu den am weitesten verbreiteten Angriffsformen im Bereich der Cybersecurity und gewinnt durch die voranschreitende Digitalisierung zunehmend an Relevanz im Alltag. Insbesondere Privatpersonen sind häufig unzureichend gegen derartige Angriffe geschützt und benötigen gezielte Massnahmen zur Steigerung ihrer Sicherheitskompetenz.
Im Rahmen dieser Bachelorarbeit wird ebendiese Lücke durch die Konzipierung einer Schulungsplattform und Entwicklung eines Prototypen geschlossen. Dieser Prototyp sensibilisiert Privatpersonen für Phishing mithilfe von theoretischen und praxisorientierten Inhalten, Simulationen und Beispielen. Bestehende Awareness-Lösungen, typische Vorgehensweisen von Angreifern und erkennbare Merkmale von Phishing-E-Mails werden in einem ersten Schritt analysiert, um daraus Anforderungen abzuleiten. Darauf aufbauend werden Features und eine Software-Architektur hergeleitet und durch Anwendung von state-of-the-art Software-Engineering-Praktiken der Prototyp implementiert. Mittels eines Usability-Tests wird die Benutzererfahrung evaluiert und optimiert.
Es wurde eine innovative und benutzerorientierte Schulungsplattform konzipiert und umgesetzt, welche Benutzer anhand von Phishing-Simulationen, Online-Kursen und Tests über Betrugsversuche im Internet präventiv informiert. Zukünftig kann Securaware iterativ weiterentwickelt und kommerziell verwendet werden