Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
pps-new [2023/09/23 22:17] user [Контрольная работа] |
pps-new [2024/10/20 13:55] (current) user |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Курс Проектирование программных систем (осень 2023) ====== | ====== Курс Проектирование программных систем (осень 2023) ====== | ||
- | **Обновлено | + | **Обновлено |
На курсе вы узнаете как использовать язык моделирования UML2 в разработке распределенных приложений в микросервисной архитектуре (MSA) с применением метода предметно-ориентированного проектирования (Domain-Driven Design). | На курсе вы узнаете как использовать язык моделирования UML2 в разработке распределенных приложений в микросервисной архитектуре (MSA) с применением метода предметно-ориентированного проектирования (Domain-Driven Design). | ||
Line 36: | Line 36: | ||
| 23/11 | MSA | Паттерны, | | 23/11 | MSA | Паттерны, | ||
| 30/11 | MSA | Объектно-ориентированное проектирование. Применение паттернов проектирования. | | | 30/11 | MSA | Объектно-ориентированное проектирование. Применение паттернов проектирования. | | ||
- | | 07/12 | ARCH+MSA | Измерения в проектировании. Метрики сложности программ, | + | | 07/12 | MSA+DATA | Проектирование данных. Реляционная, |
- | | 14/12 | MSA+PROC | Процесс продуктовой разработки от потребности к дизайну REQ+DDD+MSA. Повторение и подготовка к контрольной работе. | + | | 14/12 | ARCH+MSA | Измерения в проектировании. Метрики сложности программ, |
| 21/12 | EXAM | Защита проектов по курсу | | | 21/12 | EXAM | Защита проектов по курсу | | ||
Line 47: | Line 47: | ||
Выполнение учебного проекта по интересной теме позволит упорядочить знания и умения в проектировании и разработке ПО, жизненно необходимые для старших разработчиков, | Выполнение учебного проекта по интересной теме позволит упорядочить знания и умения в проектировании и разработке ПО, жизненно необходимые для старших разработчиков, | ||
+ | |||
+ | Примерная таблица этапов проекта и применяемых методов проектирования. | ||
+ | |||
+ | ^# | ||
+ | | 1 | Анализ требований к продукту | Customer Development, | ||
+ | | 2 | Разработка модели анализа | Use Case model, Use case text, Candidate classes, SIAOUT checklist, Abbot' | ||
+ | | 3 | Разработка динамической модели | Responsibility-driven design, CRC, UML2 Collaborations model and implementation, | ||
+ | | 4 | Декомпозиция на микросервисы | Data consistency I, Ресурсы и алгоритмы / решетки типов, CRDT, Event storming, Domain-Driven Design, UML2 Components and Deployments models, Physical Data-flow model | Разделить модель предметной области на агрегаты и сформировать микросервисы. Разработать модель событий и процессов. Разработать модель компонентов в UML2 или Physical DFD. Разработать модель размещения | | ||
+ | | 5 | Техническое проектирование | Microservices applications, | ||
+ | | 6 | Проектирование данных и прототип | Polyglot persistence, | ||
==== Задание 1 ===== | ==== Задание 1 ===== | ||
Первое задание посвящено проработке требований применению DDD к предметной области, | Первое задание посвящено проработке требований применению DDD к предметной области, | ||
+ | |||
+ | В таблице выше это задание включает этапы 1-3. | ||
Что можно будет освоить: | Что можно будет освоить: | ||
Line 60: | Line 72: | ||
В этом задании нужно декомпозировать систему на сервисы и продумать для них API, переложить на микросервисную архитектуру (MSA), применив архитектурные паттерны для API, работы с реляционными и нереляционными данными, | В этом задании нужно декомпозировать систему на сервисы и продумать для них API, переложить на микросервисную архитектуру (MSA), применив архитектурные паттерны для API, работы с реляционными и нереляционными данными, | ||
+ | |||
+ | В таблице выше это задание включает этапы 4-6. | ||
Что можно будет освоить: | Что можно будет освоить: | ||
Line 68: | Line 82: | ||
- | ==== Результаты проекта ==== | + | ==== Результаты |
Хорошо сделанный проект - это круче, чем типовое тестовое задание на архитектора программных систем, | Хорошо сделанный проект - это круче, чем типовое тестовое задание на архитектора программных систем, | ||
- | Задания по проекту выполняются на семинарах, | + | Общие критерии оценивания приведены в методичке {{uml-verification-proc.pdf|Критерии оценивания проектов}} |
- | * согласованность | + | |
- | * правильность применения | + | Задания по проекту, по возможности, |
- | * вклад участников | + | |
+ | Если кратко, | ||
+ | * Согласованность | ||
+ | * Правильность применения | ||
+ | * Полнота выполнения проекта и следование рекомендациям | ||
+ | * Обоснованность | ||
+ | * Ошибки и недочеты | ||
+ | * Вклад участников в общий результат | ||
==== Примеры тем проектов ==== | ==== Примеры тем проектов ==== | ||
Line 97: | Line 118: | ||
См. также [[design: | См. также [[design: | ||
- | ===== Контрольная работа ===== | + | ===== Контрольная работа |
- | Контрольная работа может быть предложена тем студентам, | + | Контрольная работа может быть предложена тем студентам, |
- | - Задача на проектирование с применением UML2, ER, DFD, MSA, GoF, SOLID | + | - Задача на проектирование с применением UML2, ER, DFD, MSA, GoF, SOLID. |
- | - Вопросы по методам проектирования. | + | - Вопросы по методам проектирования |
+ | |||
+ | Примерные критерии оценивания | ||
+ | |||
+ | * Правильность и количество решенных задач | ||
+ | * Полнота и правильность ответа на вопросы по методам проектирования | ||
+ | * Ответы на дополнительные вопросы по теме | ||
+ | * Владение терминологией и методами проектирования | ||
+ | * Способность принимать и обосновывать проектировочные решения | ||
+ | * Способность находить и устранять ошибки в применении методов | ||
===== Оценки по курсу ===== | ===== Оценки по курсу ===== | ||
Line 107: | Line 137: | ||
Критерии оценивания, | Критерии оценивания, | ||
- | ИБ = 0,2 * ПЗ + 0,3 * ПР + 0,6 * КЗ | + | ИБ = 0,2 * (ПЗ или ЛЗ)+ 0,3 * КЛК |
- | ПЗ - посещения лекций и семинаров (допускается 2 пропуска) | + | ЛЗ + ПЗ - посещения лекций и работа на семинаре |
- | ПР - работа на семинарах (активность на занятиях) | + | КЛК |
- | КЗ - оба задания | + | ЭКЗ - устно-письменный экзамен в конце семестра |
+ | |||
+ | ПРЭ - курсовой проект | ||
Line 119: | Line 151: | ||
===== Литература ===== | ===== Литература ===== | ||
+ | - Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel. UML @ Classroom | ||
+ | - C. Larman. Applying UML and Patterns | ||
- Vaughn Vernon. Implementing Domain-Driven Design, (любое издание) | - Vaughn Vernon. Implementing Domain-Driven Design, (любое издание) | ||
- Sam Newman. Building Microservices | - Sam Newman. Building Microservices | ||
Line 203: | Line 237: | ||
**Хританков Антон Сергеевич**, | **Хританков Антон Сергеевич**, | ||
- | |||
- | **Межуев Игорь Юрьевич**, | ||
- | |||
- | **Андрианов Андрей Иванович**, | ||
< | < | ||
</ | </ | ||
+ | |||
В прошлом семинары по курсу вели | В прошлом семинары по курсу вели | ||
+ | |||
+ | **Межуев Игорь Юрьевич** | ||
+ | |||
+ | **Андрианов Андрей Иванович** | ||
+ | |||
**Ахтямов Павел Ибрагимович** | **Ахтямов Павел Ибрагимович** |