Statemate
# Statemate

Statemate ist eine Softwareentwicklungsumgebung die für den Entwurf komplexer, reaktiver Systeme entwickelt wurde. Das grafische Modellierungswerkzeug wird zur Entwicklung eingebetteter Systeme herangezogen um deren Entwicklung zu vereinfachen.

Statemate wurde von dem Unternehmen I-Logix entworfen und ist in der Automobil- und Luftfahrtindustrie verbreitet. Das zentrale Modell von Statmate sind Zustandsautomaten und basiert auf einer Umsetzung des Informatikers David Harel, Mitbegründer der Firma I-Logix.

## Grundkonzept

Als grundlegendes Konzept von Statemate ist die Modellierung eines reaktiven Systems durch Aktivitäten, deren Verhalten durch verallgemeinerte endliche Automaten beschrieben wird, zu verstehen. Als weitere Sprachmittel neben Kontroll- und Datenflussdiagrammen dienen Dataitems, Events, Actions und Conditions.

Statemate ist eine Sammlung von Konzepten und Beschreibungssprachen und den auf diesen basierenden Softwaretools. Dabei handelt es sich um graphische Editoren mit Codegenerator sowie eine graphische Animationsumgebung. Ebenso ein Simulator, der entweder mit einem synchronen oder einem asynchronen Zeitmodell arbeitet. Als gemeinsame Basis graphischer Beschreibungssprachen dienen rekursiv geschachtelte, gerichtete Graphen. Das bedeutet, ein Knoten eines Graphen kann wiederum einen Graphen enthalten. Die in den graphischen Beschreibungssprachen nicht oder nur schlecht darstellbaren Informationen werden in sogenannten Formularen (Forms) erfasst.

## High Level Programmiersprache

Statemate ist eine graphische High Level Programmiersprache für sehr stark erweiterte, endliche Automaten. Da eine formale Syntax, sowie eine formale Semantik beinhaltet ist, können die damit erstellten Entwürfe auf Vollständigkeit und Korrektheit getestet werden, noch bevor die erste Zeile eines Codes geschrieben wird.

Durch die Einbindung graphischer Tools wird eine realistische Ein- und Ausgabe Schnittstelle des zu erstellenden Systems geschaffen. Dadurch kann eine Überprüfung der bisherigen Entwicklung erfolgen, wodurch Statemate für Prototyping geeignet ist.

## Vor- und Nachteile von Statemate

Vorteil der Softwareentwicklungsumgebung ist die mögliche Testphase des Verhaltens, des zu entwickelnden Systems während der Entwurfsphase.

Ein Nachteil von Statemate ist das Fehlen von Sichtbarkeitsregeln sowie die nicht mögliche Zuordnung von erzeugten Dokumenten in den einzelnen Phasen der Softwareerstellung. Da eine Modularisierung nicht unterstützt wird, eignet sich Statemate ebenso nicht für den Einsatz komponentenbasierter Entwicklung.

