Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.



list (список)

Упорядоченная совокупность элементов модели, которые имеют произвольную длину, вложены в другой элемент модели и принадлежат ему.
См. classifier, state.

Семантика

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

Нотация

Вложенный список изображается в своем собственном разделе символа в виде списка из строк. Каждому элементу в списке отводится отдельная строка. Каждая строка описывает некоторую черту элемента, например атрибут, операцию, внутренний переход и т. д. Формат этой строки описан в отдельных словарных статьях каждого элемента.
Порядок. Общепринятый порядок строк совпадает с порядком элементов списка в модели. Но при этом внутренний порядок может быть и другой, а строки отсортированы по какому-либо внутреннему свойству, например по имени, видимости или стереотипу. Обратите внимание, что в базовой модели элементы сохраняют свой исходный порядок. Информация о назначенном порядке расположения элементов в этом представлении модели просто скрыта,
Многоточие. Многоточие (...), занимающее место последнего элемента в списке, указывает на то, что в модели существуют еще некоторые элементы, которые могут быть включены в этот список. Эти элементы могут быть представлены в другом представлении модели.
Стереотип. Стереотип может применяться к элементу списка. В этом случае ключевое слово стереотипа (в угловых кавычках) ставится перед строкой элемента.
Строка свойств. Эта строка определяет список свойств элемента. Она ставится после элемента, в виде списка свойств или ограничений, разделенных запятыми и взятых в фигурные скобки.
Групповые свойства. К группам элементов списка тоже можно применять стереотипы и прочие свойства. Если в строке стоит только стереотип, ключевое слово, строка свойства или ограничения, эта строка не представляет собой элемент списка. Это означает, что данные ограничения применяются ко всем следующим за ними элементам списка, до тех пор, пока в нем не появится другая строка с указанием групповых свойств. Отменить групповые свойства можно, поместив в список строку с пустым ключевым словом (""), однако лучше поступить другим образом, а именно поместить все элементы, к которым не относятся свойства, в начало списка. На рис. 119 вы видите пример применения стереотипов к нескольким элементам списка.
Групповые свойства существуют только для того, чтобы сделать нотацию более удобной, Что же касается свойств, то у каждого элемента модели есть свое собственное значение для каждого свойства.
Имя раздела. У раздела, может быть имя, которое указывает на то, к какому типу оно принадлежит. Имя раздела пишется другим шрифтом (мы рекомендуем полужирный) по центру раздела, в верхней его части. Этой возможностью не следует пренебрегать, если некоторые разделы символа опущены или если пользователь добавил в него какие-то дополнительные разделы. У класса, к примеру, есть два предопределенных раздела - для атрибутов и для операций. Пользователь может добавить к этому символу раздел для требований. Раздел для имени класса должен присутствовать в любом случае, поэтому указывать имя этого раздела не нужно. На рис. 119 и 120 изображены примеры поименованных разделов.

Рис. 119. Ключевое слово стереотипа времени к группам элементов списка

Рис. 120. Именованные разделы

Варианты презентации

Порядок. Инструмент моделирования может представить список элементов, отсортировав его в указанном порядке. В таком случае изначальный порядок не будет виден. Сортировка основывается на внутренних свойствах списка и не несет в себе никакой дополнительной информации относительно модели. Типичными примерами сортировок являются сортировка по алфавиту, по стереотипу (конструктору, деструктору и обычным методам), по видимости (открытая, закрытая, защищенная) и т. д.
Фильтрация. Элементы списка можно отфильтровать по какому-либо правилу. Возможности для определения таких правил должны предоставляться инструментом моделирования. Если после фильтрации is списке не окажется ни одного элемента, значит, в нем изначально не было элементов, которые соответствовали бы критерию выборки. Однако при этом в изначальном списке могут содержаться элементы, которые не попадают под критерий выборки, а, следовательно, невидимы при фильтровке. Решать, как показывать (и показывать ли вообще) наличие локальной или глобальной фильтрации, должен инструмент моделирования. Впрочем, на отдельной диаграмме наличие фильтрации стоит каким-либо образом указывать, иначе ее невозможно будет понять.
Если раздел скрыт, делать выводы о присутствии или отсутствии с кем каких-либо элементов невозможно. Пустой раздел означает, что с ним нет элементов, которые соответствовали бы критерию выборки.
Обратите внимание, что атрибуты можно также изображать при помощи композиции (рис. 71).

Алфавитный указатель