54.52 Software engineering
Filtern
Dokumenttyp
- Masterarbeit (22)
Volltext vorhanden
- ja (22)
Gehört zur Bibliographie
- ja (22)
Schlagworte
- Software Engineering (12)
- Framework <Informatik> (1)
- Hochverfügbarkeit (1)
- Industrie 4.0 (1)
- Internet der Dinge (1)
- Migration <Informatik> (1)
- Mikroservice (1)
- Produktentwicklung (1)
- Rapid Prototyping <Fertigung> (1)
- Software (1)
Testen von Softwareapplikationen gehört zu einem wesentlichen Bestandteil des Qualitätssicherungsprozesses und muss im agilen Ansatz der Softwareentwicklung laufend durchgeführt werden. Mithilfe des Konzepts von Test Driven Development kann die Testfall- und Anforderungsspezifikation verschmolzen werden, da der Testfall vor der Entwicklungsphase definiert wird und die Entwicklung erst mit positiver Absolvierung des Testfalls abgeschlossen ist. Dadurch können Zeit und Kosten minimiert werden. Ziel dieser Arbeit ist die Entwicklung einer Anwendung, mit deren Hilfe End-to-End Tests für Webanwendungen vor der Implementierung erstellt und automatisiert ausgeführt werden können. Das entwickelte Softwarekonzept soll den Ansatz von Test Driven Development ermöglichen und die Testfallerstellung in textueller Form ohne technischen
Hintergrundwissen ermöglichen. Weiters soll das Testkonzept prototypisch realisiert und die erzielten Erfahrungen aus einem Referenzprojekt dokumentiert werden.Im ersten Schritt erhält der Leser Einblick über die Konzepte von Test Driven Development und Behavior Test Driven. Weiters werden die Möglichkeiten der Testautomatisierung für Webanwendungen erläutert und die gängigen verfügbaren Frameworks analysiert und bewertet. Anschließend wird ein Konzept für die Testfallerstellung und Testausführung entworfen, welches in einem Prototypen realisiert wird. Die resultierenden Erfahrungen aus dem Einsatz des Prototypen in einem Referenzprojekt sollen dazu
dienen, um auf den Nutzen des Testkonzepts zu schließen. Das Ergebnis der Arbeit zeigt, dass das entwickelte Konzept eine Testfallerstellung auch ohne technischen Hintergrundwissen ermöglicht und so von Personen mit Prozesswissen erfolgen kann. Der Ansatz von Test Driven Development kann mit dem Prototypen gezeigt werden. Im eingesetzten Projekt kann anhand der positiv ausgeführten Testfälle mit fortlaufender Zeit ein positiver Trend und Beitrag zur Qualitätssteigerung identifiziert werden. Die vorliegende Arbeit lässt schlussfolgern, dass der Prototyp für die Erstellung von automatisierten Testfällen nach dem Ansatz Test Driven Development eingesetzt werden kann. Wenngleich im eingesetzten Referenzprojekt nur wenige Testfälle erstellt wurden, kann von einem positiven Trend im Zuge des Einsatz gesprochen werden.
Modellbasierte Ansätze gewinnen innerhalb des Produktentwicklungsprozesses zunehmend an Bedeutung, um Ressourcen zu schonen und Produkte termingerecht auf den Markt zu bringen. Zentral sind in diesem Zusammenhang die Umsetzung von modernem Anforderungsmanagement und die Nutzung bereits entwickelter Module für neue Produkte. Dies kann mit Hilfe von Variationsmanagement und modellbasierten Systems-Engineering-Methoden erreicht werden. Anton Paar entwickelt komplexe Messsysteme für ein breites Anwendungsfeld, etwa die Messung von rheologischen Verhalten oder der Partikelgröße. Ziel der Arbeit ist es, zu untersuchen, inwiefern Variantenmanagement und modellbasierter Systementwurf in den Produktentwicklungsprozess von Messsystemen integriert werden können, um Time-to-Market-Ziele zu erreichen und Entwicklungsressourcen zu sparen. Im ersten Schritt wurden verschiedene Methoden evaluiert, um das beste Verfahren zur Erstellung des Modells eines hochkomplexen prozessintegrierten Partikelanalysesystems zu finden. Basierend auf dem Ergebnis dieser Analyse ergeben sich die verschiedenen Varianten, um identische Komponenten zu finden, die für mehrere Anwendungen wiederverwendet werden können. Dadurch können Ressourcen gespart werden und nachhaltige Entwicklung wird ermöglicht. Darüber hinaus konnten die verschiedenen Varianten des Systems in eine modellbasierte Systems-Engineering-Umgebung integriert werden, um die Vorteile im Vergleich zu veralteten Ansätzen aufzuzeigen. Das Ergebnis belegt, dass State-of-the-Art-Ansätze im Produktentstehungsprozess einen positiven Einfluss auf die Entwicklungsqualität haben. Darüber hinaus zeigt es, dass modellbasierte Methoden auch die Entwicklungszeit positiv beeinflussen können. Durch weitere Untersuchungen können diese Ergebnisse der Masterarbeit verifiziert werden.
Um in der modernen Fertigung Prototypen schnell, kostengünstig und ohne Umwege in Musterteile umzusetzen, wird sehr oft auf die Fertigungsmethode „Rapid Prototyping“ zurückgegriffen. Eine Form dieses Verfahrens ist die Schmelzschichtung (Fused Filament Fabrication, FFF), bei der das Werkstück schichtweise durch den Auftrag eines thermoplastischen Kunststoffes aufgebaut wird. Eine einfache Möglichkeit, Bauteile nach dem FFF-Verfahren herzustellen, bietet der Dreiachs-3D-Druck, für welchen sich bei anspruchsvolleren Bauteilen jedoch wesentliche Einschränkungen, wie etwa aufwendige Stützstrukturen oder optische Fehler, ergeben.
Ziel dieser Masterarbeit ist es zu überprüfen, ob sich die Einschränkungen eines Dreiachssystems durch den Einsatz eines Industrieroboters mit sechs zur Verfügung stehenden Achsen verbessern oder ganz beseitigen lassen. Dieser soll die Methode des „bewegten Werkstückes“ nutzen, wodurch sich das Bauteil an der kinematischen Kette des Roboters befindet und dieser zu einer stillstehenden Druckeinrichtung verfährt. Um das Ziel zu erreichen, wird ein Industrierobotersystem innerhalb einer rechnerunterstützten Fertigung (Computer-Aided Manufacturing, CAM) aufgebaut, mit welchem für definierte Bauteile Fertigungsoperationen, Simulationen sowie Validierungen durchgeführt werden. Am Ende wird durch einen Postprozessor ein ausführbarer Maschinencode erstellt, mit welchem Druckversuche am realen Robotersystem durchgeführt werden.
Das Resultat der Arbeit zeigt, dass sich durch dieses Mehrachssystem viele Vorteile in Bezug auf den konventionellen 3D-Druck sowie neue Anwendungsfelder ergeben, wodurch eine Weiterentwicklung für die Zukunft in jedem Fall Sinn macht.
Entwicklung einer Migrationsstrategie für Legacy Webanwendungen auf eine moderne Cloud-Plattform
(2018)
Cloud-Computing ist das Schlagwort der letzten Jahre in der Informationstechnologie schlechthin. Anbieter von Cloud-Lösungen versprechen Einsparungen bei Infrastrukturkosten, eine schnellere Serviceverfügbarkeit, eine bessere Performanz und kürzere Entwicklungszyklen. Viele Unternehmen reizt deshalb der Umstieg auf eine Cloud-Infrastruktur. Doch mit einem einfachen Umzug der Anwendungen ist es selten getan. Diese Arbeit zeigt auf, wie Softwareanwendungen aufgebaut sein müssen, damit sie aus einer Cloud-Infrastruktur einen optimalen Nutzen ziehen können. Zudem sind auch organisatorische Änderungen nötig, um moderne Cloud-Anwendungen zu entwickeln. Auch diese Änderungen werden besprochen. Häufig stehen Unternehmen vor dem zusätzlichen Problem, dass Anwendungen seit mehreren Jahren in Betrieb, aber technisch veraltet sind. Diese Legacy-Anwendungen sind geprägt durch fehlendes Entwicklungs-Know-how und eine lange Einsatzphase ohne Modernisierung und Restrukturierung. Die Plattformen, die sie nutzen, sind oft veraltet und der technologische Sprung auf eine Cloud-Umgebung deshalb sehr groß. Diese Arbeit erklärt, was Legacy-Software ist, wie sie entsteht, und wie mit ihr verfahren werden kann. Zudem wird das Thema Softwaremigrationen erklärt. Verschiedene Migrationsarten werden vorgestellt, und der exemplarische Ablauf einer Softwaremigration aufgezeigt. Das Ergebnis der Arbeit ist ein Konzept für Migrationsstrategien von Legacy-Anwendungen. Es wird für ein großes deutsches Versicherungsunternehmen entwickelt, das die Einführung einer Cloud-Infrastruktur plant. Der Umgang mit Altanwendungen, die bereits nicht mehr in die geplante Laufzeitumgebung passen, die jedoch weiterhin benötigt werden, ist derzeit ungeklärt. Er soll mit Hilfe dieser Arbeit festgelegt werden.
Was muss ein Unternehmen heutzutage leisten um auf Dauer mit dem Wettbewerb mithalten und den Veränderungen von Industrie und Gesellschaft standzuhalten? Was bedeuten die einzelnen Buzz-Wörter wie „Industrie 4.0“, „Internet of Things“ und „Cyber-Physikalisches Produktionssystem“ konkret für die eigene Situation? Die folgende Arbeit versucht, diesen Fragen nachzugehen. Konkret wird hierfür das Beispiel der Messtechnik Branche untersucht und versucht, für die Software des Mitutoyo Konzerns eine Softwarearchitektur zu entwickeln, welche für die neuen Entwicklungen gewappnet ist. Hierfür wird zunächst eine grundlegende Untersuchung der aktuellen Trends in der Industrie durchgeführt und daraus Anforderungen abgeleitet. Dann werden die einzelnen Aspekte auf die Architektur übertragen und eine grundlegende Basisstruktur definiert. Anhand des konkreten Beispiels einer Software zur Status Überwachung und Auslastungsplanung für Messmaschinen wird dann untersucht, inwiefern die Basis Architektur den ermittelten Anforderungen gerecht wird.
Die Softwareentwicklung wird in der Automobilbranche aufgrund der Komplexität der Fahrzeuge und Steuergeräte immer wichtiger. Neben der Komplexität der Fahrzeuge stehen die Hersteller einem Marktumfeld gegenüber, dass sich immer schneller wandelt und in immer kürzerer Zeit neue Innovationen einfordert. Einen Großteil der Softwareentwicklung vergeben die HerstellerInnen an externe LieferantInnen, da das Wissen über die Softwareentwicklung meist nicht bei den HerstellerInnen vorhanden ist. Die Auswahl der LieferantInnen erfolgt oftmals mit Hilfe von Prozessbewertungen nach Automotive SPICE. Dies soll sowohl die Qualität der Software als auch die Prozessfähigkeit und Termintreue der LieferantInnen sicherstellen. Daneben fordern die HerstellerInnen von den LieferantInnen eine flexiblere Arbeitsweise, damit neue Anforderungen auch innerhalb laufender Softwareprojekte bearbeitet werden können. Aufgrund dieser geforderten Flexibilität ändert sich das Vorgehen der Softwareentwicklung in der Automobilbranche von einem sequenziellen Ansatz hin zu immer agileren Herangehensweisen. Diese Arbeit untersucht anhand von sechs Interviews mit Fachgrößen aus dem agilen Umfeld, wie sich die Anforderungen von Automotive SPICE auf die agile Softwareentwicklung auswirken. Als Beispiel für ein agiles Vorgehensmodell zieht die Arbeit Scrum in Verbindung mit dem Nexus Framework heran. Begleitet wird dieses Vorgehensmodell von agilen Praktiken. Daneben betrachtet die Arbeit das agile Manifest mit seinen Werten und Prinzipien, welche die Grundpfeiler der agilen Softwareentwicklung darstellen. Ein Abgleich der Ziele von Automotive mit der agilen Softwareentwicklung ergänzt die Untersuchung. Die Auswertung der Interviews hat gezeigt, dass der Einsatz agiler Praktiken, wie Pair Programming und Test-Driven Development, auch im Rahmen von Automotive SPICE unter bestimmten Bedingungen möglich ist. Primäre Ziele von Automotive SPICE sind die Prozessverbesserung, die Kosten- und Termineinhaltung und die Planung. Die Prozessverbesserung stimmt mit den agilen Prinzipien überein. Planung, Termin- und Kosteneinhaltung, können Organisationen durch den Einsatz agiler Methoden wie Scrum wesentlich besser erreichen, als es mit traditionellen Methoden möglich ist. Die Standardisierung von Prozessen ermöglicht es den Unternehmen Prozesse wieder zu verwenden und reduziert dadurch die Aufwände bei der Errichtung neuer Projekte. Dies wiederum kommt den agilen Prinzipien entgegen. Für die erfolgreiche Umsetzung der Anforderungen aus Automotive SPICE in agilen Teams und Unternehmen werden konkrete Handlungsempfehlungen gegeben. Die Grenzen dieser Arbeit und aus der Arbeit heraus aufgekommene Forschungsfragen, werden im Anschluss diskutiert.
Diese Masterarbeit untersucht, welche Aspekte zum Betreiben einer Microservice Architektur notwendig sind. Die Realisierung kann mit Hilfe von Open Source Infrastrukturkomponenten erfolgen. Es werden Frameworks in Java und .NET zur Anbindung an diese untersucht und anhand eines Kriterienkatalogs verglichen.
Moderne Frameworks für die Entwicklung von Anwendungen auf mobilen Plattformen entwickeln sich ständig weiter, um den sich ständig ändernden Anforderungen der Welt der Softwareentwicklung gerecht zu werden. Seit 2018 entwickelt Google das Flutter-Framework, das für die Entwicklung mobiler Anwendungen auf den Plattformen Android und iOS eingesetzt wird. Da es sich bei Flutter um das neueste Framework handelt, das eine native Anwendungsleistung verspricht, ist es wichtig, ein besseres Verständnis für die Performance der Technologie zu erhalten und zu erfahren, wie sie sich mit anderen verfügbaren Plattformen messen kann. Aus diesem Grund analysiert diese Arbeit Flutter und vergleicht das Framework mit nativen und anderen plattformübergreifenden Technologien. Prototypen mit den gleichen Funktionalitäten wurden mit Flutter und anderen Plattformen (z. B. Android, iOS, React Native) erstellt und dann getestet, um ihre Leistungsniveaus zu vergleichen. Die Ergebnisse zeigen, dass Flutter in einigen Aspekten (z. B. CPU-Nutzung) eine native Performance erreichen kann, in anderen Aspekten (z. B. Speichernutzung) jedoch schlechter abschneidet als andere Frameworks. Insgesamt zeigt die Forschung, dass Flutter ein sehr vielversprechendes Framework für die plattformübergreifende Entwicklung ist. Zukünftige Arbeiten können auf diese Arbeit aufbauen, um mit verschiedenen Anwendungsfällen zu experimentieren und einen tieferen Einblick in die Leistungsfähigkeit des Frameworks zu erhalten.
Analyse und Bewertung von State-Management Varianten in modernen Cross-Plattform Technologien
(2020)
Plattformübergreifende Technologien entwickeln sich ständig weiter und bieten einen kostengünstigen und zeiteffizienten Ansatz zur Entwicklung von Anwendungen auf mehreren Plattformen. Die Frage nach dem richtigen State-Management Ansatz muss dabei zu Beginn eines jeden Projekts beantwortet werden, was eine Herausforderung sein kann mit einer Vielzahl an mögliche Lösungen. Das Ziel dieser Arbeit war daher die Untersuchung von State-Management Ansätzen am Beispiel von Flutter und deren Bewertung auf der Grundlage von festgelegten Kriterien. In dieser Arbeit werden zunächst plattformübergreifende Technologien untersucht, mit Schwerpunkt auf Flutter. Danach werden gängige Ansätze von State-Management und die Theorie hinter Code Qualität Metriken analysiert. Basierend auf den gesammelten Informationen und den daraus resultierenden wirtschaftlichen und technologischen Entscheidungsgründen wurden Bewertungskriterien erstellt. Vier State-Management Ansätze wurden umgesetzt und entsprechend der Kriterien bewertet. Der Vergleich zeigt, dass BLoC die beste Lösung für Großanwendungen mit erfahrenen Entwicklern zu sein scheint. Für kleinere Projekte oder unerfahrene Entwickler bietet sich der Einsatz von Provider an.
Zu Beginn eines Softwareprojekts stellt sich fast immer die Frage, welche Technologien dafür eingesetzt werden. Die Entscheidung über die Auswahl der Frameworks wird dabei oft nach Präferenz oder vorhandener Erfahrung der Entwickler*innen getroffen. Gerade bei wichtigen oder großen Projekten sollte die Auswahl der Frameworks rational anhand der gegebenen Projektanforderungen getroffen werden. Ziel dieser Masterarbeit ist es, zu bestimmen, ob die Auswahl der Frameworks durch ein systematisches Entscheidungsmodell unterstützt werden kann. Aus diesem Ziel wurde folgende Forschungsfrage gestellt: Kann mithilfe eines systematischen Entscheidungsmodells die Auswahl eines geeigneten Single-Page-Application-Frameworks im Bereich Web-Frontendentwicklung getroffen werden? Die Forschungsfrage wird dabei primär durch Literaturrecherche zur Entscheidungstheorie untersucht. Ferner wird anhand der Recherche ein Entscheidungsmodell entwickelt. Um die Forschungsfrage zu beantworten, wurden Single-Page-Application- (SPA)Frameworks recherchiert, gefiltert und anhand eines Kriterienkataloges bewertet, um sukzessive ein Entscheidungsmodell zu erarbeiten. Das entstandene Modell bietet die Möglichkeit, SPA-Frameworks anhand ihrer Eignung für individuelle an das Modell übergebene Projektanforderungen zu sortieren und ungeeignete Frameworks auszuscheiden. Die Bewertung der Frameworks erfolgte dabei mittels einer Bestandsaufnahme messbarer Fakten sowie durch den Vergleich der Frameworks anhand eines erstellten Prototyps bei nicht messbaren Kriterien. Für die Validierung des erstellten Modells wurde unter Personen aus der Softwareentwicklungsbranche eine Umfrage durchgeführt, bei der die Teilnehmer*innen die Frameworks bewerten konnten. Anschließend wurde mit der Bewertung der Umfrageergebnisse ein neues Modell erstellt und dieses anhand fiktiver Projektanforderungen mit dem ursprünglich erstellten Modell verglichen. Dabei wurde dasselbe Ergebnis erzielt und somit das Modell validiert. Die vorliegenden Ergebnisse zeigen, dass ein Entscheidungsmodell die Auswahl eines Frameworks ermöglicht oder als Entscheidungsgrundlage dienen kann. Voraussetzung dafür ist die objektive Bewertung der Frameworks sowie der individuellen Projektanforderungen.