Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Uml Book (Rus).doc
Скачиваний:
15
Добавлен:
11.08.2019
Размер:
58.74 Mб
Скачать

Стандартные элементы

Все механизмы расширения языка UML (см. главу 6) применимы к объектам. Тем не менее экземплярам обычно не приписывают стереотип непосредственно и не связывают с ними помеченных значений. Вместо этого стереотипы и поме­ченные значения объекта выводятся из ассоциированных с ним абстракций. В ка­честве примера на рис. 13.5 показано, как можно явно приписать стереотип само­му объекту или его абстракции.

В UML определено два стандартных стереотипа (см. «Приложение В»), при­менимых к отношениям зависимости между объектами и классами.

  • instanceOf - показывает, что объект-клиент является экземпляром клас­сификатора-поставщика;

  • instantiate - показывает, что класс-клиент создает экземпляры классифи­катора-поставщика.

Существует также два относящихся к объектам стереотипа, применимых к со­общениям и переходам между состояниями (см. главу 18):

  • become - говорит, что объект-клиент - это тот же объект, что и поставщик, но в более поздний момент времени и, возможно, имеющий другие значения, состояния или роли;

  • copy - показывает, что объект-клиент является точной, но независимой ко­пией поставщика.

Кроме стереотипов, в UML определено одно стандартное ограничение, приме­нимое к объектам:

  • transient - показывает, что во время выполнения взаимодействия (см. главу 15) создается экземпляр роли, который уничтожается перед заверше­нием выполнения.

Типичные приемы моделирования Конкретные экземпляры

Моделируя конкретные экземпляры, вы визуализируете сущности, принадле­жащие реальному миру. Конечно, вы не сможете увидеть экземпляр класса Кли­ент, если этот клиент не стоит перед вами, но в отладчике вы можете увидеть пред­ставление этого объекта.

Одна из сфер применения объектов - моделирование конкретных экземпляров. существующих в реальном мире. Например, моделируя топологию сети вашей орга­низации, вы пользуетесь диаграммами развертывания (см. главу 30), содержащим" экземпляры узлов. Аналогично, если вы хотите моделировать компоненты, распи-ложенные в физических узлах этой сети, то будете пользоваться диаграммами ко?' понентов (см. главу 29), которые содержат их экземпляры. Наконец, если к ваше» работающей системе подключен отладчик, вы сможете представить структурные отношения между экземплярами с помощью диаграммы объектов (см. главу 14).

Моделирование конкретных экземпляров осуществляется так:

1 Идентифицируйте экземпляры, необходимые и достаточные для визуализа­ции, специфицирования, конструирования или документирования модели­руемой задачи.

2. Изобразите эти объекты как экземпляры с помощью UML. Если можно, дай­те каждому из них собственное имя. Если для объекта не существует осмыс­ленного имени, изобразите его как анонимный объект.

3. Выявите для каждого экземпляра стереотипы, помеченные значения и атрибуты (вместе с их значениями), необходимые и достаточные для моделиро­вания задачи.

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

В качестве примера на рис. 13.6 показана диаграмма объектов, взятая из систе­мы проверки подлинности кредитных карточек. Такой ее можно увидеть в отлад­чике, тестирующем работающее приложение. На рисунке показан один мульти-объект, содержащий анонимные экземпляры класса Transaction. Присутствуют также два явно поименованных объекта - primary Agent и current, в описании которых показан класс, хотя и по-разному. На диаграмме явно показано и текущее состояние объекта primary Agent.

Обратите внимание на использование зависимости со стереотипом instanceOf указывающей на класс primary Agent. Обычно такие отношения «класс/объект» показывают явным образом, только если собираются показать и отношения с дру­гими классами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]