Statemachine и statechart означают одно и то же?

Я слышал, как люди используют эти термины.

Интересно, относятся ли они к одной и той же вещи или есть разница между этими двумя?

3 ответа

Решение

Википедия на самом деле хорошо это освещает. http://en.wikipedia.org/wiki/State_diagram

Государственные машины существуют уже давно (как минимум, десятилетия). Они состоят из состояний (обычно кружков) и стрелок между состояниями, в которых определенные действия могут инициировать переход по стрелке. Машины Мура и Мили - это два основных варианта, которые указывают, является ли вывод производным от переходов или самих состояний.

Диаграммы состояний были изобретены Дэвидом Харелом и иногда называются диаграммами состояний Хареля. Он определил довольно широкое расширение для типичных конечных автоматов с целью сделать конечные автоматы более полезными для реальной работы со сложными системами.

Вариант Statecharts теперь встроен в Matlab, так как stateflow, который является продолжением simulink. Состояния состояний также являются основой UML "State Machine Diagrams".

Из основополагающей книги 1999 года «Создание пользовательского интерфейса с диаграммами состояний» Яна Хоррокса, опубликованной Addison-Wesley (жирный / курсивный шрифт для выделения):

Из самой природы пользовательских интерфейсов очевидно, что состояния и события являются естественной средой для описания их поведения. Конечные автоматы - это формальный механизм для сбора и согласования таких фрагментов в единое целое. Однако общепризнано, что из-за большого количества состояний и событий, организованных неструктурированным образом, конечные автоматы не подходят для описания сложных систем. Осуществимость основанного на состоянии подхода для определения пользовательского интерфейса зависит от языка спецификации, который приводит к схемам, которые являются краткими, хорошо структурированными, модульными и иерархическими.

Существует множество различных обозначений, используемых для представления конечных автоматов, таких как диаграммы переходов состояний и матрицы переходов состояний. Однако такие обозначения не решают фундаментальных проблем, связанных с конечными автоматами. Обозначение диаграммы состояний - это не просто еще одно обозначение для конечного автомата; диаграммы состояний - это большой шаг вперед для нотаций на основе состояний. Они предоставляют гораздо более богатый и мощный язык спецификаций, чем любая устаревшая машинная нотация. Все серьезные проблемы, связанные с устаревшими конечными машинами, решаются с помощью диаграмм состояний:

  1. Количество состояний в диаграмме состояний увеличивается пропорционально сложности указанной системы. В конечных автоматах количество состояний имеет тенденцию к быстрому увеличению при лишь небольшом увеличении сложности заданной системы.
  2. Диаграммы состояний избегают повторяющихся состояний и повторяющихся стрелок событий. Это позволяет избежать больших хаотических диаграмм, которые трудно понять и которые трудно изменить.
  3. Состояния в диаграмме состояний имеют иерархическую структуру, что означает, что моделируемая система может рассматриваться на разных уровнях абстракции. Модульный характер состояний гарантирует, что нет необходимости понимать всю диаграмму состояний, чтобы понимать только одну ее часть. Вкратце, диаграммы состояний предназначены для обозначения диаграмм переходов, что и модульная декомпозиция и абстракция для монолитного кода.

Узнайте больше о Stateflow в целом по адресу: http://www.mathworks.com/products/stateflow/examples.html

Stateflow был обновлен для упрощения создания конечных автоматов и блок-схем в R2012b.

Основные обновления включают в себя новый графический редактор, таблицы перехода состояний, MATLAB в качестве языка действий и встроенный отладчик.

лучший, Сиддхарт

Другие вопросы по тегам