# Импорт и генерация кода

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

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

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

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

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

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

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

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

Параметры генерации кода Параметры для генерации кода в &umbrello;

Параметры для генерации кода в &umbrello;

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

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

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

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

##### Папки

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

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

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

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

##### Язык

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

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

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

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

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

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

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

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

Импорт кода Меню для импорта исходного кода в &umbrello;

Меню для импорта исходного кода в &umbrello;