Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Объекты и их графическое изображение




Определение 2. Объект (object) - сущность с хорошо определенными границами и индивидуальностью, которая инкапсулирует состояние и поведение.

В контексте языка UML любой объект является экземпляром класса, описанного в модели и представленного на диаграмме классов. Объект создается на этапе реализации модели или выполнения программы. Он имеет собственное имя и конкретные значения атрибутов, определяющие его состояние в данный момент времени.

Пример. Все мы являемся объектами класса "Человек" и различимы между собой по таким признакам (значениям атрибутов), как имя, цвет волос, глаз, рост, вес, возраст и т. д. (в зависимости от того, какую задачу мы рассматриваем и какие свойства человека для нас в ней важны).

Рассмотрим особенности семантики и графического представления объектов на диаграммах.

Для диаграмм кооперации полное имя объекта в целом представляет собой строку текста, разделенную двоеточием и записанную в формате:

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

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

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

Имя класса – это имя одного из классов, представленного на диаграмме классов.

Собственное имя объекта должно начинаться со строчной буквы.

Имя объекта, имя роли с символом "/" или имя класса могут отсутствовать. Однако двоеточие всегда должно стоять перед именем класса, а косая черта – перед именем роли.

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

· main: Form – объект с собственным именем main, экземпляр класса Form.

·: Form – анонимный объект, экземпляр класса Form.

· фирма: (или просто фирма) - объект-сирота с собственным именем фирма.

· фирма / Адресат: Клиент - объект с собственным именем фирма, экземпляр класса Клиент, играющий роль Адресат.

· / Адресат: Клиент - анонимный объект, экземпляр класса Клиент, играющий роль Адресат.

· object1 / Обработчик запросов - объект -сирота с собственным именем object1, играющий роль Обработчик запросов.

· / Обработчик запросов - анонимный объект и одновременно объект -сирота, играющий роль Обработчик запросов.

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

Примеры изображения объектов на диаграммах приводятся на рис. 3.

Рис. 3. Примеры графических изображений объектов на диаграммах.

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

Отсутствовать может и имя класса – такой объект называется сиротой. Для него записывается только собственное имя объекта, двоеточие не ставится (рис. 3 г).

Для указания значений атрибутов объекта в его обозначении может быть предусмотрена специальная секция, отделенная от имени объекта чертой. (рис. 3 б).

Для отдельных объектов (рис. 3 д, е) могут быть дополнительно указаны роли, которые они играют в кооперации.

В контексте языка UML все объекты делятся на две категории: пассивные и активные.

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

Активный объект (active object) имеет собственный процесс управления и может инициировать деятельность по управлению другими объектами. На диаграмме кооперации он обозначается прямоугольником с утолщенными границами (рис. 4). Каждый активный объект является владельцем определенного процесса управления. В данном фрагменте диаграммы кооперации активный объект а:Клиент является инициатором открытия счета, который представлен анонимным объектом:Счет.

Рис. 4. Графическое изображение активного объекта (слева) на диаграмме кооперации.

Также существуют понятия мультиобъекта и составного объекта.

Определение 3. Мультиобъект (multiobject) - это множество анонимных объектов, которые могут быть образованы на основе одного класса.

На диаграмме кооперации мультиобъект используется для того, чтобы показать операции и сигналы, которые адресованы всему множеству анонимных объектов, например, операция выбора - поиска определенного объекта. Мультиобъект изображается двумя прямоугольниками, один из которых выступает из-за верхней правой вершины другого (рис. 5 а). При этом стрелка взаимосвязи относится ко всему множеству объектов, которые обозначает данный мультиобъект. На диаграмме кооперации может быть явно указано отношение агрегации (композиции) между мультиобъектом и отдельным объектом из его множества (рис. 5 б).

Рис. 5. Графическое изображение мультиобъектов на диаграмме кооперации.

Пример. Рассматрим ситуацию с отправкой почтового сообщения клиенту из редактора электронной почты (рис. 6). Анонимный активный объект класса РедакторEmail вначале посылает сообщение анонимному мультиобъекту класса Клиент. Это сообщение инициирует выбор единственного объекта класса Клиент, удовлетворяющего дополнительным условиям. После этого выбранному объекту посылается сообщение, инициирующее отправку электронного письма.

Рис. 6. Диаграмма кооперации, показывающая выбор адреса клиента для отправки электронного письма.

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

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

Рис. 7. Графическое изображение составного объекта на диаграмме кооперации.

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




Поделиться с друзьями:


Дата добавления: 2014-10-15; Просмотров: 888; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.