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.