SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Finite State Machine




    Никифоров Константин
knikiforov@codemastersintl.com
Абстрактный конечный автомат
 Множество состояний Q
 Начальное состояние q0
 Множество конечных состояний F ⊂ Q
 Допустимый входной алфавит A
 Множество возможных выходных действий Z
 Функция перехода δ: Q × A → Q
 Отображение λ: Q × A → Z
Автомат Мили
   Это конечный автомат, генерирующий выходные
    воздействия y(t) в зависимости от своего текущего
    состояния s(t) и входного воздействия х(t)
Автомат Мура
 Частный случай автомата Мили.
 Входные сигналы изменяют только состояние
  автомата.
 Выходной сигнал в автомате Мура зависит
  только от текущего состояния автомата и не
  зависит от входного сигнала.
Абстрактный КА


   Детерминированным (ДКА) называется такой
    автомат, в котором для каждой последовательности
    входных символов существует лишь одно состояние,
    в которое автомат может перейти из текущего.

   Недетерминированный конечный автомат (НКА)
    является обобщением детерминированного.
    Нескольких стартовых состояний у автомата.
ДКА, распознающий числа в ассемблерном
                     формате




Это не совсем правильный ДКА. В «правильном» ДКА из каждого состояния есть переход по каждому символу входного алфавита,
определением для ДКА не предусмотрено ситуации пустого множества состояний и «засыхания ветки вычислений».
Поэтому для полного соответствия нужно добавить в автомат ещё одно состояние, в которое должны сходиться все переходы по
«непредусмотренным» символам, а выхода из этого состояния не будет – по любому символу следует переход в себя. Иногда такие
состояния называют «дьявольскими»
НКА, распознающий числа в ассемблерном
              формате
От теории к практике

   Математическая абстракция, модель дискретного
    устройства, имеющего один вход, один выход и в каждый
    момент времени находящегося в одном состоянии из
    множества возможных.Число возможных состояний
    конечно.

   Конечный автомат это совокупность состояний и
    переходов между ними.
Когда применять конечный автомат?




   Всегда (шутка).
WorkFlow.
  Список наиболее известных международных коалиций,
  разрабатывающих спецификации, относящиеся к WF-системам
                                       Спецификации, описывающие

      Коалиции                                                   графические нотации
                       архитектуру WF-       языки определения
                                                                 диаграммы описания
                            систем           бизнес-процессов
                                                                   бизнес-процессов

WfMC www.wfmc.org      Workflow reference
                                                WPDL, XPDL
                             model

BPMI www.bpmi.org
                                                   BPML                 BPMN

Коалиция IBM,
Microsoft, BEA, SAP,                             BPEL4WS
Siebel
OMG www.omg.org            Workflow
                                                                  Activity диаграмма
                       Management Facility
                                                                      языка UML
                          Specification
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.co
                          m

Weitere ähnliche Inhalte

Andere mochten auch

Sql azure federations
Sql azure federations Sql azure federations
Sql azure federations Pavel Tsukanov
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИPavel Tsukanov
 
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Pavel Tsukanov
 
Введение в Knockout
Введение в Knockout Введение в Knockout
Введение в Knockout Pavel Tsukanov
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...Pavel Tsukanov
 
Thinking in parallel ab tuladev
Thinking in parallel ab tuladevThinking in parallel ab tuladev
Thinking in parallel ab tuladevPavel Tsukanov
 
Domain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийDomain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийCUSTIS
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.Pavel Tsukanov
 
Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverPavel Tsukanov
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFPavel Tsukanov
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Pavel Tsukanov
 
СОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯСОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯPavel Tsukanov
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYPavel Tsukanov
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDPavel Tsukanov
 

Andere mochten auch (20)

Sql azure federations
Sql azure federations Sql azure federations
Sql azure federations
 
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИSIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
SIGNALR - ОБМЕН СООБЩЕНИЯМИ В РЕАЛЬНОМ ВРЕМЕНИ
 
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
Алгоритмы шифрования и их применение в .Net приложениях для защиты данных.
 
Введение в Knockout
Введение в Knockout Введение в Knockout
Введение в Knockout
 
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
ЭЛЕМЕНТЫ ИСКУСТВЕННОГО ИНТЕЛЛЕКТА ПРИ ПРОГРАММИРОВАНИИ. (http://tuladev.net/e...
 
RESPONSIVE WEB DESIGN
RESPONSIVE WEB DESIGNRESPONSIVE WEB DESIGN
RESPONSIVE WEB DESIGN
 
Thinking in parallel ab tuladev
Thinking in parallel ab tuladevThinking in parallel ab tuladev
Thinking in parallel ab tuladev
 
Unit tests
Unit testsUnit tests
Unit tests
 
Domain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требованийDomain-Driven Design: Модель вместо требований
Domain-Driven Design: Модель вместо требований
 
PaaS и SaaS
PaaS и SaaSPaaS и SaaS
PaaS и SaaS
 
TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.TDD (Test-driven Development) как стиль разработки.
TDD (Test-driven Development) как стиль разработки.
 
Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriver
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 
СОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯСОЗДАЙ РОБОТА С НУЛЯ
СОЗДАЙ РОБОТА С НУЛЯ
 
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITYCONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
CONTINUOUS INTEGRATION ДЛЯ ЧАЙНИКОВ ВМЕСТЕ С TEAMCITY
 
Как писать красивый код или основы SOLID
Как писать красивый код или основы SOLIDКак писать красивый код или основы SOLID
Как писать красивый код или основы SOLID
 

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

Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
презентация15
презентация15презентация15
презентация15student_kai
 
UML_Yznaika.com.pptx
UML_Yznaika.com.pptxUML_Yznaika.com.pptx
UML_Yznaika.com.pptxssuserd0eb401
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityIosif Itkin
 
Диаграмма конечного автомата
Диаграмма конечного автоматаДиаграмма конечного автомата
Диаграмма конечного автоматаDEVTYPE
 
Функциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridФункциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridАрсений Жижелев
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 27bits
 
слайды для курсового проекта
слайды для курсового проектаслайды для курсового проекта
слайды для курсового проектаstudent_kai
 
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...ITMO University
 
ВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫ
ВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫ
ВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫITMO University
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложенийGetDev.NET
 
Виртуалтрединг
ВиртуалтредингВиртуалтрединг
ВиртуалтредингCEE-SEC(R)
 
Визуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиВизуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиSQALab
 
Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0akrakovetsky
 
Верификация управляющих программ в системе автоматизации РТК (Iron hand)
Верификация управляющих программ в системе автоматизации РТК (Iron hand)Верификация управляющих программ в системе автоматизации РТК (Iron hand)
Верификация управляющих программ в системе автоматизации РТК (Iron hand)Alexander Petrov
 
Уменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложенийУменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложенийngrebnev
 

Ähnlich wie РАЗРАБОТКА ПО С ИСПОЛЬЗОВАНИЕМ FINITE STATE MACHINE. (20)

Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
презентация15
презентация15презентация15
презентация15
 
UML_Yznaika.com.pptx
UML_Yznaika.com.pptxUML_Yznaika.com.pptx
UML_Yznaika.com.pptx
 
TMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional ReliabilityTMPA-2013 Frenkel: Verifying Functional Reliability
TMPA-2013 Frenkel: Verifying Functional Reliability
 
Диаграмма конечного автомата
Диаграмма конечного автоматаДиаграмма конечного автомата
Диаграмма конечного автомата
 
Функциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridФункциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGrid
 
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 2
 
слайды для курсового проекта
слайды для курсового проектаслайды для курсового проекта
слайды для курсового проекта
 
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
ПРОГРАММНО-АППАРАТНЫЙ КОМПЛЕКС ДЛЯ ИССЛЕДОВАНИЯ АВТОМАТНОГО УПРАВЛЕНИЯ МОБИЛЬ...
 
UML: Statechart Diagram
UML: Statechart DiagramUML: Statechart Diagram
UML: Statechart Diagram
 
ВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫ
ВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫ
ВНЕСЕНИЕ ИЗМЕНЕНИЙ В АВТОМАТНЫЕ ПРОГРАММЫ
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
 
Scala: introduction
Scala: introductionScala: introduction
Scala: introduction
 
Prez
PrezPrez
Prez
 
Xslt
XsltXslt
Xslt
 
Виртуалтрединг
ВиртуалтредингВиртуалтрединг
Виртуалтрединг
 
Визуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиВизуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестами
 
Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0Что нового в Visual Studio 2010 и .Net 4.0
Что нового в Visual Studio 2010 и .Net 4.0
 
Верификация управляющих программ в системе автоматизации РТК (Iron hand)
Верификация управляющих программ в системе автоматизации РТК (Iron hand)Верификация управляющих программ в системе автоматизации РТК (Iron hand)
Верификация управляющих программ в системе автоматизации РТК (Iron hand)
 
Уменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложенийУменьшение влияния человеческого фактора при разработке бизнес приложений
Уменьшение влияния человеческого фактора при разработке бизнес приложений
 

Mehr von Pavel Tsukanov

МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVPavel Tsukanov
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS Pavel Tsukanov
 
АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5Pavel Tsukanov
 
ХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫPavel Tsukanov
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.Pavel Tsukanov
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода Pavel Tsukanov
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Pavel Tsukanov
 

Mehr von Pavel Tsukanov (8)

МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS ВВЕДЕНИЕ В NODE.JS
ВВЕДЕНИЕ В NODE.JS
 
АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5АНИМАЦИЯ В FLASH И HTML5
АНИМАЦИЯ В FLASH И HTML5
 
ХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫХАКЕРЫ И АНТИХАКЕРЫ
ХАКЕРЫ И АНТИХАКЕРЫ
 
ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.ЗАРАБОТОК В ИНТЕРНЕТЕ.
ЗАРАБОТОК В ИНТЕРНЕТЕ.
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже. Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
Применение нейронных сетей и генетических алгоритмов при торговле на бирже.
 

Kürzlich hochgeladen (9)

Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

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

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