Шаг 6.
Унифицированный язык моделирования UML.
Концептуальная модель UML. Сущности

    На этом шаге рассмотрим сущности, как один из элементов концептуальной модели UML.

    Строительные блоки UML

    Словарь UML включает три вида строительных блоков:

  1. Сущности – это абстракции, которые являются основными элементами модели,
  2. Связи соединяют сущности между собой,
  3. Диаграммы группируют представляющие интерес наборы сущностей.

    Есть четыре вида сущностей UML:

  1. Структурные сущности – "имена существительные" в моделях UML. Это в основном статические части модели, представляющие либо концептуальные, либо физические элементы. В совокупности структурные сущности называются классификаторами (classifiers). Базовыми структурными сущностями, которые могут быть включены в UML-модель, являются:

    • Класс (class) – это описание набора объектов с одинаковыми атрибутами, операциями, связями и семантикой. Класс реализует один или несколько интерфейсов. Графически класс изображается в виде прямоугольника, обычно включающего имя, атрибуты и операции, как показано на рис. 1.


      Рис.1. Классы

    • Интерфейс (interface) – это набор операций, который специфицирует сервис (набор услуг) класса или компонента. Таким образом, интерфейс описывает видимое извне поведение элемента. Может представлять полное поведение класса или компонента либо только часть такого поведения. Определяет набор спецификаций операций (то есть их сигнатуру), но никогда не определяет детали их реализации. Объявление интерфейса изображается как класс с ключевым словом "interface" над его именем; атрибуты несущественны, за исключением иногда показываемых констант. Интерфейс, однако, редко существует сам по себе. Интерфейс, представляемый классом для внешнего мира, изображается в виде маленького круга, соединенного линией с рамкой класса. Интерфейс, запрашиваемый классом от некоторого другого класса, представлен маленьким полукругом, соединенным с рамкой класса линией, как показано на рис. 2.


      Рис.2. Интерфейсы

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


      Рис.3. Кооперации

    • Вариант использования (use case) – это описание последовательности действий, выполняемых системой и приносящих значимый результат конкретному действующему лицу (actor). Варианты использования применяются для структурирования поведенческих сущностей модели. Реализуются посредством коопераций. Графически вариант использования представлен эллипсом, нарисованным сплошной линией (обычно он включает в себя только имя, как показано на рис. 4).


      Рис.4. Варианты использования

    • Активный класс – это класс, объекты которого являются владельцами одного или нескольких процессов или потоков (threads) и, таким образом, могут инициировать управляющие воздействия. Активный класс во всем подобен простому классу, за исключени- ем того, что его объекты представляют собой элементы, поведе- ние которых осуществляется параллельно с поведением других элементов. Изображается как класс с двойными боковыми линиями; обычно включает в себя имя, атрибуты и операции, как показано на рис. 5.


      Рис.5. Активные классы

    • Компонент – это модульная часть системы, которая скрывает свою реализацию за набором внешних интерфейсов. Компоненты системы, разделяющие общие интерфейсы, могут замещать друг друга, сохраняя при этом одинаковое логическое поведение. Реализация компонента может быть выражена объединением частей и коннекторов; при этом части могут включать в себя более мелкие компоненты. Графически компонент представлен как класс со специальной пиктограммой в правом верхнем углу (рис. 6).


      Рис.6. Компоненты

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

    • Артефакт (artifact) – это физическая и замещаемая часть системы, несущая физическую информацию ("биты"). В системе вы можете встретить разные виды артефактов, таких как файлы исходного кода, исполняемые программы и скрипты. Обычно артефакт представляет собой физический пакет с исходным или исполняемым кодом. Изображается как прямоугольник, снабженный ключевым словом "artifactquot;, расположенным над его именем (рис. 7).


      Рис.7. Артефакты

    • Узел (node) – это физический элемент, который существует во время исполнения и представляет вычислительный ресурс, обычно имеющий по меньшей мере некоторую память и часто – вычислительные возможности. Набор компонентов может находиться на узле, а также мигрировать с одного узла на другой. Узел изображается в виде куба, обычно содержащего лишь его имя, как показано на рис. 8.


      Рис.8. Узлы

        Существуют также различные вариации: действующие лица (actors), (разновидность классов), процессы и потоки (разновидности активных классов), приложения, документы, файлы, библиотеки, страницы и таблицы (разновидности артефактов).

  2. Поведенческие сущности – динамические части моделей UML. Это "глаголы" моделей, представляющие поведение во времени и пространстве. Всего существует три основных вида поведенческих сущностей.

        Первый из них – взаимодействие (interaction) – представляет собой поведение, которое заключается в обмене сообщениями между наборами объектов или ролей в определенном контексте для достижения некоторой цели. Взаимодействие включает множество других элементов – таких как сообщения, действия (actions) и коннекторы (соединения между объектами). Сообщение изображается в виде линии со стрелкой, почти всегда сопровождаемой именем операции (рис. 9).


    Рис.9. Сообщения

        Вторая из поведенческих сущностей – автомат (state machine) – представляет собой поведение, характеризуемое последовательностью состояний объекта, в которых он оказывается на протяжении своего жизненного цикла в ответ на события, вместе с его реакцией на эти события. Поведение индивидуального класса или кооперации классов может быть описано в терминах автомата. Автомат включает в себя множество других элементов: состояния, переходы (из одного состояния в другое), события (сущности, которые инициируют переходы), а также действия (реакции на переходы). Графически состояние представлено прямоугольником с закругленными углами, обычно с указанием имени и подсостояний, если таковые есть (рис. 10).


    Рис.10. Состояния

        Третья из поведенческих сущностей – деятельность (activity) – специфицирует последовательность шагов процесса вычислений. Во взаимодействии внимание сосредоточено на наборе взаимодействующих объектов, в автомате – на жизненном цикле одного объекта; для деятельности же в центре внимания – последовательность шагов безотносительно к объектам, выполняющим каждый шаг. Отдельный шаг деятельности называется действием (action). Изображается оно в виде прямоугольника с закругленными углами, включающего имя, которое отражает его назначение. Состояния и действия различаются по контекстам.


    Рис.11. Действия

        Эти три элемента – взаимодействия, автоматы и деятельности – представляют собой базовые поведенческие сущности, которые вы можете включить в UML-модель. Семантически эти элементы обычно связаны с различными структурными элементами – в первую очередь, классами, кооперациями и объектами.

  3. Группирующие сущности – организационная часть моделей UML. Это "ящики", по которым можно разложить модель. Главная из группирующих сущностей – пакет.

        Пакет (package) – это механизм общего назначения для организации проектных решений, который упорядочивает конструкции реализации. Структурные сущности, поведенческие сущности и даже другие группирующие сущности могут быть помещены в пакет. В оличие от компонентов (существующих только во время исполнения), пакеты полностью концептуальны, то есть сущест вуют лишь на этапе разработки. Пакет изображается в виде папки с закладкой, обычно только с указанием имени, но иногда и содержимого (рис. 12).


    Рис.12. Пакеты

    Пакеты – основная группирующая сущность, с помощью которой вы можете организовать UML-модель. Существуют и такие вариации, как каркасы (frameworks), модели, подсистемы (разновидность пакетов).

  4. Аннотирующие сущности – это поясняющие части UML-моделей, иными словами, комментарии, которые вы можете применить для описания, выделения и пояснения любого элемента модели. Главная из аннотирующих сущностей – примечание (note). Это простой символ, служащий для описания ограничений и комментариев, относящихся к элементу, либо набору элементов. Графически представлен прямоугольником с загнутым углом; внутри помещается текстовый или графический комментарий (рис. 13).


    Рис.13. Примечания

        Этот элемент – базовая аннотирующая сущность, которую вы можете включить в UML-модель. Обычно вы будете использовать его для снабжения диаграмм ограничениями или комментариями, которые лучше всего выражаются в виде формального или неформального текста. Существуют также разные вариации этого элемента, такие как требования, которые специфицируют некоторое желательное поведение с точки зрения, внешней по отношению к модели.

    На следующем шаге рассмотрим типы связей в UML.




Предыдущий шаг Содержание Следующий шаг