Предметная область и словарь
Предметная область — это часть реальности, с которой работает информационная система. В ней уже существуют участники, документы, процессы, события, правила и устойчивые термины. Если эти термины не разобрать, модель быстро начнёт распадаться: разные люди будут использовать одни и те же слова в разных смыслах или разные слова для одного понятия.
Словарь предметной области кажется простым артефактом, но он сильно влияет на качество всей модели. “Заявка” для пользователя может быть просьбой, для сотрудника — документом на согласовании, для разработчика — записью в базе, а для руководителя — единицей отчётности. Пока это не разобрано, модель будет неустойчивой.
Словарь не должен быть просто списком слов. Полезная структура выглядит так:
| Поле | Что фиксируется |
|---|---|
| Термин | основное название понятия |
| Определение | смысл термина в рамках проекта |
| Синонимы | другие используемые названия |
| Источник | документ, интервью, процесс, эксперт |
| Пример использования | фраза или ситуация, где термин встречается |
| Связанные правила | бизнес-правила, где термин участвует |
| Связанные сценарии | где понятие используется в поведении системы |
| Возможная роль в модели | класс, атрибут, состояние, документ, событие |
Словарь не нужно пытаться завершить в начале. Первая версия появляется при анализе предметной области и требований. Затем термины уточняются в сценариях и процессах. После построения концептуальной модели часть терминов превращается в классы, атрибуты, состояния или связи. Некоторые термины, наоборот, отбрасываются как несущественные для системы.
Пример фрагмента словаря для записи на консультации:
| Термин | Определение | Синонимы | Возможная роль |
|---|---|---|---|
| Консультация | встреча студента и преподавателя по учебному вопросу | приём, встреча | событие или услуга |
| Интервал консультации | время, доступное для записи | слот, окно | предметный объект |
| Запись | подтверждённое бронирование интервала студентом | бронь | объект с жизненным циклом |
| Отмена | прекращение активной записи | отказ | событие или операция |
Единый язык — это мягкая подготовка к более глубокому предметному анализу. Даже без использования полной терминологии DDD важно, чтобы участники говорили об одних и тех же понятиях одинаковыми словами.
Со словарём удобно работать итеративно. Сначала фиксируются очевидные термины из темы проекта. Затем добавляются термины из требований и интервью. После описания сценариев появляются названия действий, состояний и результатов. После процессной модели становятся заметны документы, события и промежуточные данные. На этапе концептуального моделирования словарь уточняется: часть терминов становится классами, часть — атрибутами, часть — ролями или состояниями.
Важно фиксировать спорные термины. Если разные участники называют один и тот же объект по-разному, нужно выбрать основное название и записать синонимы. Если одно слово используется в разных смыслах, лучше развести понятия: например, “заявка” как документ и “заявка” как процесс обработки.