• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Бакалаврская программа «Прикладная математика и информатика»

Проектирование отказоустойчивых систем 1

2026/2027
Учебный год
RUS
Обучение ведется на русском языке
5
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 1, 2 модуль

Преподаватели

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

Аннотация

Курс посвящён изучению фундаментальных принципов и современных практик профессиональной разработки программного обеспечения. Студенты освоят ключевые парадигмы программирования — объектно-ориентированную, функциональную и дата-ориентированную, — а также научатся применять шаблоны проектирования и избегать антипаттернов при построении программных систем. Особое внимание уделяется написанию чистого и поддерживаемого кода, моделированию предметной области, организации тестирования и обработки исключений. Курс также охватывает основы многопоточного программирования и знакомит студентов с жизненным циклом разработки программного обеспечения и методами работы с требованиями. По завершении курса студенты будут готовы проектировать качественные программные решения, соответствующие профессиональным стандартам индустрии
Цель освоения дисциплины

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

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

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

  • Студент умеет применять принципы объектно-ориентированного и функционального программирования при проектировании программных систем, выбирая подходящую парадигму в зависимости от решаемой задачи.
  • Студент знает ключевые принципы дизайна программного обеспечения (SOLID, DRY, KISS и др.) и умеет обосновывать архитектурные решения на их основе.
  • Студент умеет применять современные шаблоны проектирования (порождающие, структурные, поведенческие) для решения типовых задач разработки, а также распознавать и устранять антипаттерны в существующем коде.
  • Студент умеет проектировать модель предметной области, выделять сущности, их атрибуты и связи, используя подходы дата-ориентированного программирования и принципы моделирования предметной области.
  • Студент умеет организовывать корректную обработку исключений в программных системах, обеспечивая надёжность и предсказуемость поведения приложения в нештатных ситуациях.
  • Студент умеет писать чистый, читаемый и поддерживаемый код, следуя профессиональным стандартам именования, структурирования и документирования программного обеспечения.
  • Студент знает основные способы тестирования программного обеспечения (модульное, интеграционное, нагрузочное и др.) и умеет разрабатывать тест-кейсы для верификации корректности программных решений.
  • Студент знает основы многопоточного программирования, умеет выявлять типовые проблемы параллельного исполнения (состояние гонки, дедлоки, голодание) и применять высокоуровневые шаблоны многопоточного программирования для их предотвращения.
  • Студент знает этапы жизненного цикла разработки программного обеспечения, понимает роли участников процесса разработки и умеет ориентироваться в основных методологиях (Agile, Waterfall, Scrum и др.).
  • Студент умеет анализировать и формализовывать требования к программному продукту, работать с техническим заданием, выявлять противоречия и неполноту требований, а также документировать их в структурированном виде.
Содержание учебной дисциплины

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

  • Модуль 1. Парадигмы программирования
  • Модуль 2. Принципы и шаблоны проектирования
  • Модуль 3. Качество и тестирование программного обеспечения
  • Модуль 4. Многопоточность и асинхронность
  • Модуль 5. Командная разработка программного обеспечения
Элементы контроля

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

  • неблокирующий Домашнее задание
  • неблокирующий Бонусные задачи в проектах
  • неблокирующий Тесты по модулям
    Тесты после каждого модуля
  • неблокирующий Экзамен
  • неблокирующий Баллы за активности на семинарах
Промежуточная аттестация

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

  • 2026/2027 2nd module
    (Домашние проекты + бонусные задачи в проектах + тесты по модулям + экзамен + баллы за активности на семинарах)/950 *10 = ИТОГ Максимум по каждому из элементов: Домашние проекты - 500 Бонусные задачи в проектах - 125 Тесты по модулям - 75 Экзамен - 150 Баллы за активности на семинарах - 100
Список литературы

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

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

  • Применение UML 2.0 и шаблонов проектирования : введение в объектно - ориентированный анализ, проектирование и итеративную разработку : пер. с англ., Ларман, К., 2018
  • Разработка требований к программному обеспечению : пер. с англ., Вигерс, К., 2019
  • Чистый код. Создание, анализ и рефакторинг : пер. с англ., Мартин Р., 2012
  • Шаблоны корпоративных приложений : пер. с англ., , 2019

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

  • Экстремальное программирование : разработка через тестирование, пер. с англ. П. Анджан, 224 с., Бек, К., 2003

Авторы

  • Нурмухаметова Альбина Дамировна
  • Солдатова Татьяна Владимировна