Běh reaktivního systému spočívá v nepřetržité reakci na vstupní podněty (externí a interní události). Klasický konečný automat není vhodný pro popis tohoto chování, neboť jediným výstupním signálem je dosažení koncového stavu. Reaktivnímu chování jsou bližší Mealyho automaty []. Statecharts jsou rozšířením tohoto formalizmu především o následující prvky:
Zanořování stavů je možné pomocí AND-stavů (systém se může nacházet paralelně ve všech podstavech) a OR-stavů (systém se vždy nachází v právě jednom z vnořených stavů). Stavy, do nichž není vnořen žádný jiný stav, nazýváme základní stavy. Díky těmto prvkům podporují Statecharts hierarchickou specifikaci.
Příklad systému televizního přijímače specifikovaného pomocí Statecharts ukazuje obrázek . Stav ON je AND-stavem zajišťujícím paralelní běh podsystémů reprezentovaných OR-stavy SCREEN a SOUND. V počátečním stavu se systém nachází současně v základních stavech VIDEO a ON, tedy v AND-stavu ON. Přechod off celého systému do stavu STANDBY může být proveden kdykoliv.
Figure: Příklad diagramu Statecharts
Každý přechod t je tvaru t=e[c]/a, kde e je jméno události (resp. její negace), na jejiž existenci (resp. neexistenci) systém reaguje uschopněním přechodu t a vygenerováním akce a pouze v případě, pokud je splněna podmínka c. Akce a může být např. vygenerování určité interní události nebo přiřazení hodnoty proměnné. Podmínka c může být například tvaru in(S) nabývající pravdy v případě, je-li jedním z aktuálních stavů systému stav S. Podmínka může také testovat hodnotu proměnné. Pomocí globálních proměnných je tak ve Statecharts řešena komunikace.
Krok výpočtu Statecharts je podle [] definován maximální množinou všech uschopněných přechodů. Maximalita je zvolena z důvodu zajištění hypotézy synchronnosti reaktivních systémů [] (hypotéza synchronnosti požaduje, aby na všechny externí události bylo reagováno v bezprostředně následujícím kroku výpočtu systému).
Statecharts disponují na syntaktické úrovni širokou škálou vyjadřovacích prostředků, pro něž je složité definovat precizní formální sémantiku. Základním problémem jsou přechody přes více úrovní zanoření, které znemožňují definovat kompoziční sémantiku. To znamená, že Statecharts obecně nejsou modulární.
Dalším problémem, který je třeba brát v úvahu při definici sémantiky Statecharts, je možnost vzniku nekonečných řetězových reakcí [], jak ukazuje obrázek popisující model vzájemného vyloučení dvou procesů. V počátečním stavu se oba podsystémy kořenového AND-stavu nacházejí ve stavech reprezentujících nekritické sekce (NCS). Kterýkoliv z obou systémů může provést přechod do kritické sekce (CS). Nechť je to např. levý podsystém. Předp. událost b není vygenerována externě. Jelikož pravý podsystém se nenachází v kritické sekci, je uschopněn přechod do stavu a vygenerována událost a, která signalizuje očekávaný vstup procesu a do kritické sekce. To implikuje nemožnost uschopnění přechodu pravého podsystému do . Nastává však potenciální možnost nekonečné smyčky neustálého uschopňování přechodu v levém podsystému. Záleží na sémantice, jak se s tímto problémem vypořádá.
Figure: Statecharts vzájemného vyloučení dvou procesů
Sémantika Statecharts může také definovat priority přechodů. Např. na obrázku jsou ze stavu VIDEO možné přechody text a off. V tomto případě je upřednostněn přechod off.
Pro Statecharts byly definovány různé sémantiky, které se různými způsoby snaží řešit naznačené problémy. Tyto sémantiky však nepodporují všechny syntaktické prvky jazyka. V [] je definován jazyk SPL (Statecharts Process Language), který kombinuje prvky algebry procesů se Statecharts, čímž umožňuje modulární specifikaci. Smolka a Uselton definují v [] nekompoziční sémantiku Statecharts pomocí přechodových systémů s návěštími. Kompoziční sémantika Statecharts je definována pro tutéž sémantickou doménu v [].
Statecharts jsou podporované komerčním nástrojem STATEMATE [], který umožňuje krokovou simulaci systémů specifikovaných pomocí Statecharts. Dalším nástrojem je ROOM (komerční produkt firmy Objectime, nyní Rational e-development co.), který kombinuje objektově orientovaný přístup se Statecharts. Oba nástroje jsou vhodné ke specifikaci systémů reálného času.
Existuje celá řada variant Statecharts. O některých se zmíníme v sekci .