University of Applied Sciences Rapperswil

eprints OST (Ostschweider Fachhochschule)
Not a member yet
    1194 research outputs found

    C++ Style Checker for Visual Studio Code

    Get PDF
    Introduction ************ Programming in C++ usually relies on extensive toolchains for building, testing, and deploying applications. The fact that a given C++ source file successfully compiles does not imply that its code is of good quality and style. Moreover, it is not assured that agreed coding guidelines, which can be self-defined or well renowned, are met. Ensuring this by manual code reviews after the code passed through compilation and testing, results in a long feedback loop and negatively affects efficiency. To counteract this problem, Cevelop, a C++ IDE built by OST's Institute for Software (IFS), offers style checks that give programmers instant feedback on the code as they type. While some of these checks are implemented in other IDEs and plugins as well, many of them are exclusive to Cevelop and are not available in other IDEs like Microsoft's Visual Studio Code. However, this would be desirable in the future so that students using other IDEs than Cevelop can profit from these style checks as well. Approach ******** In this thesis, with the LLVM compiler project and its clang-tidy code analysis component, a feasible infrastructure was elaborated. Using this infrastructure, Cevelop's style checks and new ones can be implemented in the future to make them available in Visual Studio Code. Furthermore, after an analysis of offered style checks in Cevelop, selected checks were implemented as a proof-of-concept for LLVM's clang-tidy component using the C++ programming language. In the chosen approach, all the code analysis intelligence is encapsulated in an IDE-independent language server (LLVM clangd, which includes clang-tidy). To use the implemented style checks in an other IDE than Visual Studio Code, only a small plugin is needed to communicate with the language server through the Language Server Protocol (LSP). Therefore, they can also be offered in other IDEs with minimal additional effort. Result ****** This thesis laid the foundation for offering Cevelop's style checking intelligence in IDEs independent of Cevelop. Thus, users of other IDEs can be reached, and more developers can be helped to write clean C++ code. The created checks were presented to the LLVM community to be integrated into the project's code base and to make them public. Until the created style checks are integrated, a self-built executable of LLVM's clangd language server, which includes clang-tidy and the created style checks, can be used with clangd's VS Code plugin. This way, the created checks could help OST students enlisted in a C++ course to write clean C++ code and to comply with taught best practices, without being bound to Cevelop. A created developer's guide assists programmers (e.g., IFS employees) to further extend clang-tidy with style checks that would be beneficial for them or for students

    Von DDD zu BDD: Methoden, Werkzeuge, Fallstudien

    Get PDF
    Diese Bachelorarbeit beschreibt die Umsetzung und Integration eines Werkzeugs, welches Domain Driven Design (DDD) mit Behaviour Driven Development (BDD) kombiniert. Im Fokus stehen dabei die Analyse, das Vorgehen und das Lösungskonzept zur Erarbeitung dieser Arbeitsmethode. Die gängigsten Werkzeuge im Bereich DDD und BDD werden im Rahmen der Bachelorarbeit anhand von Praxisbeispielen untersucht. Ziel dieser Arbeit ist es, zu untersuchen, wie diese beiden Methoden miteinander kombiniert werden können. Der entwickelte Prototyp zeigt, dass es möglich ist basierend auf einem DDD Modell, in Form eines Context Mapper Modells, Gherkin Tests zu generieren. Somit werden die beiden Methoden mittels Toolunterstützung kombiniert. Der Prototyp generiert Tests im Bereich Assoziationen, Validierungen von Attributen und Überprüfung von DDD Patterns. Zunächst wird ein Testgenerierungskonzept entwickelt, anhand dessen die Testgenerierung umgesetzt wird. Ergänzend zum Prototyp wird eine Anleitung zur Verfügung gestellt. Diese erklärt, wie die Einbindung des Gherkin-Outputs in den Toolstack durch die automatisierte Überprüfung der Gherkin-Tests gelingt. Hierfür wird Cucumber in ein Maven oder Gradle Projekt integriert. Es wird gezeigt, dass die Einbindung der Gherkintests in ein Softwareprojekt nicht triviale Implementationsschritte beinhaltet, welche die Testautomatisierung anspruchsvoll und zeitaufwändig gestaltet. Im Ausblick wird beschrieben wie komplexere Beispielprojekte eine Entwicklung von Best Practice im Bereich DDD zu BDD vorantreiben könnten

    Permaculture Application

    No full text
    This bachelor thesis was initiated in close cooperation with a permaculture startup. They were in the process of developing a business model and the goal of this thesis was to help them with their online solutions. The startup was already using an e-commerce Cloud provider as CMS and online store to sell their products. The requirements and specifications were not worked out at the start of the project. Unfortunately, due to external factors, the collaboration with the startup broke off. This led to a more generic approach in order to make the solution available to a broader audience. In the beginning of the thesis, the requirements and use cases were developed in close cooperation with the permaculture startup. Based on these results, a solution was searched which should integrate with the existing infrastructure, be realizable in the time frame of this thesis, and allow future extensions. To allow agile development with short feedback loops, an optimized scrum process was used. The deployment process was completely hosted on well-known Cloud infrastructure. The implementation followed industry standards in terms of security and scalability which allows real world usage. Based on the requirements and market analysis, the solution design that was developed during this thesis was realized as a subscription-based selling service application for the startup's e-commerce platform. In the middle of our working on this thesis, the e-commerce platform announced a new API. This extended their domain model with subscriptions and replaced the domain model originally elaborated in this thesis. As the API was released as a beta version, some functionalities were not yet fully operating. The implemented application at the end of the project consists of multiple components of different technologies and deployment methods. While an MVP for subscription-based sales could be completed, there is still potential for extensions

    Überzeugen im digitalen Erstgespräch

    Get PDF
    Die Firma Cloudworks AG ist Auftraggeber dieser Masterarbeit und betreibt die digitale Plattform umbaumanager.ch. Mit Hilfe der Plattform können Privatpersonen einen Umbau selbständig organisieren, ohne direkt auf eine Fachperson zurückgreifen zu müssen. Die Plattform übernimmt dabei das Baumanagement, insbesondere die Terminplanung und Rechnungsstellung und vermittelt qualifizierte Fachspezialisten. Der Hauptfokus dieser Arbeit liegt auf der Optimierung des Anfrageprozesses, über den der Auftraggeber Neukundinnen und Neukunden akquiriert. Aus Sicht der Nutzerinnen oder Nutzer geht es darum herauszufinden, ob umbaumanager.ch der passende Anbieter für ihre Bedürfnisse ist. Die Arbeit setzt sich mit der Frage auseinander, wie beim Erstkontakt über ein rein digitales Medium Vertrauen vermittelt werden kann. Im Vorgehen orientiert sich die Arbeit an Lean UX [Gothelf and Seiden 2016] und Collaborative UX Design [Steimle and Wallach 2018]. Zudem enthält sie ein eigens entwickeltes Framework, mit dessen Hilfe bewusst hypothesengetrieben vorgegangen werden kann. Das Framework stellt sicher, dass die Interpretation von der reinen Beobachtung getrennt wird und der Fokus auf dem Nutzen liegt. Die wichtigste Erkenntnis sind die vier unterschiedlichen Ausprägungen der primären Persona der Bauherrinnen und Bauherren. Dabei handelt es sich um eine Transformation der Persona über Zeit. So beginnen alle Bauherrinnen und Bauherren als «Frischling» und werden durch ihren Umbau zum «Erfahrenen». Bei jedem Umbau durchlaufen sie aufs Neue die Stadien des Träumens bis zur Reifung einer konkreten Vorstellung. Das digitale Erstgespräch muss dabei auf die unterschiedlichen Fokuspunkte reagieren. Die Arbeit gibt Aufschluss über die Reihenfolge der Preisgabe persönlicher Daten und darüber dass nur die nächstfolgenden Schritte gezeigt werden dürfen, um Verunsicherungen zu vermeiden. Grundsätzlich müssen alle Fragen, die im Anfrageprozess gestellt werden, einen direkten Bezug zum Resultat haben, um kein Misstrauen zu erwecken. Die emotionalen Aspekte wurden als Vision in Form eines Nordsterns mit drei davon abgeleiteten Leitprinzipien festgehalten, aus denen sich wiederum weitere Design Prinzipien ergaben. In dieser Masterarbeit liegt der Fokus auf einem Anfrageprozess für Umbauten an Liegenschaften. Die Arbeit erbringt jedoch auch allgemeine Erkenntnisse, die für Anfrageprozesse anderer Branchen adaptiert werden können. Ein Teil der vorliegenden Arbeit befasst sich generell mit den Abläufen eines Umbaus. Die Baubranche ist zum aktuellen Zeitpunkt wenig digitalisiert. Hier gibt es noch viel Potential für Digitalisierungsprojekte. Auch bei umbaumanager.ch sind noch nicht alle Schritte digitalisiert, was Möglichkeiten für weitere Arbeiten in Bezug auf die Digitalisierung der Aufgaben einer Bauleiterin, eines Bauleiters bietet

    Kaffeerösten mit AI

    No full text
    Ausgangslage Mikafi stellt Kaffeeröster her, die in der Gastronomie eingesetzt werden sollen. Aktuell wird vor einer Röstung ein Röstprofil ausgewählt, das verschiedenene Parameter, zum Beispiel Temperatur oder Dauer, über die anstehende Röstung bestimmt. Das Endprodukt einer Röstung hängt stark von äusseren Einflüssen, wie Raumtemperatur oder Luftfeuchtigkeit, ab. Da nicht bei allen Kunden die gleichen Umstände garantiert werden können, soll nun ein gewähltes Röstprofil während einer Röstung laufend angepasst werden, damit ein ideales Resultat entsteht. Dafür werden während einer Röstung Bilder der Kaffeebohnen aufgenommen und deren Röststatus untersucht. Hier setzt die Bachelorarbeit ein. Das Ziel der Arbeit ist es, Bohnen auf Röstungsbildern anhand eines Machine Learning Modelles auszumachen und anhand der Farbe der erkannten Bohne den Röstgrad zu bestimmen. Die Bilder werden von mikafi geliefert. Vorgehen Die Arbeit wurde in vier Teile eingeteilt: Datenaufbereitung, Bohnenerkennung, Kategorisierung und Pipeline. Als erstes wurde sich um die Datenaufbereitung gekümmert, indem die Kaffeebohnen auf den gelieferten Bildern als Polygon eingezeichnet wurden. Dabei wurden Vorder- und Rückseite der Bohne unterschieden. Die getaggten Bilder dienten anschliessend als Trainingssatz für die Objekterkennungsmodelle Haar-Cascade, YOLO und Mask-RCNN. Nachdem die Bohnenerkennung die Anforderungen erfüllte, wurde die Kategorisierung angepackt. Es wurde versucht die Kategorisierung direkt mit Mask-RCNN, über Clustering oder mit einem separaten Neuronalen Netzwerk mit Regression zu lösen. Am Schluss wurden Bohnenerkennung und Kategorisierung zu einer Pipeline zusammengesetzt, damit die Modelle einfach ausgeführt und auf neue Datensets angepasst werden können. Sämtlicher Code und Scripts wurden in Python realisiert. Als Testhardware kam ein Raspberry Pi 4 zum Einsatz. Ergebnisse Im Folgenden werden die Resultate der Arbeit gelistet. Da sich die Datenaufbereitung als zeitaufwändig erwies, wurde auf Basis der ersten von Hand getaggten Kaffeebohnen ein Autotagger entwickelt, der für neue Datensets automatisch Polygone einzeichnet. Für die Bohnenerkennung wurde die Mask-RCNN Implementierung aus Detectron2 von Facebook AI Research verwendet. Da ein Raspberry Pi 4 für die Bohnenerkennung mehr als 20 Sekunden benötigt, wurde Vorgeschlagen, die Berechnungen auf AWS auszulagern oder spezialisierte Hardware, wie einen Nvidia Jetson Nano, zu verwenden. Durch Testen verschiedener Ansätze zur Farberkennung wurde herausgefunden, dass die Bildqualität der bestehenden Datensets nicht ausreicht, um die gewünschte Präzision zu erreichen. Abschliessend wurde das Training und die Datenaufbereitung so weit wie möglich automatisiert, um den zukünftigen Gebrauch zu vereinfachen

    API Security Testing

    Get PDF
    Aufgabenstellung Das Ziel dieser Arbeit war es, ein Konzept zu entwerfen mit dem man APIs auf ihre Sicherheit testen kann. Dazu wurde eine Beispielapplikation (Spring Boot „Mockup“ API) entwickelt, die den Kauf und Verkauf von Wertpapieren simuliert und eine Zugriffskontrolle implementiert. An der API soll demonstriert werden, wie Schwachstellen durch Sicherheitstests entdeckt werden können. Um die Funktionalität und Sicherheit der API zu überprüfen, sollen neben den üblichen Unit- und Integration-Tests auch End-to-End Tests an der API durchgeführt werden. Für diese Tests soll ein geeignetes Tool in der Arbeit bestimmt werden. Die Tests sollen automatisiert in der CI/CD Pipeline ausgeführt werden. Methodik Zu Beginn der Arbeit wurde eine Tool-Evaluation über aktuelle Tools zum Testen einer API durchgeführt. Durch die Evaluation wurde ein Tool bestimmt werden, mit welchem die End-to-End Tests an der API durchgeführt werden können. Dabei wurden drei verschiedene Tools genauer untersucht und auf ihre Funktionen analysiert. Anhand der gesammelten Erkenntnisse wurde mit Praxispartner zusammen entschieden, dass die Tests mit dem Postman Tool durchgeführt werden. Nach dieser Entscheidung wurde ein Lösungskonzept entwickelt, um Sicherheitsanforderungen der Beispielapplikation und die dazu nötige Architektur zu definieren. Für die definierte Architektur wurde eine Bedrohungsmodellierung durchgeführt, um die Schwachstellen der Beispielapplikation zu identifizieren und zu priorisieren. Für die Analyse der Schwachstellen wurden die OWASP Top 10 Schwachstellen für APIs verwendet. Nach der Analyse konnten die priorisierten Schwachstellen durch Security API Tests überprüft werden. Ergebnis Für das Testen der Security wurde eine funktionsfähige API entwickelt. Die Authentifizierung & Autorisierung wurde mit der Keycloak Anwendung umgesetzt und verwendet ein sogenanntes standarisiertes JSON Web Access Token, kurz JWT. Es wurde ein API Gateway aufgesetzt und so konfiguriert, dass alle Anfragen von Benutzern darüber geleitet wird. Er beschränkt die Anzahl der Aufrufe und zeichnet sie auf. Für die Authentifizierung bildet er aus der Signatur des JWT-Tokens einen Opaque-Token. Die Header und Payload Informationen des JWTs bleiben dadurch dem Benutzer verborgen und sind nur dem API Gateway bekannt. Die API wurde mit Unit- und Integration-Tests und End-to-End Tests auf ihre korrekte Funktionalität und Sicherheit getestet. Die Tests wurden automatisiert in die CI/CD Pipeline integriert. Ebenfalls wurde eine statische Code Analyse und ein automatisierter Penetration Test durchgeführt. Die Ergebnisse der Tests haben viele Schwachstellen der Beispielapplikation aufgezeigt. Für einige dieser Schwachstellen wurden Massnahmen getroffen, um diese zu mindern. Die Arbeit zeigt exemplarisch auf, wie eine API auf ihre Sicherheit getestet werden kann

    Rollende Küche

    Get PDF
    The RoKü is a service organized by the Spitex Wädenswil ZH, that delivers menus to elderly people. The service allows a customer to enjoy living and eating at home, without the hassle of cooking or ordering through conventional meal delivery services. In 2001, the first step towards digitization was made in the form of an application that utilizes MS Access to store customer data, plan routes, and print reports such as daily delivery plans, a weekly overview of all orders and monthly invoices. Even though the application was updated in 2011, it still has limitations. The most significant are the route limit of five and that it is not possible to edit the orders. The goal of this project was to replace the existing application. The new implementation should include all features of the current solution without its limitations. To organize project management, a combination between RUP and SCRUM was used. A meeting with the key stakeholders was conducted at every sprint end, to show the progress of the project and get feedback. A desktop application was created using the onion architecture to create an independent business layer. Dependency injection was used to decouple individual components. .NET 5 was used for the implementation. The data is saved in a simple SQLite database to make data backups easy and eliminate the need of an additional service that needs to run on the host machine. It further uses WPF as the UI framework. The resulting application has an intuitive design, is very flexible and the limitations of the existing application could be fully eliminated. Due to time constraints the scope had to be reduced. Although the application is ready to be used in a productive environment, a few quality of life features are missing. Therefore the current state of the application is not able to fully replace the existing solution. The new application is currently used in tandem with the current one. The software development will be continued outside of the scope of this project

    Security Operation Center Lab

    Get PDF
    Problemstellung: In den aufkommenden Semestern werden an der OST, Campus Rapperswil-Jona, neue Cyber Security Module unterrichtet und eines dieser Module wird auf Cyber Defense fokussiert sein. Dies bedeutet zum einen eine Umgebung bereitstellen zu können, wo Studenten ein Security Operation Center konfigurieren können und dass sie Cyber-Attacken lancieren können, um die Konfigurationen verstehen zu können. Zum anderen geht es in dieser Arbeit auch darum, Aufgaben für das aufkommende Fach zu konzipieren. Ziel der Arbeit: Diese Arbeit soll ein Vorwerk legen, welches im aufkommenden Cyber Defense Modul weiterverwendet werden kann. Fokus ist hierbei ein Security Operation Center für Ausbildungszwecke bereit zu stellen, welches in einer, zu Beginn dieser Arbeit, erhaltenen Infrastruktur WinattackLab eingebunden wird. Die Infrastruktur selbst soll schlussendlich über das Hacking-Lab der OST deployed werden können und nach dem Deployment soll es möglich sein, sich auf die Ressourcen dieser Infrastruktur zu verbinden und Übungen zu lösen. Sekundäres Ziel dieser Arbeit ist diverse Übungsszenarien zu konzipieren. Ergebnis: Primäres Resultat dieser Arbeit ist die erfolgreiche Erweiterung der Infrastruktur, welches das Security Operation Center hosted. Die benutzte Open Source Plattform ist hierbei Wazuh und diese wird auf einer neuen WinattackLab VM Komponente, einem Ubuntu Server, über Docker aufgesetzt. Für Angriffszwecke wird auch ein «Attack-Launcher» Service über Docker aufgesetzt, worauf die Studenten zugreifen können und Attacken auf die Infrastruktur lancieren können. Ausserdem kann die Infrastruktur mit ihren diversen Services über das Hacking-Lab der OST deployed werden. Schlussendlich sind auch diverse Übungsszenarien erstellt worden, welche zum Grossteil zu Aufgaben ins Hacking-Lab der OST vom Betreuer übernommen wurden

    Microservices in a DevOps Context

    Get PDF
    A systematic mapping study conducts a broad search for publications in a research topic and maps the results into a condensed form. It gives an overview over the topic, the problems and corresponding solutions [PFMM08, FD15]. This paper is a review of such a study on the topic of “Microservice in a DevOps context”. First, the reader is introduced into the various techniques and terms used in design science and empirical software engineering, then we provide a summary of the paper and a critical review. The study did an excellent job in finding results from the academia but the categorical exclusion of gray literature lead to missed solutions for given problems

    2PLAN

    Get PDF
    Einleitung Die Planung von Projekt-Ressourcen ist ein sehr anspruchsvolles und zeitaufwändiges Thema, das verschiedenste Branchen betrifft. Von der Firma 2BIT GmbH haben wir den Auftrag erhalten, eine übersetzbare Angular Component Library zu entwickeln, die den gesamten Planungsprozess abdeckt. Das Hauptziel ist es, die Ressourcenplanung so einfach wie möglich auszugestalten. Dabei steht eine gute User Experience, die Bedienbarkeit und die Übersichtlichkeit im Vordergrund. Vorgehen Als Erstes wurde eine sorgfältige Anforderungsanalyse durchgeführt, um die Anforderungen an das Produktes zu verstehen. Anschliessend wurden klickbare Mockups erstellt und mit dem Auftraggeber analysiert. Gegen Ende der Implementierungsphase wurde das Produkt mit einer User Experience Designerin geprüft und verbessert, um eine möglichst hohe User Experience zu erreichen. Ergebnis Die Angular Component Library 2PLAN stellt alle Komponenten zur Verfügung, die für einen Planungsprozess benötigt werden. Um die Planung durchführen zu können, enthält die Bibliothek eine ressourcen- und eine projektbasierte Gantt-Chart Komponente. Falls bei der Planung Konflikte entstehen, hat der Planer die Möglichkeit, den Konflikt zu akzeptieren oder aufzulösen. Ausserdem enthält die Library eine Dienstplan-Komponente. Mit dieser Komponente kann eine Ressource ihren Arbeitsplan einsehen und Arbeiten als abgeschlossen markieren. Für alle Komponenten wird eine Wochen- und eine Monatsansicht zur Verfügung gestellt. Zusätzlich zu 2PLAN wurde eine Demo-Applikation entwickelt. Diese bietet eine Stammdatenverwaltung an, um die benötigten Daten für eine Planung zu erfassen und bindet die Komponenten von 2PLAN ein

    1,015

    full texts

    1,194

    metadata records
    Updated in last 30 days.
    eprints OST (Ostschweider Fachhochschule)
    Access Repository Dashboard
    Do you manage Open Research Online? Become a CORE Member to access insider analytics, issue reports and manage access to outputs from your repository in the CORE Repository Dashboard! 👇