Должен ли я поставить актеров в доменную модель/класс-диаграмму?

StackOverflow https://stackoverflow.com/questions/2978886

  •  24-10-2019
  •  | 
  •  

Вопрос

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

Я приведу пример того, что я имею в виду:

Я занимаюсь программой планировщика для отдыха, в которой есть Administrator а также End-Users. Анкет А Administrator Несколько вещей, таких как регистрация End-Users в программе, изменение их преобладания и т. Д. End-User может выбрать свои дни для отдыха и т. Д.

Я изначально определил Administrator а также End-User как концепции в доменной модели, а затем в качестве классов в классовой диаграмме. В классной диаграмме оба класса в итоге имели несколько методов, таких как

Administrator.RegisterNewUser();
Administrator.UnregisterUser(int id);

и т.п.

Только через некоторое время я понял, что на самом деле оба Administrator а также End-User Актеры, и, возможно, я полностью понял этот дизайн. Вместо того, чтобы заполнять классы администратора и конечных пользователей методами, чтобы сделать то, что запрашивают мои скидки использования, я мог бы определить другие классы из домена, чтобы сделать их, и пусть контроллеры обрабатывают сведения об использовании (на самом деле я решил сделать один для каждого Применение). Я мог бы иметь UserDatabase.RegisterNewUser() а также UserDatabase.UnregisterUser(int id);, например, вместо того, чтобы иметь эти методы на Administrator учебный класс.

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

Это правильный подход? Или я ошибаюсь? Плохая ли идея поставить актеров в доменную модель/классовые диаграммы? Что для этого хороши правила?

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

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

Это было полезно?

Решение

Я бы не сказал, что ваш дизайн, как вы предполагаете, абсолютно неправильно, на самом деле администратор и конечный пользователь являются достоверными объектами домена, которые должны быть каким-то образом представлены на диаграммах классов. Тот факт, что вы идентифицируете эти две сущности как актеров, не означает, что они должны быть исключены из домена, помните, что ваш домен - ваш область или «соответствующий контекст», то есть набор полезных объектов, которые играют соответствующую роль в вашем решение.

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

  • Отпуск
  • Расположение
  • Тур-агент
  • Расписание
  • Пользователь
  • Бронирование
  • Служба бронирования (это может быть интерфейсом для доступа к материалам бронирования для отдыха)

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

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

Когда каждый возможный объект представлен со всеми его свойствами и методами, вы должны иметь полностью, хотя и еще не законченный, функциональный дизайн.

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

Наконец -то получите копию UML дистиллирован

С уважением,

Другие советы

Я думаю, что вам следует узнать больше о моделировании домена и процессе получения от вариантов использования к классовым диаграммам. Актеры в качестве классификаторов могут быть частью классовых диаграмм, однако для классов, используемых для анализа и проектирования, моделируют систему, которую вы разрабатываете, а участник является внешней сущностью. Когда вы используете варианты использования и диаграммы вариантов использования, цель состоит в том, чтобы определить функциональные и нефункциональные переважения, поэтому определить объем системы для разработки и внешних объектов - ролей или систем - взаимодействующих с системой, которую вы разрабатываете. На диаграммах использования вы можете найти ящик, представляющий границу системы, которая охватывает все варианты использования, которые будут реализованы в вашей системе, но актеры выходят из коробки. При моделировании домена вы обычно вообще забываете о системе, потому что вы хотите захватить способ работы домена. Часто специальные диаграммы и элементы моделирования используются для моделирования домена. Как я уже сказал, дело в том, чтобы понять домен, в котором будет использоваться система. Классовые диаграммы в фазе анализа и проектирования описывают систему, которую вы разрабатываете, поэтому ни один актеров не может быть внутри.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top