Что такое граничные классы, классы управления и классы сущностей в схемах классов UML?


85

Сейчас я использую NetBeans в качестве предпочтительной среды IDE, и в ней есть плагин для моделирования UML. В диаграмме классов, есть элементы модели , известные как Boundary Class, Control Classи Entity Class. Однако я не могу найти их хорошее определение, но я нашел этот сайт на диаграммах классов UML.

Ответы:


202

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

Они включают:

  1. Актеры
  2. Случаи использования
  3. Сущности
  4. Границы
  5. Управление

В то время как шаблон модель-представление-контроллер используется для пользовательских интерфейсов, шаблон Entity-Control-Boundary (ECB) используется для систем. Следующие аспекты ECB можно сравнить с абстрактной версией MVC, если это полезно:

Нотация UML

Сущности (модель)
Объекты, представляющие системные данные, часто из модели предметной области.

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

Элементы управления (контроллер)
Объекты, которые являются посредниками между границами и сущностями. Они служат связующим звеном между граничными элементами и элементами сущности, реализуя логику, необходимую для управления различными элементами и их взаимодействиями. Важно понимать, что вы можете решить реализовать контроллеры в своем дизайне как нечто иное, чем объекты - многие контроллеры достаточно просты, чтобы быть реализованными, например, как метод объекта или граничного класса.

К их общению применяются четыре правила:

  1. Актеры могут разговаривать только с граничными объектами.
  2. Граничные объекты могут общаться только с контроллерами и актерами.
  3. Объекты Entity могут общаться только с контроллерами.
  4. Контроллеры могут взаимодействовать с граничными объектами и объектами сущностей, а также с другими контроллерами, но не с акторами.

Общение разрешено:

         Entity    Boundary   Control
Entity     X                     X
Boundary                         X
Control    X          X          X

14
Судя по комментариям, этот ответ не помогает людям понять разницу между Entity Boundary Control и MVC. Один из них состоит в том, что граница - это не представление; это элемент системы, который управляет связью с элементами за пределами области проектирования, какой бы эта область ни была. Например, фасад PayPal REST API внутри вашей системы может быть пограничным элементом. Более того, ваши подсистемы могут иметь собственные границы. Сравните это с представлением, которое всегда является представлением с любой точки зрения и всегда доступно пользователю.
DavidS

2
Этот ответ действительно включает в себя то же самое: «Граница: объекты, которые взаимодействуют с системными субъектами (например, пользователем или внешней службой )». Во всяком случае, я считаю, что они разные: ECB - это не «упрощение» MVC.
DavidS

Точка, это стереотип , похоже, не будет определять в спецификации UML ...
Granier

23

Часто используется вместе с / как часть OOAD и бизнес-моделирования. Определение Нила правильное, но оно в основном идентично MVC, но просто абстрактно для бизнеса. «Хорошее резюме» сделано хорошо, поэтому я не буду его здесь копировать, так как это не моя работа, более подробная, но согласуется с маркированным списком Нила.

Хорошее резюме - Conceito: Entity-Control-Boundary Pattern

OOAD


3
Но MVC предназначен только для уровня просмотра.
Alex78191

2
Ответ должен содержать информацию, а не только ссылку на нее. К сожалению, ссылка мертва.
Johan

2
@ ted-johnson Есть шанс получить обновленную ссылку? Благодаря!
Нарше

Обновлена ​​ссылка на аналогичный сайт с контентом.
Тед Джонсон,

16

Это классовые стереотипы, используемые при анализе.

  • граничные классы - это классы на границе системы - классы, с которыми вы или другие системы взаимодействуете

  • классы сущностей классы - это ваши типичные бизнес-сущности, такие как "человек" и "банковский счет".

  • классы управления реализуют некоторую бизнес-логику или другую


5

Шаблон сущности Boundary Control имеет две версии:
- старый структурный, описанный в 127 (сущность как элементы модели данных, элемент управления как функции, граница как интерфейс приложения)
- новый шаблон


объекта как шаблон объекта:
- Boundary - это интерфейс для " другой мир »
- Контроль в любой внутренней логике (например, сервис в шаблоне DDD)
- Entity - это сервис сохранения для объектов (например, репозиторий в шаблоне DDD).
Все классы имеют операции (см. Анти-шаблон модели анемической предметной области Фаулера).
Все они являются компонентом модели в шаблоне MVC. Правила:
- Только Boundary предоставляет услуги для «другого мира»
- Boundary может вызывать только Controll
- Control может вызывать кого угодно
- Сущность не может никому звонить (!), Только звонить.

jz


4

На самом деле диаграммы устойчивости (или диаграммы анализа, как их иногда называют) - это просто специализированные диаграммы классов. Они являются частью UML с самого начала (см. Книгу Якобсона «Унифицированный процесс разработки программного обеспечения» - часть серии книг «Три Amigos»). Вышеупомянутая книга дает хорошее определение этих трех классов на стр. 183–185.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.