2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 8
Текст из файла (страница 8)
Варианты использования применяются для структурирования поведенческих сущностеймодели. Реализуются посредством коопераций. Графически вариантиспользования представлен эллипсом, нарисованным сплошной линией (обычно он включает в себя только имя, как показано на рис. 2.4).35элементов.
Изображается как класс с двойными боковыми линиями; обычно включает в себя имя, атрибуты и операции, как показано на рис. 2.5.Рис. 2.5. Активные классыКомпонентыи внутренние структуры обсуждаютсяв главе 15.Компонент – это модульная часть системы, которая скрываетсвою реализацию за набором внешних интерфейсов. Компоненты системы, разделяющие общие интерфейсы, могут замещатьдруг друга, сохраняя при этом одинаковое логическое поведение.
Реализация компонента может быть выражена объединением частей и коннекторов; при этом части могут включать в себяболее мелкие компоненты. Графически компонент представленкак класс со специальной пиктограммой в правом верхнем углу(см. рис. 2.6).OrderformРис. 2.6. КомпонентыРис. 2.4. Варианты использованияАктивныеклассы обсуждаютсяв главе 23.Оставшиеся три сущности – активные классы, компонентыи узлы (nodes) – все подобны классам; это говорит о том, что онитакже описывают наборы сущностей, разделяющих одни и те жеатрибуты, операции, связи и семантику. Однако эти три понятияв достаточной степени различаются и необходимы для моделирования определенных аспектов объектно-ориентированных систем,поэтому нуждаются в специальном рассмотрении.Активный класс – это класс, объекты которого являются владельцами одного или нескольких процессов или потоков (threads)и, таким образом, могут инициировать управляющие воздействия.Активный класс во всем подобен простому классу, за исключением того, что его объекты представляют собой элементы, поведение которых осуществляется параллельно с поведением другихОставшиеся два элемента – артефакты и узлы – также различаются.
Они представляют собой физические сущности, в отличиеот предыдущих пяти, относящихся к сущностям логическим иликонцептуальным).АртефактыАртефакт (artifact) – это физическая и замещаемая часть сисобсуждают- темы, несущая физическую информацию («биты»). В системе выся в главе 26. можете встретить разные виды артефактов, таких как файлы исходного кода, исполняемые программы и скрипты. Обычно артефактпредставляет собой физический пакет с исходным или исполняемым кодом. Изображается как прямоугольник, снабженный ключевым словом «artifact», расположенным над его именем (рис.
2.7).«artifact»window.dllРис. 2.7: АртефактыВведение в UML36Узлы описываютсяв главе 27.Концептуальная модель UMLУзел (node) – это физический элемент, который существует во время исполнения и представляет вычислительный ресурс, обычноимеющий по меньшей мере некоторую память и часто – вычислительные возможности. Набор компонентов может находитьсяна узле, а также мигрировать с одного узла на другой. Узел изображается в виде куба, обычно содержащего лишь его имя, как показано на рис.
2.8.37жизненного цикла в ответ на события, вместе с его реакцией на этисобытия. Поведение индивидуального класса или кооперации классов может быть описано в терминах автомата. Автомат включаетв себя множество других элементов: состояния, переходы (из одногосостояния в другое), события (сущности, которые инициируют переходы), а также действия (реакции на переходы). Графически состояние представлено прямоугольником с закругленными углами, обычнос указанием имени и подсостояний, если таковые есть (см. рис.
2.10).Рис. 2.10. СостоянияРис. 2.8. УзлыТретья из поведенческих сущностей – деятельность (activity) –специфицирует последовательность шагов процесса вычислений.Во взаимодействии внимание сосредоточено на наборе взаимодействующих объектов, в автомате – на жизненном цикле одногообъекта; для деятельности же в центре внимания – последовательность шагов безотносительно к объектам, выполняющим каждыйшаг. Отдельный шаг деятельности называется действием (action).Изображается оно в виде прямоугольника с закругленными углами, включающего имя, которое отражает его назначение. Состоянияи действия различаются по контекстам.Все эти элементы – классы, интерфейсы, кооперации, варианты использования, активные классы, компоненты, артефактыи узлы – являются базовыми структурными сущностями, которыемогут быть включены в UML-модель. Существуют также различные вариации: действующие лица (actors), сигналы и утилиты (разновидность классов), процессы и потоки (разновидности активныхклассов), приложения, документы, файлы, библиотеки, страницыи таблицы (разновидности артефактов).ВариантыПоведенческие сущности – динамические части моделей UML.использоваЭто «глаголы» моделей, представляющие поведение во времениния, которые и пространстве.
Всего существует три основных вида поведенчесприменяких сущностей.ются дляПервый из них – взаимодействие (interaction) – представляетструктури- собой поведение, которое заключается в обмене сообщениями межрования поду наборами объектов или ролей в определенном контексте для доведенческих стижения некоторой цели. Поведение совокупности объектов илисущностейиндивидуальная операция могут быть выражены взаимодействив модели, об- ем.
Взаимодействие включает множество других элементов – такихсуждаютсякак сообщения, действия (actions) и коннекторы (соединения межв главе 17,ду объектами). Сообщение изображается в виде линии со стрелкой,взаимодейст- почти всегда сопровождаемой именем операции (см. рис. 2.9).вия (interactions) –в главе 16.Автоматыобсуждаются в главе 22.process orderРис.
2.11. ДействияРис. 2.9. СообщенияВторая из поведенческих сущностей – автомат (state machine) –представляет собой поведение, характеризуемое последовательностьюсостояний объекта, в которых он оказывается на протяжении своегоПакеты обсуждаютсяв главе 12.Эти три элемента – взаимодействия, автоматы и деятельности –представляют собой базовые поведенческие сущности, которые выможете включить в UML-модель.
Семантически эти элементы обычно связаны с различными структурными элементами – в первуюочередь, классами, кооперациями и объектами.Группирующие сущности – организационная часть моделейUML. Это «ящики», по которым можно разложить модель. Главнаяиз группирующих сущностей – пакет.Пакет (package) – это механизм общего назначения для организации проектных решений, который упорядочивает конструкции реализации.
Структурные сущности, поведенческие сущности и дажеВведение в UML38другие группирующие сущности могут быть помещены в пакет. В отличие от компонентов (существующих только во время исполнения),пакеты полностью концептуальны, то есть существуют лишь на этаперазработки. Пакет изображается в виде папки с закладкой, обычнотолько с указанием имени, но иногда и содержимого (см. рис. 2.12).Концептуальная модель UMLЗависимости обсуждаютсяв главах 5и 10.Рис. 2.12.
ПакетыПакеты – основная группирующая сущность, с помощью которой вы можете организовать UML-модель. Существуют и такиевариации, как каркасы (frameworks), модели, подсистемы (разновидность пакетов).Аннотирующие сущности – это поясняющие части UML-моделей, иными словами, комментарии, которые вы можете применитьдля описания, выделения и пояснения любого элемента модели.Главная из аннотирующих сущностей – примечание (note). Этопростой символ, служащий для описания ограничений и комментариев, относящихся к элементу либо набору элементов.
Графическипредставлен прямоугольником с загнутым углом; внутри помещается текстовый или графический комментарий (рис. 2.13).Рис. 2.13. ПримечанияЭтот элемент – базовая аннотирующая сущность, которую выможете включить в UML-модель. Обычно вы будете использоватьего для снабжения диаграмм ограничениями или комментариями,которые лучше всего выражаются в виде формального или неформального текста. Существуют также разные вариации этого элемента, такие как требования, которые специфицируют некоторое желательное поведение с точки зрения, внешней по отношению к модели.Существует четыре типа связей в UML:1.
Зависимость.2. Ассоциация.3. Обобщение.4. Реализация.39Эти связи представляют собой базовые строительные блоки дляописания отношений в UML, используемые для разработки хорошосогласованных моделей.Первая из них – зависимость (dependency) – семантическипредставляет собой связь между двумя элементами модели, в которой изменение одного элемента (независимого) может привестик изменению семантики другого элемента (зависимого). Графически представлена пунктирной линией, иногда со стрелкой; можетбыть снабжена меткой (см. рис. 2.14).Рис.
2.14. ЗависимостиАссоциацииобсуждаются в главах 5и 10.Вторая, ассоциация (association), – это структурная связь между классами, которая описывает набор связей, существующих между объектами – экземплярами классов. Агрегация (aggregation)– особая разновидность ассоциации, представляющая структурнуюсвязь целого с его частями.
Изображается сплошной линией, иногда со стрелкой; иногда снабжена меткой и часто содержит другиепометки, такие как мощность и конечные имена (см. рис. 2.15).0,1employer.employeeРис. 2.15. АссоциацииОбобщениярассматриваютсяв главах 5и 10.Третья связь – обобщение (generalization) – выражает специализацию или обобщение, в котором специализированный элемент(потомок) строится по спецификациям обобщенного элемента (родителя). Потомок разделяет структуру и поведение родителя. Графически обобщение представлено в виде сплошной линии с пустойстрелкой, указывающей на родителя (см. рис. 12.16).Рис. 2.16. ОбобщенияРеализацииобсуждаются в главе 10.Четвертая – реализация (realization) – это семантическая связьмежду классификаторами, когда один из них специфицирует соглашение, которого второй обязан придерживаться.
Вы встретитесвязи реализации в двух случаях: между интерфейсами и классамиили компонентами, которые реализуют эти интерфейсы, а такжемежду вариантами использования и реализующими их кооперациями. Связь реализации в графическом исполнении – гибрид связейобобщения и зависимости (см. рис. 2.17).Введение в UML40Рис. 2.17. РеализацииЭти четыре элемента представляют основные сущности отношений, которые могут быть включены в UML-модели. Есть также различные их вариации: уточнение (refinements), след (trace),включение (include) и расширение (extend).Пять предДиаграммы UML.
Диаграмма – это графическое представлеставленийние набора элементов, чаще всего изображенного в виде связногоархитекту- графа вершин (сущностей) и путей (связей). Вы рисуете диаграмры обсужда- мы для визуализации системы с различных точек зрения, поэтомуются нижеотдельная диаграмма – это проекция системы. Для всех систем,в настоящей кроме самых тривиальных, диаграмма представляет собой ограниглаве.ченный взгляд на элементы, составляющие систему. Один и тот жеэлемент может появляться либо во всех диаграммах, либо в некоторых (наиболее частый случай), либо вообще ни в одной (оченьредкий случай).