54.50 Programmierung: Allgemeines
Filtern
Dokumenttyp
- Masterarbeit (8)
Sprache
- Deutsch (8)
Volltext vorhanden
- ja (8)
Gehört zur Bibliographie
- ja (8)
Schlagworte
- Codegenerierung (1)
- Emulator (1)
- Framework <Informatik> (1)
- REST <Informatik> (1)
- Softwareentwicklung (1)
- Softwarekonfigurationsverwaltung (1)
Künstliche Intelligenz (KI) ist heutzutage ein wichtiger Teil von vielen Software-Applikationen geworden. Sie ist in Handy Apps integriert und je komplexer KI wird, umso größer ist in diesem Zusammenhang der Einfluss, den sie auf die individuelle Privatsphäre hat. Potentielle Risiken, die durch KI entstehen können, haben die Europäische Union dazu gebracht, einen Vorschlag für eine KI-Verordnung zu erarbeiten. Um die darin geforderten Risikominderungsmaßnahmen zu adressieren, hat das Fraunhofer Institut einen Leitfaden zur Gestaltung vertrauenswürdiger Künstlicher Intelligenz veröffentlicht.
Das Hauptziel dieser Masterarbeit ist es, diesen textbasierten Leitfaden in ein Software-Tool zu überführen, welches Entwicklern von KI-Applikationen hilft, den Prozess gemäß Leitfaden zu dokumentieren. Dies hilft, den Leitfaden zu vereinfachen, um einen niederschwelligen Zugang zu dem Leitfaden für viele Menschen zu ermöglichen. Weitere Ziele dieser Arbeit sind sowohl das Aufdecken von möglichen Optimierungen der Richtlinie als auch Verbesserungen des bestehenden Software-Frameworks.
Das Software-Tool wurde unter Zuhilfenahme dieses Frameworks innerhalb der Low-Code Plattform Mendix entwickelt.
Das Ergebnis ist ein Software-Tool, welches die Anforderungen an vertrauenswürdige KI vereinfacht, je nach dem Anwendungsbereich der gerade beurteilten KI-Applikation. Nach der Nutzung des Software-Tools kann ein Bericht erzeugt werden, um die erfüllten Anforderungen der Vertrauenswürdigkeit zu dokumentieren.
Release Management spielt in der Softwareentwicklung eine große Rolle. Der Prozess von einer Anfrage zu einer Änderung bis zur Ausrollung der Änderung auf das Live-System behandelt alle Themen, die in dem Bereich des Release Managements fallen. Dass dieser Prozess einen großen Einfluss auf die Qualität der Software und den Erfolg des Unternehmens hat, liegt demzufolge auf der Hand. Aufgrund der Konkurrenzsituation am Markt streben IT-Unternehmen nach dem bestmöglichen Prozess. An diesem Punkt kommen Tools wie Jira aus der Atlassian Suite oder Azure DevOps aus dem Microsoft-Portfolio ins Spiel. Diese Tools unterstützen Unternehmen in den Bereichen Issue-Tracking, Taskplanung, sowie weitere Themen, die im Release Management gebraucht werden. Nichtsdestotrotz treten bei vielen IT-Unternehmen nach wie vor Probleme auf, die für die Qualität des Release Managements negative Auswirkungen haben und verbessert werden müssen. In dieser Arbeit wird mithilfe einer Literaturrecherche über die Probleme in Verbindung mit Toolanalysen sowie einer qualitativen Forschung mit Experten aus dem Bereich des Release Management und in der Softwareentwicklung erforscht, ob die gefundenen Probleme im Kontext des Tools auftreten oder, ob diese durch weitere Handlungsempfehlungen gelöst werden können. Aufgrund der Tatsache, dass die Softwareentwicklung in den letzten Jahren eine Entwicklung eingeschlagen hat, in der der Softwareentwicklungsprozess sich in den meisten Unternehmen mehr in Richtung eines agilen Ansatzes geändert hat, wird in folgender Arbeit die Auswirkung dieses Trends auf das Release Management analysiert. Zu guter Letzt werden einer Gruppe an Unternehmen Handlungsempfehlungen erstellt, die bei Eintritt bestimmter Probleme verwendet werden können, um auch in Verbindung mit dem Tool für eine höhere Qualität im Release Management zu sorgen.
Cloud Technologien wurden zur Bereitstellung von Infrastruktur für REST APIs in den letzten Jahren immer wichtiger. Das Container-as-a-Service (CaaS) Modell bei welchen Anwendungen virtualisiert in der Cloud laufen stellt hierbei einen der meistgenutzten Services dar. Dabei kommt es jedoch immer noch zu einem Overhead bei Verwaltung und Bereitstellung der Container, wodurch Entwicklungsressourcen verloren gehen. Eine noch leichtgewichtigere Alternative ist das neuere Function-as-a-Service (FaaS) Modell, welches den Verwaltungsaufwand reduzieren soll. Ziel der Masterarbeit ist es herauszufinden, ob FaaS sich besser als CaaS für die Entwicklung von REST APIs eignet. Um die Modelle vergleichbar zu machen, werden die Kriterien Kosten sowie Performance herangezogen und es wird folgende Forschungsfrage gestellt: ‚Wie wirkt sich FaaS gegenüber CaaS auf Performance und Kostenentwicklung einer REST API aus?‘. Um die Forschungsfrage zu beantworten, wurde jeweils eine CaaS und eine FaaS API implementiert. Als Metrik für Performance wurde dabei die Response Time (RT) gewählt. Diese gibt die Zeit an, welche zwischen Senden des API Requests und dem Empfang der Response verstreicht. Die RT wurde automatisiert mittels Artillery Skripts gemessen, um gleichzeitige Nutzung durch 1.000 virtuelle Benutzer*innen zu simulieren und verschiedene Anwendungsfälle abzubilden. Anhand der RT Daten wurden anschließend Kosten für verschiedene Benutzerzahlen berechnet. Die Ergebnisse der Performancemessungen zeigen, dass die RT von FaaS durchwegs höher ist als jene von CaaS. Für zeitkritische Applikationen kann FaaS daher nicht empfohlen werden. Bei den Kosten zeigt sich ein gemischtes Bild. Gerade bei wenigen API-Aufrufen entstehen bei FaaS kaum Kosten im Vergleich zu CaaS. Je höher die Anzahl der API Aufrufe, umso mehr verkehrt sich dieser Umstand jedoch ins Gegenteil, bei zwölf Millionen täglichen Aufrufen ist die FaaS Lösung schon beinahe dreimal so teuer wie CaaS. FaaS bietet sich also vor allem für kleinere Applikationen an, um einen Kompromiss zwischen Performance und Kosten zu finden.
Das Unternehmen IGT Austria GmbH entwickelt vorwiegend Softwarelösungen für Glücksspielautomaten in regulierten Märkten weltweit. In einigen dieser Märkte spielt konventionelle Münzverarbeitung eine zentrale Rolle. Somit ist es im Rahmen von Softwareentwicklungsprozessen unumgänglich Tests in Verbindung mit dem automatisierten Münzverarbeitungssystem durchzuführen. Schwierigkeiten ergeben sich in diesem Kontext vor allem in Anbetracht der länderspezifischen Währungen, weil es an Testmünzen oder passenden Bezahlsystemkomponenten fehlt. Die vorliegende Masterarbeit befasst sich daher mit der Systementwicklung eines Emulators, der die grundsätzliche Funktionsweise realer Komponenten des Münzverarbeitungssystems nachbildet. In dieser Intention wird zunächst das Gesamtsystem der automatisierten Münzverarbeitung sowie die Funktionsweise und Interaktion der Einzelkomponenten analysiert. Unter Berücksichtigung der Grundsätze und Methodiken des Requirements-Engineering werden anschließend konkrete Anforderungen an den zu entwickelnden Emulator ermittelt und dokumentiert. Die Anforderungsspezifikation dient als Ausgangspunkt für konzeptuelle Überlegungen in Bezug auf die Umsetzung. Resultierend aus diesen Überlegungen wird eine geeignete Zielplattform definiert sowie eine Softwarearchitektur entworfen, die durch Erweiterbarkeit und Wartungsfreundlichkeit überzeugt. Nach anschließender Implementierung der Architektur auf Basis plattformübergreifender Entwicklungsansätze, wird der finale Prototyp des Emulators unterschiedlichen Funktionstests unterzogen und evaluiert. Die Tests haben gezeigt, dass der Prototyp funktioniert und die grundlegenden Funktionen erfüllt, allerdings noch weitere Evaluierungen in Richtung Plattform-Abhängigkeit der Software durchzuführen sind.
LOGICDATA entwickelt APIs (Application Programming Interfaces) für die marktführenden Smartdevice Plattformen zur Steuerung von mechatronischen Systemen in der Möbelindustrie. Die Funktionalität dieser APIs muss durch Tests mit verschiedenen Eingabeparametern überprüft werden. Änderungen in der Implementierung der APIs während der Entwicklungs- und Testphase führen zu Wartungsaufwand des Testsystems, welcher manuell durchgeführt werden muss. Das führt zu längeren Testdurchlaufzeiten und zu Verzögerungen in der Freigabe-Phase des Projekts. Ziel dieser Masterarbeit ist es, anfallende Wartungstätigkeiten bei API-Änderungen während der Testphase zu automatisieren, um die Entwicklungszeit des Testsystems zu reduzieren. Zu diesem Zweck soll eine Codegenerierungsmethode ausgewählt werden, mit der Code in verschiedenen Programmiersprachen und Plattformen generiert werden kann. Dafür werden verschiedene Codegenerierungsmethoden hinsichtlich ihrer Eignung für diese Aufgabenstellung miteinander verglichen und eine Wahl getroffen. Aufbauend auf diese Entscheidung wird eine Softwarearchitektur eines Testsystems mit automatischer Codegenerierung entworfen. Nach Festlegung dieser werden der Codegenerator und die Softwarekomponenten des Testsystems entwickelt und die Vorteile hinsichtlich Entwicklungs-, Wartungsaufwand und Testdurchlaufzeit aufgezeigt. Tests mit den ersten implementierten APIs haben gezeigt, dass der Einsatz der automatischen Codegenerierung zu einer höheren Codeflexibilität und niedrigerem Entwicklungsaufwand führt. Das Testsystem kann für die Verifikation zukünftiger API-Releases eingesetzt werden.
Die vorliegende Arbeit beschäftigt sich mit Cross-Plattform-Applikationen im Business Bereich. Es wird der Frage nachgegangen, ob die Effizienz durch die plattformunabhängige Softwareentwicklung gesteigert werden kann. Ziel dieser Arbeit ist es zu klären, in wie weit Experten und Expertinnen bereits Erfahrung mit Technologien sammeln konnten, die sich auf plattformunabhängige Softwareentwicklung spezialisiert haben. Damit herausgefunden werden kann ob die Effizienz gesteigert werden kann, beziehungsweise ob ExpertInnen in diesem Bereich herangezogen werden kann, wird zu Beginn dieser Arbeit eine Einführung in die mobilen Applikationen gemacht und gängige Begriffe näher beschrieben. Dabei wird eingegrenzt, was genau unter einem mobilen Gerät verstanden wird, damit in weiterer Folge die Zielgruppe festgelegt werden kann. Anschließend werden dem Leser beziehungsweise der Leserin, die beliebtesten Betriebssystem die auf dem Markt existieren vorgestellt und näher beschrieben. Zum Abschluss dieses Kapitel werden die einzelnen Plattformen gegenübergestellt, damit herausgefunden werden kann, welche Vor- beziehungsweise Nachteile existieren. Nachdem die einzelnen Plattformen vorgestellt wurden, wird auf die plattformunabhängige Softwareentwicklung näher eingegangen. Dabei werden zuerst Begriffe, die im Zusammenhang mit mobiler Entwicklung fallen definiert. Im Anschluss erfolgt eine Vorstellung verschiedener Technologien, die derzeit existieren. Im empirischen Teil wird der Prototyp der im Zuge dieser Arbeit entwickelt wurde, näher beschrieben. Dafür werden zu Beginn die Anforderungen, die die App erfüllen muss vorgestellt. In weiterer Folge wird dem Lesendem die gewählte Technologie vorgestellt und beschrieben, warum sich der Autor dieser Arbeit für dieses Framework entschieden hat. Zu Letzt wird im empirischen Teil berichtet werden, welche Technik bei den Experteninterviews zum Einsatz gekommen ist und wie der Aufbau aussieht. Abschließend wird vom Autor dieser Arbeit ein Erfahrungsbericht, über die Erfahrungen die beim Entwickeln des Prototyps gesammelt werden konnten, geschrieben. Im fünften und letzten Kapitel wird über die Beantwortung der Forschungsfrage berichtet und ein kurzer Ausblick gegeben welche Schritte als nächstes durchgeführt werden können, damit die Ergebnisse gefestigt werden können.
Die Gastronomie ist eine Branche, die als Dienstleistung ihre Kunden vor Ort bewirtet. Durch den laufenden direkten Kontakt zwischen Kunde und Angestellten besteht jederzeit die Moglichkeit, positives Feedback oder Beschwerden direkt abzugeben. Die TeLLers-Anwendung bietet über eine mobile Web-Anwendung einen zusatzlichen Kanal für Feedbacks. Diese liegen teilweise als natürlichsprachige Texte vor, die der Gastronom nur umständlich auswerten kann, um Handlungsfelder zu erkennen. Diese Arbeit analysiert die vorliegenden Datensatze und ordnet sie manuell einem Thema und einer Bewertung zu. Anschließend erfolgt die Umsetzung einer automatischen Analyse unter Verwendung einer lexikonbasierten Stimmungserkennung. Es zeigt sich, dass trotz des relativ einfachen technischen Ansatzes eine hohe Deckungsrate mit der manuellen Analyse gegeben ist. Ein wichtiger Grund dafür ist die direkte und einfache Sprache der vorliegenden Feedbacks. Durch gezielte Fragestellungen kann der Gastronom die Qualität der Antworten weiter optimieren, so dass die Feedbacks konkrete Vorschläge für Verbesserungen enthalten. Eine Datenanalyse ermittelt jene Themen, zu denen die meisten Feedbacks eintreffen. Abschließend erfolgen auf Basis einer Literaturrecherche Empfehlungen zu den am häufigsten eingemeldeten Problemfeldern. Ein Teil der Beschwerden weist auf geringe Missstände hin, die vor Ort schnell lösbar sind. Komplexere Themen liegen vor allem im Service sowie bei Leistung und Qualität von Essen und Getränken vor. Hier tendieren die Lösungsansätze zu Verbesserungen bei der Personalentwicklung sowie der Optimierung von Prozessen im Betrieb. Eine strukturierte Kosten- und Umsatzrechnung ist eine wichtige Basis dazu.
Diese theoriegeleitete Fallstudie geht der Frage nach, inwieweit sich das Requirements Engineering (RE) in einem Software-Entwicklungsprozess mit den Konzepten des Domain-Driven Designs (DDD) vereinbaren lässt. Die per Interview und teilnehmender Beobachtung erhobenen Daten wurden gemäß der qualitativen Inhaltsanalyse nach Gläser und Laudel ausgewertet. Der theoretische Rahmen gibt einen Überblick über die wichtigsten Konzepte des Domain-Driven Designs sowie über das Requirements Engineering, mit Fokus auf der Requirements-Analyse, skizziert Möglichkeiten der Integration des RE in das DDD und stellt Scrum als Vorgehensweise vor. Die Interviews zeigen, dass dem Projektteam sowohl die Ziele als auch die Produktvision unklar sind und dies zu Verunsicherung und Orientierungslosigkeit im Team führt. Das Requirements Engineering in der Rolle als Mittelsmann zwischen Fachbereich und Entwicklungsteam wird als problematisch eingestuft, da das Domänen-Wissen auf RE-Seite oft nicht ausreicht und der Abstimmungsaufwand durch Dreiecksdiskussionen steigt. Dies erschwert die Formulierung und Nutzung einer Ubiquitous Language und die Modellierung des Domänenmodells. Ist der Domänenexperte gleichzeitig in der Rolle des Product Owners tätig, entsteht zudem ein Rollen- und Interessenkonflikt, der eine DDD-Herangehensweise erschwert. Ergebnis der Arbeit ist, dass das Requirements Engineering als Vermittler sich nicht mit DDD vereinbaren lässt, aber unterstützende Funktionen einnehmen kann. Als Handlungsempfehlung kann daraus abgeleitet werden, Situationen zu vermeiden, in denen das Requirements Engineering im Widerspruch zum Domain-Driven Design steht, und Probleme im Entwicklungsprozess mit DDD zu beheben. Methoden und Techniken dafür werden vorgestellt. Die Arbeit ist für Personen interessant, die Aufgaben des Requirements Engineerings in DDD-basierten Entwicklungsprojekten wahrnehmen, also beispielsweise Projektleiter, Product Owner, Requirements Engineers oder Business Analysten.