Виртуальный симулятор робота и его окружения - Core Domain
- Почему: Основная отличительная особенность продукта - возможность программировать робота в виртуальном окружении
- Включает: игровой движок, бизнес-правила симуляции (например: пошаговое выполнение пользовательской программы, механизмы переключения между уровнями), ассеты (модели, анимации, звуки)
Инструменты для разработки пользовательских программ - Supporting Subdomain
- Почему: Поддержка процесса написания программ для робота
- Включает: редактор кода, управление компиляторами, инструменты визуального программирования
Управление учебным процессом - Supporting Subdomain
- Почему: Поддержка процесса обучения - объединение учебных материалов в курс, отслеживание прогресса пользователей
- Включает: определение пользователя-ученика, пользователя-преподавателя, механики перехода между уроками
Управление учебными материалами - Supporting Subdomain
- Почему: Поддерживает процесс обучения - предоставляет инструменты для создания учебных материалов
- Включает: определение пользователя-методиста, управление различными банками заданий
Аутентификация и авторизация - Generic Subdomain
- Почему: Стандартная функциональность, может быть реализована с помощью готовых решений
- Включает: регистрацию, вход, управление ролями для всех видов пользователей
Simulation Context
- Решает проблемы проверки поведения робота
- Отвечает за: взаимодействие с игровым движком, симуляцию роботов, физику окружения, выполнение скомпилированных программ
- Связан с: Coding Context (получает программы для выполнения) и Learning Process Context (получает задания, отправляет результаты)
Coding Context
- Решает проблемы программирования робота, области симулятора инструментов разработки
- Отвечает за: редакторы кода, компиляцию, визуальное программирование, отладку
- Связан с: Simulation Context (передает скомпилированные программы)
Learning Process Context
- Решает проблемы прохождения по учебному процессу, области симулятора, управления учебным процессом и управления учебными материалами
- Отвечает за: прогресс студентов, переходы между уроками, управление курсами
- Связан с: Simulation Context (отправляет задания) и Materials Context (получает учебные материалы)
Materials Context
- Решает проблемы управления учебными материалами
- Отвечает за: инструменты создания и хранения заданий, методические материалы, банки заданий
- Связан с: Learning Process Context (предоставляет материалы для курсов)
Identity Context
- Решает проблемы идентификациии пользователей и проверки прав, область аутентификация и авторизация
- Отвечает за: управление пользователями (ученики, преподаватели, методисты) и их правами
- Связан со всеми контекстами
Coding + Simulation Integration - Customer-Supplier
- Почему: Coding управляет Simulation, отправляет программы для выполнения и обеспечивает отладку
Simulation + Learning Process Integration - Published Language
- Почему: Взаимодействие через фиксированный контракт данных
Learning Process + Materials Integration - Shared Kernel
- Почему: Тесная связь между учебным процессом и материалами
Все контексты + Identity Integration - Anti-Corruption Layer (ACL)
- Почему: Изоляция бизнес-логики от деталей аутентификации
Coding + Learning Process Integration - Separate Ways
- Почему: Минимальная связь - взаимодействие через Simulation Context