Семинар. Применение стратифицированного дизайна

Семинар. Применение стратифицированного дизайна #

Занятие будет проведено в формате семинара. На семинаре каждый слушатель курса должен представить свою работу. Другие слушатели курса должны обсудить с ним полученные результаты.

Задача #

Вам необходимо применить шаблоны формирования стратифицированного дизайна к своему коду. Предлагаемая последовательность действий:

  1. Взять исходный код приложения, который был реализован слушателем самостоятельно. Используйте финальный результат предыдущего семинара: это тот же код, к которому уже применены техники выделения вычислений и копирования при записи.
  2. Для текущего состояния сформировать:
    • Описание структур данных, которые используются приложением: перечень сущностей, их полей и связей (диаграмма классов, ER-диаграмма или mermaid), отдельно — до и после внесённых изменений.
    • Граф вызовов методов.
      • Следует обосновать выделение конкретных слоёв.
      • Следует выполнить маркировку методов согласно категориям кода: действия (взаимодействие с внешним миром), вычисления (детерминированная обработка данных), данные (структуры и конструкторы). Категории введены в занятии «Действия, вычисления и данные».
  3. Провести серию изменений кода, направленных на формирование явных слоёв со своим назначением.
    • Можно выделить барьер из абстракций, но это не является обязательной задачей.
  4. Выполнить сравнение оригинального графа вызовов и изменённого графа: число слоёв, максимальная длина стрелки, число функций, напрямую зависящих от нижних слоёв. Сформулировать вывод о влиянии изменений на сопровождение, тестирование и переиспользование кода.

Данную последовательность действий необходимо представить в формате презентации и сохранить изменения в 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

© A. M. Васильев, 2026, CC BY-SA 4.0, andrey@crafted.su