PRO предметную область
На собеседованиях (ссылка на серию постов про правильное собеседование➡️: ссылка) мы всегда даём практическое задание: сформировать техническое задание для разработки приложения для интернет-магазин, онлайн-сервис для доставки еды или, например, онлайн-приложение для офлайн-кинотеатра.
И тут большинство кандидатов сразу начинают рисовать схему базы данных: “Фильмы”, “Залы”, “Билеты”.
На схеме выглядит серьёзно, но это неправильный первый шаг, т.к. отсутствует критерий завершённости.
👉 Работа над такой задачей начинается не с таблиц базы данных, а со сбора требований и, в частности, анализа предметной области.
📌 Что это такое?
Предметная область — это часть реального мира, которую мы описываем и автоматизируем.
Она включает:
✔️сущности (объекты): фильм, зал, место, билет, клиент;
✔️атрибуты сущностей: название фильма, возрастное ограничение, цена билета;
✔️связи: фильм идёт в зале, место принадлежит залу, билет закреплён за местом;
✔️процессы: покупка билета, бронирование, возврат, отмена сеанса, продажа попкорна;
✔️правила: одно место = один билет, возврат возможен только до начала сеанса, бронь снимается за 30 минут до старта, скидка действует только по средам;
✔️роли и участники: клиент, кассир, администратор кинотеатра;
✔️ограничения: продажа онлайн закрывается за 15 минут до начала, максимум 10 билетов в одни руки;
✔️события: сеанс отменён, билет возвращён, бронь просрочена.
Проще говоря, предметная область — это и «кто есть кто», и «что происходит», и «по каким законам это работает».
📌 Почему важно начинать с анализа предметной области?
1⃣ У разных ролей разное понимание «билета». Для кассира — это чек, для маркетолога — инструмент акции, для бухгалтера — строка отчёта. Если не договориться на старте — система получится «разной для каждого».
2⃣ Можно упустить важные процессы и правила. Например, не описав возврат, разработчики сделают «возврат всегда возможен» — и бизнес уйдёт в минус.
3⃣ От корректного описания предметной области, в итоге, напрямую зависят архитектура, база данных и интерфейсы.
📌 Как начинать проектирование?
– определить сущности и их атрибуты;
– выявить связи;
– зафиксировать процессы;
– сформулировать правила и ограничения;
– уточнить роли и события, влияющие на систему.
И только после этого - переходить к базе данных, API и интерфейсам.
🎬 При съёмках фильма это выглядело бы так: сначала - сценарий с героями, их отношениями и законами вселенной, а уже потом - актёры, костюмы и спецэффекты. Если перепутать шаги, получится история уровня «Кошки» (тот самый мюзикл, который в кино лучше не повторять 🙈).
——
А вот главный вопрос: как понять, где проходят границы предметной области? 👇
📌 В следующей статье мы как раз поговорим о контексте предметной области и разберёмся, как правильно очерчивать эти границы.
——
✌️ PRO SA |👩🎓 НСА 2.0 🔤🔤🔤🔤
Post #96
501

- 🔥 9
- 👍 5
- ❤ 1
- 👏 1