Войти / Регистрация
Корзина

  • Ваша корзина пуста
Войти / Регистрация
Корзина

  • Ваша корзина пуста

Статья «Проверка нескольких требований за один запуск инструмента статической верификации с помощью CEGAR, "Программирование"»

Авторы:
  • Мордань В.О.1
  • Мутилин В.С.2
стр. 50-68
Платно
1 Институт системного программирования РАН, 2 Институт системного программирования РАН
  • В выпуске: №4, 2016
  • В журнале: Программирование
  • Издательство: ФГУП «Издательство «Наука»
  • Рубрика ГРНТИ: Информатика. Информационные и вычислительные системы
  • Год выхода: 2016
  • SDI: 007.001.0132-3474.2016.000.004.50.68
  • ISSN: 0132-3474
Аннотация:
На данный момент статические верификаторы, основанные на уточнении абстракции по контрпримерам - подходе CEGAR (Counterexample Guided Abstraction Refinement), могут доказывать корректность программы относительно заданного требования, находить его нарушение в программе, при этом останавливая анализ. Или завершать анализ без получения ответа на вопрос, нарушается ли требование в программе или нет, например, при расходовании всех имеющихся ресурсов. Теоретически возможно использовать подход CEG AR для проверки программы относительно нескольких требований за раз, однако при этом нахождение первого нарушения требования или невозможность доказательства его корректности приведет к тому, что мы не сможем проверить программу относительно других требований. Кроме того, если программа содержит более одного нарушения заданного требования, то с помощью подхода CEGAR можно найти только первое нарушение. В данных случаях мы можем пропустить потенциальные ошибки в программе. В то же самое время статические верификаторы выполняют одинаковые действия во время проверки одной и той же программы относительно разных требований и, таким образом, большое количество вычислительных ресурсов тратится впустую. Помимо этого, для нахождения других нарушений заданного требования необходимо сначала исправить найденное, а потом полностью повторить верификацию. Данная статья представляет новый метод статической верификации программного обеспечения, основанный на подходе CEGAR, который нацелен на проверку программы относительно нескольких требований за раз и получение того же результата, который предоставляет базовый подход, проверяющий требования по отдельности, с учетом того, что каждое требование может нарушаться более одного раза. Для того чтобы добиться этого, предложенный метод разделяет ресурсы для проверки различных требований и продолжает анализ после нахождения нарушения требования. Мы использовали модули ядра Linux для проведения экспериментов, в которых предложенный метод позволил сократить общее время верификации в 5 раз. При этом общее число различающихся результатов в сравнении с базовым CEGAR составило порядка 2%. При продолжении анализа после нахождения первого нарушения требования данный метод позволяет гарантировать, что почти в 40% случаев найдены все имеющиеся нарушения заданных требований, при этом находится примерно в 1.5 раза больше нарушений, чем в базовом подходе CEGAR.

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

Чтобы приобрести доступ к материалу для юридического лица, пожалуйста, свяжитесь с администрацией портала с помощью формы обратной связи либо по электронному адресу libnauka@naukaran.com.  

Действия с материалами доступны только авторизованным пользователям.