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

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

21
Апрель

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

2021/2022
Учебный год
RUS
Обучение ведется на русском языке
6
Кредиты
Статус:
Курс по выбору
Когда читается:
3-й курс, 3, 4 модуль

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


Курынин Роман Валерьевич


Хашаев Артур Акрамович


Шестимеров Андрей Алексеевич

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

Аннотация

В данном курсе слушатели научатся разрабатывать сервисы различной степени сложности, ознакомятся с проектированием и различными архитектурами программного обеспечения, подходами к моделированию программных продуктов и усвоят наиболее применимые в современном программировании шаблоны.
Цель освоения дисциплины

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

  • Дать студентам представление о современных методах и подходах к построению сервисов
  • Дать обзорную базу знаний систем, используемых в современных продуктах
  • Развить навык разработки прикладных программ
Планируемые результаты обучения

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

  • Знать виды и пирамиду тестирования
  • Знать модели баз данных, реляционная алгебру, основные определения и операции. Функциональная зависимости, виды аномалий, декомпозицию отношений и нормальные формы (1-НФ, 2-НФ, 3-НФ). Основы языка SQL.
  • Знать парадигму объектно-ориентированного программирования: основные концепции, принципы, накладываемые ограничения. Принципы построения объектной модели. Основные элементы и определения. Виды связей. Основной вид деятельности в объектно-ориентированной разработке.
  • Знать что такое чистый код и технический долг, правила именования идентификаторов, какие бывают запахи кода и рефакторинг: способ описания, классификация, примеры использования.
  • Знать шаблоны проектирования и способ описания, шаблоны объектно-ориентированного проектирования (23 шаблона GoF)
  • Научиться разрабатывать масштабируемые сервисы, применение философии Unix к разработке сервисов. Усвоить следующие понятия: зависимости (декларация, заморозка, изоляция), виртуализация и контейнеризация, пакетные менеджеры, способы конфигурации, конфигурация внешних подсистем как подключаемых ресурсов, вертикальное и горизонтальное масштабирование, масштабирование посредством процессов, варианты и уровни балансировки нагрузки, плавное завершение, журналирование и сервисные менеджеры.
  • Понимать основные концепции, практики, паттерны, классификацию видов зависимостей, классификацию тестовых двойников, стили написания тестов и утверждений
  • Понимать принципы SOLID и контекст их применения
Содержание учебной дисциплины

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

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

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

  • неблокирующий Домашние задания
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2021/2022 учебный год 4 модуль
    0.7 * Домашние задания + 0.3 * Экзамен
Список литературы

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

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

  • Connolly, T. M., & Begg, C. (2015). Database Systems: A Practical Approach to Design, Implementation, and Management, Global Edition (Vol. Sixth edition, Global edition). Harlow: Pearson. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1419568
  • Чистый код. Создание, анализ и рефакторинг : пер. с англ., Мартин Р., 2012

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

  • Чистая архитектура : искусство разработки программного обеспечения, Мартин, Р., 2019