Upload
pavel-tsukanov
View
1.482
Download
6
Embed Size (px)
DESCRIPTION
Мы расскажем что такое конечный автомат (Finite State Machine - FSM) и как его использовать при разработке ПО. Поделимся опытом использования, расскажем как улучшить дизайн программы или её отдельные части при помощи FSM. Рассмотрим некоторые реализации FSM.
Citation preview
Finite State Machine
Никифоров Константин[email protected]
Абстрактный конечный автомат Множество состояний Q Начальное состояние q0 Множество конечных состояний F Q Допустимый входной алфавит A Множество возможных выходных действий Z Функция перехода δ: Q A Q Отображение λ: Q A Z
АвтоматМили
Это конечный автомат, генерирующий выходные воздействия y(t) в зависимости от своего текущего состояния s(t) и входного воздействия х(t)
АвтоматМура
Частный случай автомата Мили. Входные сигналы изменяют только состояние
автомата. Выходной сигнал в автомате Мура зависит
только от текущего состояния автомата и не зависит от входного сигнала.
Абстрактный КА
Детерминированным (ДКА) называется такой автомат, в котором для каждой последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего.
Недетерминированный конечный автомат (НКА) является обобщением детерминированного. Нескольких стартовых состояний у автомата.
, ДКА распознающий числа в ассемблерномформате
Это не совсем правильный ДКА. В «правильном» ДКА из каждого состояния есть переход по каждому символу входного алфавита, определением для ДКА не предусмотрено ситуации пустого множества состояний и «засыхания ветки вычислений».Поэтому для полного соответствия нужно добавить в автомат ещё одно состояние, в которое должны сходиться все переходы по «непредусмотренным» символам, а выхода из этого состояния не будет – по любому символу следует переход в себя. Иногда такие состояния называют «дьявольскими»
, НКА распознающий числа в ассемблерномформате
От теории к практике
Математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных.Число возможных состояний конечно.
Конечный автомат это совокупность состояний и переходов между ними.
?Когда применять конечный автомат
Всегда (шутка).
WorkFlow.
Коалиции
Спецификации, описывающие
архитектуру WF-систем
языки определения бизнес-процессов
графические нотации диаграммы описания
бизнес-процессов
WfMC www.wfmc.org
Workflow reference model
WPDL, XPDL
BPMI www.bpmi.org
BPML BPMN
Коалиция IBM, Microsoft, BEA, SAP, Siebel
BPEL4WS
OMG www.omg.org
Workflow Management
Facility Specification
Activity диаграмма языка UML
Список наиболее известных международных коалиций, разрабатывающих спецификации, относящиеся к WF-системам
UML
Unified Modeling Language — унифицированный язык моделирования.
Графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем.
Рисование картинок. Обмен информацией. Спецификация систем.
UML. (state machine diagram) Диаграмма автомата или диаграмма состояний
Состояния (States). Простые (simple), составные (composite), специальные (pseudo), ссылочные (submachine), выбор (choice).
Переходы (Transitions). События (Events). Действия (Actions). При входе (Entry actions). При
выходе (Exit Actions)
W3C State Chart XML (SCXML)http://www.w3.org/TR/scxml/
Нотация, которая позволяет описывать конечные автоматы в общем виде на основе диаграмм состояний Харела (составная часть UML). Основана на XML.
Используя SCXML можно описать различные типы структур конечных автоматов. В качестве примера можно привести такие случаи, как вложенность, параллельность, синхронизация или конкурентность подавтоматов
Нотация SCXML
WorkFlow patterns. Sequence (последовательность)
Fork (расщепление)
Join (синхронизация)
WorkFlow patterns.
Decision (выбор)
Merge (соединение)
Инструменты для построенияWorkflow MS Visio yWorks eYd Altova Umodel Finite State Machine Editor
(http://fsme.sourceforge.net/) SCXMLUI (http://code.google.com/p/scxmlgui/)
Другие
MS Visio
yEd Graph Editor
Finite State Machine Editor
Altova Umodel
JFLAP
Appccelerate State Machine http://www.appccelerate.com
use enums, ints or strings for states and events - resulting in single class state machines.
transition, entry and exit actions. transition guards hierarchical states with history behavior to initialize state
always to same state or last active state. fluent definition syntax. passive state machine handles state transitions
synchronously. active state machine handles state transitions
asynchronously on the worker thread of the state machine. extension support to extend functionality of state machine. extensible thorough logging simplifies debugging. state machine reports as text, csv or yEd diagram.
Appccelerate State Machine
Windows Workflow Foundation
Собственная разработка
Finite State Machine
Никифоров Константинknikiforov@codemastersintl.
com
• Вопросы?
• Спасибо за внимание.