In der Softwarebranche gibt es viele verschiedene Entwicklungssprachen für die unterschiedlichsten Anwendungszwecke und Plattformen. Einige dieser Plattformen ermöglichen dabei die Entwicklung von Programmen in den unterschiedlichsten Sprachen, während andere die Entwicklung auf einige wenige beschränken. Im Vergleich dazu beschreiben Konzepte, wie z.B. endliche Automaten, sprachunabhängig ein Konzept, welches dann in die jeweilige Sprache übertragen werden kann. Solche Entwicklungskonzepte können daher einmal in einer generellen Form beschrieben und dann in den unterschiedlichen Sprachen generiert werden. Dies hat den Vorteil, dass komplexe Abläufe wie endliche Automaten nur einmal definiert werden müssen, um dann in mehreren Sprachen angewandt zu werden.
Yakindu SCT ist ein Programm, welches die grafische Modellierung eines endlichen Automaten sprachunabhängig ermöglicht. Dazu werden z.B. eigene Datentypen definiert, welche dann innerhalb des endlichen Automaten verwendet werden können. Im zweiten Schritt kann der endlichen Automate dann in der gewünschten Programmiersprache generiert und damit in dieser verwendet werden. Dies realisiert die oben erwähnte semantische Trennung zwischen einem sprachunabhängigen Konzept und dessen Implementierung in einer Sprache. Sollte die gewünschte Sprache noch nicht vorhanden sein, besteht die Möglichkeit diese als Yakindu SCT Plugin hinzuzufügen.
Dies ist z.B. notwendig für die Verwendung von Yakindu SCT in der Mobilen Entwicklung. Während die Entwicklungssprache Java, welche für Android verwendet wird, bereits implementiert ist, gibt es für die noch relativ junge Sprache Swift, die unter iOS verwendet wird, keine entsprechende Implementierung. Diese Projektarbeit soll sich daher mit der Entwicklung eines Yakindu SCT Generators für die Sprache Swift befassen, um die Verwendung von Yakindu SCT in der mobilen iOS Entwicklung zu ermöglichen.
Inhaltsverzeichnis
- 1 Einleitung
- 2 Grundlagen
- 2.1 Endliche Automaten
- 2.2 Yakindu Statechart Tools (Yakindu SCT)
- 2.3 Swift
- 3 Architektur von Yakindu SCT
- 3.1 Übersicht
- 3.2 Entwicklungssprache
- 3.3 Klassenarchitektur
- 4 Entwurf des Generators
- 4.1 Voraussetzungen
- 4.2 Endgültiger Entwurf
- 5 Realisierung des Generators
- 5.1 Relevante Klassen und Definitionen
- 5.2 Timer
- 5.3 Statemachine
- 6 Validierung der Implementation
- 6.1 Statemachine Unit Test Befehle
- 6.2 Definition der Befehle in Swift
- 6.3 Generieren und Ausführen der Tests
- 7 Zusammenfassung und Ausblick
Zielsetzung und Themenschwerpunkte
Diese Projektarbeit befasst sich mit der Entwicklung eines Yakindu SCT Plugins zur Generierung von endlichen Automaten in Swift. Ziel ist die automatisierte Erstellung von Swift-Code aus Yakindu Statecharts, um die Entwicklung von Zustandsautomaten zu vereinfachen und zu beschleunigen.
- Entwicklung eines Yakindu SCT Plugins
- Generierung von Swift Code aus Statecharts
- Implementierung von Timer-Mechanismen
- Testgetriebene Entwicklung und Validierung des Plugins
- Integration von Unit Tests zur Qualitätssicherung
Zusammenfassung der Kapitel
1 Einleitung: Dieses Kapitel führt in das Thema der Projektarbeit ein und beschreibt den Kontext der Entwicklung eines Yakindu SCT Plugins zur Generierung von endlichen Automaten in Swift. Es werden die Motivation und die Zielsetzung der Arbeit erläutert, sowie ein Überblick über den Aufbau der Arbeit gegeben. Die Bedeutung der Automatisierung im Softwareentwicklungsprozess und die Vorteile der Verwendung von Statecharts und Swift werden hervorgehoben.
2 Grundlagen: Dieses Kapitel legt die theoretischen Grundlagen der Arbeit dar. Es erklärt das Konzept der endlichen Automaten, beschreibt die Funktionsweise und Architektur des Yakindu Statechart Tools (Yakindu SCT) und gibt eine Einführung in die Programmiersprache Swift. Die Beschreibung umfasst sowohl die grundlegenden Konzepte als auch die für die Projektarbeit relevanten Aspekte jeder Technologie. Die Kapitelteile bauen aufeinander auf und schaffen eine solide Basis für das Verständnis des folgenden Plugin-Entwurfs.
3 Architektur von Yakindu SCT: In diesem Kapitel wird die Architektur des Yakindu SCT detailliert beschrieben. Es werden die Entwicklungssprache, die Klassenarchitektur und die wichtigsten Komponenten des Tools erläutert. Der Fokus liegt auf den Teilen des Systems, die für die Entwicklung des Plugins relevant sind. Die Erklärung der Architektur dient als Grundlage für den Entwurf und die Implementierung des Generators im nächsten Kapitel. Besondere Aufmerksamkeit wird der Interaktion zwischen den verschiedenen Modulen gewidmet.
4 Entwurf des Generators: Dieses Kapitel beschreibt den Entwurf des Generators, der endliche Automaten aus Yakindu Statecharts in Swift-Code übersetzt. Es werden die Voraussetzungen für die Entwicklung des Generators erläutert und der endgültige Entwurf vorgestellt. Der Entwurfsprozess wird detailliert dargestellt, inklusive Entscheidungen über die Architektur und die Implementierung der einzelnen Komponenten. Die Kapitelteile zeigen den iterativen Prozess des Entwurfs und die Begründungen hinter den getroffenen Entscheidungen.
5 Realisierung des Generators: Dieses Kapitel beschreibt die Implementierung des Generators. Es werden die relevanten Klassen und Definitionen detailliert erläutert, einschließlich der Implementierung von Timern und der Statemachine. Das Kapitel fokussiert sich auf die konkrete Umsetzung des Entwurfs aus Kapitel 4. Der detaillierte Einblick in die Implementierung soll die Nachvollziehbarkeit und das Verständnis des entwickelten Plugins gewährleisten. Es wird insbesondere auf die Herausforderungen und deren Lösungen eingegangen.
6 Validierung der Implementation: Dieses Kapitel beschreibt die Validierung der Implementierung des Generators durch Unit Tests. Es wird detailliert erklärt, wie die Tests aufgebaut sind, wie die Befehle in Swift definiert werden und wie die Tests generiert und ausgeführt werden. Der Fokus liegt auf der Methodik und den Ergebnissen der Tests, um die Korrektheit und Funktionalität des Plugins zu demonstrieren. Die Darstellung der Testergebnisse und ihrer Interpretation ist ein zentraler Bestandteil dieses Kapitels.
Schlüsselwörter
Yakindu SCT, Swift, endliche Automaten, Statecharts, Plugin-Entwicklung, Codegenerierung, Unit Tests, Softwaretechnik, Zustandsautomaten, Timer, Klassenarchitektur.
Häufig gestellte Fragen (FAQ) zur Projektarbeit: Yakindu SCT Plugin zur Swift Codegenerierung
Was ist das Thema dieser Projektarbeit?
Die Projektarbeit befasst sich mit der Entwicklung eines Plugins für das Yakindu Statechart Tool (SCT), welches die automatische Generierung von Swift-Code aus Statecharts ermöglicht. Ziel ist die Vereinfachung und Beschleunigung der Entwicklung von Zustandsautomaten in Swift.
Welche Werkzeuge und Technologien werden verwendet?
Die Arbeit verwendet das Yakindu Statechart Tool (SCT), die Programmiersprache Swift und beinhaltet die Entwicklung eines Plugins für Yakindu SCT. Ein Schwerpunkt liegt auf der Implementierung von Timer-Mechanismen und der testgetriebenen Entwicklung (Unit Tests).
Welche Kapitel umfasst die Arbeit?
Die Arbeit gliedert sich in sieben Kapitel: Einleitung, Grundlagen (endliche Automaten, Yakindu SCT, Swift), Architektur von Yakindu SCT, Entwurf des Generators, Realisierung des Generators, Validierung der Implementierung (Unit Tests) und Zusammenfassung/Ausblick.
Was sind die Hauptziele der Projektarbeit?
Die Hauptziele sind die Entwicklung eines funktionsfähigen Yakindu SCT Plugins zur Swift-Codegenerierung, die Implementierung von Timer-Mechanismen im generierten Code und die Validierung des Plugins mittels Unit Tests. Der Fokus liegt auf der Automatisierung der Zustandsautomatenentwicklung.
Wie funktioniert die Codegenerierung?
Das Plugin liest Yakindu Statecharts als Eingabe und generiert daraus äquivalenten Swift-Code, der die beschriebenen Zustandsautomaten implementiert. Dies beinhaltet auch die Umsetzung von Timer-Funktionen.
Wie wird die Qualität des generierten Codes sichergestellt?
Die Qualitätssicherung erfolgt durch die Implementierung und Ausführung von Unit Tests. Diese Tests überprüfen die Funktionalität des generierten Swift-Codes und stellen sicher, dass er korrekt arbeitet.
Welche Schlüsselkonzepte werden in der Arbeit behandelt?
Wichtige Konzepte sind endliche Automaten, Statecharts, Plugin-Entwicklung, Codegenerierung, Unit Tests, Softwaretechnik, und die Architektur von Yakindu SCT.
Welche Vorteile bietet die Verwendung dieses Plugins?
Das Plugin automatisiert einen Teil der Softwareentwicklung, vereinfacht die Erstellung von Zustandsautomaten und beschleunigt den Entwicklungsprozess. Es steigert die Qualität durch die Verwendung von Unit Tests.
Wo finde ich detaillierte Informationen zur Implementierung?
Detaillierte Informationen zur Implementierung des Generators, einschliesslich der relevanten Klassen, Definitionen und der Implementierung von Timern und der Statemachine, finden sich in Kapitel 5.
Wie werden die Unit Tests beschrieben und durchgeführt?
Kapitel 6 beschreibt detailliert den Aufbau der Unit Tests, die Definition der Befehle in Swift, sowie die Generierung und Ausführung der Tests. Die Methodik und Ergebnisse der Tests werden ausführlich dargestellt.
- Quote paper
- Marc Mettke (Author), 2017, Yakindu SCT Plugin für die Generierung von endlichen Automaten in Swift, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/383804