• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2022/2023

Проектирование архитектуры программных систем

Статус: Курс обязательный (Программная инженерия)
Направление: 09.03.04. Программная инженерия
Когда читается: 3-й курс, 3, 4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 5
Контактные часы: 60

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

Аннотация

В рамках дисциплины «Проектирование архитектуры программных систем» студенты третьего курса бакалавриата ОП «Программная инженерия» осваивают теоретический материал и получают практические навыки проектирования и анализа архитектуры программных систем разного типа. Архитектура программной системы — структурное и поведенческое описание устройства этой системы. Архитектурные решения разработчиков системы имеют ключевое значение для её работоспособности, адаптивности, расширяемости, эффективности, простоты её поддержки, доработки, исправления выявляемых во время работы ошибок. Именно поэтому архитектурные решения должны приниматься ответственно и взвешенно. В рамках данного курса студенты должны овладеть систематическим инженерным подходом к принятию архитектурных решений. Проектирование осуществляется на основе анализа требований к информационным системам. Студенты изучают основные задачи программного архитектора и проектировщика, в том числе и в рамках унифицированного процесса (Unified Process). Рассматриваются особенности конкретных реализаций унифицированного процесса и методологий проектирования программных систем. Также студенты обучаются навыкам визуального моделирования программного обеспечения с использованием CASE-средств и унифицированного языка моделирования UML. Наконец, студенты приобретают навыки документирования ключевых архитектурных решений в соответствии с отечественными и мировыми стандартами (ГОСТ Р 57100-2016), а также чтения и поддержки архитектурных описаний.
Цель освоения дисциплины

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

  • Получение теоретических знаний и практических навыков работы с требованиями к программным информационным системам как входными данными для проектирования архитектуры системы.
  • Получение практических навыков при выполнении основных задач архитектора и проектировщика в рамках унифицированного процесса (Unified Process) проектирования и визуального моделирования с использованием унифицированного языка моделирования UML.
  • Получение навыков документирования архитектуры программной системы.
  • Получение навыков чтения и анализа архитектуры существующей системы с целью её доработки и развития.
  • Знакомство с классическими и самыми современными архитектурными стилями программных систем.
Планируемые результаты обучения

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

  • Владеть навыками визуального моделирования программного обеспечения с использованием CASE-средств
  • Владеть основными определениями, относящимися к области архитектуры программного обеспечения
  • Уметь документировать архитектуру программных систем
  • Уметь применять на практике методы объектно-ориентированного анализа и проектирования
  • Уметь применять на практике унифицированный процесс проектирования и разработки программных систем
  • Знать и уметь использовать основные архитектурные стили и шаблоны проектирования программного обеспечения
  • Знать процессы разработки программных систем
  • Понимать устройство курса, его план, правила оценивания
  • Уметь проектировать программное обеспечение с учётом функциональных и нефункциональных требований к системе
  • Уметь разбираться в существующих архитектурных решениях
Содержание учебной дисциплины

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

  • Вводная лекция. Определение архитектуры программной системы.
  • Визуальное моделирование и работа с требованиями.
  • Анализ и проектирование 1.
  • Анализ и проектирование 2.
  • Документирование архитектуры программных систем.
  • Организационные вопросы проектирования. Процессы разработки.
  • Чтение архитектуры. Развитие архитектуры.
  • Работа с требованиями по атрибутам качества системы.
  • Шаблоны проектирования.
  • Классические архитектурные стили.
  • Архитектура сетевых и распределенных систем.
  • Архитектурные стили корпоративных приложений.
  • Сервис-ориентированные архитектуры.
  • Облачные архитектуры.
  • Защищенность и безопасность. Работа архитектора - командная. Заключительные замечания.
Элементы контроля

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

  • неблокирующий Домашнее задание 2 (ДЗ2)
  • неблокирующий Проект - этап 2 (П2)
    Формулировка предложений по доработке системы
  • неблокирующий Проект - этап 3 (П3)
    Проектирование и реализация предложений по переработке архитектуры системы
  • неблокирующий Домашнее задание 1 (ДЗ1)
  • неблокирующий Активность на семинарах и лекциях (А)
  • неблокирующий Проект - этап 4 (П4)
    Оценка результативности
  • неблокирующий Проект - этап 1 (П1)
    Изучение и описание системы
  • неблокирующий Домашнее задание 3 (ДЗ3)
  • неблокирующий Проект - этап 5 (П5)
    Доработка и представление решения
Промежуточная аттестация

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

  • 2022/2023 учебный год 4 модуль
    0.1 * Домашнее задание 3 (ДЗ3) + 0.1 * Проект - этап 4 (П4) + 0.2 * Активность на семинарах и лекциях (А) + 0.1 * Домашнее задание 1 (ДЗ1) + 0.1 * Домашнее задание 2 (ДЗ2) + 0.1 * Проект - этап 3 (П3) + 0.1 * Проект - этап 5 (П5) + 0.1 * Проект - этап 2 (П2) + 0.1 * Проект - этап 1 (П1)
Список литературы

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

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

  • Mark Richards, & Neal Ford. (2019). Fundamentals of Software Architecture : An Engineering Approach. O’Reilly Media.
  • Буч, Г. Язык UML. Руководство пользователя : руководство / Г. Буч, Д. Рамбо, И. Якобсон. — Москва : ДМК Пресс, 2008. — 496 с. — ISBN 5-94074-334-X. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/1246 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Применение UML 2.0 и шаблонов проектирования : введение в объектно - ориентированный анализ, проектирование и итеративную разработку : пер. с англ., Ларман, К., 2018
  • Халл, Э. Инженерия требований / Э. Халл, К. Джексон, Д. Дик , под редакцией В. К. Батоврина , перевод с английского А. Снастина. — Москва : ДМК Пресс, 2017. — 218 с. — ISBN 978-5-97060-214-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/93270 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • Managed Software Evolution. (2019). Springer International Publishing. https://doi.org/10.1007/978-3-030-13499-0
  • Mens, T., Serebrenik, A., & Cleve, A. (2014). Evolving Software Systems. Heidelberg, Germany: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=685626
  • Neal Ford, Mark Richards, Pramod Sadalage, & Zhamak Dehghani. (2021). Software Architecture: The Hard Parts. O’Reilly Media.
  • Shivakumar R Goniwada. (2021). Cloud Native Architecture and Design : A Handbook for Modern Day Architecture and Design with Enterprise-Grade Examples: Vol. 1st ed. Apress.