Table of Contents

Курс Инженерия требований к ПО (осень 2025)

На курсе вы узнаете:

  1. основы теории качества программных систем, познакомитесь со стандартами ГОСТ Р ИСО/МЭК 250хх (SQuARE)
  2. как проводить анализ требований к продуктам с применением гибких методов, методики историй пользователей и задач, и UseCase 2.0
  3. познакомитесь с требованиями ГОСТ 19 в части разработки технических заданий
  4. основы языка моделирования UML2 и станете разбираться в продвинутых вопросах его применения
  5. методы предметного-ориентированного проектирования (Domain-Driven Design, DDD) и их применение для создания микросервисных приложений (MSA)

Примерный план

Неделя Раздел Тема
16/09 INTRO+REQ Введение, цели и содержание курса. Кратко о требованиях. Понятие о качестве ПО. Модели качества. Стандарты серии ГОСТ Р ИСО/МЭК 250хх
23/09 UML2 UML2. Варианты использования. Сценарии. Use Case 2.0. Управление рамками системы. Заинтересованные стороны. Полезные функции (Фичи).
30/09 REQ Диаграммы потоков данных DFD. Примеры. Разработка требований к продуктам. Элементы customer development. Персоны.
07/10 REQ Метод JTBD. Путешествия и карта путешествий. Истории пользователей и истории задач. Процесс гибкой разработки требований.
14/10 REQ Порядок разработки программ по ГОСТ 19. Структура и содержание технического задания по ГОСТ 19.
21/10 DDD Моделирование в ООП. Системы типов. Абстрактные типы данных (ADT). Понятие о классах.
28/10 UML2 Элементы метамодели UML2. Моделирование структуры программы в UML2. Сравнение с моделями данных сущность-связь (ER).
04/11 DDD Методы объектно-ориентированного анализа. Методы именных групп и Аббота, контрольные списки. Основные понятия и приемы предметно-ориентированного проектирования (DDD). Повсеместный язык, сущности, агрегаты. Окрестности, предметные области.
11/11 DDD+UML2 Моделирование сценариев в системе. Структура в динамике. Взаимодействия, кооперации, последовательности в UML2. Проектирование на основе обязанностей (метод CRC, RDD). Согласованность моделей.
18/11 UML2 Моделирование динамики. Конечные автоматы и схемы состояний. Управление сложностью, пакеты и профили.
25/11 UML2 Моделирование процессов и алгоритмов. Сети Петри и модели деятельности (activity). Язык действий в UML2.
02/12 UML2+PROC Построение согласованных моделей. Big Picture UML2. Процесс гибкого моделирования по требованиям (на основе ICONIX+AM+DDD)
09/12 ARCH+MSA Введение в микросервисную архитектуру. Ресурсы. Декомпозиция на окрестности и на сервисы через DDD. Правило Конвея. Логические и физические DFD. Диаграммы компонентов в UML2.
16/12 EXAM Дифференцированный зачет, контрольная и защита проектов по курсу

Практика предполагает решение задач на семинарах, выполнение и защиту задания по командному курсовому проекту.

Для разработчиков, системных аналитиков и будущих архитекторов программного обеспечения.

Учебный проект

Учебный проект - это ваш полигон, где вы практикуетесь в применении DDD к разработке микросервисных приложений. Заданием по проекту может быть упрощенный аналог существующей системы, или ваш собственный проект, или часть квалификационной работы.

Задание посвящено проработке требований применению DDD к предметной области, в которой проектируете систему. Прорабатываете и уточняете требования и рамки проекта. В итоге для дальнейшего моделирования с помощью Domain Driven Design нужны 3-4 вариантв использования или 5-6 историй пользователей.

Примерная таблица этапов и применяемых методов.

#ЭтапМетоды и результатыЗадачи
1 Анализ требований к продукту Customer Development, JTBD, JTBD Interview, Personas, User story, Job story, Story Map, Customer Journey Map*, Value Proposition Canvas*, Jobs Map*, UI Wireframes, Product features Предложить и описать образ продукта и решаемые задачи. Определить аудиторию и провести интервью с пользователями. Сформулировать полезные функции и ограничить его рамки. Прояснить элементарные сценарии для полезных функций. Составить словарь данных.
2 Разработка модели анализа Use Case model, Use case text, Candidate classes, SIAOUT checklist, Abbot's method/Noun phrases, Entity-Relationship model По описанию продукта разработать модель использования. Выделить кандидаты классов, построить модель предметной области в UML2 или ERD. Выписать важные требования к атрибутам качества по стандарту.
3 Разработка динамической модели Responsibility-driven design, CRC, UML2 Collaborations model and implementation, UML2 Structured classes, UML2 Activity and Statechart and Interactions models, Logical Data-flow model. Разделить сценарии по обязанностям и назначить ролям классов. Разработать модель деятельности или псевдокод для исполняемого поведения, схемы состояний или конечных автоматов для интерактивного и реактивного, модели взаимодействий или потоков данных для эмерджентного поведения. Обновить модель классов / данных.
4 Декомпозиция на микросервисы Data consistency I, Ресурсы и алгоритмы / решетки типов, CRDT, Event storming, Domain-Driven Design, UML2 Components and Deployments models, Physical Data-flow model Разделить модель предметной области на агрегаты и сформировать микросервисы. Разработать модель событий и процессов. Разработать модель компонентов в UML2 или Physical DFD.

Результаты и оценивание проекта

Хорошо сделанный проект - это круче, чем типовое тестовое задание на архитектора программных систем, релевантный опыт в применении методов проектирования. Понравившиеся методы можно забрать к себе на работу или вспомнить к собеседованию.

Общие критерии оценивания приведены в методичке Критерии оценивания проектов

Задания по проекту, по возможности, выполняются на семинарах, защита проходит в виде доклада, материалы по проекту высылаются на проверку не позднее, чем за 1 неделю до даты доклада.

Если кратко, то оцениваются следующие харатеристики выполненного проекта

Коллоквиум, контрольная работа и устный ответ

Коллоквиум проводится в середине курса и служит для определения дальнейшей траектории участия в курсе. При успешной сдаче коллоквиума вознкиает возможность сдавать итоговый проект по курсу вместо контрольной работы и устного ответа.

  1. Одна задача на анализ и моделирование
  2. Одна из пройденных тем по курсу по билетам для ответа устно

Итоговая контрольная работа может быть предложена тем слушателям, кто не набрал достаточно баллов для получения оценки автоматом. В составе письменной контрольной работы на лекции будут предложены примерные задания.

  1. Две задачи на анализ проектирование с применением REQ, UML2, ER, DFD.
  2. Две темы по курсу по билетам для ответа устно.

Примерные критерии оценивания

Оценки по курсу

Критерии оценивания, итоговый балл

ИБ = 0,2 * (ПЗ или ЛЗ)+ 0,3 * КЛК + 0,7 * (ПРЭ или ЭКЗ)

ЛЗ + ПЗ - посещения лекций и работа на семинаре

КЛК - оценка за коллоквиум

ЭКЗ - устно-письменный экзамен в конце семестра

ПРЭ - курсовой проект

Литература

  1. Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel. UML @ Classroom
  2. C. Larman. Applying UML and Patterns
  3. Vaughn Vernon. Implementing Domain-Driven Design, (любое издание)
  4. Sam Newman. Building Microservices
  5. Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra. Head First Design Patterns
  6. Ian Sommerville. Software Engineering 10th Ed или Roger Pressman. Software Engineering: A Practitioner's Approach 8th Ed.
  7. UML diagrams reference, https://www.uml-diagrams.org