D. Software
Refine
Document Type
- Master's Thesis (15) (remove)
Language
- German (15)
Has Fulltext
- yes (15)
Keywords
- Cloud Computing (2)
- Neuronale Netze (2)
- Neuronales Netz (2)
- Technische Hochschule Köln (2)
- Agile Softwareentwicklung (1)
- Automatische Spracherkennung (1)
- Backend-Driven UI (1)
- Blended Learning (1)
- Blended Space (1)
- Captcha (1)
More and more often, spoken information must and should be available in written form. For this purpose, various transcription programs try to support the user with various conveniences when transcribing the source material. A variety of online services go one step further and provide a ready-to-use, automatically generated transcription for a fee. Since the fees can be very expensive for the individual user and the online services may not always be used for privacy reasons, the goal of this work is to implement an open offline alternative. This alternative should be an open source editor based on the open speech-to-text-engine DeepSpeech and should on one hand provide the user with an offline transcription and on the other hand support him in correcting it. To achieve this goal, first the traditional speech recognition and eventually DeepSpeech will be described. This is followed by the conception and implementation of the editor. Since this project is explicitly intended to be an open source project, the last part will take a closer look at the release.
Kategorisierung und Bewertung plattformübergreifender Ansätze für die Auswahl eines Frameworks
(2023)
Die plattformübergreifende Entwicklung ist eine populäre Art der Anwendungsentwicklung, die in der Forschung und Industrie immer weiter an Relevanz gewinnt. Dabei wird eine Codebasis geschrieben, die auf mehreren Betriebssystemen lauffähig ist. Das Ziel dieses Ansatzes ist es unter anderem, die Zeit- und Kosteneffizienz zu optimieren. Es gibt verschiedene Ansätze der plattformübergreifenden Entwicklung. Die einzelnen Frameworks lassen sich wiederum in diese Ansätze einteilen. Durch die steigende Akzeptanz dieser Art der Entwicklung herrscht eine zu große Auswahl an Frameworks, von denen jedes eigene Stärken und Schwächen aufweist. Dies ist ein Problem, da Entwickelnde keine Übersicht und Einordnung der Frameworks für ihre individuellen Bedürfnisse haben. Um diesem Problem entgegen zu wirken, wird in dieser Arbeit ein Verfahren entwickelt, mit dem das passende Framework für die Rahmenbedingungen des jeweiligen Projekts ermittelt werden kann. Dazu werden die Frameworks Kotlin Multiplatform, Flutter, React Native und Vue.js, das zur Umsetzung einer PWA genutzt wird, für eine mobile Anwendung getestet, die auf Android und iOS Geräten laufen soll. Zusätzlich werden 44 Kriterien ermittelt, anhand derer die Frameworks bewertet werden. Mit dem resultierenden Verfahren kann sowohl eine objektive, als auch eine subjektive Auswertung der Frameworks erfolgen, um eine geeignete Auswahl zu treffen.
Diese Arbeit untersucht verschiedene Ansätze, Daten im Google Cloud Firestore zu strukturieren und deren Auswirkungen auf Kosten, Performance sowie Codequalität. Zunächst folgt eine Aufbereitung des aktuellen Stands der Forschung. Darauf folgt die experimentelle Methodik. Hier dient eine prototypische Implementierung der Szenarien als Grundlage. Im Zuge des Experiments werden in unterschiedlichen Disziplinen Daten erhoben und im Anschluss ausgewertet, um empfehlenswerte Lösungen für definierte Anwendungsfälle zu benennen. Am Ende gibt die Arbeit ein kurzes Fazit zu den gewonnenen Erkenntnissen sowie einen Ausblick auf weitere Optimierungspotenziale ab.
Smartphones und die Nutzung von mobilen Anwendungen gewinnen aufgrund der stetig voranschreitenden Digitalisierung weiter an Relevanz. Im April 2022 lag die Zahl der genutzten mobilen Endgeräte bei knapp 6 Milliarden, wobei die Hersteller Apple
und Google einen Marktanteil von knapp 99 % einnehmen. Um als Entwickler eine möglichst große Zielgruppe anzusprechen, ist es daher wichtig, die eigene Anwendung auf möglichst vielen Plattformen zur Verfugung stellen zu können. Die native Entwicklung ist einer der am meist verbreitetste Entwicklungsansatz für mobile Anwendungen. Dort werden plattformspezifische Tools sowie native Programmiersprachen verwendet. Hierbei ergeben sich allerdings diverse Herausforderungen für Entwickler entlang des gesamten Entwicklungsprozesses. Neben der nativen Entwicklung existiert der Ansatz von Cross-Plattform. Hierbei handelt es sich um einen Sammelbegriff für verschiedene Ansätze, welche das Ziel verfolgen eine Anwendung durch die Nutzung einer einheitlichen Codebasis auf mehreren Plattformen zur Verfugung zu stellen. Einer dieser Unteransätze ist
Backend-Driven UI, worin die gesamte Anwendung innerhalb eines strukturierten Datenformats beschrieben und serverseitig verwaltet wird. Der Client kann diese Daten dann dynamisch anfragen und zur Laufzeit in native UI überführen. Das Konzept von Backend-Driven UI wird bereits durch Unternehmen wie Airbnb oder SiriusXM eingesetzt, ist hier allerdings stark auf anwendungsbezogene Prozesse zugeschnitten. Es bedarf daher eines Backend-Driven UI Frameworks, welches es Entwicklern ermöglichen soll, mobile Anwendungen, ohne anwendungsspezifische Einschränkungen plattformübergreifend zu entwickeln. Im Rahmen dieser Arbeit wurde daher zunächst eine plattformunabhängige und erweiterbare Architektur eines solchen Frameworks entwickelt und in Form eines ersten Prototyps auf ihre Umsetzbarkeit geprüft. Insgesamt stellt der Prototyp eine mögliche Umsetzung von Backend-Driven UI dar und ist in der Lage erste Anwendungsszenarien abzudecken. Es konnten dennoch Bereiche ermittelt werden, welche im Zuge zukünftiger Entwicklung ausgebaut werden können. Dazu zählt unter anderem das Umsetzen von serverseitig bestimmter Anwendungslogik sowie der Umgang mit Unterschieden im plattformspezifischen Funktionsumfang.
Konzeption einer flexiblen Systemarchitektur zur dynamischen Konfiguration hybrider Lernräume
(2021)
In dieser Arbeit wird eine dynamische Systemarchitektur für die Schaffung hybrider Ökosysteme konzipiert, welche eine flexible und kontextgerechte Konfiguration hybrider Lernräume ermöglichen. Aufgrund der variierenden Definitionen hybrider Lehre und Lernräume sowie der schwachen Abgrenzung zu verwandten Begriffen findet hierfür zunächst eine Konkretisierung eigener Arbeitsdefinitionen statt. Aufbauend auf diesen Begriffsbestimmungen und ausführlichen Literaturrecherchen, werden anschließend sich interdisziplinär überschneidende Kernelemente hybrider Lehre und Lernräume identifiziert sowie in einem Übersichtsmodell zusammengefasst. Durch die Literaturrecherche ersichtliche Charakteristiken des hybriden Paradigmas werden ebenso in
Beziehung gesetzt und zusammenfassend aufgeführt. Auf Basis dieser Übersichten und unter Berücksichtigung weiterer Forschungsergebnisse wird nachfolgend ein Vorgehensmodell kreiert, welches kontextgerechte Designs hybrider Systeme strukturiert ermöglicht. Neben didaktischen, physischen und digitalen Komponenten werden dafür diverse Typen von Lernaktivitäten identifiziert, welche als Ausgangspunkt eine effiziente und praxisorientierte Planung ermöglichen.
Alle erstellten Modelle bilden abschließend die Grundlage der konzipierten Systemarchitektur, in welcher die hybriden Kernkonzepte aus einer technischen Perspektive beleuchtet werden. Das hierdurch repräsentierte Microservice-Websystem beinhaltet neben notwendigen Basis-Services vor allem einen dynamischen Plugin-Mechanismus, welcher die flexible Integration neuer Bestandteile ermöglicht. So kann der Funktionsumfang auf sich wandelnde Anforderungen der Nutzer angepasst werden und die Anwendung mit der Zeit zu einem umfassenden Ökosystem heranwachsen.
Cloud Computing ist der zentrale Faktor zur Beschleunigung der Digitalisierung in Deutschland und wird in den kommenden Jahren eine wichtige Rolle in jedem deutschen Unternehmen spielen. Für Unternehmen wird es dabei um die Umsetzung von
Cloud-Strategien und die praktische Einbindung in die täglichen Betriebsprozesse gehen. Zusätzlich müssen Unternehmen ihre bestehende Datenlandschaft in moderne Architekturen zum Datenmanagement in die Cloud migrieren. Dabei können Unternehmen auf eine Vielzahl an unterschiedlichen unternehmensweiten Datenarchitekturen
zurückgreifen. Die vorliegende Masterarbeit gibt eine Einführung in die aktuelle Entwicklung von Cloud Computing und erläutert, mit Data Fabric, Data Lakehouse und Data Mesh, drei unternehmensweite Datenarchitekturen für die Cloud. Data Fabric, Data Lakehouse und Data Mesh bilden dabei aktuell die modernsten Konzepte für unternehmensweite Datenarchitekturen. Zusätzlich werden ein Data Lakehouse und ein Data Mesh in einer ausgewählten Cloud-Umgebungen entworfen, prototypisch aufgebaut und praktisch analysiert. Ziel der Masterarbeit ist es, die unternehmensweiten Datenarchitekturen in der Cloud zu erläutern, konkrete technologische Architekturen zu entwerfen und entsprechende Hinweise zu Aufwandstreibern in Unternehmen zu identifizieren.
CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans Apart), auch HIPs (Human Interaction Proof) genannt, sind weit verbreitete Sicherheitsmaßnahmen im World Wide Web, die Online-Dienste vor dem Missbrauch durch automatisierte Programme schützen sollen. Dazu werden die Benutzer aufge-fordert, eine Aufgabe zu lösen, welche von Computern nicht gelöst werden kann, wie beispielsweise das Entziffern von verkrümmten Buchstaben. Durch die immer weiter verbesserten Fähigkeiten der Computerprogramme auf diesen Gebieten, wird es für die Entwickler der HIPs immer anspruchsvoller eine ausreichende Sicherheit zu garantieren. Daraus resultiert ein Zielkonflikt zwischen der Sicherheit und Gebrauchstauglichkeit der HIPs. Da die Sicherheit garantiert werden muss, leidet die Gebrauchstauglichkeit und die Benutzer sind oftmals nicht in der Lage das HIP zu lösen. Dies führte bereits in der Vergangenheit zu einer Abneigung gegenüber diesen Systemen.
In dieser Arbeit wurde überprüft ob diese Abneigung durch die Verwendung von Gamifizierung, also Spielelementen, in einem neu entwickelten HIP verringert werden kann. Zusätzlich sollte geprüft werden, ob anstelle der Tastatur die Sensoren mobiler Endgeräte als Eingabe-medium dienen können.
Dazu wurde durch eine Analyse von durchgeführten Angriffen auf bestehende HIPs sowie Studien zur Gebrauchs-tauglichkeit derselben ein Rahmenwerk erstellt. Dieses Rahmenwerk definiert Anforderungen, die ein sicheres und zugleich benutzerfreundliches HIP erfüllen muss. Anhand dieser Anforderungen wurde ein neues spielbasiertes HIP in Form eines Kugellabyrinths auf Basis von JavaScript und HTML5 implementiert. Der Benutzer muss durch die Neigung des Geräts eine Kugel steuern und diese innerhalb der vorge-gebenen Zeit in das Loch lenken. Die Gebrauchstauglichkeit dieses HIPs konnte durch eine Onlineumfrage bestätigt werden. Dies gilt jedoch nicht für die Sicherheit, welche durch den lesbaren Quellcode stark beeinträchtigt wird. Für diese Schwach-stelle konnte eine Lösung in Form einer Browsererweiterung durch eine Public-Key-Signatur konzipiert werden. Durch diese Erweiterung könnte auf den Einsatz von HIPs in vielen Bereichen verzichtet und andere Webanwendungen sicherer gestaltet werden.
Die Digitalisierung hat Auswirkung auf die Entwicklung von Produkten. Die Teams werden agiler, die Kunden haben als Eigentümer eines Produktes Mitspracherecht und bestimmen gemeinsamen mit den Entwicklern, welche Features als Nächstes aus dem vordefinierten Backlog in dem nächsten Sprint als Inkrement eingebaut und ausgeliefert werden. Durch die enge Zusammenarbeit werden die Release-Zyklen eines Produktes kürzer und es werden mehr Features als in der Vergangenheit bei nicht agilen Methoden deployt. Durch die kurzen Release-Zyklen werden viele unterschiedlichen Versionen ausgerollt. Dies hat zur Folge, dass Fehler, die vorher durch das Testen nicht entdeckt worden sind, auf einer produktiven Umgebung ausgerollt werden. Hat der Fehler eine starke Auswirkung auf die Benutzung der Anwendung, dann besteht die Möglichkeit, die Änderung manuell durchzuführen. Diese muss beim nächsten Release eingebaut werden. Wenn die Release-Zyklen länger werden, birgt es die Gefahr, dass viele manuelle Änderungen in der Zeit entstehen. Der ausgerollte Zustand entspricht nach einer bestimmten Zeit nicht mehr dem eingecheckten Zustand im Git-Repository. An der Stelle bietet der GitOps-Ansatz eine mögliche Abhilfe, um den ausgerollten Ist-Zustand durch regelmäßiges Pullen so nah wie möglich an dem im Repository eingecheckten Soll-Zustand zu halten.
Eine gängige Form der Qualitätskontrolle von Quellcode sind Code Reviews. Der Fokus von Code Reviews liegt allerdings oft auf syntaktischer Analyse, wodurch weniger Zeit für eine semantische Überprüfung bleibt und zusätzliche Kosten verursacht werden. Code Reviews lassen sich zwar teilweise durch "Linter" automatisieren, dennoch können sie nur syntaktische Fehlermuster identifizieren, welche vorher definiert wurden. Zudem kann ein Linter nur darauf hinweisen, dass möglicherweise ein Fehler vorliegt, da die Fehler nicht durch logische Inferenz ermittelt werden. Die vorliegende Arbeit prüft, ob ein Deep Learning Modell den regelbasierten Ansatz von Lintern ablösen und die semantische Ebene erschließen kann. Dazu wurde eine Stichprobe von Java Methoden zusammengestellt und im Anschluss mit einem Supervised Learning Ansatz binär klassifiziert. Da die Analyse von Quellcode der Textanalyse stark ähnelt wird ein gängiger Ansatz für Textklassifikation verwendet. Dadurch kann gezeigt werden, dass eine Präzision von 85% bei der Erkennung von Quellcodeproblemen durch Deep Learning möglich ist.
Untersuchung des Potentials Neuronaler Netze für Regelungsprozesse am Beispiel eines Betonverteilers
(2018)
Ziel der Arbeit ist die Entwicklung eines Ansatzes zur Nutzung Neuronaler Netze für die Steuerung eines Betonverteilers. Nach der Erläuterung der Grundlagen Neurona-ler Netze wird ein Netz entworfen und ein Test anhand realistischer Testdaten durch-geführt. Nach einer ausführlichen Beschreibung des Umfelds des Anwendungsfalls (Betonverteiler), sowie der Grundlagen Neuronaler Netze, ihrer Lernverfahren und ihrer Einsatzmöglichkeiten in der Regelungstechnik erfolgt der Entwurf eines Ansatzes zur Konstruktion eines Netzes für den Betonverteiler als Anwendungsfall sowie die Beschreibung der Implementation von Simulationsmodell und neuronalem Netz.