Применение автоматного программирования во встраиваемых системах В. О. Клебан, А. А. Шалыто Санкт-Петербургский государственный университет информационных технологий, механики и оптики 2009 г.
2 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Автоматное программирование (1) Автоматизированный объект управления Машина Тьюринга
3 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Автоматное программирование (2) Система управления – система вложенных автоматов. Объект управления – произвольный физический объект (клапан) или математическая функция (выдержка времени). Основные понятия: состояния, переходы, события, входные переменные и выходные воздействия, автоматы, гибридные автоматы. Состояния: управляющие в СУ и вычислительные в ОУ.
4 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Пример. Управление дизель-генератором (1)
5 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Пример. Управление дизель-генератором (2)
6 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Пример. Управление дизель-генератором (3)
7 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Автоматное программирование злоупотребление логикой злоупотребление семантикой Тьюрингово программирование Традиционное программирование Автоматное программирование ПАРАДИГМА АВТОМАТНОГО ПРОГРАММИРОВАНИЯ СОСТОИТ В ПРЕДСТАВЛЕНИИ СУЩНОСТЕЙ СО СЛОЖНЫМ ПОВЕДЕНИЕМ В ВИДЕ АВТОМАТИЗИРОВАННЫХ ОБЪЕКТОВ УПРАВЛЕНИЯ
8 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Преимущества Обладает наибольшей эффективностью для систем со сложным поведением Формальное и понятное описание поведения Проверка формальных свойств диаграмм Автоматическая генерация кода по диаграммам переходов Возможность тестирования в терминах автоматов Возможность верификации программ методом Model Checking Проектная документация
9 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Реализация автоматных программ Вне зависимости от используемого языка программирования реализация автоматных программ осуществляется по графам переходов формально и изоморфно – текст программы «внешне похож» на граф переходов. Переход от графа переходов к тексту программы может осуществляться как вручную, так и автоматически с помощью соответствующих инструментальных средств. Например, для создания программ на языке Java в СПбГУ ИТМО создано инструментальное средство UniMod.
10 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Инструментальное средство UniMod (1) Семь автоматов ВручнуюАвтоматическая генерация Вручную
11 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Инструментальное средство UniMod (2) Один из автоматов – AL
12 А.А. Шалыто Автоматное программирование Верификация автоматных программ При использовании метода Model Checking при верификации программ предлагается по программе строить ее модель. Построение адекватной модели автоматически практически невозможно. При использовании автоматного программирования первичной является модель поведения, по которой строится программа. Поэтому уровень процесса верификации автоматных программ увеличивается.
13 В.О. Клебан, А.А. Шалыто Применение автоматного программирования во встраиваемых системах Генерация автоматов и генетическое программирование Основная сложность в автоматном программировании – построение автоматов В большинстве случаев автоматы проектируются вручную Однако эвристическое построение автоматов часто затруднено или невозможно Решение – автоматическое построение конечных автоматов с помощью генетического программирования Это позволит повысить уровень автоматизации построения программ рассматриваемого класса Материалы – на сайте (раздел «Генетические алгоритмы»)
14 В.О. Клебан, А.А. Шалыто, И.В. Широков Применение автоматного программирования во встраиваемых системах Пример. Беспилотный вертолет (1) Содержит контроллер на базе ядра ARM7 с частотой 60МГц. Интегрированную систему радиосвязи радиусом действия 1.5км (скорость кбит/с) Трехосевой акселерометр. Трехосевой гироскоп. Магнитный компас Услилительно- преобразовательные устройства управления двигателями.
15 Верификация автоматных программ
16 В.О. Клебан, А.А. Шалыто, И.В. Широков Применение автоматного программирования во встраиваемых системах Пример. Беспилотный вертолет (3)
17 В.О. Клебан, А.А. Шалыто, И.В. Широков Применение автоматного программирования во встраиваемых системах Спасибо за внимание!