РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.

2,142 views

Published on

Мы расскажем что такое конечный автомат (Finite State Machine - FSM) и как его использовать при разработке ПО. Поделимся опытом использования, расскажем как улучшить дизайн программы или её отдельные части при помощи FSM. Рассмотрим некоторые реализации FSM.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,142
On SlideShare
0
From Embeds
0
Number of Embeds
104
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE.

  1. 1. Finite State Machine Никифоров Константинknikiforov@codemastersintl.com
  2. 2. Абстрактный конечный автомат Множество состояний Q Начальное состояние q0 Множество конечных состояний F ⊂ Q Допустимый входной алфавит A Множество возможных выходных действий Z Функция перехода δ: Q × A → Q Отображение λ: Q × A → Z
  3. 3. Автомат Мили Это конечный автомат, генерирующий выходные воздействия y(t) в зависимости от своего текущего состояния s(t) и входного воздействия х(t)
  4. 4. Автомат Мура Частный случай автомата Мили. Входные сигналы изменяют только состояние автомата. Выходной сигнал в автомате Мура зависит только от текущего состояния автомата и не зависит от входного сигнала.
  5. 5. Абстрактный КА Детерминированным (ДКА) называется такой автомат, в котором для каждой последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего. Недетерминированный конечный автомат (НКА) является обобщением детерминированного. Нескольких стартовых состояний у автомата.
  6. 6. ДКА, распознающий числа в ассемблерном форматеЭто не совсем правильный ДКА. В «правильном» ДКА из каждого состояния есть переход по каждому символу входного алфавита,определением для ДКА не предусмотрено ситуации пустого множества состояний и «засыхания ветки вычислений».Поэтому для полного соответствия нужно добавить в автомат ещё одно состояние, в которое должны сходиться все переходы по«непредусмотренным» символам, а выхода из этого состояния не будет – по любому символу следует переход в себя. Иногда такиесостояния называют «дьявольскими»
  7. 7. НКА, распознающий числа в ассемблерном формате
  8. 8. От теории к практике Математическая абстракция, модель дискретного устройства, имеющего один вход, один выход и в каждый момент времени находящегося в одном состоянии из множества возможных.Число возможных состояний конечно. Конечный автомат это совокупность состояний и переходов между ними.
  9. 9. Когда применять конечный автомат? Всегда (шутка).
  10. 10. WorkFlow. Список наиболее известных международных коалиций, разрабатывающих спецификации, относящиеся к WF-системам Спецификации, описывающие Коалиции графические нотации архитектуру WF- языки определения диаграммы описания систем бизнес-процессов бизнес-процессовWfMC www.wfmc.org Workflow reference WPDL, XPDL modelBPMI www.bpmi.org BPML BPMNКоалиция IBM,Microsoft, BEA, SAP, BPEL4WSSiebelOMG www.omg.org Workflow Activity диаграмма Management Facility языка UML Specification
  11. 11. UML Unified Modeling Language — унифицированный язык моделирования. Графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем. Рисование картинок. Обмен информацией. Спецификация систем.
  12. 12. UML. Диаграмма автомата (state machine diagram) илидиаграмма состояний Состояния (States). Простые (simple), составные (composite), специальные (pseudo), ссылочные (submachine), выбор (choice). Переходы (Transitions). События (Events). Действия (Actions). При входе (Entry actions). При выходе (Exit Actions)
  13. 13. W3C State Chart XML (SCXML)http://www.w3.org/TR/scxml/Нотация, которая позволяет описывать конечныеавтоматы в общем виде на основе диаграмм состоянийХарела (составная часть UML). Основана на XML.Используя SCXML можно описать различные типыструктур конечных автоматов. В качестве примераможно привести такие случаи, как вложенность,параллельность, синхронизация или конкурентностьподавтоматов
  14. 14. Нотация SCXML
  15. 15. WorkFlow patterns. Sequence (последовательность) Fork (расщепление) Join (синхронизация)
  16. 16. WorkFlow patterns. Decision (выбор) Merge (соединение)
  17. 17. Инструменты для построенияWorkflow MS Visio yWorks eYd Altova Umodel Finite State Machine Editor (http://fsme.sourceforge.net/) SCXMLUI (http://code.google.com/p/scxmlgui/) Другие
  18. 18. MS Visio
  19. 19. yEd Graph Editor
  20. 20. Finite State Machine Editor
  21. 21. Altova Umodel
  22. 22. JFLAP
  23. 23. 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.
  24. 24. Appccelerate State Machine
  25. 25. Windows Workflow Foundation
  26. 26. Собственная разработка
  27. 27. Finite State Machine• Вопросы?• Спасибо за внимание. Никифоров Константин knikiforov@codemastersintl.co m

×