Диаграмма последовательности: объекты актеров?

11

Наиболее вероятный ответ - нет, но я пришел с этим сомнением. Может ли актер выступать в качестве класса?

Я знаю, что актеры инициируют события и могут иметь приглашения, но если есть класс, моделирующий актера (например, пользовательский класс), можем ли мы вызывать методы над ними? Или это полное недопонимание роли актера, которое смешивается с представительным классом?

Предполагается, что правильно:

Предполагаемый правильный пример

Сомневаюсь, если правильно:

введите описание изображения здесь

Тиаго Дуке
источник

Ответы:

8

В UML субъектом всегда является нечто (система или человек), выходящее за рамки создаваемой вами системы / программного обеспечения. Было бы совершенно неправильно приравнивать актера к экземпляру / объекту класса, который моделирует определенные аспекты актера в вашей системе.

На показанных диаграммах UML актер «Пользователь» (со значком в виде фигурки) представляет реального человека, управляющего вашей системой. Класс Userпредставляет модель этого человека, которая отражает характеристики, которые важны для вас. Этот класс существует только в вашей системе.
Это означает, что класс и субъект являются двумя различными объектами и должны также отображаться на диаграммах в качестве таковых.

Барт ван Инген Шенау
источник
«Актер - это всегда нечто, выходящее за рамки системы / программного обеспечения, которое вы создаете». Тем не менее, субъект взаимодействует напрямую с объектом некоторого класса, инициируя стек вызовов. Поэтому он каким-то образом является частью системы (он представлен другим произвольным классом из уровня пользовательского интерфейса, который, скорее всего, не смоделирован диаграммой классов). Поначалу это кажется действительно нелогичным и, вероятно, является источником путаницы для некоторых людей.
dvdblk
Актер - это отдельная сущность. Актер существует, даже если система не существует. Актер инициирует, отключает и даже обеспечивает ввод в систему, но не находится внутри системы программного обеспечения для выполнения каких-либо задач системы. Система работает независимо от актера. Объекты могут имитировать действительные действующие лица, но все же зависят от человеческих действующих лиц при запуске, выходе и вводе прямо или косвенно.
user2994783