Проектирование программных систем 2024
Содержание
Общие сведения
Общая информация
На курсе вы узнаете как использовать язык моделирования UML2 в разработке распределенных приложений в микросервисной архитектуре (MSA) с применением метода предметно-ориентированного проектирования (Domain-Driven Design).
А также, как анализировать и проверять требования, структурировать программы, почему интерфейс это не абстрактный класс, как разрабатывать большие системы из небольших сервисов, паттерны и приемы, используемые архитекторами и тим лидами.
Практика предполагает выполнение и защиту двух заданий по командному курсовому проекту.
Для разработчиков, системных аналитиков и будущих архитекторов программного обеспечения.
Примерный план
Неделя | Раздел | Тема |
---|---|---|
07/09 | INTRO+REQ | Введение в курс (качество ПО, цели курса). Кратко о требованиях. Сценарии. Фичи. Варианты использования (динамич. представл.) |
15/09 | REQ | Потоки данных DFD. Разработка требований к продуктам. Элементы customer development. Персоны. Метод JTBD. Путешествия. Истории пользователей и истории задач. Процесс разработки требований. |
22/09 | DDD+UML2 | Объектно-ориентированное моделирование. Системы типов. Абстрактные типы данных (ADT). Понятие о классах. Статическое представление модели UML2. Сравнение с моделями данных ER |
29/09 | DDD | Выделение классов и построение моделей в Методы именных групп и Аббота, контрольные списки. Переход к статической модели UML. Повсеместный язык, сущности, агрегаты. Окрестности, предметные области. |
06/10 | DDD+UML2 | Моделирование поведения. Согласованность моделей. Проектирование на основе обязанностей (метод CRC, RDD). |
13/10 | UML2 | Динамическое представление модели (кооперации, последовательности). Статическое представление модели (структурные классы, расширенные классы, пакеты) |
20/10 | UML2 | Динамическое представление модели. Схемы состояний. Представление деятельности. Action Language |
27/10 | UML2+PROC | Построение согласованных моделей. Big Picture UML2. Процесс гибкого моделирования по требованиям (на основе ICONIX+AM+DDD) |
02/11 | ARCH | Методы структурного проектирования (история, связность и сцепление, постепенное уточнение). Введение в архитектуру ПО (определение,стили). |
09/11 | ARCH+UML2 | Функциональная декомпозиция. UML 2. Диаграммы компонентов и размещения |
16/11 | MSA | Введение в микросервисную архитектуру. Ресурсы. Распределенные системы. Декомпозиция на окрестности и на сервисы. Гексагональная архитектура. Паттерны API и коммуникаций. Представление на диаграмме компонентов. |
23/11 | MSA | Паттерны, принципы SOLID в реализации микросервисов. Фреймворки. |
30/11 | MSA | Объектно-ориентированное проектирование. Применение паттернов проектирования. |
07/12 | MSA+DATA | Проектирование данных. Реляционная, размерностные, нереляционные модели. Применение для MSA |
14/12 | ARCH+MSA | Измерения в проектировании. Метрики сложности программ, оценка качества дизайна для ООП, для MSA |
21/12 | EXAM | Защита проектов по курсу |
Руководитель курса
Хританков Антон
Преподаватели курса
Материалы занятий
Оценки
Правила оценивания (по баллам, набранным в рамках семестра)