AI
Refine
Year of publication
Document Type
- Bachelor Thesis (33) (remove)
Has Fulltext
- yes (33)
Is part of the Bibliography
- no (33)
Keywords
- API (2)
- Architektur (2)
- Informatik (2)
- Microservice (2)
- Programmiersprache (2)
- Software (2)
- ASP.NET Core (1)
- Amazon Web Services (1)
- Angewandte Informatik (1)
- Angular (1)
Institute
Open Access
- Closed Access (15)
- Open Access (10)
- Closed (8)
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.