1194 research outputs found
Sort by
City Trip Planner: Kurztrip-Planer für Fussgänger
Stadtrundtrips in der Schweiz erfreuen sich immer grösserer Beliebtheit und es gibt bislang kein passendes Produkt, welches die individuelle Planung als Dienst anbietet. Die Applikation City Trip Planner erstellt individuelle Rundtrips im städtisch-urbanen Raum für Fussgänger:innen. Sie können persönliche Präferenzen wie Kategorie der Interessen und maximale Laufdistanz eingeben, woraufhin ein passender Stadtrundtrip erstellt wird. Dieses Projekt ist eine Kooperation mit Schweiz Tourismus.
Das Ziel ist es ein Minimal Viable Product einer responsiven Webapplikation, mit welcher Routen intuitiv geplant und später auf einem internetfähigen Mobilgerät abgerufen werden können, zu entwickeln. Um die Attraktivität zu steigern, werden zusätzliche Informationen zu den jeweiligen Stationen einer Tour angezeigt. So können Benutzer:innen ganz einfach Städte in der Schweiz erkunden.
Um möglichst schnell ein passendes Resultat zu finden, verwendet die Applikation drei Suchstrategien. Sie können konfigurativ auf die Bedürfnisse des Betreibers angepasst werden, um den Anwendungszweck zu erfüllen. Sie sind dazu optimiert in den Bereichen von kurzen, mittleren und langen Distanzen sowie wenigen, einigen und vielen Punkten eine passende Route, die den Kriterien der Benutzer:innen entspricht, zu finden. Für die Umsetzung dieses Projektes wurden folgende Technologien eingesetzt: Python, FastAPI, Angular, PostgreSQL, OpenStreetMap und OSRM
Kundencockpit Optimierung St. Galler Kantonalbank
Das im Herbst 2020 eingeführte Kundencockpit der St. Galler Kantonalbank (SGKB) wird von den Kundenberater*innen nicht wie gewünscht eingesetzt. Nur ca. 8 % verwenden es regelmässig. Die SGKB möchte diese Gelegenheit nutzen, um zu ermitteln, warum das Kundencockpit wenig genutzt wird und was verändert werden muss, damit es häufiger zum Einsatz kommt.
Das Ziel der vorliegenden Arbeit ist es, zu beantworten, wie die Kundenberater*innen in ihrer Beratungstätigkeit unterstützt werden können. Dazu wird folgende Forschungsfrage gestellt:
Wie kann die Beratungstätigkeit der Kundenberater*innen mit einem technischen Tool bestmöglich unterstützt werden?
Zusammen mit den Auftraggebern hat sich das Projektteam dazu entschieden, die Arbeit nach dem Vorgehensmodell ‹Collaborative UX Design› durchzuführen. Um die Forschungsfrage zu beantworten und den Kontext der Kundenberater*innen kennenzulernen, wurde zuerst eine Research-Phase durchgeführt. Die daraus gewonnenen Erkenntnisse wurden in zwei ‹Erkunden›-Iterationen zu einem Prototyp zusammengefasst. Dieser Prototyp ist das Endergebnis dieser Arbeit und wird gemeinsam mit Handlungsempfehlungen der Auftraggeberin übergeben.
Die grössten Herausforderungen in dieser Arbeit waren einerseits die schwammigen Nutzergruppen. Das Kundencockpit sollte für sämtliche Kundenberater*innen der SGKB einen Nutzen für ihre Beratungstätigkeiten bringen. Andererseits gab es zu viele verschiedene Use-Cases, in welchen das Kundencockpit zum Einsatz gebracht werden kann. So konnte keine eindeutige User-Journey erstellt werden.
Das Endergebnis dieser Arbeit ist ein pragmatisches, auf den ersten Blick unscheinbares Redesign, in welches bekannte und bewährte Interaction-Patterns eingearbeitet wurden. Dabei wurden die bisher angezeigten Daten radikal reduziert, damit für die Kundenberater*innen nur die relevantesten Daten auf den ersten Blick ersichtlich sind. Dadurch konnte die Usability in mehreren Punkten verbessert werden.
Weiterführende Verbesserungen im Kundencockpit könnten darin bestehen, dass die Personas stärker verfeinert werden und den Endnutzern und -nutzerinnen eine individuelle Lösung bereitgestellt wird
Konzipierung einer Plattform zur digitalen Kaffeeangebots-Erstellung
Die vorliegende Masterarbeit ist im Rahmen der Weiterbildung MAS Human Computer Interaction Design entstanden. Auftraggeber ist ein Start-up aus Zürich, welches sich mit der Entwicklung einer intelligenten elektronischen Kaffeeröstmaschine beschäftigt. Diese soll es Gastronomen ermöglichen, ihren eigenen Kaffee im Gastrobetrieb zu rösten.
Die Projektgruppe (Glossar) wird beauftragt, eine Plattform zu konzipieren, auf welcher die Gastronomen ihr Kaffeeangebot erstellen können. Ziel ist es, mit einem nutzerzentrierten Ansatz zu erforschen, welche Bedürfnisse, Chancen und Einschränkungen bestehen, die mit der Verlagerung des Röstprozesses in die Gastrobetriebe verbunden sind.
Das Vorgehen stützt sich auf die in Goal-Directed Design von Alan Cooper vorgegebenen Projektphasen. Die Phasen werden dem Vorgehensmodell treu durchgeführt, jedoch durch Methoden aus Collaborative UX von Toni Steimle und Dieter Wallach ergänzt, um eine zielführende Zusammenarbeit mit dem Auftraggeber sicherzustellen.
Nach einem zielgerichteten Scoping wird ein Grundwissen über das Produkt und die Domäne verschafft. Es werden zwei Zielgruppen definiert und die zu untersuchenden Annahmen festgehalten. Anschliessend wird durch Interviews die Ist-Situation der jeweiligen Zielgruppen erhoben und modelliert.
Aus den gewonnenen Erkenntnissen werden eine primäre und eine sekundäre Persona erstellt. In der Requirements-Definitionsphase werden die Soll-Szenarien sowie die ersten Ideen zur digitalen Erstellung eines Kaffeeangebots entworfen. Im Sinne eines nutzerzentrierten Vorgehens werden zwei Nutzertests durchgeführt, um die Lösungen zu validieren.
Ergebnisse der Arbeit sind zwei validierte Personas, Hi-Fi Wireframes, ein interaktiver Prototyp und eine Vielfalt erhobener Anforderungen an die Plattform. Aufgedeckte Bedürfnisse, welche mit dem Produkt verbunden sind, jedoch vom Scope ausgeschlossen sind, werden am Ende des Berichtes in Form von Empfehlungen an den Auftraggeber weitergegeben.
Zur Weiterführung des Projekts steht dem Auftraggeber, dank dieser Arbeit, ein Design-Framework zur Verfügung, welches als Basis für weitere Forschungsiterationen verwendet werden kann
Weiterentwicklung Prozessor-Simulator (Folgearbeit)
EINLEITUNG
Die Funktionsweise von modernen Prozessoren wird im Informatik-Studium an der OST im Rahmen des zweiteiligen Moduls "Betriebssysteme" unterrichtet. Besonders die Kapitel über Assembly und Prozessoren sind komplex und erfordern ein hohes Mass an abstraktem Denkvermögen. Um ein besseres Verständnis bei den Studenten zu fördern, gab das INS 2020 die Entwicklung eines grafischen Prozessor-Simulators in Auftrag. Mithilfe dessen soll das Nachverfolgen der Arbeitsschritte eines Prozessors leichter möglich sein. Im Zuge unserer Studienarbeit im Herbstsemester 2021 entwickelten wir diesen Simulator weiter und ergänzten ihn um weitere Funktionalität.
Das Ziel der vorliegenden Arbeit war, diese Weiterentwicklung abermals fortzuführen. Wir konzentrierten uns dabei auf Verbesserungen der von uns in der Studienarbeit eingefügten Code-Anzeige, um es Nutzern zu erlauben, mit ihrem Code zu interagieren. Der Simulator soll so künftigen Generationen von Studenten noch besser beim Verständnis dieses grundlegenden Stoffes helfen.
VORGEHEN
Der Hauptteil unserer Arbeit bestand darin, das Setzen von bedingten Breakpoints sowie Watchpoints zu ermöglichen. Wir verwendeten dazu einen Expression Parser, um vom Nutzer eingegebene Bedingungen auf ihr Zutreffen zu überprüfen und das Programm gegebenenfalls anzuhalten. Watchpoints funktionieren ähnlich, werden aber nach jedem Schritt automatisch überprüft. Um diese Features einbauen zu können, mussten wir zuerst eine Verbindung zwischen den Instruktions-Bytes im Speicher und den im Frontend angezeigten Textzeilen herstellen. Nachdem wir Zeilen, welche nicht auf Instruktionen mappen, aus dem Text im Frontend herausgefiltert hatten, konnten wir unter Verwendung des Disassemblers eine solche Korrelation mit den Daten im Speicher herstellen.
ERGEBNIS
Es ist uns gelungen, die anfangs stark eingeschränkte Code-Anzeige so auszubauen, dass der Nutzer damit die vollständige Kontrolle über die Ausführung des Programms hat. Es ist möglich, den Simulator schrittweise oder kontinuierlich vorwärts oder rückwärts laufen zu lassen. Bedingte und unbedingte Breakpoints sowie Watchpoints können gesetzt werden und halten die Ausführung des Programms gegebenenfalls an.
Es ist ausserdem möglich, auf spezifische Codezeilen zu klicken, um den Zustand des Simulators bis zu dieser Zeile vor- oder zurückzuspulen.
Weiterhin konnten wir mehrere Verbesserungen beim Informationsgehalt angezeigter Daten einbauen. Wie in einem konventionellen Debugger wird die aktuell ausgeführte Codezeile farblich hervorgehoben. Ausserdem sind die einzelnen, kodierten Instruktionen im Speicher jetzt farblich unterschiedlich gekennzeichnet.
Der Simulator ist unter einer OpenSource-Lizenz veröffentlicht und kann unter http://cpusimulator.pages.gitlab.ost.ch/cpusim- frontend/ verwendet werden
SCRJ Lakers Fan-Engagement-App
Die Lakers Sport AG besitzt bereits eine eigene Webseite und eine mobile App mit Informationen über den Verein. Damit sich Fans intensiver mit dem Verein auseinandersetzen, soll innerhalb des vorliegenden Projekts eine entsprechende Plattform entwickelt werden. Für die Implementierung der Plattform gibt es keine Vorgaben oder Einschränkungen des Vereins und des Betreuers. Das Projektteam evaluiert selbstständig geeignete Lösungen und beschliesst in enger Zusammenarbeit mit dem Kunden das weitere Vorgehen.
In der Konzeptionsphase wurde zusammen mit der Lakers Sport AG die Idee eines interaktiven Tippspiels ausgearbeitet. Darin sollen Fans Voraussagen über zukünftige Spielereignisse machen können. Richtige Antworten werden mit Punkten und der Teilnahme an einem Gewinnspiel belohnt. Um die User Experience auf die Bedürfnisse der Fans abzustimmen, wurde ein User-centered-Design-Ansatz angewendet. Die daraus entstandenen Anforderungen dienten als Ausgangslage für den Softwarearchitektur-Entwurf. In einem iterativen Prozess wurde anschliessend anhand des evaluierten Prototypens das Endprodukt entwickelt.
Das Backend des Tippspiels besteht aus verschiedenen AWS-Services. Durch die Verwendung einer cloudbasierten Serverless-Architektur lässt sich die Applikation skalieren, sobald sich die Last verändert. Die Infrastruktur erfährt an Spieltagen kurzfristig eine grosse Belastung. Dank dem Einsatz von FaaS-Komponenten muss nur die Leistung bezahlt werden, die auch effektiv benötigt wird. Um die Bandbreite an AWS-Services besser verwalten zu können, wurde das AWS Amplify CLI eingesetzt. Damit wurde unter anderem die API mit GraphQL aufgesetzt. Mit diesem Ansatz sind Realtime-Updates möglich, welche zuvor als Anforderung festgelegt wurden.
Das mit React implementierte Frontend wird als Progressive Web Application (PWA) ausgeliefert. Der integrierte Service-Worker gewährleistet die Installierbarkeit und Push-Benachrichtigungen. Die Fans können die Applikation entweder anonym nutzen oder sich ohne Passwort mit ihrer E-Mail sowie über externe Login-Provider authentifzieren. Anonym abgegebene Tipps werden bei einer späteren Registrierung in das persönliche Profil übernommen. Das Tippspiel wird durch einen Regiebereich von einem Administrator gesteuert. Die Bedienung ist in einer Benutzeranleitung beschrieben.
Die Leistungsfähigkeit der Fan-Engagement-App bei grösserer Last wird mit API- und End-to-end Tests überprüft. In einem Crowd Test wird die App von vielen Personen gleichzeitig zu einem realitätsnahen Szenario benutzt, um den zukünftigen produktiven Einsatz zu simulieren
Automatisierte Analyse von Clean-Code Regeln mit IDE-Plugins
Clean Code - sauber geschriebener Quelltext - ist ein elementarer Bestandteil der Softwarequalität. Man versteht darunter, dass Code gut lesbar, sauber strukturiert und einfach verständlich sein soll. Clean Code Prinzipien sollten bei jedem Softwareprojekt eine hohe Priorität geniessen, da sie vor allem die Wartbarkeit und die Erweiterbarkeit begünstigen.
Während unserer Studienarbeit haben wir einen Prototyp eines Plugins für die Visual Studio Code IDE entwickelt, welches geschriebenen Code auf die Einhaltung von Clean Code Prinzipien prüft. Dieser war in der Lage Quelltext gegen ein begrenztes Set an Regeln zu prüfen und Verstösse in der IDE farbig hervorzuheben, damit EntwicklerInnen diese Clean Code Prinzipien von Beginn weg einhalten und aufwändige Nachbesserungen vermeiden. Im Rahmen unserer Bachelorarbeit haben wir den Prototyp wieder aufgegriffen, mit dem Ziel ihn weiterzuentwickeln und als Open Source Projekt zu veröffentlichen. Dabei wurde die Architektur vom clientseitigen Plugin zum funktionelleren Language Server Plugin verändert, sowie der Satz an Clean Code Regeln die überprüft werden erweitert. Sämtliche Komponenten sind darauf ausgelegt, dass sie einfach ausgebaut werden können.
Vorbereitend für diese Weiterentwicklung haben wir unser Wissen über den Clean Code Begriff durch Literaturrecherchen vertieft. Zusätzlich stellten wir für die Veröffentlichung als Open Source Projekt Recherche bezüglich Lizenzbedingungen, Beitragsrichtlinien, Verhaltenskodex und benötigter Dokumentation an.
Mit der Durchführung und Auswertung von Nutzertests, bei denen die Testpersonen über unterschiedliche Fähigkeitsniveaus in der Programmierung und Wissen über die Clean Code Prinzipien verfügen, konnten wir das Plugin um einige nutzerrelevante Funktionen erweitern. Dadurch stehen nun eine Black- und Whitelist zur Verfügung und über ein Konfigurationsfile können einzelne Regeln deaktiviert, sowie weitere Feineinstellungen vorgenommen werden.
Mit der Veröffentlichung des Plugins als eigenständiges Open Source Projekt haben wir die Grundlage für ein Tool geschaffen, welches mit Hilfe der weltweiten Gemeinschaft um weitere Programmiersprachen, sowie Clean Code Regeln wachsen kann und sich langfristig als hilfreiches Werkzeug gegen schlechten Quellcode erweisen könnte
Code Preparation for Machine Learning
Using machine learning for images, text, or audio has become
popular and relatively mainstream. On the other hand, using
machine learning for code is a rather new field. Only a few
commercial products are available, and the research is still in its early stages. When trying to join this field, many different topics need to be explored.
This paper aims to bring a software engineer or a programming language researcher up to speed on the current state of machine learning and show the possibilities of such technologies in respect to code. It covers code2vec, code2seq, CuBERT, CoCluBERT, CodeBERT, TreeBERT, and DeepBugs AST Context Representations, with their respective backgrounds and list tools and points out available further research. It also covers a few use cases and gives a practical example that leads through the whole paper
Entwicklung einer Animationsbibliothek für SimPy
Ausgangslage:
Simulationen werden verwendet, um reale Situationen unter variierenden Bedingungen nachzubilden und damit Verhaltensweisen zu untersuchen und vorherzusagen. SimPy ist ein schlankes Python Framework für diskrete Ereignissimulation und wird zum Beschreiben von Simulationen verwendet. JupyterLab bietet die Möglichkeit sogenannte Notebooks zu erstellen. Notebooks stellen eine webbasierte interaktive Programmierumgebung zur Verfügung in welcher unter anderem SimPy Simulationen geschrieben und verwendet werden können. Zur Verifikation der Ergebnisse einer solchen Simulation ist es wünschenswert eine zur Simulation passende Animation zur Hand zu haben. Momentan bietet SimPy noch keine integrierte Möglichkeit eine Simulation zu visualisieren und zu animieren.
Ziel:
Vorbereitend auf eine Folgearbeit, welche eine Animationsbibliothek implementiert, wird in dieser Arbeit die Evaluation und Überprüfung von Technologien für die Visualisierung und die Animation von Simulationen durchgeführt. Ebenfalls existiert ein Architekturvorschlag für die Umsetzung einer Animationsbibliothek für SimPy.
Ergebnisse:
Recherche zu SimPy und Jupyter führen zu einem klaren Bild der Situation. Die Integration in Jupyter, das Aufbereiten der Simulation für die Animation sowie das Animieren selbst sind der Fokus. Für diese Anforderungen werden Lösungsvorschläge ausgearbeitet und diskutiert. Zur Erleichterung der Vergleichbarkeit werden Funktionalitäten definiert, an welchen sich die Recherchen orientieren.
Bei den Recherchen handelt es sich um Prototypen für die Integration in Jupyter und Prototypen für die Animation, deren Ziel es ist eine Referenzsimulation zu visualisieren.
Die Arbeit definiert eine grundlegende Architektur zur Einbettung einer animierten Simulation in das Jupyter Ökosystem.
Diese Architektur ist erweiterbar und modular. Eine Folgearbeit kann auf den bestehenden Prototypen aufbauen und auf Implementationsvorschläge zurückgreifen. Auf dieser Basis kann die Entwicklung der Animationsbibliothek durchgeführt werden
Kithara.io Die intelligente Domainsuche für die Start-up-Branche
Die vorliegende Masterarbeit entstand als Abschluss des Masterstudiums in Human Computer Interaction Design (MAS HCID) der Ostschweizer Fachhochschule OST. Inhalt ist die nutzer:innenzentrierte Erarbeitung einer Konzeptstudie für eine Smartphone-App zur Suche von Internet-Domains. Die Hauptzielgruppe agiert im Start-up-Umfeld. Das von der Firma MACH 6 initiierte Projekt durchlief einen mehrstufigen iterativen Prozess von der Produktfindung über die Produktgestaltung bis hin zur Entwicklung der Marke «Kithara». Als Ergebnisse dieser
Masterarbeit liegen ein interaktiver High-Fidelity-Prototyp, ein Marken-Styleguide sowie Handlungsempfehlungen für die Auftraggeberin vor. Die Erarbeitung der Ergebnisse basieren auf einem Vorgehen nach «Lean UX» von Gothelf und Seiden sowie der Verwendung zielgerichteter
HCI-Methoden. Grundlage für die Konzeption der Applikation bildete eine umfassende Nutzer- und Anforderungsanalyse. Die ursprüngliche Idee war, eine Plattform für den Handel von Domains zu erarbeiten. Die vertiefte Auseinandersetzung mit der Domäne und dem Nutzungskontext zeigten aber, dass die Bedürfnisse der potenziellen Nutzer:innen sowie die unternehmerischen Opportunitäten im Bereich einer kreativen Domainsuche liegen. Diese Erkenntnisse erforderten eine Anpassung des Projektrahmens. Daraus folgte der Auftrag, eine Domainsuche zu gestalten, die mit intelligenten Algorithmen die Kreativität der Nutzer:innen unterstützt und sie effizient zu einer passenden Domain führen soll. Für die Beantwortung der übergeordneten Forschungsfrage und
zum Nutzen der HCID-Community wurden innerhalb dieser Arbeit sechs Themen vertieft recherchiert: Metriken für einen Bewertungs-Score, künstliche Intelligenz zur Verbesserung von Suchresultaten, Contextual Swipe sowie Dark Modes. Insbesondere die Vertiefung zu Contextual Swipe soll der HCID- Community als Grundlage bei Fragestellungen im Zusammenhang mit der Verwendung von Wischgesten auf Smartphones dienen.
Diese Masterthesis legt die konzeptionelle und gestalterische Grundlage für die Umsetzung des ersten funktionalen Minimum-Viable-Product (MVP) durch die Auftraggeberin
Migration einer bestehenden C#-Codebasis in eine Webanwendung: Ein Technologievergleich
Heutzutage setzen Firmen zunehmend auf Webtechnologien für die Erstellung ihrer Benutzerschnittstellen. Oftmals haben aber grössere Unternehmen ihre bestehende Codebasis mit Technologien umgesetzt, die nicht unmittelbar mit solchen Webtechnologien kompatibel sind. In der vorliegenden Arbeit wird untersucht, wie eine bestehende .NET-Codebasis in eine HTML5 Umgebung integriert werden kann und wie sich dies auf die Performance auswirkt. Um diese Forschungsfrage zu beantworten, wurde eine bestehende Applikation von Endress + Hauser AG als Single-Page-Applikation in HTML5 nachprogrammiert. Insbesondere wurde das Frontend einmal mit dem React-Framework und einmal mit dem Blazor-Framework entwickelt. Um möglichst unabhängig von Endress + Hauser AG arbeiten zu können, wurde als bestehende Codebasis ein selbst geschriebenes .NET-Projekt aufgesetzt. Zudem wurde die Performance von unterschiedlichen Technologien für die Erstellung von HTML5-Applikationen verglichen. Die Arbeit kommt zum Schluss, dass eine bestehende .NET-Codebasis mit Hilfe des Blazor-Frameworks in die HTML5 Umgebung integriert werden kann. Dies ermöglicht grundsätzlich auch die Integration in eine Applikation die unter Verwendung des React-Frameworks erstellt wird. Allerdings wird momentan von der produktiven Verwendung der vorgestellten Varianten abgeraten, da alle Varianten auf aktuell inoffiziellen Konzepten basieren