Руководство пользователя Umbrello UML Modeller

# Руководство пользователя Umbrello UML Modeller

### Авторы Umbrello UML Modeller

Обновление перевода на русский язык: Олеся Герасименко
Издание 2.11.0 (01 июня 2013 г.)

Авторские права © 2001 Paul Hensgen

Авторские права © 2002-2020 Авторы Umbrello UML Modeller

Umbrello UML Modeller позволяет использовать в процессе разработки программного обеспечения язык UML (UML), предоставляя возможность создавать диаграммы для разработки и документирования систем.

Глава 1. Введение
Введение

# Глава 1. Введение

Umbrello UML Modeller — это средство для работы с диаграммами UML, которое может быть полезным в процессе разработки программного обеспечения, особенно на стадиях анализа и проектирования. Umbrello UML Modeller поможет вам создать высококачественный продукт. Также UML может быть использован для документирования проекта приложения.

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

UML — язык диаграмм, который используется для описания таких моделей. Он позволяет пользователю выражать свои идеи в UML с помощью различных типов диаграмм. Umbrello UML Modeller 2.11 поддерживает следующие типы диаграмм:

- Диаграмма классов

- Диаграмма последовательностей

- Диаграмма кооперации

- Диаграмма вариантов использования

- Диаграмма состояний

- Диаграмма деятельности

- Диаграмма компонентов

- Диаграмма развёртывания

- Диаграмма отношений сущностей

Более подробные сведения о UML доступны на веб-сайте OMG, http://www.omg.org, создателя стандарта UML.

Надеемся, что вам понравится Umbrello UML Modeller и что данный продукт поможет вам в разработке высококачественного программного обеспечения. Umbrello UML Modeller является свободным программным обеспечением и предоставляется бесплатно. Единственная просьба — это высылать отчёты о выявленных ошибках, проблемах или предложения разработчикам Umbrello UML Modeller по адресу `(umbrello-devel AT kde.org)` или через сайт https://bugs.kde.org.

Глава 2. Основы UML
Основы UML

# Глава 2. Основы UML

## О языке UML

Данный раздел предоставит вам небольшой обзор основ UML. Он не является учебником по UML, и если вы хотите узнать побольше об UML или в целом о планировании разработки программного обеспечения, обратитесь к одной из многих книг по данной теме. В Интернете есть много учебных пособий, можете начать с них.

Унифицированный язык моделирования (UML) является языком диаграмм или обозначений для спецификации, визуализации и документации модели объектно-ориентированных программных систем. UML не является методом разработки, то есть он не определяет последовательность действий при разработке программного обеспечения. Он помогает описать свою идею и взаимодействовать с другими разработчиками системы. UML управляется Object Management Group (OMG) и является промышленным стандартом, описывающим модели программного обеспечения.

UML создан для применения в разработке объектно-ориентированного программного обеспечения и с некоторыми ограничениями может применяться для других парадигм программирования.

UML состоит из множества модельных элементов, которые представляют различные компоненты разрабатываемой системы. Элементы UML используются для создания диаграмм, которые описывают определённую часть системы или точку зрения на неё. Umbrello UML Modeller поддерживает следующие типы диаграмм:

- Диаграммы вариантов использования отображают действующих лиц (людей или других пользователей системы), варианты использования (сценарии использования системы) и их взаимодействие.

- Диаграммы классов отображают классы и взаимодействие между ними.

- Диаграммы последовательностей отображают объекты и их взаимодействие, выделяя хронологию обмена сообщениями между объектами.

- Диаграммы кооперации отображают объекты и их взаимодействие, выделяя объекты, которые участвуют в обмене сообщениями.

- Диаграммы состояний отображают состояния, изменения состояний и события в объектах или компонентах системы.

- Диаграммы деятельности отображают деятельность и переходы от одной деятельности к другой, являющиеся следствием событий, которые произошли в определённой части системы.

- Диаграммы компонентов показывают компоненты верхнего уровня (такие как KParts или Java Beans).

- Диаграммы развёртывания показывают экземпляры компонентов и их взаимоотношения.

- Диаграммы отношений сущностей отображают данные и отношения и ограничения, существующие между этими данными.

Элементы UML
Элементы UML

## Элементы UML

### Диаграмма вариантов использования

Диаграммы вариантов использования описывают взаимоотношения и зависимости между группами вариантов использования и действующих лиц, участвующими в процессе.

Важно понимать, что диаграммы вариантов использования не предназначены для отображения проекта и не могут описывать внутреннее устройство системы. Диаграммы вариантов использования предназначены для упрощения взаимодействия с будущими пользователями системы, с клиентами, и особенно пригодятся для определения необходимых характеристик системы. Другими словами, диаграммы вариантов использования говорят о том, что система должна делать, не указывая сами применяемые методы.

Диаграмма вариантов использования

#### Вариант использования

Вариант использования описывает, с точки зрения действующего лица, группу действий в системе, которые приводят к конкретному результату.

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

При работе с вариантами использования важно помнить несколько простых правил:

- Каждый вариант использования относится как минимум к одному действующему лицу

- Каждый вариант использования имеет инициатора

- Каждый вариант использования приводит к соответствующему результату (результату с «бизнес-значением»).

Варианты использования также могут взаимодействовать с другими вариантами использования. Три наиболее часто встречающихся типа взаимодействия между вариантами использования приведены ниже:

- <<включение>> указывает, что вариант использования встраивается в другой вариант использования;

- <<добавление>> указывает, что в определённых ситуациях или в некоторой точке (называемой точкой расширения) вариант использования будет расширен другим;

- <<обобщение>> указывает, что вариант использования наследует характеристики «родительского» варианта использования и может переопределить некоторые из них или добавить новые, подобно наследованию в классах.

#### Действующее лицо

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

Действующие лица представляют не физических людей или системы, а их роли. Эти означает, что когда человек взаимодействует с системой различными способами (беря на себя различные роли), он представлен несколькими действующими лицами. Например, человек, работающий в службе поддержки и принимающий от клиентов заказы, будет отображаться в системе как «участник отдела поддержки» и «участник отдела продаж».

#### Описание варианта использования

Описания вариантов использования являются текстовыми пояснениями варианта использования. Они обычно имеют форму заметки или документа, который каким-то образом прикрепляется к варианту использования и описывает процесс или деятельность, существующую в варианте использования.

### Диаграмма классов

Диаграммы классов отображают различные классы, из которых состоит система, и их взаимодействие между собой. Диаграммы классов являются «статичными» диаграммами, потому что они отображают классы вместе с их методами и атрибутами, так же как и статические взаимодействия между ними: какие классы «знают» о каких классах или какие классы «являются частью» других классов, но не отображают обмен сообщениями между классами.

Диаграмма классов

#### Класс

Класс определяет атрибуты и методы набора объектов. Все объекты класса (называемые экземплярами) имеют одинаковое поведение и одинаковый набор атрибутов (у каждого объекта — собственный набор атрибутов). Иногда вместо класса используется термин «тип», но важно понимать, что эти термины неодинаковы. Термин «Тип» имеет более общий смысл.

В UML классы представлены прямоугольниками с именем класса, которые также могут отображать атрибуты и операции класса в двух других «отделениях» внутри прямоугольника.

Визуальное представление класса в UML

##### Атрибуты

В UML атрибуты отображаются с как минимум их названием, но также могут быть показаны тип, начальное значение и другие свойства. Атрибуты также могут отображаться с указанием их области видимости:

- `+` отмечает открытые (public) атрибуты;

- `#` отмечает защищённые (protected) атрибуты;

- `-` отмечает закрытые (private) атрибуты.

##### Методы

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

- `+` отмечает открытые (public) операции;

- `#` отмечает защищённые (protected) операции;

- `-` отмечает закрытые (private) операции.

##### Шаблоны

Классы могут иметь шаблоны, значение которых используется для неуказанного класса или типа. Тип шаблона указывается при инициализации класса (то есть при создании объекта). Шаблоны используются в современном C++ и будут введены в Java 1.5, где будут обозначаться как Generics.

#### Ассоциации классов

Классы могут взаимодействовать друг с другом различными способами:

##### Обобщение

Наследование является основной концепцией объектно-ориентированного программирования, в которой класс «получает» все атрибуты и методы наследуемого класса и может переопределять/модифицировать некоторые из них, имея возможность добавлять собственные атрибуты и методы.

В UML ассоциация обобщения между двумя классами помещает их в иерархию, представляющую концепцию наследования производного класса от базового. В UML обобщения отображаются в виде линии, соединяющей два класса, со стрелкой у базового класса.

Визуальное представление обобщения в UML

##### Ассоциации

Ассоциации отображают взаимодействия между классами и определяют общую семантику и структуру многих типов «связей» между объектами.

Ассоциации являются механизмом, который позволяет объектам взаимодействовать с друг другом. Они описывают связи между различными классами (связи между объектами называются соединениями объектов или ссылками.

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

В UML ассоциации отображаются в виде линии, соединяющей взаимодействующие классы, и могут показывать роль и количество объектов с каждой стороны. Множественность отображается в виде диапазона [мин..макс] неотрицательных значений, звёздочка (`*`) в качестве максимального значения обозначает бесконечность.

Визуальное представление ассоциации в UML

##### Агрегация

Агрегации являются специальным типом ассоциаций, в котором два участвующих класса не равнозначны по статусу, но создают взаимодействие типа «часть-целое». Агрегация описывает, как класс, играющий роль целого, создаётся из других классов, играющих роль частей. Для агрегаций класс, выступающий в роли целого, всегда имеет множественность, равную единице.

В UML агрегации отображаются в виде линии с ромбом на стороне целого, соединяющей взаимодействующие классы.

Визуальное представление агрегации в UML

##### Композиция

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

В UML композиции отображаются в виде линии с закрашенным ромбом на стороне целого, соединяющей взаимодействующие классы.

#### Другие элементы диаграммы классов

Помимо классов, диаграммы классов могут содержать и некоторые другие элементы.

##### Интерфейсы

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

##### Типы данных

Типы данных являются примитивами, которые обычно встроены в язык программирования. Яркими примерами могут служить целые и логические типы. Они не могут иметь связей с классами, но классы могут использовать их.

##### Перечисления

Перечисления представляют собой простой список значений. Примером перечисления является перечисление дней недели. Параметры перечисления называются перечисляемыми константами. Подобно типам данных, они не могут иметь связей с классами, но классы могут использовать их.

##### Пакеты

Пакеты представляют собой пространства имён в языке программирования. В диаграмме они используются для представления частей системы, которые содержат более одного класса (число классов может превышать несколько сотен).

### Диаграммы последовательностей

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

В диаграммах последовательностей объекты представляются вертикальными прерывистыми линиями с именем объекта наверху. Временная ось также направлена сверху вниз. Таким образом, сообщения, посылаемые от одного объекта к другому, отображаются стрелками с указанием операции и параметров.

Диаграмма последовательностей

Сообщения могут быть либо синхронными, когда управление передаётся вызываемому объекту вплоть до момента окончания его работы, либо асинхронными, когда управление сразу же возвращается вызывающему объекту. Синхронные сообщения обозначаются вертикальным прямоугольником на стороне вызываемого объекта для отображения передачи управления в программе.

### Диаграммы кооперации

Диаграммы кооперации показывают взаимодействия между объектами, участвующими в конкретной ситуации. Это более или менее повторяет информацию, отображаемую диаграммами последовательностей, но там основной упор делается на то, как взаимодействия проявляются во времени, а здесь выделяются связи между объектами и их топология.

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

Диаграмма кооперации

### Диаграмма состояний

Диаграммы состояний показывают различные состояния объекта в течение его времени жизни и причины, вызывающие их смену.

Диаграммы состояний рассматривают объекты как конечные автоматы, которые могут быть в одном из нескольких конечных состояний. Конечные состояния могут изменяться с помощью конечного набора причин. Например, объект типа NetServer может находиться в одном из следующих состояний:

- Готовность

- Ожидание

- Обработка

- Остановка

а события, которые могут привести к смене объектом своего состояния, это:

- Объект создан

- Объект принял ожидаемое сообщение

- Клиент запросил соединение по сети

- Клиент прервал запрос

- Запрос выполнен

- Объект получил завершающее сообщение

- и так далее

Диаграмма состояний

#### Состояние

Состояния являются ключевыми элементами диаграмм состояний. Состояния принадлежат ровно одному классу и представляют собой совокупность значений, которые могут принимать атрибуты класса. В UML состояние описывает внутреннее состояние объекта одного определённого класса.

Следует отметить, что не стоит отображать на диаграмме состояний все состояния — отображайте только важные состояния, которые значительно влияют на работу объекта.

Существуют два особых типа состояний: «начало» и «конец». И вот почему: нет такого события, которое заставит объект возвратиться в состояние «начало», если он из него вышел; нет такого события, которое заставит объект выйти из состояния «конец», если он в него вошёл.

### Диаграмма деятельности

Диаграммы деятельности описывают последовательность действий в системе с помощью видов деятельности. Диаграммы деятельности являются специальной формой диаграмм состояний, только в основном содержат виды деятельности.

Диаграмма деятельности

Диаграммы деятельности подобны процедурным диаграммам потока, с той разницей, что все виды деятельности напрямую присоединены к объектам.

Диаграммы деятельности всегда ассоциируются с классами, методами или вариантами действий.

Диаграммы деятельности поддерживают как последовательные, так и параллельные действия. Параллельное выполнение представляется с помощью значков Fork/Wait. Для действий, выполняющихся параллельно, порядок, в котором они выполняются, не имеет значения (они могут выполняться одновременно или друг за другом).

#### Действие

Действие представляет собой один шаг процесса. Одно действие представляет одно состояние системы с внутренним действием и, как минимум, с одним результатом действия. Действия могут иметь более одного результата, если они происходят при разных условиях.

Действия могут формировать иерархию, это означает, что действие может быть составлено из нескольких «мелких» действий. В этом случае входящие и исходящие переходы должны соответствовать входящим и исходящим переходам на детализированной диаграмме.

### Вспомогательные элементы

Существует несколько вспомогательных элементов в UML, которые не имеют реального семантического значения для модели, но помогают внести ясность в диаграмму. Перечислим их:

- Текстовые строки

- Текстовые примечания и ссылки

- Блоки

Текстовые строки удобно использовать для добавления краткой текстовой информации в диаграмму, это свободно прикрепляемый текст, который не оказывает никакого влияния на модель.

Текстовые примечания следует использовать для добавления более детальной информации об объекте или о специфической ситуации. Текстовые примечания могут быть прикреплены к элементам UML.

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

### Диаграммы компонентов

Диаграммы компонентов отображают компоненты программного обеспечения (компонентные технологии, такие как KParts, CORBA или Java Beans, или просто разделы системы, явно отличающиеся друг от друга) и сущности, из которых они возникли, например файлы с исходным кодом, библиотеки или таблицы баз данных.

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

### Диаграммы развёртывания

Диаграммы развёртывания отображают объекты, созданные во время выполнения программы, и их ассоциации. Они включают в себя узлы, которые являются физическими ресурсами, обычно одиночными компьютерами. Они также отображают интерфейсы и объекты.

### Диаграммы отношений сущностей

Диаграммы отношений сущностей служат для концептуального проектирования приложений баз данных. Они отражают различные сущности (концепции) информационной системы и существующие между ними отношения и ограничения. Расширенные («улучшенные») диаграммы отношений сущностей позволяют также включить методы объектно-ориентированного проектирования.

Диаграмма отношений сущностей

#### Сущность

Сущность — это любая независимо существующая концепция в реальном мире. Она может представлять собой физически существующий объект (например, компьютер, робот) или являться объектом, существующим на понятийном уровне (например, курс в университете). Каждая сущность обладает набором атрибутов, которые описывают её свойства.

Примечание: для отображения диаграмм отношений сущностей не существует стандартных нотаций. В различной литературе по этой теме используются различные нотации. Концепции и нотации для используемых в Umbrello расширенных диаграмм отношений сущностей взяты из следующей книги: Elmasri R. and Navathe S. (2004). Fundamentals of Database Systems 4th edn. Addison Wesley

В диаграмме отношений сущностей сущности представлены прямоугольниками с расположенным в верхней части именем сущности. Атрибуты сущности могут быть показаны в другом «отделении» внутри прямоугольника.

Визуальное представление сущности в диаграмме отношений сущностей

##### Атрибуты сущности

В диаграммах отношений сущностей названия атрибутов сущности показаны в другом отделении прямоугольника сущности, к которой они принадлежат.

##### Ограничения

Ограничения на диаграммах отношений сущностей указывают относящиеся к данным ограничения в информационной схеме.

В Umbrello поддерживается четыре типа ограничений:

- Первичный ключ: набор атрибутов, объявленный как первичный ключ, является уникальным для сущности. В сущности может присутствовать только один первичный ключ, и ни один из составляющих его атрибутов не может иметь значение NULL.

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

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

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

  Пример: цена >= 0

### Концепции расширенных диаграмм отношений сущностей

#### Специализация

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

В Umbrello возможно указать специализацию двух видов: «Разделение» и «Перекрытие».

##### Специализация «Разделение»

Специализация «Разделение» указывает, что подклассы специализации должны быть разделёнными. Это означает, что сущность может быть членом не более чем одной производной сущности специализации

Визуальное представление специализации «Разделение» в расширенной диаграмме отношений сущностей

##### Специализация «Перекрытие»

Когда на производные сущности не накладываются ограничения разделения, соответствующий набор сущностей считается имеющим специализацию «Перекрытие». Это означает, что одна и та же сущность реального мира может быть членом нескольких производных сущностей специализации

Визуальное представление специализации «Перекрытие» в расширенной диаграмме отношений сущностей

##### Категория

Производная сущность — это категория, если она представляет собой набор объектов, который является подмножеством объединения индивидуальных типов сущностей. Категория моделируется в том случае, когда необходимо создать отдельное отношение суперкласс/подкласс с несколькими суперклассами, где суперклассы представляют различные типы сущностей. (Это очень похоже на множественное наследование в объектно-ориентированном программировании.)

Визуальное представление категории в расширенной диаграмме отношений сущностей

Глава 3. Работа в Umbrello UML Modeller
Работа в Umbrello UML Modeller

# Глава 3. Работа в Umbrello UML Modeller

Данная глава познакомит вас с интерфейсом пользователя Umbrello UML Modeller и предоставит все необходимые сведения о моделировании. Все действия в Umbrello UML Modeller доступны посредством меню и панели инструментов, но также интенсивно используются и контекстные меню. Щелчок правой кнопкой мыши практически по любому элементу рабочей области Umbrello UML Modeller или иерархического представления модели вызовет меню с наиболее полезными функциями, которые могут применяться к данному элементу. Некоторые пользователи это сначала может показаться немного неудобным, потому что они чаще используют меню или панели инструментов, но впоследствии данный метод значительно увеличит скорость работы.

## Интерфейс пользователя

Главное окно Umbrello UML Modeller делится на три области, которые предоставляют полный обзор системы и быстрый доступ к различным диаграммам при работе над моделью.

Это следующие области:

- Иерархия

- Рабочая область

- Окно документации и истории команд

Интерфейс пользователя Umbrello UML Modeller

### Иерархия

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

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

### Окно документации и истории команд

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

### Рабочая область

Рабочая область — это основное окно приложения, в котором происходит вся работа с диаграммами модели. Рабочая область отображает текущую активную диаграмму. Одновременно может отображаться только одна диаграмма.

Создание, загрузка и сохранение моделей
Создание, загрузка и сохранение моделей

## Создание, загрузка и сохранение моделей

Первое, что необходимо сделать для работы в Umbrello UML Modeller — создать новую модель. При запуске Umbrello UML Modeller автоматически загружает последнюю использованную модель или создаёт новую, пустую модель (данное поведение зависит от параметров настройки Umbrello UML Modeller).

### Новая модель

Для создания новой модели необходимо выбрать в меню Файл пункт Создать или нажать значок Создать на панели инструментов. Если работа над какой-либо моделью уже ведётся и изменения не были сохранены, Umbrello UML Modeller предложит их сохранить.

### Сохранение модели

Для сохранения модели необходимо выбрать в меню Файл пункт Сохранить или нажать значок Сохранить на панели инструментов. Если модель требуется сохранить под другим именем, выберите в меню Файл пункт Сохранить как.

Для удобства Umbrello UML Modeller также предоставляет опцию автоматического сохранения изменений через определённый промежуток времени. Настройка этого параметра и периода времени доступна в меню Настройка.

### Загрузка модели

Для загрузки уже существующей модели необходимо выбрать в меню Файл пункт Открыть или нажать значок Открыть на панели инструментов. Чтобы перейти к моделям, которые использовались в последнее время, выберите в меню Файл подменю Последние файлы.

Umbrello UML Modeller поддерживает одновременную работу только с одной моделью. Таким образом, если при работе с несохранённой моделью будет выполнена попытка загрузки другой модели, приложение выведет запрос на сохранение изменений. Возможно запустить несколько экземпляров Umbrello UML Modeller, чтобы копировать и вставлять элементы модели из одного экземпляра приложения в другой.

Редактирование моделей
Редактирование моделей

## Редактирование моделей

В Umbrello UML Modeller существует два основных способа редактирования элементов модели:

- Редактирование элементов напрямую через иерархическое представление модели;

- Редактирование элементов модели через диаграмму.

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

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

Также возможно редактировать модель, добавляя и удаляя элементы на диаграммах. Это рассматривается в последующих разделах.

Добавление и удаление диаграмм
Добавление и удаление диаграмм

## Добавление и удаление диаграмм

UML-модель состоит из набора UML-элементов и связей между ними. Тем не менее, нельзя увидеть модель напрямую, для её просмотра используются диаграммы.

### Создание диаграмм

Для создания новой диаграммы в модели просто выберите в меню Диаграмма пункт Создать, выберите необходимый тип диаграммы и укажите его имя. Диаграмма будет создана, станет активной и отобразится в иерархическом представлении модели.

Следует помнить, что в Umbrello UML Modeller широко используются контекстные меню: возможно щёлкнуть правой кнопкой мыши по папке в иерархическом представлении модели и выбрать соответствующий тип диаграммы с помощью пункта Создать контекстного меню. Обратите внимание, что диаграммы вариантов использования возможно создавать только в папках представления вариантов использования, а другие типы диаграмм могут быть созданы только в папках логического представления.

### Удаление диаграмм

Для удаления диаграммы из модели следует выбрать соответствующую диаграмму и затем выбрать в меню Диаграмма пункт Удалить диаграмму. Также возможно открыть в иерархическом представлении модели контекстное меню диаграммы и выбрать пункт Удалить.

Так как удаление диаграммы является серьёзным действием, которое может привести к потере данных, Umbrello UML Modeller выведет запрос на подтверждение операции удаления перед её выполнением. После удаления диаграммы и сохранения файла проекта будет невозможно восстановить удалённую информацию.

### Переименование диаграмм

Если требуется изменить имя существующей диаграммы, откройте в иерархическом представлении модели контекстное меню диаграммы и выберите пункт Переименовать.

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

Редактирование диаграмм
Редактирование диаграмм

## Редактирование диаграмм

При работе с диаграммой Umbrello UML Modeller применяет нескольких простых правил, например, какие элементы могут размещаться на диаграммах определённого типа или какие взаимоотношения могут быть между ними. Если пользователь является экспертом в UML, то он, скорее всего, даже не обратит на это внимание, но такие подсказки пригодятся новичкам при создании стандартных диаграмм.

После создания диаграмм их следует отредактировать. Обратите внимание на разницу между редактированием диаграммы и редактированием модели. Как было уже сказано, диаграммы являются представлениями модели. Например, если пользователь создаёт класс путём редактирования диаграммы класса, то он одновременно редактирует и диаграмму, и модель. Если же пользователь изменяет цвет или другие параметры отображения класса на диаграмме класса, то он редактирует только диаграмму — в модели ничего не меняется.

### Вставка элементов

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

- Перемещение существующих элементов в модель из иерархического представления модели

- Создание новых элементов в модели и одновременное добавление их в диаграмму с помощью кнопок панели инструментов

Для вставки элементов, уже существующих в модели, просто перетащите их из иерархического представления модели на их место на диаграмме. Элементы возможно перемещать по диаграмме, выделяя их кнопкой выбора на панели инструментов.

Второй метод добавления элементов в диаграмму — использование кнопок панели инструментов (обратите внимание, что это приведёт к добавлению элементов в модель).

Панель инструментов по умолчанию находится в верхней части окна. Набор инструментов, представленных на этой панели в виде кнопок, зависит от типа текущей диаграммы. На панели активирована кнопка текущего инструмента. Чтобы переключиться на инструмент выбора, нажмите клавишу Esc.

При выборе инструмента на панели (например, инструмента вставки классов) указатель мыши меняет свой вид на перекрестье, и становится возможно вставлять элементы данного типа в модель одиночными щелчками по диаграмме. Обратите внимание, что элементы в UML должны иметь уникальные имена. Таким образом, если на одной диаграмме модели есть класс с именем «ClassA», и будет выполнена попытка создать на другой диаграмме новый класс с таким же именем, Umbrello UML Modeller не позволит этого сделать; потребуется назначить классу другое уникальное имя. Инструмент вставки классов не подходит для добавления того же элемента на диаграмму, вместо этого следует перетащить класс на диаграмму из иерархического представления модели.

### Удаление элементов

Возможно удалить любой элемент диаграммы, выбрав в его контекстном меню пункт Удалить.

Следует ещё раз подчеркнуть, что существует большая разница между удалением объекта из диаграммы и удалением объекта из модели. Если вы удаляете объект из диаграммы, то он удаляется только из определённой диаграммы: элемент продолжает оставаться частью вашей модели, и это действие никак не влияет на остальные диаграммы. С другой стороны, если вы удаляете элемент из дерева модели, то происходит удаление элемента из модели. Так как данный элемент больше не присутствует в модели, он автоматически удаляется из всех диаграмм, где он присутствовал.

### Редактирование элементов

Большинство UML-элементов в модели и диаграммах возможно изменить, открыв с помощью контекстного меню нужного элемента диалог «Свойства» и выбрав в нём необходимые параметры. Каждый элемент имеет диалог, содержащий несколько страниц с соответствующими параметрами элемента. Для некоторых элементов, например, для действующих лиц, доступно изменение только имени элемента и документации, в то время как для других элементов, таких как классы, доступно изменение их свойств и методов, выбор того, что следует отображать на диаграмме (всю сигнатуру методов или только их имена, и так далее), и даже цветов, которые следует использовать для линии и заливки представления класса на диаграмме.

Диалог свойств UML-элемента также возможно открыть двойным щелчком по элементу, если используется инструмент выбора (стрелка).

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

### Редактирование классов

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

В диалоге редактирования свойств класса можно изменить всё, от используемого цвета до методов и свойств, которые он имеет.

#### Основные параметры класса

Назначение страницы основных параметров диалога свойств очевидно. На ней возможно изменять имя класса, область видимости, документацию и так далее. Эта страница всегда доступна.

#### Настройка атрибутов класса

На странице настройки атрибутов возможно добавлять, редактировать и удалять атрибуты (переменные) класса. Возможно перемещать атрибуты вверх и вниз по списку с помощью стрелок. Эта страница всегда доступна.

#### Настройка операций класса

Как и на странице настройки атрибутов, на странице настройки методов возможно добавлять, редактировать и удалять методы класса. При добавлении или редактировании метода следует ввести основные данные в диалоге Свойства операции. Если необходимо добавить параметры для метода, следует нажать кнопку Новый параметр, которая вызовет появление диалога Свойства параметра. Эта страница всегда доступна.

#### Настройка шаблонов класса

Данная страница позволяет добавлять шаблоны классов, которые являются неопределёнными классами или типами данных. В Java 1.5 их будут обозначать термином «Generic».

#### Страница ассоциаций класса

Страница Ассоциации класса отображает все ассоциации данного класса на текущей диаграмме. Двойной щелчок по ассоциации показывает её свойства, и, в зависимости от типа ассоциации, будет возможно изменить некоторые параметры, например, множественность или имя роли. Если ассоциация не позволяет изменение этих параметров, то с помощью диалога свойств ассоциации будет возможно изменять только документацию ассоциации.

Данная страница доступна только в том случае, если диалог свойств класса был вызван из диаграммы. При открытии диалога свойств класса из контекстного меню иерархического представления модели эта страница будет недоступна.

#### Страница отображения класса

На странице Параметры отображения возможно указать, что следует показывать на диаграмме. Класс может быть показан только в виде прямоугольника с именем класса в нём (что особенно полезно при наличии множества классов на диаграмме, или если на текущий момент не важна информация по классу) или с отображением всей информации по классу.

В зависимости от объёма информации, которая должна отображаться, возможно активировать соответствующие опции на данной странице. Изменения, вносимые здесь, влияют только на отображение диаграммы. Это означает, что настройка «скрытия» методов класса приведёт к тому, что методы данного класса не будут показаны на диаграмме, но останутся частью модели. Данная страница доступна только в том случае, если диалог свойств класса был вызван из диаграммы.

#### Страница стиля класса

На странице Стиль виджета возможно задать цвета для линий и заливки объекта. Очевидно, что параметры на данной странице имеют смысл только для классов, показанных на диаграммах; эта страница недоступна при открытии диалога свойств класса в режиме иерархического предоставления.

### Ассоциации

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

Для создания ассоциации выберите соответствующий инструмент на панели инструментов (общая ассоциация, обобщение, агрегация и так далее) и щёлкните сначала по первому, а потом по второму элементу, участвующему в ассоциации. Не следует пытаться перетащить мышью первый элемент на второй, это ни к чему не приведёт.

При попытке создать ассоциацию, противоречащую спецификации UML, Umbrello UML Modeller отменит это действие и выведет сообщение об ошибке. Это произойдёт, например, если при уже существующем обобщении от класса A к классу B предпринимается попытка создать обобщение от класса B к классу A.

У ассоциации есть контекстное меню. При необходимости удалить ассоциацию просто выберите в нём пункт Удалить. С помощью контекстного меню также возможно открыть диалог свойств элемента (пункт Свойства) и, в зависимости от типа ассоциации, изменить такие атрибуты, как роли и множественность.

#### Точки прикрепления

По умолчанию ассоциации рисуются в виде прямой линии, соединяющей два объекта в диаграмме.

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

Если необходимо убрать точку прикрепления из линии ассоциации, просто сделайте по ней двойной щелчок.

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

### Примечания, текст и блоки

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

Для добавления примечания или строки текста выберите соответствующий инструмент на панели инструментов и один раз щёлкните там, где следует разместить элемент на диаграмме. Изменить текст элемента возможно через контекстное меню или, в случае примечания, двойным щелчком по нему.

#### Ссылки

Ссылки используются для прикрепления текстового примечания к другому UML-элементу. Например, если текст обычно используется для описания или комментирования класса или ассоциации, то ссылка позволяет явным образом «прикрепить» примечание к определённому элементу.

Для добавления ссылки, которая свяжет примечание с другим UML-элементом, используйте соответствующий инструмент на панели инструментов. Щёлкните по примечанию, а затем по UML-элементу, к которому следует прикрепить данное примечание.

Глава 4. Импорт и генерация кода
Импорт и генерация кода

# Глава 4. Импорт и генерация кода

Umbrello UML Modeller — средство UML-моделирования, которое помогает анализировать и проектировать системы. Тем не менее, для обеспечения перехода от проекта к его реализации Umbrello UML Modeller позволяет сгенерировать исходный код для различных языков программирования. Если потребуется использовать UML для существующего проекта на C++, с помощью Umbrello UML Modeller возможно создать модель системы на основе исходного кода путём его анализа и импорта обнаруженных классов.

## Генерация кода

Umbrello UML Modeller позволяет генерировать исходный код для различных языков программирования на основе вашей модели UML, помогая вам начать реализацию вашего проекта. Сгенерированный код состоит из объявлений классов с их методами и атрибутами, вам остаётся только «заполнить пустые места» для реализации функциональности классов.

Umbrello UML Modeller 2 поставляется с поддержкой генерации кода для ActionScript, Ada, C++, C#, D, IDL, Java™, JavaScript, MySQL, Pascal, Perl, PHP, PHP5, PostgreSQL, Python, Ruby, Tcl, Vala и XMLSchema.

### Генерация кода

Для генерации кода с помощью Umbrello UML Modeller сначала необходимо создать или загрузить модель, содержащую хотя бы один класс. При необходимости работы с исходным кодом выберите в меню Код пункт Мастер генерации кода для запуска мастера, который позволит пошагово выполнить процесс генерации кода.

Первым шагом будет указание классов, для которых требуется сгенерировать код. По умолчанию выбираются все классы вашей модели. Классы, для которых не требуется генерировать код, следует переместить в список, расположенный в левой части окна.

Следующим шагом будет модификация параметров генератора кода. Доступны следующие опции:

Параметры для генерации кода в Umbrello UML Modeller

#### Параметры генерации

##### Подробность комментариев

В режиме Вставлять комментарии в документацию, даже если они пустые генератор кода будет писать комментарии вида /** тра-ля-ля */, даже если блоки комментариев пустые. Если добавить документацию в классы, методы или атрибуты модели, генератор кода запишет эти комментарии как документацию для Doxygen независимо от значения этой опции. Но если эта опция включена, Umbrello UML Modeller запишет блоки комментариев для всех классов, методов и атрибутов, даже если никакой документации в модели не было. В этом случае следует задокументировать классы позднее прямо в исходном коде.

Опция Вставлять комментарии для секций, даже если они пусты указывает Umbrello UML Modeller записывать комментарии в исходный код для разграничения различных секций класса. Например, «public methods» или «Attributes» перед соответствующими секциями. Если вы включите данную опцию, Umbrello UML Modeller будет записывать комментарии для всех секций класса, даже если некоторые из них будут пустыми. Например, будет записан комментарий «protected methods», даже если в вашем классе нет методов, объявленных как «protected».

##### Папки

Опция Сохранять сгенерированные файлы в папку. Здесь следует указать папку, в которую Umbrello UML Modeller поместит сгенерированный исходный код.

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

##### Политика замены

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

##### Язык

По умолчанию Umbrello UML Modeller будет генерировать код на языке, который указан в качестве активного языка, но мастер генерации кода позволяет указать другой язык.

#### Генерация кода в мастере генерации

Третий и последний шаг помощника показывает состояние процесса генерации кода. Остаётся только нажать кнопку «Генерировать», чтобы получить классы в виде исходного кода.

Следует отметить, что параметры, которые вы выбрали в мастере генерации кода, действительны только для текущего сеанса. При следующем запуске мастера потребуется заново указать все опции (папку с заголовочными файлами, политику замены и так далее). Возможно настроить значения по умолчанию в разделе Генерация кода параметров настройки Umbrello UML Modeller, доступном в меню Настройка → Настроить Umbrello UML Modeller...

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

Импорт кода
Импорт кода

## Импорт кода

С помощью Umbrello UML Modeller возможно импортировать исходный код существующих проектов для облегчения построения моделей систем. Umbrello UML Modeller 2 поддерживает исходный код на языке ActionScript, Ada, C++, C#, D, IDL, Java™, Javascript, MySQL, Pascal, PHP и Vala.

Для импорта классов в модель выберите пункт Мастер импорта кода... в меню Код. В диалоге выбора файлов укажите файлы, содержащие объявления классов, и нажмите кнопку Далее >, затем Начать импорт и Завершить. Классы будут импортированы и появятся в виде элементов модели в дереве модели. Следует отметить, что Umbrello UML Modeller не создаёт никакой диаграммы для отображения классов, они просто импортируются в модель, что позволяет в дальнейшем использовать их при построении любых диаграмм.

Меню для импорта исходного кода в Umbrello UML Modeller

Глава 5. Дополнительные возможности
Дополнительные возможности

# Глава 5. Дополнительные возможности

## Дополнительные возможности Umbrello UML Modeller

В данной главе кратко освещаются некоторые дополнительные особенности Umbrello UML Modeller.

### Копирование объектов в виде изображений в формате PNG

Кроме стандартных действий вырезания, копирования и вставки, с помощью которых возможно обмениваться объектами между диаграммами, Umbrello UML Modeller позволяет копировать объекты как изображения формата PNG, которые затем возможно вставить в документы другого типа. Для этого следует просто выделить объект на диаграмме (класс, действующее лицо и так далее) и скопировать его (с помощью комбинации клавиш Ctrl+C или контекстного меню), затем открыть документ Calligra Words (или любую другую программу, в документы которой возможно вставлять изображения) и выбрать Вставить. Экспорт элементов диаграммы в виде изображений — очень полезная возможность.

### Экспортирование в виде изображения

Также возможно экспортировать всю диаграмму в виде изображения. Для этого следует выделить диаграмму и выбрать элемент Экспорт в изображение... в меню Диаграмма.

Параметр Экспорт диаграмм в виде изображений... в меню Файл позволяет экспортировать сразу несколько диаграмм. Также возможно указать разрешение изображений, что позволяет обеспечить достаточную их чёткость.

### Печать

Umbrello UML Modeller позволяет распечатывать отдельные диаграммы. Нажатие кнопки Печать на панели инструментов приложения или выбор элемента Печать из меню Файл вызовет стандартный диалог печати KDE, с помощью которого вы сможете распечатать ваши диаграммы.

### Логические папки

Для лучшей организации модели, особенно для больших проектов, возможно создавать логические папки в дереве модели: выберите в контекстном меню стандартных каталогов дерева пункт Создать → Папка. Папки могут быть вложенными; объекты возможно перемещать, перетаскивая их мышкой из одной папки в другую.

Организация модели с помощью логических папок в Umbrello UML Modeller

Глава 6. Настройка
Настройка

# Глава 6. Настройка

## Основные параметры

Параметры на вкладке «Основные параметры»

### Разное

- Параметр Включить запись действий для отмены позволяет отменить предыдущее действие.

- Параметр Использовать новые генераторы классов C++, Java и Ruby позволяет пользователю выбрать старый или новый генератор кода.

- Если флажок Печатать колонтитулы и номера страниц установлен, при печати диаграммы будут напечатаны колонтитулы и номера страниц.

- Параметр Использовать вкладки позволяет работать сразу с несколькими диаграммами, открывая их во вкладках.

### Автосохранение

- Параметр Включить автосохранение позволяет включить или отключить автоматическое сохранение файла.

- Параметр Интервал автосохранения, мин позволяет указать интервал времени между последовательными процедурами автосохранения файла.

- Параметр Расширение автосохранения по умолчанию установлен в значение «.xmi», но при необходимости это значение возможно изменить.

### Запуск приложения

- Если флажок Открыть последний проект установлен, при запуске программы всегда будет загрузаться последний рабочий проект.

- Параметр Диаграмма по умолчанию для нового проекта позволяет выбрать тип диаграммы UML для использования в новом проекте.

- Параметр Язык по умолчанию позволяет задать используемый по умолчанию язык программирования.

### Уведомления

- Параметр Включить все сообщения позволяет включить показ всех уведомлений или только их ограниченного набора.

- Установка флажка Включить сообщения, связанные с удалением ассоциации обеспечит получение всех сообщений этого типа.

- Установка флажка Включить сообщения, связанные с удалением диаграммы обеспечит получение всех сообщений этого типа.

Настройка шрифтов
Настройка шрифтов

## Настройка шрифтов

Параметры на вкладке «Настройка шрифтов»

Эти параметры определяют свойства текста в диаграммах. Возможно выбрать гарнитуру и размер шрифта.

Интерфейс пользователя
Интерфейс пользователя

## Интерфейс пользователя

Параметры на вкладке «Интерфейс пользователя»

### Общие

Параметр Интерфейс пользователя справа налево настраивает интерфейс для языков с написанием справа налево.

### Ассоциации

Параметр Использовать ломаные соединительные линии позволяет изгибать соединительные линии под любым углом.

Параметр Создавать новые соединительные линии как позволяет изменить стиль соединительных линий.

### Цвет

В разделе параметров цвета возможно настроить цвет текста, линий, заливки, сетки и фона, а также задать ширину линий.

Параметры класса
Параметры класса

## Параметры класса

Параметры на вкладке «Параметры класса»

### Показать

В разделе «Показать» представлены параметры, которые позволяют выбрать характеристики класса для показа в диаграмме классов.

### Начальная область видимости

Возможно выбрать видимость атрибутов и операций по умолчанию (публичные, приватные или защищённые).

Параметры импорта кода
Параметры импорта кода

## Параметры импорта кода

Параметры на вкладке «Параметры импорта кода»

### Пути поиска включений

Рекомендуется улучшить поиск, добавив переменную среды UMBRELLO_INCPATH.

### Импорт C++

- Для каждого импортированного файла создать артефакт в диаграмме компонентов — созданный артефакт затем возможно перетащить в представление диаграммы классов, где вместе с атрибутами и функциями каждого файла легко просмотреть и зависимости.

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

- Включить стандарт C++11 (экспериментальная возможность) — экспериментальная возможность для обеспечения соответствия стандарту C++11. Снимите флажок, если такое соответствие не требуется.

Генерация кода
Генерация кода

## Генерация кода

### Вкладка «Общие» параметров генерации кода

Параметры на вкладке «Общие» параметров генерации кода

Umbrello UML Modeller позволяет генерировать исходный код для различных языков программирования на основе модели, помогая начать реализацию проекта. Сгенерированный код состоит из объявлений классов с их методами и атрибутами; остаётся только «заполнить пустые места» для реализации функциональности классов.

#### Язык

Выберите язык программирования для использования в проектах. Доступные варианты: ActionScript, Ada, C++, C#, D, IDL, Java, JavaScript, MYSQL, Pascal, Perl, PHP, PHP5, PastgreSQL, Python, Ruby, SQL, Tcl, Vala и XMLSchema.

#### Папки

Сохранять сгенерированные файлы в папку — укажите в поле редактирования ту папку, в которой следует сохранять сгенерированные файлы, или нажмите кнопку «Обзор...» для выбора пути.

Подключать заголовочные файлы из папки — если этот флажок установлен, возможно указать путь в поле редактирования или выбрать его с помощью кнопки «Обзор...».

#### Политика замены

Этот параметр определяет, что происходит, если в папке генерации кода обнаруживается файл с тем же названием, что и у созданного файла.

- Заменять файл без предупреждения или предложения выбрать другой вариант.

- Спросить, следует ли перезаписать файл или переименовать его.

- Выбрать другое имя, если файл уже существует (переименовать его путём добавления суффикса).

### Вкладка «Оформление» параметров генерации кода

Параметры на вкладке «Оформление» параметров генерации кода

#### Подробность комментариев

Вставлять комментарии в документацию, даже если они пусты — создаёт комментарии для классов и функций, даже если они являются пустыми.

Вставлять комментарии для секций, даже если они пусты — записывает комментарии для приватных, защищённых и открытых секций, даже если они пусты.

#### Строки

Тип отступов — позволяет выбрать один из вариантов создания отступов (без отступов, табуляция или пробел).

Количество символов — позволяет пользователю указать количество пробелов для создания отступов с помощью табуляции или пробелов.

Конец строки — позволяет выбрать вариант конца строки (в стиле *NIX, Windows или Mac).

### Вкладка «Языки программирования» параметров генерации кода

Параметры на вкладке «Языки программирования» параметров генерации кода

Содержимое этой страницы зависит от языка программирования, выбранного на вкладке «Общие». В настоящее время доступны параметры только для языка C++.

#### Генерация кода C++

##### Документация

Стиль — позволяет выбрать вариант оформления документации («/** */» или «//»).

##### Общие

Вкладка Языки программирования содержит вложенную вкладку Общие, на которой представлены несколько параметров генерации кода.

- Префикс члена класса

  Этот параметр позволяет при генерации кода добавлять к членам класса заданный пользователем префикс.

- Пакет является пространством имён

  В пространствах имён предусмотрен метод для предотвращения конфликтов имён в крупных проектах. Объявленные внутри блока пространства имён символы помещаются в именованную область, которая не позволяет ошибочно принять их за символы с такими же названиями, которые принадлежат другим областям программного кода.

- Виртуальные деструкторы

  Хотя деструкторы и не наследуются, если в базовом классе деструктор объявлен как виртуальный, деструктор в производном классе всегда перезаписывает его. Это делает возможным удаление динамически размещённых объектов полиморфного типа с помощью указателей на базовый класс.

- Генерировать пустые конструкторы

  Будут сгенерированы конструкторы с пустыми скобками.

- Генерировать методы доступа к атрибутам

  Будут сгенерированы методы для доступа к типам данных.

- Встроенные операции

  Генерировать методы как встроенные, но при этом компиляторы смогут самостоятельно определить, следует ли их встраивать.

- Встроенные методы доступа к атрибутам

  Генерировать методы доступа к данным класса как встроенные, но при этом компиляторы смогут самостоятельно определить, следует ли их встраивать.

- Публичные методы доступа к атрибутам

  С помощью этого пункта возможно указать, что методы, созданные как открытые, будут доступны любому экземпляру класса.

- Создавать методы получения значения с префиксом «get»

  С помощью этого пункта возможно указать программе добавлять префикс «get» для методов, которые получают или возвращают данные класса.

- Удалять префикс «[a-zA-Z]_» из названий методов доступа

  Если в пункте Префикс члена класса был указан префикс, он будет удалён.

- Методы доступа начинаются с заглавных букв

  С помощью этого пункта можно указать программе делать первую букву названия метода заглавной.

- Для документирования используйте метку «\», а не «@»

  Выбор метки, которую следует использовать при документировании параметров метода.

##### Генерация тела метода

Параметры на вкладке «Генерация тела метода» параметров генерации кода

List

Доступны следующие варианты типа списка: QPtrList, vector и std::vector. С помощью расположенного ниже поля возможно указать файл для включения. Предусмотрена кнопка выбора файла для включения в файловой системе. Также имеется параметр, который позволяет сделать список глобальным.

String

Доступны следующие варианты типа строки: string и QString. С помощью расположенного ниже поля возможно указать файл для включения. Предусмотрена кнопка выбора файла для включения в файловой системе. Также имеется параметр, который позволяет сделать строку глобальной.

Просмотр кода
Просмотр кода

## Просмотр кода

Параметры на вкладке «Просмотр кода»

Позволяет настроить параметры средства просмотра кода. В группе Запрошенный шрифт представлены параметры выбора гарнитуры, начертания и размера шрифта. В расположенном ниже поле показан пример применения выбранных параметров.

Группа Цвета содержит следующие параметры: «Бумага», «Шрифт», «Выделение», «Блок объекта UML», «Скрытый блок», «Изменяемый текст», «Неизменяемый текст». Чтобы изменить соответствующие цвета, щёлкните по полю цвета рядом с названием нужного параметра.

Параметры автоматического шаблона
Параметры автоматического шаблона

## Параметры автоматического шаблона

Параметры на вкладке «Параметры автоматического шаблона»

Автоопределение генераторов шаблонов

Функция автошаблона зависит от генераторов шаблонов из пакета GraphViz, который обычно устанавливается диспетчером пакетов вместе с Umbrello. Umbrello поддерживает автоматическое определение расположения этих генераторов шаблонов. В случаях, когда требуемый пакет не установлен или несовместим, возможно указать другой путь установки.

Показывать шаблон экспорта в контекстном меню диаграммы

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

Глава 7. Авторы и история
Авторы и история

# Глава 7. Авторы и история

Эта программа была создана Полом Хенсгеном (Paul Hensgen) в качестве одного из университетских проектов. Оригинальным именем приложения было UML Modeller. Пол вёл разработку до конца 2001 года, создав версию программы 1.0.

Версия 1.0 уже предоставляла широкую функциональность, но после того, как проект был рассмотрен в университете Пола, другие разработчики смогли присоединиться к проекту и значительно улучшили UML Modeller, обеспечив, среди прочего, переход от файлов бинарного формата к XML, поддержку большего количества типов диаграмм UML, генерацию кода и импорт кода.

Пол вынужден был уйти из команды разработки летом 2002, но, будучи свободным и открытым программным обеспечением, программа продолжала улучшаться и расти, поддерживаемая группой разработчиков из разных стран мира. В сентябре 2002 года название проекта было изменено с UML Modeller на Umbrello UML Modeller. Для этого было несколько причин. Наиболее важная заключалась в том, что слово «uml» является слишком общераспространённым и не подходит для некоторых дистрибутивов. Кроме того, разработчики сочли название Umbrello более симпатичным.

Разработка Umbrello UML Modeller, как и дискуссии о развитии программы в будущих версиях, открыта и ведётся через Интернет. Если вы желаете внести свой вклад в проект, свяжитесь с разработчиками. Существует много вариантов помощи проекту:

- Отчёт об ошибках или предложения по усовершенствованию программы

- Исправление ошибок и добавление возможностей

- Создание хорошей документации и её перевод на другие языки

- И конечно, программирование вместе с нами!

Есть много способов внести свой вклад в проект. Любой вклад очень важен, и каждый приглашается к участию в проекте.

С разработчиками Umbrello UML Modeller возможно связаться по адресу `(umbrello-devel AT kde.org)`.

Глава 8. Авторское право
Авторское право

# Глава 8. Авторское право

© Paul Hensgen, 2001

© Авторы Umbrello UML Modeller, 2002–2020

Этот документ распространяется на условиях GNU Free Documentation License.

Программа распространяется на условиях лицензии GNU General Public License.