Бакалавриат
2024/2025





Научно-исследовательский семинар "Формальные методы в программной инженерии"
Статус:
Курс по выбору (Разработка информационных систем для бизнеса)
Направление:
09.03.04. Программная инженерия
Где читается:
Факультет менеджмента (Пермь)
Когда читается:
3-й курс, 3, 4 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Лядова Людмила Николаевна
Язык:
русский
Кредиты:
3
Программа дисциплины
Аннотация
В программной инженерии формальными методами называются методы, основанные на математическом аппарате, которые используются для спецификации, разработки и верификации программного обеспечения различного назначения. Их использование, как и в других инженерных областях, обусловлено необходимостью обеспечить высокое качество программных продуктов, их соответствие требованиям, возможность тиражирования решений, их развития и интеграции различных продуктов в сложных системах и пр. Достичь нужных показателей можно только на основе научных методов, теории, на которой они основаны.
К сожалению, исследователи и разработчики нередко предлагают и используют различные методы, не выполнив анализа и не приводя обоснований того, насколько эффективно, при каких условиях и ограничениях, почему именно эти методы будут применимы, обеспечат ли они необходимое качество решений. Хотя формальные методы не всегда применимы в непосредственной практике программной инженерии, они помогают в понимании ее базовых принципов и концепций. Нельзя, например, разобраться в понятиях корректности, спецификации или верификации без знания соответствующей теории.
Кроме фундаментальных теорий информатики, программная инженерия должна базироваться на более узких ее разделах, таких как теория типов данных, баз данных, аппаратных конструкций, операционных систем, протоколов и т. д.
Наиболее проработанными являются формальные методы, используемые при разработке языков программирования и трансляторов, операционных систем. Формальные методы лежат в основе CASE-систем, языковых инструментариев. Развиваются методы, обеспечивающие основу автоматизации решения задач анализа и инженерии требований, автоматизации разработки моделей при решении задач проектирования, автоматизации генерации тестов, автоматизации документирования всех этапов и задач жизненного цикла программного обеспечения. В последние годы особый интерес вызывают методы искусственного интеллекта и возможность их применения для решения задач программной инженерии.
Эти методы определяют структуру курса – основные разделы в программе научно-исследовательского семинара, а также тематику выполняемых заданий.
Цель освоения дисциплины
- Обеспечить базовые знания в области формальных методов программной инженерии и опыт их использования при решении практических задач разработки программных продуктов различного назначения, которые дадут возможность выпускнику успешно работать в сфере индустриального производства программного обеспечения, развивать и совершенствовать свои профессиональные знания и навыки.
- Студенты должны приобрести опыт анализа и оценки материалов исследований, научных публикаций, технических отчётов по темам НИС, представленных в них результатов исследований, а также навыки подготовки к печати публикаций по тематике НИС.
Планируемые результаты обучения
- Знать основные понятия, терминологию, используемую в литературе по формальным методам программной инженерии
- Знать какие формальные методы применяются при решении задач на различных этапах жизненного цикла программного обеспечения
- Уметь строить и применять формальные модели для решения задач разработки программного обеспечения на различных этапах жизненного цикла
- Уметь выбирать методы и средства решения задач разработки программного обеспечения
- Уметь разрабатывать программную документацию с использованием формальных методов и средств подготовки и обработки документов
- Иметьнавыки поиска и анализа информации из различных источников для оценки и выбора методов решения профессиональных задач программной инженерии с помощью современных средств
- Иметь навыки применения средств автоматизации решения задач разработки программного обеспечения, основанных на формальных методах программной инженерии, на различных этапах жизненного цикла
- Иметь представление о средствах автоматизации задач анализа и инженерии требований
- Иметь представление о средствах автоматизации разработки моделей при решении задач проектирования программного обеспечения
- Иметь представление о средствах генерации кода на основе формальных моделей
- Иметь представление о средствах автоматизации подготовки тестов на основе разработанных спецификаций
Содержание учебной дисциплины
- Раздел 1. Формальные методы программной инженерии: введение.
- Раздел 2. Формальные языки и языковые инструментарии.
- Раздел 3. Формальные методы при решении задач разработки информационных систем.
- Раздел 4. Подготовка научных публикаций.
Элементы контроля
- Лабораторная работа 1
- Лабораторная работа 2
- Самостоятельная работа 1
- Самостоятельная работа 2
Промежуточная аттестация
- 2024/2025 4th module0.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