3. Моделирование (статическая и динамическая модели) - gilgenbergg/green_office GitHub Wiki
Статическая модель предметной области представлена в виде диагрммы классов:
Сущности Client, Landscaper и Admin наследуются от базового класса User. В первую очередь, это обусловлено тем, что за каждым пользователем независимо от его роли закреплен единообразный численный идентификатор в базе пользователей с соответствующими для учетной записи входными данными. Тем не менее специфичные классы ролей расширяют данную сущность наличием определенной логики, характерной для каждой из них.
Сущности Plant и ClientRequest агрегируются клиентом, что видно из соответствующего вида стрелок, т.к. каждый клиент может обладать несколькими объектами данного вида. Аналогично Admin агрегирует ClientRequests и PurchaseRequests, т.к. одновременно работает над несколькими из них.
В рамках каждого бизнес-процесса осуществляется движение сущностей, изменение их состояний. Наглядно это можно представить при помощи динамического моделирования. Далее приведены модели для двух наиболее “емких” и “интересных” с точки зрения логики процессов:
- Обработка заявки диспетчером
- Выполнение заявки сотрудником службы по озеленению: