Разработка методов автоматизированного построения надежного программного обеспечения на основе автоматного подхода по обучающим примерам и темпоральным свойствам
Номер гранта: | 14-07-31337 |
Область научного знания: | инфокоммуникационные технологии и вычислительные системы |
Тип конкурса: | («мол_а»)(«мол_а») конкурс научных проектов, выполняемых молодыми учеными |
Год выполнения: | 2014г. |
Руководитель: | Ульянцев В.И. |
Статус заявки: | поддержана |
Аннотация к заявке:
Рассматривается фундаментальная научная проблема автоматизированного построения надежного программного обеспечения, используется парадигма автоматного программирования, в которой логика работы программы описывается системой управляющих конечных автоматов. Этот подход позволяет строить программы, поддающиеся автоматической верификации при помощи метода Model Checking, что является преимуществом перед традиционными подходами к программированию. В проекте решается задача построения управляющих конечных автоматов по экспертным данным, заданным сценариями работы программы и темпоральными свойствами на языке линейной темпоральной логики LTL. Сценарии работы задают желаемые варианты поведения программы в начале работы, а темпоральные свойства позволяют проверить корректность работы программы во всех возможных ее состояниях. Иначе говоря, решается NP-трудная задача автоматизированного построения программного обеспечения по его спецификации. Предлагается разработать и реализовать три метода решения задачи: один приближенный метод на основе метаэвристического муравьиного алгоритма и метода Model Checking, а также два точных метода, основанных на сведении поставленной задачи к задачам SAT и QSAT совместно с методом Bounded Model Checking и применении сторонних программных средств для решения этих задач. Предполагается, будут превосходить по качеству и эффективности известные решения, основанные на генетических алгоритмах и жадном слиянии состояний, что подтверждается проведенными предварительными исследованиями и научным заделом коллектива Проекта.
Аннотация к отчету по результатам реализации проекта:
Проект направлен на развитие подходов для автоматизированного синтеза надежного программного обеспечения. В рамках Проекта программное обеспечение строится с использованием автоматного подхода. Ключевой особенностью автоматных программ является то, что модель программы, являющаяся системой управляющих конечных автоматов, строится разработчиком и верифицируется на этапе проектирования программы, а не после ее реализации. В рамках проекта разработан ряд методов для автоматизированного построения управляющих автоматов. В качестве входных данных используются сценарии работы и темпоральные свойства. Управляющим конечным автоматом называется конечный автомат, каждый переход которого помечен событием, последовательностью выходных воздействий и охранным условием, представляющим собой логическую формулу от входных переменных. Входными данными для построения управляющего автомата является множество сценариев работы и множество темпоральных свойств на языке линейной темпоральной логики LTL. Решается задача построения управляющего конечного автомата, удовлетворяющего следующим требованиям: (1) число состояний автомата равно заданному числу C; (2) автомат удовлетворяет заданному множеству сценариев работы; (3) автомат удовлетворяет заданным темпоральным свойствам. Как было показано ранее, задача построения управляющего автомата с заданным числом состояний и удовлетворяющего заданному множеству сценариев работы является NP-трудной. Рассматриваемая задача является также, как минимум, NP-трудной, поэтому для ее решения выбраны метаэвристические алгоритмы и подходы, основанные на сведении к классическим NP-трудным задачам. Получены следующие результаты: 1. Разработан и реализован на языке Java первый метод, основанный на муравьином алгоритме. Для оценки соответствия управляющих автоматов заданной спецификации используется функция приспособленности, включающая компоненты для оценки соответствия автомата заданным сценариям работы и темпоральным формулам. 2. Разработана математическая модель сведения задачи построения автоматов к задаче выполнимости (SAT) - предложены переменные и дизъюнкты нового типа. Разработан и реализован на языке программирования Java второй метод решения поставленной задачи, основанный на сведении к задаче SAT. При этом проверка моделей осуществляется на путях ограниченной длины - впервые используется Bounded Model Checking для управляющих конечных автоматов. 3. Разработан и реализован третий метод построения на основе сведения к задаче квантифицированной выполнимости (QSAT) с использованием Bounded Model Checking. Предложена новая математическая модель сведения к задаче QSAT. Для реализации были использованы современные методы решения QSAT, такие как DepQBF. 4. Проведены масштабные экспериментальные исследования разработанных методов. Полученные экспериментальные результаты позволяют сделать вывод о том, что на случайных данных муравьиный алгоритм существенно эффективнее генетического. Эксперименты также показали преимущество в скорости работы над остальными второго метода.
Аннотации к заявке и отчету приведены в авторской редакции.
по состоянию на 13.08.2022.