Блог

Автоматное программирование

Cуществует целый ряд задач, для выполнения которых классический подход разработки программного обеспечения не подходит.

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

Однако доведение до «последнего рубежа обороны» в процессе эксплуатации подрывает доверие персонала к такому оборудованию и системам, что неизбежно приводит к снижению эффективности и производительности труда. Каким образом можно удостовериться в том, что программное обеспечение будет вести себя предсказуемо, а персонал будет относиться к нему с доверием, словно к "старому коню", который не испортит борозды?

В настоящее время существует три основных способа проверки:

1) Тестирование. Безусловно это важный и необходимый этап разработки. Однако тестирование позволяет лишь уменьшить вероятность появления возможной ошибки или сбоя, но не свести ее к теоретическому нулю. Ведь тестирование ничего не доказывает, а тот факт, что конкретное программное обеспечение отработало без ошибок в течение периода тестирования вовсе не означает, что потенциальных ошибок в нем нет.

2) Доказательство теорем. Здесь ситуация обратная – абсолютное доказательство есть, однако этот способ труднореализуем на практике.

3) Верификация на моделях – модель программы с конечным числом состояний. Именно ПО, разработанное по принципу программных автоматов позволяет осуществить такую Таким образом, для особо ответственных задач, требующих гарантии безошибочной работы и исключения непредусмотренных состояний системы.

Наша команда использует подход автоматного программирования. Контролируемая программой система имеет строго определенный набор состояний и строго заданные условия перехода между состояниями. Поведение такой программы предсказуемо в любой момент времени, а его математическая модель абсолютно прозрачна. Для повышения отказоустойчивости, связанную с аппаратной частью системы дополнительно может быть использовано «горячее» резервирование.

Получить подробную информацию и договориться со специалистами о встрече можно заполнив форму обратной связи.

Прочитано 2415 раз Последнее изменение Понедельник, 14 Август 2017 13:11
Оцените материал
(0 голосов)
Egorov Petr

Ведущий программист. Департамент автоматизации

JoomShaper