2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 39
Текст из файла (страница 39)
Диаграмма объектов отражает состояние системы в фиксированный момент времени, как показано на рис. 14.1.departmentdepartmentБазовые понятияБазовые понятияНа диаграмме объектов (object diagram) показаны объекты и их связи в некоторый момент времени. Ее представляют в виде графа, состоящего из вершин и ребер.Общие свойстваОбщиесвойствадиаграммобсуждаются в главе 7.У диаграммы объектов, как и у любой диаграммы, есть имя и графическое содержание, являющееся проекцией модели. От прочихдиаграмм отличается своим конкретным наполнением.Объектыобсуждаютсяв главе 13,ссылки –в главе 16.Диаграммы объектов, как правило, содержат объекты и ссылки, а кроме того, подобно всем прочим диаграммам, могут включатьв себя примечания и ограничения.
Иногда в них помещают и классы, особенно если надо визуализировать классы, стоящие за каждым экземпляром.Диаграммыклассовобсуждаютсяв главе 8,диаграммывзаимодействия – в главе 19.ссылкаregionРис. 14.1. Диаграмма объектов201СодержаниеНа заметку. Диаграмма объектов соотносится с диаграммойклассов: последняя содержит описание общей ситуации, а первая – описание конкретных экземпляров, выводимых из диаграммы классов. На диаграмме объектов представлены прежде всего объекты и ссылки.
Диаграммы размещения такжевстречаются в двух формах: общей форме и форме экземпляров. В первом случае они описывают типы узлов, а во втором –конкретную конфигурацию экземпляров узлов, описываемыхэтими типами.Типичное применениеПредставления проектированияобсуждаются в главе 2.С помощью диаграмм объектов, как и с помощью диаграммклассов, моделируют статическое представление системы с точкизрения проектирования или процессов, но принимая во вниманиереальные экземпляры или прототипы. Это представление отражаетглавным образом функциональные требования к системе, то естьуслуги, которые она должна предоставлять конечным пользователям.
Диаграммы объектов позволяют моделировать статическиеструктуры данных.При моделировании статического представления системы с точки зрения проектирования или взаимодействия диаграммы объектов обычно применяют для моделирования структуры объектов.Диаграммы202Диаграммывзаимодействия обсуждаютсяв главе 19.Моделирование структуры объектов предполагает получение«снимка» объектов системы в данный момент времени.
Диаграмма объектов представляет один статический кадр в динамическомсценарии, описываемом диаграммой взаимодействия. Они применяются для визуализации, специфицирования, конструированияи документирования определенных экземпляров в системе, а такжесвязей между этими экземплярами. Динамику поведения можноизобразить в виде последовательности кадров.Типичные приемы моделированияМоделирование структур объектовКонструируя диаграмму классов, компонентов или размещения,вы на самом деле описываете группу интересующих вас абстракцийи раскрываете в данном контексте их семантику и связи с другимиабстракциями в группе.
Эти диаграммы отражают только потенциальные возможности. Например, если класс А связан с классом B ассоциацией типа «одинFкоFмногим», то с одним экземпляром классаА может быть связано пять экземпляров класса B, а с другим – толькоодин. Кроме того, в любой конкретный момент времени экземпляркласса А и связанные с ним экземпляры класса B будут иметь вполне определенные значения своих атрибутов и состояния автоматов.«Заморозив» работающую систему или просто представив себенекий миг в жизни моделируемой системы, вы обнаружите совокупность объектов, каждый из которых находится в определенномсостоянии и имеет конкретные связи с другими объектами.
Диаграммы объектов позволяют визуализировать, специфицировать,конструировать и документировать структуру, образуемую этимиобъектами. Особенно полезны они бывают при моделированиисложных структур данных.При моделировании вида системы с точки зрения проектирования при помощи набора диаграмм классов можно полностью определить семантику абстракций и их связей. Однако диаграммы объектов не позволяют полностью описать объектную структуру системы.У класса может быть большое количество различных экземпляров,а при наличии нескольких классов, связанных друг с другом, числовозможных конфигураций объектов многократно возрастает. Поэтому при использовании диаграмм объектов нужно сосредоточитьсяна изображении интересующих вас наборов конкретных объектовили объектовFпрототипов.
Именно это и понимается под моделированием структуры объектов – отображение на диаграмме множестваобъектов и отношений между ними в некоторый момент времени.Типичные приемы моделирования203Для моделирования структуры объектов понадобится: Идентифицировать механизм, который вы собираетесь моделировать. Механизм представляет собой некоторую функцию или поведение части моделируемой системы, являющееся результатом взаимодействия сообщества классов,интерфейсов и других сущностей. Для каждого обнаруженного механизма идентифицироватьклассы, интерфейсы и другие элементы, участвующие в кооперации, а также связи между ними. Рассмотреть один из сценариев работы механизма.
«Заморозить» этот сценарий в некоторый момент времени и изобразить все объекты, участвующие в механизме. Показать состояние и значения атрибутов каждого такогообъекта, если это необходимо для понимания сценария. Также показать ссылки между этими объектами, которыепредставляют экземпляры ассоциаций.В качестве примера на рис.
14.2 показана совокупность объектов,взятая из реализации автономного робота. Внимание здесь акцентировано на нескольких объектах, составляющих часть механизмаробота, предназначенного для расчета модели окружающей среды,в которой тот перемещается. Разумеется, в работе системы принимает участие гораздо больше объектов, но на данной диаграмме рассматриваются только абстракции, непосредственно вовлеченныев процесс формирования представления окружающей среды.Рис. 14.2.
Моделирование структур объектовДиаграммы204Как видно из рисунка, один из объектов соответствует самомуроботу (r, экземпляр класса Robot) и в настоящий момент находитсяв состоянии moving (движется). Этот объект связан с экземпляромw класса World (Мир), являющегося абстракцией модели мира робота. В свою очередь объект w связан с мультиобъектом, которыйсостоит из экземпляров класса Element (Элемент), описывающегосущности, опознанные роботом, но еще не включенные в его модель мира.
Такие элементы помечены как части глобального состояния робота.В текущий момент времени экземпляр w связан с двумя экземплярами класса Area. У одного из них (а2) показаны его собственныессылки на объекты класса Wall (Стена) и объект класса Door (Дверь).Указана ширина каждой из трех стен и отмечено, что каждая связана с соседними. Как видно из диаграммы, робот распознал, чтозамкнутое помещение, в котором он находится, имеет с трех сторонстены, а с четвертой – дверь.Обратное проектированиеВам может пригодиться обратное проектирование диаграммы объектов, то есть создание модели на основе кода.
Фактически, отлаживая вашу систему, вы непосредственно или с помощьюкакихFлибо инструментов непрерывно осуществляете этот процесс.Например, чтобы отыскать «висячую» связь, необходимо реальноили мысленно нарисовать диаграмму взаимодействующих объектов, которая и позволит определить, в каком месте оказалось некорректным состояние одного из них или нарушились его связис другими.Обратное проектирование диаграммы объектов необходимо вести по такой схеме: Выбрать, что именно вы хотите реконструировать. Обычноконтекстом является какаяFлибо операция или экземплярконкретного класса.
С помощью инструментальных средств или просто пройдясьпо сценарию, зафиксировать работу системы в некоторыймомент времени. Идентифицировать множество интересующих вас объектов,взаимодействующих в данном контексте, и изобразить ихна диаграмме объектов. Если это необходимо для понимания семантики, показатьсостояния объектов. Чтобы обеспечить понимание семантики, идентифицировать ссылки, существующие между объектами.Советы и подсказки205 Если диаграмма оказалась слишком сложной, упростить ее,убрав объекты, несущественные для прояснения данногосценария.