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

Материал из Public ATP Wiki
Версия от 12:05, 21 августа 2024; Zueva.mipt (обсуждение | вклад) (Примерный план)
Перейти к: навигация, поиск

Общие сведения

Общая информация

На курсе вы узнаете как использовать язык моделирования 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 Защита проектов по курсу

Руководитель курса

Хританков Антон

Преподаватели курса

Материалы занятий

Оценки

Правила оценивания (по баллам, набранным в рамках семестра)

Семинары

Технические ссылки

Сервера