• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Research Seminar "Formal Methods in Software Engineering"

2025/2026
Academic Year
RUS
Instruction in Russian
3
ECTS credits
Delivered at:
Department of Information Technologies in Business (Faculty of Computer Science, Economics, and Social Sciences)
Course type:
Elective course
When:
3 year, 3, 4 module

Instructor

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

Аннотация

В программной инженерии формальными методами называются методы, основанные на математическом аппарате, которые используются для спецификации, разработки и верификации программного обеспечения различного назначения. Их использование, как и в других инженерных областях, обусловлено необходимостью обеспечить высокое качество программных продуктов, их соответствие требованиям, возможность тиражирования решений, их развития и интеграции различных продуктов в сложных системах и пр. Достичь нужных показателей можно только на основе научных методов, теории, на которой они основаны. К сожалению, исследователи и разработчики нередко предлагают и используют различные методы, не выполнив анализа и не приводя обоснований того, насколько эффективно, при каких условиях и ограничениях, почему именно эти методы будут применимы, обеспечат ли они необходимое качество решений. Хотя формальные методы не всегда применимы в непосредственной практике программной инженерии, они помогают в понимании ее базовых принципов и концепций. Нельзя, например, разобраться в понятиях корректности, спецификации или верификации без знания соответствующей теории. Кроме фундаментальных теорий информатики, программная инженерия должна базироваться на более узких ее разделах, таких как теория типов данных, баз данных, аппаратных конструкций, операционных систем, протоколов и т. д. Наиболее проработанными являются формальные методы, используемые при разработке языков программирования и трансляторов, операционных систем. Формальные методы лежат в основе CASE-систем, языковых инструментариев. Развиваются методы, обеспечивающие основу автоматизации решения задач анализа и инженерии требований, автоматизации разработки моделей при решении задач проектирования, автоматизации генерации тестов, автоматизации документирования всех этапов и задач жизненного цикла программного обеспечения. В последние годы особый интерес вызывают методы искусственного интеллекта и возможность их применения для решения задач программной инженерии. Эти методы определяют структуру курса – основные разделы в программе научно-исследовательского семинара, а также тематику выполняемых заданий.
Цель освоения дисциплины

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

  • Обеспечить базовые знания в области формальных методов программной инженерии и опыт их использования при решении практических задач разработки программных продуктов различного назначения, которые дадут возможность выпускнику успешно работать в сфере индустриального производства программного обеспечения, развивать и совершенствовать свои профессиональные знания и навыки.
  • Студенты должны приобрести опыт анализа и оценки материалов исследований, научных публикаций, технических отчётов по темам НИС, представленных в них результатов исследований, а также навыки подготовки к печати публикаций по тематике НИС.
Планируемые результаты обучения

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

  • Знать основные понятия, терминологию, используемую в литературе по формальным методам программной инженерии
  • Знать какие формальные методы применяются при решении задач на различных этапах жизненного цикла программного обеспечения
  • Уметь строить и применять формальные модели для решения задач разработки программного обеспечения на различных этапах жизненного цикла
  • Уметь выбирать методы и средства решения задач разработки программного обеспечения
  • Уметь разрабатывать программную документацию с использованием формальных методов и средств подготовки и обработки документов
  • Иметьнавыки поиска и анализа информации из различных источников для оценки и выбора методов решения профессиональных задач программной инженерии с помощью современных средств
  • Иметь навыки  применения средств автоматизации решения задач разработки программного обеспечения, основанных на формальных методах программной инженерии, на различных этапах жизненного цикла
  • Иметь представление о средствах автоматизации задач анализа и инженерии требований
  • Иметь представление о средствах автоматизации разработки моделей при решении задач проектирования программного обеспечения
  • Иметь представление о средствах генерации кода на основе формальных моделей
  • Иметь представление о средствах автоматизации подготовки тестов на основе разработанных спецификаций
Содержание учебной дисциплины

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

  • Раздел 1. Формальные методы программной инженерии: введение.
  • Раздел 2. Формальные языки и языковые инструментарии.
  • Раздел 3. Формальные методы при решении задач разработки информационных систем.
  • Раздел 4. Подготовка научных публикаций.
Элементы контроля

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

  • неблокирующий Лабораторная работа 2
  • неблокирующий Самостоятельная работа 2
  • неблокирующий Лабораторная работа 1
  • неблокирующий Самостоятельная работа 1
Промежуточная аттестация

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

  • 2025/2026 4th module
    0.1 * Лабораторная работа 1 + 0.2 * Лабораторная работа 2 + 0.4 * Самостоятельная работа 1 + 0.3 * Самостоятельная работа 2
Список литературы

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

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

  • Лутошкина, Н. В. Модели знаний и онтологии : учебное пособие / Н. В. Лутошкина. — Красноярск : СибГУ им. академика М. Ф. Решетнёва, 2021. — 80 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/195144 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Основы визуального моделирования : учеб. пособие, Кознов Д.В., 2010
  • Самоучитель UML, 2 изд. - 5-94157-342-1 - Леоненков А. - 2015 - Санкт-Петербург: БХВ-Петербург - https://ibooks.ru/bookshelf/335115 - 335115 - iBOOKS

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

  • Жемчужины разработки. Чему мы научились за 50 лет создания ПО. - 978-5-4461-1986-8 - Вигерс Карл - 2024 - Санкт-Петербург: Питер - https://ibooks.ru/bookshelf/393783 - 393783 - iBOOKS
  • Кознов, Д. В. Введение в программную инженерию : учебное пособие / Д. В. Кознов. — 2-е изд. — Москва : ИНТУИТ, 2016. — 306 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100704 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Разработка требований к программному обеспечению : пер. с англ., Вигерс, К., 2019
  • Самоучитель UML 2, Леоненков, А. В., 2007
  • Самоучитель UML, Леоненков, А. В., 2006

Авторы

  • Карпович Марина Валерьевна
  • Лядова Людмила Николаевна