Самоучитель по UML

       

Объекты


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

Как отмечалось выше, объект (object) является отдельным экземпляром класса, который создается на этапе выполнения программы. Он может иметь свое собственное имя и конкретные значения атрибутов. Применительно к объектам формат строки классификатора дополняется именем объекта и приобретает следующий вид (при этом вся запись подчеркивается):

<Имя объекта>'/' <Имя роли классификатора> ':' <Имя классификатора> 

[':' <Имя классификатора >]*

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

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

Примечание

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


Ниже приводятся возможные варианты записи строки текста в прямоугольнике объекта.

  • : С — анонимный объект, образуемый на основе класса С. 


  • / R — анонимный объект, играющий роль R.




  • / R : С — анонимный объект, образуемый на основе класса С и играющий роль R.


  • О / R — объект с именем О, играющий роль R.


  • О : С — объект с именем О, образуемый на основе класса С.


  • О / R : С — объект с именем О, образуемый на основе класса С и играющий роль R.


  • О или — объект с именем О.


  • О : — "объект-сирота" с именем О.


  • / R — роль с именем R


  • : С — анонимная роль на базе класса С.


  • / R : С — роль с именем R на основе класса С.


  • Отдельные примеры изображения объектов и классов на диаграмме кооперации приводятся на следующем рисунке (рис. 9.4).





    Рис. 9.4.
    Примеры различных вариантов записи имен объектов, ролей и классов на диаграммах кооперации

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

    Применительно к уровню спецификации на диаграммах кооперации могут присутствовать именованные классы с указанием роли класса в кооперации (рис. 9.4, г) или анонимные классы, когда указывается только его роль (рис. 9.4, д). Последний случай характерен для ситуации, когда в модели могут присутствовать несколько классов с именем "Клиент", поэтому требуется явно указать имя соответствующего пакета База данных (рис. 9.4, е).



    Содержание раздела