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



Эксплуатация и надёжность программных систем
ID 1160577
Статус:
Курс обязательный (Прикладная математика и информатика)
Кто читает:
Базовая кафедра Т-Банка
Где читается:
Факультет компьютерных наук
Когда читается:
4-й курс, 1, 2 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
5
Контактные часы:
56
Программа дисциплины
Аннотация
В курсе рассматриваются ключевые аспекты эксплуатации и обеспечения надёжности программных систем. Анализируются цели и задачи эксплуатации (обеспечение непрерывной и качественной работы, минимизация сбоев, сопровождение и развитие ПО), а также методы и модели оценки надёжности (вероятность безотказной работы, наработка на отказ, интенсивность отказов, коэффициент готовности). Студенты изучат основные парадигмы программирования, принципы и шаблоны проектирования, научатся оценивать качество и проводить тестирование программного обеспечения, получат базовые компетенции в области многопоточного программирования.
Цель освоения дисциплины
- Сформировать у студентов системное понимание ключевых парадигм программирования и умение осознанно выбирать подходящий подход при решении практических задач разработки.
- Развить способность проектировать программные системы с применением принципов дизайна программного обеспечения, шаблонов проектирования и методов моделирования предметной области.
- Обеспечить освоение профессиональных стандартов написания кода, включая практики чистого кода, обработки исключений и организации тестирования программных систем.
- Сформировать базовые компетенции в области многопоточного программирования, необходимые для разработки надёжных и производительных программных решений.
- Познакомить студентов с процессами жизненного цикла разработки программного обеспечения и методами работы с требованиями, обеспечив готовность к профессиональной деятельности в команде разработчиков.
Планируемые результаты обучения
- Студент умеет применять принципы объектно-ориентированного и функционального программирования при проектировании программных систем, выбирая подходящую парадигму в зависимости от решаемой задачи.
- Студент знает ключевые принципы дизайна программного обеспечения (SOLID, DRY, KISS и др.) и умеет обосновывать архитектурные решения на их основе.
- Студент умеет применять современные шаблоны проектирования (порождающие, структурные, поведенческие) для решения типовых задач разработки, а также распознавать и устранять антипаттерны в существующем коде.
- Студент умеет проектировать модель предметной области, выделять сущности, их атрибуты и связи, используя подходы дата-ориентированного программирования и принципы моделирования предметной области.
- Студент умеет организовывать корректную обработку исключений в программных системах, обеспечивая надёжность и предсказуемость поведения приложения в нештатных ситуациях.
- Студент умеет писать чистый, читаемый и поддерживаемый код, следуя профессиональным стандартам именования, структурирования и документирования программного обеспечения.
- Студент знает основные способы тестирования программного обеспечения (модульное, интеграционное, нагрузочное и др.) и умеет разрабатывать тест-кейсы для верификации корректности программных решений.
- Студент знает основы многопоточного программирования, умеет выявлять типовые проблемы параллельного исполнения (состояние гонки, дедлоки, голодание) и применять высокоуровневые шаблоны многопоточного программирования для их предотвращения.
- Студент знает этапы жизненного цикла разработки программного обеспечения, понимает роли участников процесса разработки и умеет ориентироваться в основных методологиях (Agile, Waterfall, Scrum и др.).
- Студент умеет анализировать и формализовывать требования к программному продукту, работать с техническим заданием, выявлять противоречия и неполноту требований, а также документировать их в структурированном виде.
Содержание учебной дисциплины
- Модуль 1. Парадигмы программирования
- Модуль 2. Принципы и шаблоны проектирования
- Модуль 3. Качество и тестирование программного обеспечения
- Модуль 4. Многопоточность и асинхронность
Список литературы
Рекомендуемая основная литература
- Wieringa, Roel J. Design science methodology for information systems and software engineering. Springer, 2014.
- Применение UML 2.0 и шаблонов проектирования : введение в объектно - ориентированный анализ, проектирование и итеративную разработку : пер. с англ., Ларман, К., 2018
- Разработка требований к программному обеспечению : пер. с англ., Вигерс, К., 2019
- Распределенные системы и алгоритмы - Миков А.И., Замятина Е.Б. - Национальный Открытый Университет "ИНТУИТ" - - - 2016 - русский - https://e.lanbook.com/book/100446 - ЛАНЬ - 100446
- Чистый код. Создание, анализ и рефакторинг : пер. с англ., Мартин Р., 2012
- Шаблоны корпоративных приложений : пер. с англ., , 2019
Рекомендуемая дополнительная литература
- Экстремальное программирование : разработка через тестирование, пер. с англ. П. Анджан, 224 с., Бек, К., 2003