Рекомендация: Субъект
Эта рекомендация иллюстрирует концепцию субъекта и помогает определить субъекты.
Взаимосвязи
Связанные элементы
Основное описание

Объяснение

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

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

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

Диаграмма, описанная в тексте.

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

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

Один и тот же пользователь может быть представителем различных субъектов (т.е. один и тот же пользователь может играть разные роли).

Диаграмма, описанная в тексте.

Чарли обычно работает с Системой управления складом в роли Заведующего складом, но иногда он работает с ней и как обычный Грузчик.

Выявление субъектов

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

Какие из околосистемных объектов станут субъектами системы?

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

  • Кто будет предоставлять, использовать или удалять информацию?
  • Кто будет этим пользоваться?
  • Кто заинтересован в том или ином требовании?
  • В каком отделе организации используется система?
  • Кто будет поддерживать и обслуживать систему?
  • Каковы внешние ресурсы системы?
  • Каким системам потребуется взаимодействовать с данной?

Различные типы околосистемных объектов будут представлены как разные субъекты:

  • Пользователи, выполняющие основные функции в системе.
Пример:

У Системы управления складом, предназначенной для работы со складом, категории пользователей таковы: Грузчик, Кладовщик, Заведующий складом. Все эти категории играют определенные роли в системе, поэтому каждый из них должен быть представлен отдельным субъектом.

  • Пользователи, выполняющие второстепенные функции в системе, например системное администрирование.
Пример:

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

  • Внешнее аппаратное обеспечение системы.
Пример:

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

  • Другие системы, взаимодействующие с данной.
Пример:

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

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

Пример: 

Системы, предоставляющие информацию (например, поисковые машины), имеют дело с совершенно анонимными субъектами, которые обращаются к приложению исключительно с целью получить сведения по интересующему их вопросу.  

Пример: 

Правительственные информационные сайты, предназначение которых - предоставить любому гражданину (пользователю сети) информацию о законах, правилах, установленном порядке, формах и т.п. Например, у Американской налоговой службы есть свой Web-сайт, на котором можно найти инструкции по заполнению налоговой декларации. Это означает, что создатель сайта должен предоставить все бланки в электронном виде, а также обеспечить возможность заполнения этих бланков в Internet. Роль основного субъекта в данном случае - любое лицо, собирающееся заполнить налоговую декларацию в США. Разумеется, после заполнения декларации пользователь перестает быть анонимным.  

Субъекты помогают определить границы системы

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

Пример:

Рассмотрим систему бронирования авиабилетов. Кто будет в ней субъектом? Это зависит от того, будет ли эта система использоваться турагентом или же это будет система, к которой пассажир сможет подключаться напрямую через Internet.

На диаграмме турист обращается к турагенту, а тот подключается к Системе бронирования авиабилетов.

Если вы создаете систему бронирования авиабилетов, предназначенную для турагента, то субъектом будет турагент. Турист не работает с системой напрямую и поэтому не является субъектом.

На диаграмме турист напрямую подключается к Системе бронирования авиабилетов.

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

Краткое описание

Краткое описание субъекта должно содержать следующие сведения:

  • Кого или что представляет субъект.
  • Почему необходим субъект.
  • Каковы интересы субъекта в системе.

Краткое описание должно состоять максимум из нескольких предложений.

Пример:

В модели варианта использования машины для переработки вторсырья три субъекта кратко описываются следующим образом:

Клиент: Клиент собирает у себя дома бутылки, банки и ящики, а затем сдает их в магазин, чтобы вернуть залог.

Оператор: Оператор отвечает за обслуживание машины для переработки вторсырья.

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

Характеристики субъекта

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

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

В большинстве случаев можно ограничиться грубой оценкой количества пользователей и частоты обращений. Разница между 30 и 40 не повлияет на макет пользовательского интерфейса, но разница между 3 и 30 - уже да.

Далее перечислены другие характеристики субъекта:

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

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

Пример:

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

  • Пользователь почты - это опытный пользователь PC.

  • Обычно рабочая среда пользователя почты - это тихий офис.

  • Целевое число пользователей почты - 500 000.