Магистратура
2023/2024
Научно-исследовательский семинар "Программная инженерия: управление разработкой"-1
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Системная и программная инженерия)
Направление:
09.04.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Ахтямов Павел Ибрагимович
Прогр. обучения:
Системная и программная инженерия
Язык:
русский
Кредиты:
6
Контактные часы:
44
Программа дисциплины
Аннотация
Модули 1 и 2 исследовательского семинара "Программная инженерия: управление разработкой" направлены на изучение особенностей практики и культуры автоматизации разработки программного обеспечения. Осваивая программу курса, студенты получат представление об основных инструментах промышленной разработки и базовых практиках devops. В дополнение к теоретическим знаниям студенты получат практические задания, которые помогут сформировать навыки применения и внедрения стека современных технологий. Во время курса мы познакомимся с культурой DevOps, отрепетируем каждый этап разработки программного обеспечения и автоматизации, осваивая практики и используемые инструменты. Модули 3 и 4 сосредоточены на знакомстве с областью анализа технологических процессов через призму обсуждения исследовательских работ. Современные информационные системы накапливают значительные объемы данных о событиях, которые включают, например, журналы транзакций, журналы сообщений и различные записи активности пользователей. Эти данные обычно называются журналами событий, состоящими из упорядоченных последовательностей событий, называемых трассировками. Журналы событий используются в интеллектуальном анализе процессов для обнаружения моделей реальных процессов. Ожидаемое поведение информационной системы обычно задается на начальных этапах жизненного цикла. Обнаружение реального поведения процессов из журналов событий является важной проблемой, поскольку созданные вручную модели не отражают изменений, внесенных в течение периода эксплуатации информационной системы. За последние годы был предложен широкий спектр алгоритмов для автоматического обнаружения моделей процессов. Поведение процессов может быть представлено в различных обозначениях, включая различные классы сетей Петри, эвристические и причинно-следственные сети или модель бизнес-процесса и обозначения (BPMN). Качество алгоритмов обнаружения процессов определяется качеством обнаруженных моделей процессов. Проверка соответствия - еще одна важная часть интеллектуального анализа процессов. Проверка соответствия предлагает измерения качества, которые измеряют соответствие между журналом событий (наблюдаемым поведением) и моделью процесса, а также сложность обнаруженных моделей. Данные, полученные в ходе проверки соответствия, формируют основу для дальнейшего совершенствования и повышения надежности процессов, происходящих в информационных системах. Студенты ознакомятся с фундаментальными принципами и ключевыми областями применения обнаружения процессов, проверки соответствия и совершенствования процессов, представляя и рецензируя отчеты, основанные на материалах конференций и журналов.
Цель освоения дисциплины
- Освоение базового инструментария, который используется в промышленной разработке Настройка инфраструктуры для управления разработкой
Планируемые результаты обучения
- Работа в ОС Linux. Написание скриптов для построения базовых конвейеров управления ОС Linux
- Различие терминов DevOps и devops. Выбор паттерна devops для внедрения в процесс разработки в компании.
- Базовое и продвинутое владение Git для разработки
- Проектирование API для микро сервисной архитектуры Диагностика и решение проблем, связанных с сетевой инфраструктурой
- Отличать понятия “образ” и “контейнер”. Научиться использовать Docker как основной инструмент контейнеризации ресурсов.
- Обрести навыки тестирования ПО Использовать автоматическое тестирование ПО на разных уровнях тестирования.
- Познакомиться с понятием “Инфраструктура как код” Научиться масштабировать решение по настройке окружения разработчика
- Научиться настраивать конвейеры непрерывной интеграции и поставки ПО
- Уметь использовать протокол SSH для удаленного доступа к серверам Научиться управлять облачной инфраструктурой посредства кода.
- Отличать понятия Stateful и Stateless. Уметь разворачивать проекты в Kubernetes-кластере
Содержание учебной дисциплины
- ОС Linux
- Принципы devops
- Системы контроля версий
- Сетевой стек
- Инструменты контейнеризации и виртуализации
- Тестирование ПО
- Настройка инфраструктуры
- Непрерывная разработка ПО
- Облачная инфраструктура
- Оркестрация ПО на основе Kubernetes
Промежуточная аттестация
- 2023/2024 учебный год 2 модульFinal = 0.1 * ДЗ1 + 0.1 * ДЗ2 + 0.1 * ДЗ3 + 0.1 * ДЗ4 + 0.1 * ДЗ5 + 0.1 * ДЗ6 + 0.1 * Активность + 0.3 * Экзамен
Список литературы
Рекомендуемая основная литература
- Chacon, S., & Straub, B. (2014). Pro Git: Vol. Second edition. Apress.
- Gene Kim, Jez Humble, Patrick Debois, & John Willis. (2016). The DevOps Handbook : How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution Press.
- Gigi Sayfan. (2017). Mastering Kubernetes. Packt Publishing.
- Humble, J., & Farley, D. (2011). Continuous Delivery : Reliable Software Releases Through Build, Test, and Deployment Automation. Upper Saddle River, NJ: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1599336
- Scott Chacon, & Ben Straub. (2014). Pro Git (Second Edition). Web server without geographic relation, Web server without geographic relation (org): Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.E86D0407
- Yevgeniy Brikman. (2019). Terraform: Up & Running : Writing Infrastructure As Code: Vol. Second edition. O’Reilly Media.
Рекомендуемая дополнительная литература
- Gene Kim, Kevin Behr, & George Spafford. (2018). The Phoenix Project : A Novel About IT, DevOps, and Helping Your Business Win. IT Revolution Press.
- Hochstein, L., & Moser, R. (2017). Ansible: Up and Running : Automating Configuration Management and Deployment the Easy Way: Vol. 2nd ed. Reilly - O’Reilly Media.
- Newham, C., & Rosenblatt, B. (2005). Learning the Bash Shell : Unix Shell Programming: Vol. 3rd ed. O’Reilly Media.