Бакалавриат
2026/2027





Научно-исследовательский семинар "Формальные методы в программной инженерии"
ID 1127240
Статус:
Курс по выбору (Разработка информационных систем для бизнеса)
Где читается:
Факультет социально-экономических и компьютерных наук
Когда читается:
3-й курс, 3, 4 модуль
Охват аудитории:
для своего кампуса
Преподаватели:
Лядова Людмила Николаевна
Язык:
русский
Кредиты:
3
Контактные часы:
42
Программа дисциплины
Аннотация
В программной инженерии формальными методами называются методы, основанные на математическом аппарате, которые используются для спецификации, разработки и верификации программного обеспечения различного назначения. Их использование, как и в других инженерных областях, обусловлено необходимостью обеспечить высокое качество программных продуктов, их соответствие требованиям, возможность тиражирования решений, их развития и интеграции различных продуктов в сложных системах и пр. Достичь нужных показателей можно только на основе научных методов, теории, на которой они основаны.
К сожалению, исследователи и разработчики нередко предлагают и используют различные методы, не выполнив анализа и не приводя обоснований того, насколько эффективно, при каких условиях и ограничениях, почему именно эти методы будут применимы, обеспечат ли они необходимое качество решений. Хотя формальные методы не всегда применимы в непосредственной практике программной инженерии, они помогают в понимании ее базовых принципов и концепций. Нельзя, например, разобраться в понятиях корректности, спецификации или верификации без знания соответствующей теории.
Кроме фундаментальных теорий информатики, программная инженерия должна базироваться на более узких ее разделах, таких как теория типов данных, баз данных, аппаратных конструкций, операционных систем, протоколов и т. д.
Наиболее проработанными являются формальные методы, используемые при разработке языков программирования и трансляторов, операционных систем. Формальные методы лежат в основе CASE-систем, языковых инструментариев. Развиваются методы, обеспечивающие основу автоматизации решения задач анализа и инженерии требований, автоматизации разработки моделей при решении задач проектирования, автоматизации генерации тестов, автоматизации документирования всех этапов и задач жизненного цикла программного обеспечения. В последние годы особый интерес вызывают методы искусственного интеллекта и возможность их применения для решения задач программной инженерии.
Эти методы определяют структуру курса – основные разделы в программе научно-исследовательского семинара, а также тематику выполняемых заданий.
Цель освоения дисциплины
- Обеспечить базовые знания в области формальных методов программной инженерии и опыт их использования при решении практических задач разработки программных продуктов различного назначения, которые дадут возможность выпускнику успешно работать в сфере индустриального производства программного обеспечения, развивать и совершенствовать свои профессиональные знания и навыки.
- Студенты должны приобрести опыт анализа и оценки материалов исследований, научных публикаций, технических отчётов по темам НИС, представленных в них результатов исследований, а также навыки подготовки к печати публикаций по тематике НИС.
Планируемые результаты обучения
- Знать основные понятия, терминологию, используемую в литературе по формальным методам программной инженерии
- Знать какие формальные методы применяются при решении задач на различных этапах жизненного цикла программного обеспечения
- Уметь строить и применять формальные модели для решения задач разработки программного обеспечения на различных этапах жизненного цикла
- Уметь выбирать методы и средства решения задач разработки программного обеспечения
- Уметь разрабатывать программную документацию с использованием формальных методов и средств подготовки и обработки документов
- Иметьнавыки поиска и анализа информации из различных источников для оценки и выбора методов решения профессиональных задач программной инженерии с помощью современных средств
- Иметь навыки применения средств автоматизации решения задач разработки программного обеспечения, основанных на формальных методах программной инженерии, на различных этапах жизненного цикла
- Иметь представление о средствах автоматизации задач анализа и инженерии требований
- Иметь представление о средствах автоматизации разработки моделей при решении задач проектирования программного обеспечения
- Иметь представление о средствах генерации кода на основе формальных моделей
- Иметь представление о средствах автоматизации подготовки тестов на основе разработанных спецификаций
Содержание учебной дисциплины
- Раздел 1. Формальные методы программной инженерии: введение.
- Раздел 2. Формальные языки и языковые инструментарии.
- Раздел 3. Формальные методы при решении задач разработки информационных систем.
- Раздел 4. Подготовка научных публикаций.
Элементы контроля
- Лабораторная работа 1Лабораторная работа 1 - Формальные языки и языковые инструментарии (DSM-платформы) Цель: Знакомство с возможностями различных DSM-платформ для разработки языков (предметно-ориентированных языков – DSL) и моделей с использованием DSL. Задание выполняется индивидуально. Предметную область для выполнения задания (разработки языка с использованием различных платформ) студент выбирает самостоятельно. Простейшие варианты: - разработка языка для нотации ERD (пример разобран в презентации, в примерах отчётов по выполнению лабораторной работы); - разработка языка моделирования сетей Петри (пример разобран в примерах отчётов по выполнению лабораторной работы); - разработка языка моделирования систем массового обслуживания (СМО) с одним типом устройств; - разработка языка моделирования конечных автоматов; - разработка языка диаграммного представления программы машины Тьюринга; В отчёт включаются - Постановка задачи (описание выбранной нотации, для которой должна быть разработана метамодель языка, и описание задачи моделирования – описание моделей, которые должны быть построены с использованием выбранного языка (нотации, для которой строятся метамодели DSL, – см. примеры выше), т. е. постановка задачи моделирования включает требования к модели (к элементам и связям между ними, к значениям атрибутов и ограничениям). - Пункты, в которых описывается процесс разработки метамоделей выбранного языка (DSL) и моделей с использованием рекомендованных языковых инструментариев (можно заменить указанные средства на другие DSM-платформы): 1. MetaEdit+. 2. MS DSL Tools (Modeling SDK for Visual Studio). 3. Eclipse (EMF). 4. MetaLanguage или любая другая платформа (языковой инструментарий). Отчёт о выполнении в каждом пункте (для каждой DSM-платформы) должен включать: a) описание метамодели языка (DSL) и пошаговое описание процесса её создания (комментарии и скриншоты к созданию элементов метамодели, связей, атрибутов и ограничений, обоснование элементов языка и их характеристик); b) представление модели, описанной в постановке задачи моделирования (схемы в нотации ERD, сети Петри и пр.), созданной с помощью построенного языка, и пошаговое описание процесса её создания. - Сравнение возможностей использованных DSM-платформ – оценка соответствия требованиям, критериям, которые каждый автор формирует самостоятельно, исходя из своего опыта, возможного использования при выполнении КР/ВКР (если известно, по какой тематике будет выполняться ВКР); оценивается возможность выполнить все описанные требования к модели (к элементам и связям и их характеристикам, включая ограничения), а также возможность выполнения трансформации модели – перевода в другую графическую нотацию, в текстовое представление (генерация кода), генерации документации.
- Самостоятельная работа 1Цель выполнения самостоятельной работы – закрепление теоретических знаний и получение практических навыков по всем темам НИС. В ходе выполнения проверяются следующие планируемые результаты обучения: Студент знает: ˗ различные методологические подходы к моделированию информационных систем; ˗ общие принципы, лежащие в основе структурно-функционального и объектно-ориентированного подходов к моделированию информационных систем; ˗ особенности моделирования бизнес-процессов и характеристики средств моделирования бизнес-процессов; ˗ математические основы разработки и анализа моделей процессов и систем (системы массового обслуживания, сети Петри и пр.), применяемые в различных областях. Студент умеет: ˗ проводить системный анализ с построением формальных моделей процессов и систем; ˗ разрабатывать модели, используемые на различных этапах жизненного цикла ИС, для различных целей и предметных областей с использованием структурного и объектно-ориентированного подходов; ˗ разрабатывать модели бизнес-процессов в различных нотациях; ˗ применять математический аппарат для анализа процессов и систем; ˗ анализировать модели процессов и систем, созданные с использованием различных средств. Студент имеет навыки ˗ выбора методов моделирования в зависимости от решаемых задач и условий решения; ˗ разработки моделей бизнес-процессов с использованием различных нотаций (BPMN, EPC) при решении задач анализа объектов автоматизации при разработке информационных систем; разработки иерархий взаимосвязанных, согласованных моделей при разработке информационных систем в рамках структурного и объектно-ориентированного подходов; моделирования и анализа систем и процессов с использованием различных методов и компьютерных средств их поддержки; анализа процессов и систем с использованием аналитических моделей (систем массового обслуживания, сетей Петри). Студент имеет представление ˗ о средствах автоматизации разработки моделей процессов на основе методов Process Mining; ˗ об общих принципах построения имитационных моделей, об организации и возможностях современных систем имитационного моделирования. Задание выполняется каждым студентом индивидуально. Визуальные модели разрабатываются для предметной области, определяемой темой КР или другого проекта. Для случая, когда тема работы не предполагает построение моделей, контрольное задание может выполняться путём моделирования процессов: ˗ в более широкой области, для более широкой задачи, например: описать возможность создания и использования системы, которая могла бы быть реализована на основе результатов выполнения курсовой работы; ˗ выполнения курсовой работы, решения поставленных в ней математических задач и т. п.
- Лабораторная работа 2Лабораторная работа 2 «Языково-ориентированный подход к разработке информационных систем и предметно-ориентированное моделирование» Цель: Закрепление навыков применения DSM-платформ для решения профессиональных задач – разработки DSL и моделей для выбранной предметной области и задачи. Задание выполняется индивидуально. Предметную область и задачу для разработки модели студент выбирает самостоятельно (по согласованию с преподавателем). Оптимальный вариант – предметная область, соответствующая теме КР/ВКР. Необходимо разработать и использовать для создания модели визуальный предметно-ориентированный язык моделирования с помощью одной из DSM-платформ: MetaEdit+, MS DSL Tools (Modeling SDK for Visual Studio), Eclipse GMF, MetaLanguage или любая другая платформа (языковой инструментарий). Выбор платформы студент делает самостоятельно, основываясь на результатах выполнения лабораторной работы 1, т. е. возможна замена указанных языковых инструментариев на другие. Задание включает несколько этапов: 1. Анализ исследуемой предметной области: - определение потребностей пользователя для моделирования выбранной предметной области; - выделение основных понятий и связей между ними, атрибутов и ограничений на их значения, операций, выполняемых в выбранной предметной области; - исследование стандартных нотаций, которые могут быть использованы при разработке модели, их оценка на соответствие потребностям пользователя (какие средства необходимы, насколько стандартные нотации соответствуют потребностям, какие возможности отсутствуют, какие имеются ограничения…); - требования к нотации (визуальному языку) для реализации потребностей пользователей (с использованием в качестве основы какой-либо стандартной нотации – показать, какие изменения нужны). 2. Описание DSL, учитывающего все потребности пользователя при создании и анализе модели (сложность (средняя): 4–5 взаимосвязанных элементов – объектов предметной области, связей разных типов). В качестве основы может быть выбрана одна из стандартных нотаций, наиболее полно отвечающая потребностям пользователей, которая может быть расширена в создаваемом DSL (дополнена новыми элементами, конструкциями, ограничениями… – по результатам анализа в первом пункте). 3. Реализация предметно-ориентированного языка – разработка метамодели DSL с помощью выбранных средств (языкового инструментария, DSM-платформы) и подготовка к созданию моделей с использованием этого языка (описание абстрактного и конкретного синтаксиса языка, определение инструментария, используемого для отображения конструкций создаваемого DSL, построение шаблонов для генерации кода визуального редактора, генерация редактора и пр. – конкретная последовательность действий зависит от выбранной платформы). 4. Разработка модели (или нескольких моделей) с использованием созданного визуального языка (сложность одной модели – 7–8 взаимосвязанных элементов), демонстрирующих возможности использования разработанного языка, его соответствие требованиям. Примечание: Следующий этап – этап трансформации построенной модели или генерации кода выполняется факультативно для тех платформ, где существуют возможности задания трансформаций: 5. Разработка правил трансформации конструкций разработанного языка в конструкции одного из языков моделирования (ERD, DFD, диаграммы классов UML, диаграммы активностей UML и пр. – в зависимости от решений, принятых при выполнении этапа 2). 6. Выполнение трансформации построенной модели (на этапе 4), показать результат.
- Самостоятельная работа 2При выполнении самостоятельной работы 2 (подготовка научной публикации – статьи или доклада для научной конференции) студенты должны самостоятельно выбрать тему и место представления публикации (для какой конференции или журнала должна быть подготовлена к публикации работа) и подготовить текст публикации в соответствии с установленными для выбранного конференции/журнала правилами, а также разработать презентацию для доклада. В ходе выполнения домашнего задания студент должен показать, что он - Может оформить результаты работы в соответствии с требованиями, предъявляемыми к научным публикациям (как по содержанию, так и по структуре, оформлению). - Владеет средствами подготовки текстов публикаций (текстовыми процессорами), способен оформить работы с соблюдением всех правил технического редактирования. - Имеет навыки разработки презентаций. Тему публикации предлагается связать с тематикой курсовой работы или предполагаемой темой выпускной квалификационной работы (ВКР) – использовать в публикации полученные при выполнении курсовой работы результаты, подготовить публикацию с использованием материалов по предполагаемой теме ВКР. Имеющиеся материалы переработать в соответствии с тематикой конференции/журнала и требованиями к публикации по содержанию, оформлению и объёму. Рекомендуется при подготовке публикации использовать материалы по темам, связанным с использованием инженерии знаний, искусственного интеллекта в программной инженерии – при решении профессиональных задач, связанных с жизненным циклом программного обеспечения, – анализ требований и генерация моделей и документации, генерация кода на основе моделей, генерация тестов (рассматривать публикацию как задел для обоснования темы ВКР). Для подготовки публикации рекомендуются следующие журналы: - Труды ИСП РАН – https://www.ispras.ru/proceedings/. - Журналы издательства "Новые технологии" – http://novtex.ru/ ("Программная инженерия" – http://novtex.ru/prin/rus/index.html, "Информационные технологии" – https://journals.eco-vector.com/1684-6400/index). - Журнал "Бизнес-информатика" – https://bijournal.hse.ru/index. Список может быть расширен. Требование к журналам и конференциям – соответствие области исследований "Программная инженерия". Результаты выполнения представляются на научно-исследовательском семинаре в форме доклада. Отчёт о выполнении задания – подготовленная в соответствии с требованиями издательства статья/доклад, а также подготовленная презентация загружаются в LMS в установленные сроки. Публикация и презентация (доклад на семинаре) оцениваются отдельно, по 10-балльной шкале. Каждая оценка имеет свой вес в итоговой оценке за выполнение самостоятельной работы: оценка по тексту статьи имеет вес 0,7, а оценка за представление (презентацию, доклад) на семинаре – 0,3.
Промежуточная аттестация
- 2026/2027 4th module0.4 * Самостоятельная работа 1 + 0.2 * Самостоятельная работа 2 + 0.2 * Лабораторная работа 2 + 0.2 * Лабораторная работа 1
Список литературы
Рекомендуемая основная литература
- Модели знаний и онтологии - Лутошкина Н. В. - Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнёва - - - 2021 - русский - https://e.lanbook.com/book/195144 - ЛАНЬ - 195144
- Основы визуального моделирования : учеб. пособие, Кознов Д.В., 2010
- Худеем во сне. Биоритмы стройности. - Климова В. - Санкт-Петербург: Питер - 978-5-49807-049-0 - 2009 - русский - https://ibooks.ru/product/335115 - iBOOKS - 335115
Рекомендуемая дополнительная литература
- Введение в программную инженерию - Кознов Д.В. - Национальный Открытый Университет "ИНТУИТ" - - - 2016 - русский - https://e.lanbook.com/book/100704 - ЛАНЬ - 100704
- Жемчужины разработки. Чему мы научились за 50 лет создания ПО. - 978-5-4461-1986-8 - Вигерс Карл - 2024 - Санкт-Петербург: Питер - https://ibooks.ru/products/393783 - 393783 - iBOOKS
- Разработка требований к программному обеспечению : пер. с англ., Вигерс, К., 2019
- Самоучитель UML 2, Леоненков, А. В., 2007
- Самоучитель UML, Леоненков, А. В., 2006