• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Book
ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction

Edited by: Vitaly Semenov, R. J. Scherer.

CRC Press, 2021.

Article
Equivalence checking and intersection of deterministic timed finite state machines

Bresolin D., El-Fakih K., Villa T. et al.

Formal Methods in System Design. 2022.

Book chapter
City and building information modelling using IFC standard

Shutkin V., Morozkin N., Zolotov V. et al.

In bk.: ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction. CRC Press, 2021. P. 406-413.

Working paper
Preventive Model-based Verification and Repairing for SDN Requests

Burdonov I., Kossachev A., Nina Yevtushenko et al.

arxiv.org. Computer Science. Cornell University, 2020

Program Verification

2020/2021
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Type:
Elective course
When:
3 year, 1, 2 module

Instructor

Программа дисциплины

Аннотация

Курс посвящен формальной верификации программ и моделей компьютерных систем. Цели — ознакомление студентов с базовыми принципами и методами формальной верификации и формирование у студентов навыков необходимых для практического использования рассмотренных методов. В основе лежат два класса методов: дедуктивная верификация и проверка моделей; рассматриваются методы формализации семантики программ (операционная и аксиоматическая семантика, структуры Крипке), методы формальной спецификации требований (программные контракты, темпоральная логика линейного времени), методы доказательства корректности программ (метод Флойда, теоретико-автоматный подход к проверке моделей в явной и символической формах). Для практики используются инструменты Frama-C/AstraVer/Why3 (дедуктивная верификация), а также Spin и NuSMV (проверка моделей).
Цель освоения дисциплины

Цель освоения дисциплины

  • Цель курса – изучение базовых принципов и методов верификации программного обеспече-ния (ПО); приобретение навыков, необходимых для практического применения методов верифика-ции ПО.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знать базовые принципы формальной верификации ПО
  • Знать основные подходы к формальной верификации ПО
  • Понимать области применимости каждого из подходов
  • Понимать, что такое операционная семантика
  • Понимать, что такое аксиоматическая семантика
  • Понимать, что такое слабейшее предусловие программы
  • Знать определения частичной и полной программ
  • Знать методы Флойда (метод индуктивных утверждений и метод фундированных множеств)
  • 2. Понимать, что такое инвариант цикла (индуктивное утверждение)
  • Уметь находить инварианты циклов и оценочные функции
  • Уметь аналитически доказывать частичную и полную корректность программ
  • Владеть навыками спецификации программ в форме пред- и постусловий
  • Владеть навыками поиска инвариантов циклов
  • Знать основные возможности языка ACSL
  • Уметь пользоваться инструментами Frama-C/AstraVer
  • Понимать, что такое асинхронный параллелизм
  • Понимать, что такое синхронный параллелизм
  • Знать, что такое реагирующие системы
  • Знать алгоритм Петерсона взаимного исключения двух процессов
  • Знать логику LTL........
  • Знать, что такое структура Крипке
  • Уметь описывать свойства реагирующих систем в виде формул LTL
  • Знать, что такое автомат Бюхи и обобщенный автомат Бюхи
  • Знать метод проверки языка, описываемого автоматом Бюхи, на пустоту
  • Знать метод построения автомата Бюхи, распознающего пересечение языков, описываемых автоматами Бюхи
  • Знать алгоритм построения автомата Бюхи по формуле LTL
  • Уметь строить автомат Бюхи по формуле LTL
  • Знать схему теоретико-автоматного метода проверки моделей
  • Знать, что такое двоичные решающие диаграммы
  • Знать алгоритмы манипуляции с двоичными решающими диаграммами
  • Иметь представление о символических алгоритмах проверки моделей
  • Иметь представление об ограниченной проверке моделей
  • Владеть навыками спецификации свойcтв в виде формул LTL
  • Знать основные возможности языков Promela и SMV
  • Уметь пользоваться инструментами Spin и SMV
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Общие принципы формальной верификации
  • Формализация семантики языков программирования
  • Методы дедуктивной верификации программ
  • Инструментальные средства дедуктивной верификации программ
  • Параллельные программы и реагирующие системы
  • Темпоральная логика линейного времени
  • Теоретико-автоматный метод проверки моделей
  • Символический метод проверки моделей
  • Инструментальные средства проверки моделей
Элементы контроля

Элементы контроля

  • неблокирующий Экзамен (Э)
    Экзамен проводится дистанционно через Zoom. Технические требования: web-камера, микрофон, наушники / колонки, Zoom.
  • неблокирующий Домашняя работа 1 (ДР1)
  • неблокирующий Домашняя работа 2 (ДР2)
  • неблокирующий Контрольная работа (КР)
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    0.2 * Домашняя работа 1 (ДР1) + 0.2 * Домашняя работа 2 (ДР2) + 0.2 * Контрольная работа (КР) + 0.4 * Экзамен (Э)
Список литературы

Список литературы

Рекомендуемая основная литература

  • Verification of Sequential and Concurrent Programs. (2009). Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsnar&AN=edsnar.oai.cwi.nl.14569

Рекомендуемая дополнительная литература

  • Baier, C., & Katoen, J.-P. (2008). Principles of Model Checking. Cambridge, Mass: The MIT Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=226091