# Yakindu Statechart Tools

Yakindu Statechart Tools (Yakindu SCT) ist ein Werkzeug zur Spezifikation und Entwicklung reaktiver, ereignisgesteuerter Systeme mit Hilfe von Zustandsautomaten. Es besteht aus einem leicht zu bedienenden Werkzeug zum graphischen Editieren von Zustandsdiagrammen (Statecharts) und bietet Validierung und Simulation sowie Quellcode-Generatoren für verschiedene Zielplattformen und Programmiersprachen. Yakindu Statechart Tools sind als Standard- und als Professional-Edition verfügbar, mit kostenfreien Lizenzen für den Einsatz im nichtkommerziellen Bereich oder in der Ausbildung. Anwender kommen sowohl aus der Industrie wie auch aus dem akademischen Bereich. Das Werkzeug wurde mittlerweile umbenannt und heißt nun Itemis Create.

## Konzepte

Yakindu Statechart Tools setzen das Konzept der Statecharts um, die 1984 von David Harel entwickelt wurden. Statecharts wurden später in die UML (Unified Modeling Language) übernommen. Mit der Software können Endliche Automaten (finite-state machines) modelliert werden. Die wesentlichen theoretischen Modelle für Endliche Automaten sind Mealy-Automaten und Moore-Automaten. Yakindu Statechart Tools ermöglichen die Modellierung beider Typen von Automaten.

## Funktionalität

Die Hauptmerkmale der Yakindu Statechart Tools sind:
* intelligente Kombination von textueller und grafischer Modellierung
* syntaktische und semantische Prüfungen des modellierten Zustandsautomaten
* ausführbare Zustandsautomatenmodelle durch die Simulationsengine
* Quellcode-Generatoren für Java, C und C++ (sowie Betaversionen von Quellcode-Generatoren für Python, Swift und TypeScript), die die Integration des generierten Zustandsautomaten in die eigene Anwendung ermöglichen
* Test-Framework SCTUnit
* Abdeckungsanalyse (SCov)

## Erweiterbarkeit

Die Yakindu Statechart Tools bieten offene APIs, die weitgehende Anpassungen an spezifische Anforderungen ermöglichen. So sind die Codegeneratoren erweiterbar. Es ist jedoch auch möglich, eigene Statechart-Dialekte zu spezifizieren. Dazu wird das Konzept domänenspezifischer Statecharts definiert. Dies ermöglicht es, Statecharts als wiederverwendbare Sprachbausteine zu nutzen.

## Geschichte

Die erste Version der Yakindu Statechart Tools wurde im Jahre 2008 im Rahmen des Forschungsprojektes MDA for Embedded veröffentlicht. In diesem Forschungsprojekts wurden modellbasierte Entwicklungsverfahren für die Entwicklung eingebetteter Systeme auf Basis des Eclipse-Projekts erarbeitet. Seit Mitte 2010 arbeitete das Yakindu-Team, das hauptsächlich aus Mitarbeitern der Firma itemis AG bestand, an der Version 2. Das erste offizielle Release dieser Version erfolgte zusammen mit der Eclipse-Version 4.2 (Juno).
* Version 2.9 ist kompatibel zu den Eclipse-Versionen 4.5 (Mars) und 4.6 (Neon). Ab dieser Version ist es möglich, Codegeneratoren auf der Kommandozeile auszuführen und damit auch in einem Continuous-Integration-System einzusetzen.

### Professional Edition

Im Dezember 2016 veröffentlichte die itemis AG eine kostenpflichtige »Professional Edition« der Software mit zusätzlichen Funktionalitäten:
* Nahtlose Integration der Programmiersprache C
* Erweiterte Möglichkeiten zur Simulation von Statecharts (Breakpoints, Snapshots)

### Wechsel des Lizenzmodells

Mit der Version 3.0 der Standard-Edition im Juli und der Professionial-Edition im August 2017 stellte itemis das Lizenzmodell von einer Open-Source- auf eine proprietäre Lizenz um. Nichtkommerzielle Anwender können die Standard-Edition weiterhin kostenlos nutzen. Für Anwender im Ausbildungsbereich stehen auch für die Professional-Edition kostenfreie Lizenzen zur Verfügung.
Die letzte quelloffene Version 2.9.3 von Yakindu Statechart Tools ist nach wie vor im YSCT-GitHub-Repository erhältlich.

## Auszeichnung

* Deutschland – Land der Ideen 2008: Modellbasierte, generative Softwareentwicklung für eingebettete Systeme

## Literatur und Quellen

* Andreas Mülder, Alexander Nyßen: TMF meets GMF. (PDF; 1,5 MB) In: Eclipse Magazin, Nr. 3. Software & Support Media GmbH, 2011, S. 74–78, abgerufen am 20. Juni 2016 (Frankfurt am Main, ISSN 1861-2296).
* Andreas Mülder, Andreas Unger: Yakindu ist auch eine Stadt. In: Software & Support Media GmbH (Hrsg.): Eclipse Magazin. Nr. 3, 2012, ISSN 1861-2296.
* Alexander Nyßen: TMF meets GMF – Combining Graphical & Textual Modeling. (PDF) Vortrag auf der EclipseCon Europe 2011. EclipseCon Europe 2011, 2011, abgerufen am 17. Juni 2016 (englisch).
* Alexander Nyßen, Axel Terfloth: YAKINDU SCT – Domain-Specific Statecharts. Vortrag auf der EclipseCon 2012. EclipseCon Europe 2012, 2012, abgerufen am 15. September 2012 (englisch).
* Axel Terfloth: Modellgetriebene Entwicklung mit der Yakindu Workbench. (PDF) Vortrag auf dem BAIKEM Netzwerktreffen Embedded Systems. Bayern Innovativ, 12. Juli 2011, abgerufen am 15. September 2016.