AI
Refine
Year of publication
Document Type
- Bachelor Thesis (34)
Has Fulltext
- yes (34)
Is part of the Bibliography
- no (34)
Keywords
- API (2)
- Architektur (2)
- Informatik (2)
- Microservice (2)
- Programmiersprache (2)
- Software (2)
- 2-Phasen-Commit (1)
- ASP.NET Core (1)
- Amazon Web Services (1)
- Angewandte Informatik (1)
Institute
Open Access
- Closed Access (15)
- Open Access (10)
- Closed (9)
Immer mehr Unternehmen setzen auf eine Cross-Cloud-Strategie, die es Unternehmen ermöglicht, ihre Anwendungen und Daten über mehrere Cloud-Plattformen hinweg effizient zu verwalten und zu betreiben. Konsistenz und Atomarität zwischen den Cloud-Plattformen zu wahren, stellt eine große Herausforderung dar. Hierzu wird in dieser Arbeit eine Lösung vorgestellt, um Cross-Cloud-Atomarität zu erreichen, welche auf Basis des 2-Phasen-Commit-Protokolls (2PC) beruht. In diesem Zusammenhang wird die Funktionsweise des 2PC-Protokolls erörtert und Erweiterungen sowie Alternativen zum Protokoll kurz angesprochen. Zusätzlich werden alternative Lösungsansätze diskutiert, die für die Erzielung von Cross-Cloud-Atomarität in Betracht gezogen werden können. Dadurch wird ein umfassender Einblick in das Thema sowie mögliche Lösungsansätze für diese Herausforderung gewährt.
JavaScript-Frameworks (JSF) sind im Bereich der Webentwicklung seit längerem prominent. Jährlich werden neue JSF entwickelt, um spezifische Probleme zu lösen. In den letzten Jahren hat sich der Trend entwickelt, bei der Wahl des JSF verstärkt auch auf die Performanz der entwickelten Webseite zu achten. Dabei wird versucht, den Anteil an JavaScript auf der Webseite zu reduzieren oder ganz zu eliminieren. Besonders neu ist der Ansatz der "Island Architecture", die erstmals 2019 vorgeschlagen wurde. In dieser Thesis soll die Performanz der meistbenutzten und des performantesten JSF mit dem JSF "Astro" verglichen werden, welches die "Island Architecture" von sich aus unterstützt. Der Schwerpunkt liegt beim Vergleichen der Webseitenperformanz, jedoch werden auch Effizienz und Einfachheit während der Entwicklung untersucht. Das Ziel dieser Arbeit ist es, potenzielle Frameworks zu untersuchen, die die Effizienz und Produktivität für den Nutzer und während der Entwicklung steigern können.
Das Softwareunternehmen HRworks implementiert eine Personalverwaltungssoftware unter Verwendung der Programmiersprache Smalltalk und des Model-View-Controller (MVC) Musters. Innerhalb des Unternehmens erfordert jede Model-Klasse des Patterns das Vorhandensein einer korrespondierenden Controllerklasse. Controller verfügen über ein wiederkehrendes Grundgerüst, das bei jeder neuen Implementierung umgesetzt werden muss. Die Unterscheidungen innerhalb dieses Grundgerüsts ergeben sich lediglich aus dem Namen und der spezifischen Struktur der korrespondierenden Model-Klasse. Die vorliegende Arbeit adressiert die Herausforderung der automatischen Generierung dieses Controllergrundgerüsts, wobei die Besonderheiten jeder Model-Klasse berücksichtigt wird. Dies wird durch den gezielten Einsatz von Metaprogrammierung in der Programmiersprache Smalltalk realisiert und durch eine Benutzeroberfläche in der Entwicklungsumgebung unterstützt. Zusätzlich wird der Controller um eine Datentypprüfung erweitert, wofür ein spezialisierter Parser implementiert wurde. Dieser extrahiert aus einem definierten Getter der Model-Klasse den entsprechenden Datentyp des Attributes. Im Ergebnis liefert die Arbeit eine Methodik zur automatisierten Generierung und Anpassung von Controllergrundgerüsten sowie dazugehörigen Teststrukturen basierend auf der jeweiligen Model-Klasse. Zusätzlich wird die Funktionalität der Controller durch eine integrierte Datentypprüfung erweitert.
Das Ziel dieser Arbeit ist es, eine Schnittstelle zu erstellen, die es erlaubt, dem vom Unternehmen produzierten modulbasierten ERP-System Module zu integrieren, die
mit der aktuellen Version der Programmiersprache Delphi erstellt wurden.
Die Schwierigkeit hierbei ist, dass die momentane Implementation des Systems auf
einer Jahrzehnte alten Version der Sprache basiert, die in mehreren Bereichen keine
Kompatibilität mit der neuen Version besitzt.
Um dieses Ziel zu erreichen wurden zunächst die konkreten Anforderungen an die
Lösung formuliert und daraufhin verschiedene Lösungsansätze für eine Schnittstelle
konzipiert.
Durch Testen an einer prototypisch vereinfachten Version des ERP-Systems konnte
festgestellt werden, dass eine Lösung über eine auf Datenbanktransaktionen basierende Schnittstelle für das Projekt am ehesten geeignet war.
Nach weiterer Planung des exakten Aufbaus wurden die nötigen Funktionalitäten dann
umgesetzt, wobei zuerst in groben Zügen die essentiellen Aspekte realisiert wurden,
welche dann in weiteren Durchläufen auf die exakten Spezifikationen verfeinert und
auf Fehler geprüft wurden.
Nachdem dieser Lösungsansatz einen ausreichenden Vervollständigungsgrad erreicht
hatte, wurde das Projekt zu Testzwecken in firmeninternem Umfeld in Betrieb genommen.
Durch anschließendes weiteres Beheben von noch ausstehenden Fehlern wurde das
Projekt dann in einen Zustand gebracht, in dem es allgemein in Verwendung genommen werden kann und somit die gewünschten Vorgaben erfüllt.
Ziel der vorliegenden Bachelorarbeit ist es, eine automatisierte Bildausschnittkontrolle für die Low Code Plattform Intrexx zu implementieren. Diese soll mit Hilfe eines geeigneten Künstliche Intelligenz Frameworks Gesichter in Bildern erkennen und diese anschließend ausschneiden. Die Benutzer*innen sollen die Ausschnitte außerdem noch manuell anpassen können. Die Implementierung erfolgt mittels Typescript innerhalb einer Webkomponente, um eine Verwendung innerhalb von Intrexx zu ermöglichen. Nach einem Vergleich verschiedener technologischer Ansätze hat sich Tensorflow als geeignetes KI-Framework herausgestellt. Im Rahmen einer Performance-Analyse wurden außerdem verschiedene Tensorflow-Modelle miteinander verglichen.
In dieser Arbeit wird der Bildbearbeitungsprozess von Dokumenten mithilfe von einem schlicht gehaltenem Neuronalen Netzwerk und Bearbeitungsoperationen optimiert. Ziel ist es, abfotografierte Dokumente zum Drucken aufzubereiten, sodass die Schrift gut lesbar, gerade und nicht verzerrt ist und Störfaktoren herausgefiltert werden. Als API zur Verfügung gestellt, können Bilder von Dokumenten beliebiger Größe und Schriftgröße bearbeitet werden. Während ein unter schlechten Bedingungen schräg aufgenommenes Bild nach Tesseract keine Buchstaben enthält, wird mit dem bearbeiteten Bild davon eine Buchstabenfehlerrate von 0,9% erreicht.
Die Komplexität von Softwareprojekten hat in den letzten Jahren stetig zugenommen. Um den gleichzeitig steigenden Anforderungen an die Codequalität gerecht zu werden, setzen auch ursprünglich dynamisch typisierte Programmiersprachen zuhnemend auf statische Typisierung. Dies kann in Form von externen Werkzeugen geschehen, die zusätzlich zum eigentlichen Compiler den Code auf Typsicherheit überprüfen, oder alternativ durch Erweiterung der Compiler selbst, um die Unterstützung für statische Typisierung direkt in der Sprache zu verankern. Ziel des etylizer-Projekts ist es, für die Programmiersprache Erlang zunächst ein solches externes Tool bereitzustellen und langfristig Teil der Compiler-Toolchain zu werden.In dieser Arbeit wird der Typchecker um die Fähigkeit erweitert, Erlang-Projekte vollständig zu verifizieren. Dafür wird zunächst die interne Symboltabelle erweitert, die etylizer nutzt, um Verweise auf Funktionen und Typen aus anderen Modulen aufzulösen. Die Implementierung der Symboltabelle wird so angepasst,dass sie zur Laufzeit um alle für das aktuell geprüfte Modul benötigten Symbole erweitert wird. Um die Laufzeit im Rahmen zu halten, wird ein Algorithmus entwickelt, der die Abhängigkeiten zwischen den Source-Code Dateien des Erlang-Projekts erkennt und anhand dieser entscheidet, welche Dateien sich seit dem letzten Durchlauf geändert haben und deshalb erneut überprüft werden müssen.
Mit zunehmender Komplexität von Softwaresystemen wird es immer schwieriger Performance Auswirkungen durch Änderungen an der Software zu erkennen. Meist werden Performance-Probleme zu spät erkannt und die Ursachensuche stellt dann eine große Hearusforderung dar, da es viele Einflussfaktoren gibt und oft nicht bekannt ist, wie lange das Problem schon besteht. Hier setzt das kontinuierliche Performance Monitoring an, denn damit wird die Performance fortlaufend zu jeder Softwareversion gemessen und der Verlauf der Performance über die Zeit erfasst.
In dieser Arbeit wird ein Konzept zu diesem Monitoring entwickelt. Konkret wird dabei die Performance eines 2D Laserscanners untersucht, der mit der Zynq Ultrascale+ MPSoc Plattform realisiert wurde. Eine wichtige Komponente des Systems stellt das verwendetete Embedded Realtime Linux dar. Deshalb wird dessen Performance, anhand definierter Parameter aus der Literatur, gemessen. Dafür werden vorhandene Tools zum Auslesen dieser Parameter untersucht und schließlich eingesetzt, um diese auf dem System zu erfassen. Eine weitere wichtige Performancekenngröße stellen die Durchlaufzeiten von Daten durch das System dar. Diese Laufzeiten werden an bestimmten Punkten im C++ Programmcode gemessen und anschließend mit einer Python Anwendung ausgewertet.
Für jede neue Softwareversion wird automatisch eine Messung der Linux Performance, sowie der Durchlaufzeiten durchgeführt. Die dabei gewonnenen Daten werden mit einem Datei basierten Ansatz in Artifactory abgelegt, aus welchen schlussendlich Auswertungen, in Form von HTML Dateien, erstellt werden. Diese enthalten verschiedene Visualisierungen der Messergebnisse einer Messung, sowie den Verlauf der Durchschnittswerte je Softwareversion. Das Ausführen der Messungen auf dem Gerät, sowie die Auswertung der Messergebnisse führt ein dafür entwickeltes Python Programm aus.
When a patient with hearing aids needs to partake in audiometry procedures they need to visit a specialist which costs both time and money. Ideally, the patient should be able to conduct these tests alone, during their own time, and without additional costs. With this idea comes the question of if whether this is possible or not, and, if it is, how.
This thesis explores the throughput of Bluetooth Low Energy and if it is configurable to have a high enough data rate to send high quality audio data with a lossless audio codec while communicating with a low end device. Additionally, this thesis will show that using Rust to develop embedded software is possible and how using it can make the process of doing so easier.
Eine neue Programmiersprache zu erlernen kann für Anfänger:innen manchmal schwer sein, selbst für Programmiersprachen wie Python, die bekannt dafür sind Einsteigerfreundlich zu sein. Denn selbst wenn die Syntax eines Python Programms schnell verstanden wird, ist oft nicht direkt erkenntlich wie der Code hinter dem Programm funktioniert. Anfänger:innen können dabei auch auf ihre Grenzen stoßen, den Ablauf eines Programmes nur alleine durch den Programmcode zu verstehen. Denn der Text der den Code ausmacht, kann auch nur bis zu einem gewissen Grad vermitteln wie oder was genau abläuft. Um den Ablauf eines Programms besser vermitteln zu können, wird der Code oft z.B. mit Diagrammen visualisiert. Visuelle Elemente können ebenfalls zusätzlich zum Code mehr Unterstützung leisten. Das Thema dieser Arbeit beschäftigt sich mit der Visualisierung von Python Programmen in der Entwicklungsumgebung Visual Studio Code, um Programmieranfänger:innen und Student:innen beim Erlernen der Programmiersprache Python zu unterstützen. Die Entwicklung der Visualisierung beinhaltet, das Erstellen einer Erweiterung in Visual Studio Code, die unter anderem das Debug Adapter Protocol einsetzt um mit dem Python Debugger zu kommunizieren.
Diese Arbeit befasst sich mit agilen Methodiken zur Konzeption einer Softwarearchitektur. Es wurden Vorgehensweisen der Anforderungserhebung basierend auf themenspezifischer Literatur recherchiert und angewandt. Passend zu den Anforderungen wurden Architektur- und Dokumentationsmittel gewählt, welche die Konzeption der Architektur sowie die Implementierung der geforderten Software zum Erstellen und Ausführen von Lasttests auf softwarebasierten Langzeitarchivsystemen erleichtern sollen. Ein bestehendes Softwaresystem, welches bisher diese Aufgabe übernommen hat, wurde als Grundlage einer Neuentwicklung in Betracht gezogen. Es wurde dahingehend analysiert, aber begründet verworfen. In der Konzeptionsphase wurde eine Lösungsstrategie ermittelt sowie die Struktur der Architektur geplant und dokumentiert. Anhand eines beispielhaften Datenflusses wurde die Realisierbarkeit des Modells nachgewiesen. Auf Basis einer frei zugänglichen Architekturdokumentationsvorlage wurde eine Dokumentation des Konzeptes erstellt, welche einen schnellen Start in die agile Entwicklungsphase ermöglichen soll.
Die freie Software OpenSSH erlaubt den sicheren Fernzugriff auf entfernte Rechner über das Netzwerk oder Internet und kommt auf vielen Linux-Rechnern zum Einsatz. OpenSSH ermöglicht verschiedene Wege der Authentifizierung, unter anderem mit Hilfe von asymmetrischen Schlüsseln. Im Standardfall existiert hierbei für jedes Nutzerkonto auf dem Zielrechner eine Datei mit den public-Keys der zugriffsberechtigten Nutzer, welche manuell gepflegt wird. Diese Art der Zugriffskontrolle wird jedoch schnell unübersichtlich, sobald viele Mitarbeiter auf viele Server zugreifen dürfen. Um den Überblick über zugriffsberechtigte Nutzer zu behalten, ist es deshalb notwendig, zur Verwaltung eine zusätzliche Software einzusetzen. Im Rahmen dieser Arbeit soll eine solche Verwaltungssoftware konzipiert werden. Nach einer Analyse bestehender Systeme werden die Gründe für die Wahl eines der Tools dargestellt sowie die anschließende Weiterentwicklung der gewählten Software dokumentiert.
Thema der Bachelorarbeit ist die OTA-Technologie, welche es ermöglicht, die Firmware eines Embedded Systems zu aktualisieren. Es wird die Funktionsweise eines OTA-Updates an einer reellen Implementierung gezeigt. Anschließend wird eine Komplettlösung für OTA-Updates, die Amazon IoT Core Platform, aufgezeigt. Die Nachteile dieser Komplettlösung sollen in die Konzeption und Implementierung einer Alternative mittels eines Mesh-Netzwerks einfließen.
Mit der vorliegenden Bachelorarbeit wird der Roboter mit dem Namen Pepper evaluiert und dokumentiert. Die Hochschule Offenburg besitzt einen dieser Roboter seit 2019 und will diesen in Forschungsprojekten und in Verbindung mit dem Labor Autonome Systeme einsetzen. Im Laufe dieser Arbeit werden die Sensoren und Aktuatoren auf ihre Genauigkeit, Beschaffenheit und Fehleranfälligkeit getestet. Neben dieser allgemeinen Evaluierung wird ermittelt, ob der Pepper mit Hilfe seiner Bewegungserfassung zur Aktivierung von Senioren geeignet ist. Im Weiteren wird eine Aufgabe für das Labor Autonome Systeme ausgearbeitet. Bei dieser Aufgabe sollen die Studenten der Hochschule, über die NAOqi API des Roboters, Anweisungen an den Pepper übermitteln, welche dieser anschließend selbstständig ausführt. Abschließend werden die gesammelten Evaluierungsergebnisse der Sensoren, Aktuatoren und Verwendungsmöglichkeiten innerhalb der Hochschule oder einem Pflegeheim veranschaulicht.
Analyse domänenseitiger Optimierungen für Deep Reinforcement Learning in der RoboCup Umgebung
(2021)
Mit dem Team "magmaOffenburg" nimmt die Hochschule Offenburg seit 2009 am internationalen Wettbewerb "RoboCup" in der 3D-Simulationsliga für Fußball teil. Dabei kommt es vor allem auf den Einsatz guter Lauf- und Kickverhalten an. Seit 2019 ist es dem Team magmaOffenburg möglich auch Deep Reinforcement Learning für die Weiterentwicklung der Verhalten einzusetzen. Während auf diese Weise schon verwendbare Ergebnisse für das Kicken produziert wurden, so fehlt noch ein Fortschritt beim Laufen lernen. Diese Arbeit beschäftigt sich mit den nötigen Optimierungen auf der Domänenseite, um das gelernte Laufen zu verbessern. Das beinhaltet die Optimierung des Observation- und Actionspaces, sowie auch eine Optimierung der Rewardfunktion. Dabei wurde versucht, die einzelnen Einflüsse verschiedener Parameter und Techniken innerhalb dieser drei Bereiche zu evaluieren. So konnte zum Schluss eine Verbesserung in der Laufgeschwindigkeit von etwas unter einem Meter pro Sekunde auf bis zu 1,8 Metern pro Sekunde erreicht werden. Ausschlaggebend für dieses Ergebnis waren vor allem der Verbesserungen in der Rewardfunktion.
Das Ziel der vorliegenden Abschlussarbeit war es, ein automatisches Testsystem für die Entwicklung der Embedded-C++-Softwarebibliothek semf zu erstellen. Bei den Software-Modulen die dabei getestet werden, handelt es sich um sogenannte Hardware-Abstraktionen, die die Verwendung der von den Mikrocontroller Herstellern bereitgestellten Hal-Bibliotheken vereinfachen.
Die wohl größte Herausforderung dieser Abschlussarbeit bestand darin, die von dem zu testenden Gerät nach außen gesendeten Nachrichten zu validieren, so wie von außen kommende Nachrichten zu generieren, mit welchem die Leseoperationen des zu testenden Gerätes überprüft werden können. Mithilfe einer Helper-Gegenstelle konnte dies jedoch umgesetzt werden. Das Ergebnis ist ein System mit welchem bestehende und zu entwickelnde Hardware-Abstraktionen zuverlässig, automatisch und effizient validiert werden können.
Diese Abschlussarbeit ist sowohl für Nutzer von semf, als auch für diejenigen Softwareentwickler interessant, die sich für das Testen von eingebetteten Systemen interessieren.
This thesis deals with the implementation of the SUBSCALE algorithm in the Python programming language. First, the current state of research and the needs of the target group are considered. Then, the choice of language is decided based on the findings. On the basis of self-generated requirements, the implementation is carried out.
Finally, the code is evaluated for accuracy, consistency, and execution time, as well as its applicability in practice.
Since the implementation of the current work proved to be unconvincing, an approach is tested in which Python is used only as a front-end.
Diese Arbeit beschäftigt sich mit der Entwicklung einer E-Learning Anwendung zum Peer-to-Peer Algorithmus Content Addressable Network (CAN). Ein CAN ist eine verteilte Hashtabelle zur dezentralen Verwaltung von Daten in Form von Schlüssel-Wert Paaren. Zweck der Anwendung ist eine didaktisch sinnvolle Aufbereitung und Darstellung der grundlegenden Abläufe im CAN. Die Anwendung simuliert ein CAN und bietet ein grafisches Interface zur Interaktion. Die Anwendung soll unterstützend im Rahmen des Moduls Advanced Networking im Informatik Master an der Hochschule Offenburg eingesetzt werden.
Der Südwestrundfunk ersetzt das bisher verwendete Ticketing-System Assyst
durch OTRS. Daten zu Kostenstellen, Räumen und Personen werden nicht in
diesen Systemen gepflegt und müssen deshalb regelmäßig aus den jeweiligen
Quellen synchronisiert werden. Die Datensynchronisation dieser und einiger
weiterer Systeme soll über eine neu entwickelte Schnittstelle erfolgen. Sie umfasst
das Auslesen der angebunden Systeme, die Aktualisierungslogik und das
Schreiben der veränderten Daten. Sie wird als eigenständig ausführbares Java-
Programm entwickelt.
Implementierung und Automatisierung von Performance-Tests aus den Erkenntnissen von Last-Tests
(2021)
Die Website des bayerischen Fußball-Verbandes hatte anfangs Performance Probleme, weshalb es zu Abstürzen der Seite kam. Um das Problem zu lösen wurden Last-Tests eingeführt. Diese können allerdings nicht immer ausgeführt werden, weshalb ein Performance-Test erstellt werden soll. In dieser Arbeit wird das Verhalten von Webservern unter Last analysiert, um einen Performance-Test zu entwickeln.
Um das Verhalten beurteilen zu können, wurden auf einem lokalen Computer Last-Tests ausgeführt und analysiert. Dabei fiel auf, dass die Steigung der Response Time nicht linear ansteigt im Vergleich zu den virtuellen Usern. Die Funktion steigt ab einem gewissen Punkt stark und nähert sich einer Asymptote an. Dieser Punkt ist durch eine Formel berechenbar.
Aus diesen Ergebnissen wurde eine Berechnungsformel entwickelt, die anhand von Messungen die Performance einer Website berechnen kann. Die Formel wurde in ein Testskript integriert, das die Website Ressourcen automatisch scannt und die Messungen ausführt. Der erstellte Test wird zum Schluss ausgeführt und teilweise automatisiert.
In dieser Abschlussarbeit wurde die bisherige Spielstrategie des RoboCup3D-Clients an die durch den FatProxy möglich gewordenen perfekten Kicks angepasst. Dazu wurde die aktive Entscheidungslogik am Ball komplett überarbeitet und eine neue Positionierungsstrategie anhand der bisher verwendeten Architektur entwickelt.
Die neue aktive Entscheidungslogik verwendet dabei eine neue, von den Mitspielerpositionen abhängige, Positionsberechnung und mehrere neue Bewertungsmethoden, die diese Positionen bewerten. Zusätzlich gibt es nun auch eine Funktionalität, die den neu benötigten vertikalen Schusswinkel für jede Position bestimmt. Für die neue Positionierung wurde eine Rautenformation gewählt, bei der die verschiedenen Rollen jetzt eigene Spielfeldbereiche zugewiesen bekommen, die sich teilweise überlappen. Diese Bereiche sind nötig geworden, da die Rollen sich jetzt weniger am Ball und mehr direkt am Spielfeld orientieren.
Bei der zum Schluss durchgeführten Evaluation der Spielergebnisse zwischen neuen und alten Strategiekonfigurationen hat sich ergeben, dass die komplett neue Strategiezusammenstellung mit durchschnittlich zwei Toren Vorsprung gegen die alte Strategie gewinnt und damit besser mit den neuen Möglichkeiten interagiert. Mischt man neue und alte Strategiekomponenten hat das jedoch den gegenteiligen Effekt, da die Mischvarianten gegen die alte Strategie verlieren. Die neuen Komponenten benötigen also das gegenseitige Zusammenspiel, um effizient zu funktionieren.
Seit 2009 nimmt das Team ”magmaOffenburg” an der 3D-Simulationsliga des RoboCups teil. Für das erfolgreiche Abschneiden in Turnieren ist die Qualität der erlernten Bewegungsabläufe ein zentraler Faktor. Bisher wurden genetische Algorithmen verwendet, um verschiedenste Aktionen zu erlernen sowie zu optimieren. In dieser Arbeit wird der Deep Reinforcement Learning Algorithmus Proximal Policy Optimization für das Erlernen bestimmter Bewegungen verwendet. Um ein Verständnis für dessen einflussreichen Parameter zu erhalten, werden Größen wie paralleles Lernen, Hyperparameter, Netzwerktopologie, Größe des Observationspace sowie asynchronem Lernen anhand dem Kicken aus dem Stand evaluiert. Durch die Ergebnisse der Evaluierung konnte der erlernte Kick signifikant verbessert werden und sein genetisch erlerntes Gegenstück im Spiel ablösen. Drüber hinaus wurden die Erkenntnisse anhand dem Laufen lernen evaluiert und Zusammenhänge bzw. Unterschiede der zwei Lernprobleme festgestellt.
In Unternehmen entstehen beim Prozess der digitalen Transformation stetig neue Anwendungen und Auswertungen. Es wird viel Zeit und Geld in digitale Lösungen investiert, die das Arbeitsumfeld verbessern. Die Plattformen zur Verwaltung und Verteilung dieser werden dabei jedoch häufig vernachlässigt.
Ziel dieser Arbeit ist es eine solche Plattform in Form eines App-Stores für den Standort zu entwickeln. Dabei liegt der Fokus auf der Verbesserung der App-Nutzung, was durch eine nutzerfreundliche Oberfläche für Endanwender und Entwickler erreicht werden soll. Weiterhin ist eine hohe Wartbarkeit der Plattform notwendig, damit sie auch von einem kleinen Team betrieben werden kann.
Zunächst wurde analysiert, welche Architektur und Technologien für die Umsetzung gut geeignet und welche vom Unternehmen vorgegeben sind. Dabei stellte sich heraus, dass eine Microservice-Architektur am besten geeignet ist. Als Technologie stand lediglich das Framework zur Frontendimplementierung zur Wahl, hier war Angular am besten geeignet.
Durch die Verwendung eines iterativen Prozesses konnten bereits zu Beginn die späteren Nutzer in die Entwicklung eingebunden werden. Dies ermöglichte das Ermitteln aller Anforderungen und Entwerfen einer nutzerfreundlichen Oberfläche. Dieses iterative Vorgehen wurde auch während der Implementierung eingesetzt. Dazu wurden mit Testdaten befüllte Versionen bereitgestellt, damit Nutzer frühzeitig Rückmeldung geben konnten.
Die vorliegende Bachelorarbeit beschreibt die Erstellung einer Anwendung, die es ermöglicht, einen Roboterarm mithilfe eines haptischen Geräts zu steuern. Zudem wird die Kraftrückkopplung des haptischen Geräts, abhängig von der wirkenden Kraft des Roboterarms, implementiert.
Zur Realisierung dieser Anforderungen wurden zwei Programme erstellt; diese beiden Programme sind über eine TCP Verbindung miteinander verbunden. Programm 1 stellt die haptische Umgebung bereit, Programm 2 die Robot Operating System Node, mit welcher die Daten zum Roboter gesendet und Daten vom Roboter empfangen werden können.
Die in dieser Arbeit erstellten Programme wurden mithilfe von Test Nodes überprüft und leiten die Position der haptischen Umgebung weiter. Die Kraftrückkopplung des haptischen Geräts ist ebenfalls vorhanden und integriert.
Ein Testlauf mithilfe eines simulierten Roboterarms konnte erfolgreich durchgeführt werden.
In dieser Thesis wird die Entwicklung einer Progressive Web App, die zur Auflistung von Stellenanzeigen der Valiton GmbH dienen soll, aufgezeigt. Dabei soll ermittelt werden, ob eine Progressive Web App einer Nativen App nahekommt und ob sich der damit verbundene Aufwand lohnt. Umgesetzt wurde die Anwendung mit Hilfe des JavaScript Frameworks Vue.js. Bei der Umsetzung lag der Fokus auf der Offlinefähigkeit, die Push- Benachrichtigungen und das Responsive Design. Diese konnten mit dem UI Framework Vuetify und dem Service Worker implementiert werden. Die Anwendung läuft in allen Browsern, doch sie kommt am besten durch die vollständige Unterstützung des Chrome Browser zur Geltung. Progressive Web Apps werden Nativen Apps immer ähnlicher, jedoch sind sie kein kompletter Ersatz. Ob sich die Umsetzung lohnt, kommt auf den Anwendungsfall an. Die Technologien und Unterstützung verschiedener Browser werden immer besser, womit gesagt werden kann, dass Progressive Web Apps gute Chancen in der Zukunft haben.
Microservice- und andere service-basierte Architekturen wurden im Laufe der Jahre immer beliebter und große Unternehmen steigen zunehmend auf solche Architekturen um. Einige Unternehmen scheitern aber an der Entwicklung und Umsetzung dieser Architekturen, da zu wenig Zeit investiert wird.
Das Ziel dieser Thesis ist es, ein Konzept zur Umsetzung einer Microservice Architektur für ein Ticketsystem mit .Net Core zu entwickeln. Dabei liegt der Fokus auf der Konzeption der Architektur des Ticketsystems anhand der im Unternehmen herrschenden Rahmenbedingungen. Damit soll gezeigt werden, wie eine solche Architektur umgesetzt werden kann und welche Kompromisse gegebenenfalls eingegangen werden müssen.
Um herauszufinden welche Architektur geeignet ist, wurde zunächst eine Analyse der Microservice Architektur und der service-orientierten Architektur (SOA) durchgeführt und die Ergebnisse gegenübergestellt. Dabei stellte sich schnell heraus, dass im Fall des Unternehmens eine Microservice Architektur besser geeignet ist, aber gewisse Eigenschaften nicht so umgesetzt werden konnten, wie sie im Idealfall umgesetzt werden sollten. Durch einige Anpassungen konnte ein Konzept für eine Microservice Architektur entwickelt werden, welches über einen Prototyp auf Umsetzbarkeit geprüft wurde.
Auf dieser Grundlage ist es empfehlenswert, vor der Umsetzung einer neuen Architektur,ein Konzept zu erstellen und verschiedene Optionen abzuwägen. Eine Microservice Architektur ist dabei für web-basierte Anwendungen geeignet, bei denen die einzelnen Services klein gehalten werden können. Außerdem ist die Verwendung einer Microservice Architektur in Kombination mit Montainertechnologien empfehlenswert, um die einzelnen Services besser voneinander zu trennen.
Im Rahmen dieser Arbeit wird ein dezentrales Usermanagement entwickelt, das ein vorhandenes aber veraltetes Usermanagement ersetzen soll.
Zuerst werden verschiedene Technologien für die Umsetzung evaluiert. Dabei wird begründet, warum z. B. dem Relationalen Datenbanksystem von Oracle der Vorzug gegenüber einem NoSQL-System wie MongoDB gegeben wird.
Im Rahmen einer ausführlichen Konzeption werden zuerst die Anforderungen detailliert formu-liert. In einem Grob-Entwurf werden die Beziehungen des alten und des neuen Usermanagements zur Außenwelt dargestellt. Datenmodellierung und Skizzierung der Paket- bzw. Klassen-Struktur innerhalb der Anwendung bilden die Grundlage für die spätere Implementierung. Ein besonderer Schwerpunkt bei der Konzeptionierung liegt auf dem Entwurf der REST-API.
Bei der Implementierung werden die Schritte von der Einrichtung des Spring-Frameworks bis zur lauffähigen Anwendung beschrieben. Der Umgang mit der Datenbank und dem OR-Mapper sind Schwerpunkte der Implementierung, ebenso wie die Umsetzung der REST-Schnittstellen. Die fachlichen Prozesse der Daten-Migration, der Verarbeitung von Requests aus einem zentralen System und des GLN-Mappings werden in eigenen Kapiteln behandelt.
Am Ende werden die erzielten Ergebnisse dokumentiert, offene Punkte angesprochen und ein Fazit gezogen.
Diese Bachelorarbeit untersucht die Möglichkeiten der Persistierung und anschließenden Analyse verschiedener Messwerte in einer geeigneten Software-Architektur. Zunächst wird dazu die genaue Aufgabenstellung betrachtet. Im Anschluss soll die geplante Software-Architektur und die vorgesehene Kommunikationsart erklärt werden. Um das entwickelte Produkt einfach zur Verfügung stellen zu können, sollen die Tools Vagrant, Puppet und Docker gemeinsam genutzt werden. Nachdem im Anschluss auf die eingesetzte Servertechnologie eingegangen wurde, beschäftigt sich die Arbeit mit der Persistierung der Messdaten. Hierzu werden die verschiedenen Arten verfügbarer Datenbanktechnologien erläutert und darauf aufbauend eine Auswahl getroffen. Als letzten Teil der Anwendung wird auf die Demonstrationsapplikation eingegangen. Hier werden wieder die nötigen Anforderungen erörtert und die Umsetzung beschrieben.
Anhand der gewonnenen Erkenntnisse wird abschließend ein Fazit der verwendeten Technologien und der Architektur verfasst. Hier soll die Eignung der verwendeten Technologien zur Lösung des Problems überprüft und bewertet werden.
Abschließend wird noch ein Ausblick auf die zukünftige Entwicklung in diesem Bereich gegeben.
Durch die Digitalisierung erschlossen sich in den letzten 15 Jahren nicht nur viele Möglichkeiten neues Bildmaterial oder Videomaterial aufzunehmen und zu verwahren, sondern auch die Zugänglichkeit der breiten Masse zu solcher Technologie. Abseits der Datenmengen wie sie Social Media Plattformen tagtäglich verarbeiten, existieren die Sende- und Rundfunkanstalten mit gigantischen Archiven von Videomaterial. Der Großteil davon ist von dokumentarischer oder szenischer Natur sowie verschiedenste Interviews aus allen Bereichen des öffentlichen Lebens.
Nach dem aktuellen Stand wird das Videomaterial von Hand kategorisiert und zur Indizierung verschlagwortet. Die Aufgabe war es nun, diesen Prozess zumindest teilweise zu automatisieren. Dazu sollten auf dem Markt verfügbare Technologien in Bereich der Gesichtserkennung und Texterkennung auf ihre Nutzbarkeit zu diesem Zweck hin evaluiert werden. Dabei soll mit Hilfe der in Interviews verwendeten Bauchbinden das momentan gezeigte Gesicht "gelernt" werden, um es später ohne solche Hilfe wiederzuerkennen.
In dieser Thesis wird die Visualisierung der Stammdaten der MARKANT Handels und
Service GmbH (MARKANT) überarbeitet. Zu Beginn wird auf die Firma MARKANT,
die aktuelle Lösung der Visualisierung und die daraus resultierenden Probleme eingegangen.
In der Thesis wird zunächst ein generisches Diagramm erstellt, welches Daten,
die eine hierarchische Ordnung haben, zeichnet. Darauf aufbauend soll als Beispiel, das
Organigramm der Firma MARKANT, mit allen Anforderungen, umgesetzt werden.
Um das Ziel zu erreichen, wird eine Marktübersicht eingeholt und die Frameworks
verglichen. Nachdem eine engere Auswahl getroffen ist, sollen die Frameworks hinsichtlich
der Visualisierung genauer evaluiert werden.
Nach der Wahl des Frameworks wird eine Konzeption erstellt, bei der auf einen neuen
Technologiestack, sowie auf die Bedienbarkeit des Diagrammes durch den Endanwender
eingegangen wird.
Anhand der erstellten Konzeption werden die verschiedenen Funktionen des Diagrammes
implementiert. Ein neuer Stack wird aufgebaut und an das System der Firma
MARKANT angepasst.
Abschließend zeigt ein Vergleich zwischen der alten und der neuen Visualisierung auf,
was in der Thesis erreicht wurde.
Das Ziel der vorliegenden Bachelorarbeit ist es, ein prototypisches Meldesystem für die Bankenaufsicht in einer privaten Cloud zu realisieren. Ferner sollen die Vorteile eines solchen Systems gegenüber bestehenden Systemen abgegrenzt werden. Im ersten Teil wird auf die Entwicklung von Software as a Service-Anwendungen sowie die rechtlichen Grundlagen und Zusammenhänge im Meldewesen eingegangen. Des Weiteren werden das Cloud-Computing und das verwendete Datenformat XBRL durchleuchtet. Anschließend werden bestehende Meldesysteme verglichen. Dabei stehen die unterschiedlichen Bereitstellungsarten im Fokus. Zur Erreichung des Ziels der Thesis wird ein Proof of Concept anhand einer Beispielmeldung aus dem Großkreditmeldewesen umgesetzt. Diese Meldung erfordert sowohl das Befüllen von PDF-Formularen sowie das Erstellen von XBRL-Dateien. Für die Umsetzung wird eine Testumgebung aufgebaut, mit welcher es bedingt möglich ist, reale Bedingungen zu simulieren. Nach einer Evaluation wird hierfür das Platform as a Service-System Openshift verwendet. Damit ist es möglich, eine Private Cloud zu erstellen, auf der eine Java EE Anwendung als Reporting as a Service-Lösung zur Verfügung gestellt wird. Deren Funktionsumfang umfasst das Einlesen, Prüfen, Konvertieren und Validieren von Daten sowie das Versenden von Meldungen zur Bankenaufsicht. Um die heterogenen Systeme im Finanzumfeld abzudecken, werden Testdaten als CSV, XLS und via Datenbank bereitgestellt. Die Tests mit diesen Daten sind sehr positiv. So ist es möglich, Daten aus allen Datenquellen einzulesen und mittels einer Plausibilitätsliste der Bundesbank zu prüfen. Anschließend können die Daten in eines der geforderten Formate PDF oder XBRL konvertiert werden. Durch den Ansatz einer privaten Cloud-Lösung können einige Sicherheitsbedenken ausgeschlossen werden, ohne auf die Vorteile wie Lastverteilung, Multitenancy, Skalierbarkeit und hohe Kompatibilität verzichten zu müssen. Abschließend werden in einer Schlussbetrachtung die Ergebnisse vorgestellt und ein Ausblick für die Zukunft gegeben.
In der vorliegenden Bachelorarbeit wird die Verwendung von persistenten Datenstrukturen in Anwendungen untersucht. Dafür werden zunächst verschiedene Eigenschaften von bestehenden Implementierungen persistenter Datenstrukturen im Vergleich zu ephemeralen Implementierungen der Datenstrukturen untersucht. Hierbei werden Laufzeiten und Speicherverbrauch analysiert. Dabei wird gezeigt, in welchen Fällen die Verwendung von persistenten Datenstrukturen Vorteile gegenüber der Verwendung ephemeralen Datenstrukturen bringt.
Im zweiten Teil wird die Verwendung von persistenten Datenstrukturen in asynchronen Umgebungen untersucht. Hierfür werden die grundlegenden Probleme aufgezeigt, die bei der Erzeugung von Thread lokalen Versionen geteilter Zustände entstehen. Es wird aufgezeigt, wie die verschiedenen Versionen durch ein Zusammenführungsverfahren in einen gemeinsamen Zustand überführt werden können. Als konkrete Implementierung wurde eine Framework in Java entwickelt, welches versucht, dieses Problem wiederverwendbar zu lösen. Das entwickelte Framework wird anhand einer Beispielsdomäne evaluiert, indem die Performanz mit der Verwendung von expliziter Synchronisation verglichen wird. Hierbei wird gezeigt, dass in Situationen, in denen die Modifikationen viel Zeit benötigen, der Ansatz des Zusammenführen Vorteile gegenüber expliziter Synchronisation bietet. Im letzten Teil der Arbeit wird die Verwendung eines geteilten persistenten Zustandes im an der Hochschule Offenburg durchgeführtem A 2 O Projekt untersucht, bei dem Software für eine autonomes Modellauto entwickelt wurde. Es werden die Schwierigkeiten bei der Umsetzung der im Framework entwickelten Techniken in C++, sowie mögliche Lösungswege aufgezeigt.
Diese Arbeit befasst sich mit der Konzeption und Entwicklung einer SharePoint App, die einen Datenabgleich zwischen Zoho CRM und JIRA ermöglicht. Mittels dieser App ist es möglich, einen Supportfall, den der Support mittels Zoho CRM aufgenommen hat, bei Bedarf der Entwicklung zuzuweisen, indem in JIRA ein neues Ticket erstellt wird. Des Weiteren können durch die App Informationen, wie Firmen- und Kontaktdaten beiden Abteilungen zugänglich gemacht werden. Realisiert wird dies auf Basis von SharePoint, auf das alle beteiligten Mitarbeiter Zugriff haben. Zunächst wird für eine Lösung mit SharePoint dessen App-Modell analysiert und die möglichen Hosting-Varianten evaluiert. Die dabei getroffene Entscheidung für eine SharePoint gehostete App wird zudem begründet. Um die Bearbeitung eines Supportfalls innerhalb der App zu ermöglichen, wird ein Workflow entworfen, der neben dem Ablauf der Bearbeitung auch die Kommunikation mit den beteiligten Anwendungen festlegt. Die zu diesem Zweck notwendige persistente Speicherung der Daten in der App erfolgt dabei mithilfe von SharePoint Listen. Diese werden aufgrund eines ähnlichen Aufbaus als Tabellen dargestellt. Die detaillierte Darstellung einzelner Listenelemente dagegen erfolgt mithilfe von Dialog-Fenstern, die von SharePoint bereitgestellt werden. Dabei werden abhängig von dem Land aus dem die App aufgerufen wird, die Texte auf Deutsch oder auf Englisch angezeigt.
Diese Arbeit beschäftigt sich mit der Leistungsanalyse und Optimierung eines Flugdatenservers. Für die Durchführung dieser Leistungsanalyse wird eine eigene Anwendung entwickelt. Mit dieser eigens entwickelten Anwendung wird das Leistungsverhalten des Flugdatenservers genau analysiert. Mit den Erkenntnissen aus der Leistungsanalyse werden am Flugdatenserver Optimierungen durchgeführt und weitere Möglichkeiten zur Optimierung aufgezeigt. Bei diesem Flugdatenserver (Air Traffic Control Server) handelt es sich um eine Client/Server-Anwendung zur Visualisierung von Flugbewegungen im Lauftraum. Hierfür wird der Flugdatenserver mit Flugsicherungsdaten durch das Flugüberwachungssystem Automatic Dependent Surveillance (ADS) versorgt.