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

Термины и понятия

Классификатор (Classifier) - это механизм, описывающий структурные и по­веденческие свойства. К числу классификаторов относятся классы, интерфейсы, типы данных, сигналы, компоненты, узлы, прецеденты и подсистемы.

Классификаторы

В процессе моделирования вы сталкиваетесь с абстракциями сущностей, при­надлежащих реальному миру, и сущностей, введенных вами для решения задачи (см. главу 4). Например, при создании системы заказов, работающей через сеть Internet, вам, скорее всего, придется включить в проект класс Клиент (описываю­щий заказчика) и класс Транзакция (артефакт реализации, соответствующий атомарному действию). В детализированной системе, вероятно, будет еще компо­нент Цены, экземпляры которого размещаются на всех клиентских узлах. Каждая из перечисленных абстракций фигурирует в модели вместе со своими конкретны­ми экземплярами, поэтому разделение логики и экземпляров сущностей является важной частью моделирования. (Дихотомия «класс/объект» обсуждается в главе 2.)

Некоторые сущности в UML не имеют экземпляров (см. главу 13). К их числу относятся, например, пакеты (см. главу 12) и отношения обобщения (см. главы 5 и 10). В общем смысле те элементы моделирования, которые могут иметь экзем­пляры, называются классификаторами (ассоциации, рассматриваемые в главах 5 и 10, и сообщения, обсуждаемые в главе 15, также могут иметь экземпляры, но они

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

Самым важным видом классификатора в UML является класс. Классом назы­вается описание совокупности объектов с общими атрибутами, операциями, от­ношениями и семантикой. Однако помимо классов существуют и другие класси­фикаторы:

  • интерфейс - набор операций, используемых для того, чтобы специфициро­вать услуги, предоставляемые классом или компонентом (см. главу 11);

  • тип данных - тип, значения которого не индивидуализированы; сюда входят примитивные встроенные типы, такие как числа и строки, а также перечис­лимые типы, например Boolean (см. главу 4);

  • сигнал - спецификация асинхронного стимула, используемою для связи между экземплярами (см. главу 20);

  • компонент - физическая замещаемая часть системы, соответствующая cih цификации набора интерфейсов и обеспечивающая их реализацию (см. гла­ву 25);

  • узел - физический элемент, который существует во время выполнения при­ложения и представляет собой вычислительный ресурс; обычно он обладаеч', как минимум, некоторой памятью, а иногда и способностью к обработке дан­ных (см. главу 26);

  • прецедент, или вариант использования, - описание совокупности последова­тельностей действий (в том числе вариантных), выполняемых системой, ко­торые вызывают наблюдаемое изменение, представляющее интерес для кон­кретного актера (см. главу 16);

  • подсистема - совокупность элементов, из которых отдельные составляют спецификацию поведения других элементов (см. главу 31).

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

Графические изображения классификаторов представлены на рис. 9.2.

Примечание Придерживаясь минималистского подхода, можно было бы исполь­зовать одну и ту же пиктограмму для всех классификаторов. Од­нако это неразумно, поскольку, например, классы и компоненты являются принципиально разными абстракциями (первый - логи­ческой, а второй - физической), и на этом основании стоит от­вести для них несходные графические образы. С другой стороны, бросаться в противоположную крайность — использовать различ­ные пиктограммы, для каждого типа классификаторов - также не имеет смысла, поскольку, например, классы и типы данных не слишком различаются между собой. В языке UML найден компро­мисс: существенно различающиеся классификаторы имеют соб­ственные пиктограммы, а остальные выделяются специальными ключевыми словами (такими, как type, signal или subsystem,).

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