Семинар. Применение стратифицированного дизайна #
Занятие будет проведено в формате семинара. На семинаре каждый слушатель курса должен представить свою работу. Другие слушатели курса должны обсудить с ним полученные результаты.
Задача #
Вам необходимо применить шаблоны формирования стратифицированного дизайна к своему коду. Предлагаемая последовательность действий:
- Взять исходный код приложения, который был реализован слушателем самостоятельно. Используйте финальный результат предыдущего семинара: это тот же код, к которому уже применены техники выделения вычислений и копирования при записи.
- Для текущего состояния сформировать:
- Описание структур данных, которые используются приложением: перечень сущностей, их полей и связей (диаграмма классов, ER-диаграмма или mermaid), отдельно — до и после внесённых изменений.
- Граф вызовов методов.
- Следует обосновать выделение конкретных слоёв.
- Следует выполнить маркировку методов согласно категориям кода: действия (взаимодействие с внешним миром), вычисления (детерминированная обработка данных), данные (структуры и конструкторы). Категории введены в занятии «Действия, вычисления и данные».
- Провести серию изменений кода, направленных на формирование явных слоёв со своим назначением.
- Можно выделить барьер из абстракций, но это не является обязательной задачей.
- Выполнить сравнение оригинального графа вызовов и изменённого графа: число слоёв, максимальная длина стрелки, число функций, напрямую зависящих от нижних слоёв. Сформулировать вывод о влиянии изменений на сопровождение, тестирование и переиспользование кода.
Данную последовательность действий необходимо представить в формате презентации и сохранить изменения в git-репозитории.
Требования к презентации #
Содержание #
Презентация должна освещать все ключевые этапы решения задачи. Обязательно необходимо:
- Сформировать граф вызовов изначально существующего кода.
- Описать изменения, которые были выполнены для улучшения структуры слоёв. Не менее 5 изменений с обоснованиями; для каждого указать, какой шаблон стратифицированного дизайна (несложная реализация, барьер из абстракций, минимальный интерфейс, удобные слои) оно реализует.
- Сформировать граф вызовов после выполнения работы над слоями.
Технические требования #
- Примеры исходного кода должны добавляться текстом, а не изображением.
- Диаграммы графа вызовов должны быть добавлены в формате векторной графики (svg), а не растровых изображений. Рекомендуемый инструмент — Graphviz (
dot -Tsvg) или mermaid; исходник диаграммы приложите к репозиторию. - Объём презентации — не более 12 слайдов (регламент выступления 10 минут).
- В качестве ответа необходимо загрузить презентацию в общедоступных форматах: PDF, HTML и т.д. и ссылку на git-репозиторий с историей изменений. Не рекомендуется использовать «сырые» форматы презентаций ppt, pptx, odp.
Проведение семинара #
- Каждый студент представляет свою работу в течение 10 минут.
- После представления работы есть до 5 минут для обсуждения.
Если для обсуждения результатов работ не хватит одного занятия, тогда будет использовано два занятия.
Критерии оценивания #
Доклад (20 баллов) #
A – Граф вызовов исходного состояния (5 баллов) #
- Все методы, задействованные в работе, представлены на графе
- Показаны связи между методами и использованные конструкции языка
- Стрелки направлены от верхних слоёв к нижним
B – Обоснование слоёв и маркировка (5 баллов) #
- Названо назначение каждого слоя
- Методы размечены по категориям кода (действия, вычисления, данные)
- Обосновано положение спорных методов
C – Изменения кода (5 баллов) #
- Представлено не менее 5 изменений, для каждого указан мотив
- Каждое изменение отнесено к одному из шаблонов стратифицированного дизайна (№ 1–4)
- Изменения прослеживаются до графа вызовов «после»
D – Сравнение графов и выводы (5 баллов) #
- Сопоставлены графы до и после, названы устранённые длинные стрелки
- Сделан вывод о влиянии на сопровождение, тестирование и переиспользование
Активность на семинаре (10 баллов) #
E – Вопросы и комментарии к докладам других студентов (5 баллов) #
- 5 баллов — актуальные и содержательные вопросы, связанные с темой курса
- 3 балла — вопросы заданы, но без глубины или связаны с темой лишь частично
- 1 балл — вопросы формальные или не связаны с темой
F – Ответы на вопросы к собственному докладу (5 баллов) #
- 5 баллов — корректные ответы, готовность аргументировать выбор техник и решений
- 3 балла — ответы даны, но аргументация слабая
- 1 балл — ответы некорректные или отсутствуют
Минимальный порог #
Менее 2 баллов в любом критерии — семинар не засчитан.
Пересчёт в 5-балльную оценку #
- 0–6 баллов → оценка 1
- 7–12 баллов → оценка 2
- 13–18 баллов → оценка 3
- 19–24 баллов → оценка 4
- 25–30 баллов → оценка 5