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

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

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

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

&umbrello; 1.2 поставляется с поддержкой генерации кода для ActionScript, Ada, C++, CORBA IDL, &Java;, JavaScript, PHP, Perl, Python, SQL и XMLSchema.

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

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

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

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

Опции генерации кода Опции для генерации кода в &umbrello;

Опции для генерации кода в &umbrello;

#### Опции генерации

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

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

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

##### Каталоги

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

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

##### Правила перезаписи

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

##### Язык

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

#### Мастер генерации

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

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

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

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

Umbrello может импортировать исходный код ваших существующих проектов для помощи в построении моделей для ваших систем. &umbrello; 1.2 поддерживает исходный код на языке C++ , но поддержка других будет добавлена в будущих версиях.

Для импортирования классов в вашу модель выберите Импортировать классы... из меню Код. В диалоге выбора файлов укажите файлы, содержащие объявления классов C++, и нажмите OK. Классы будут импортированы и появятся в виде элементов модели в дереве модели. Следует отметить, что Umbrello не создаёт никакой диаграммы для отображения ваших классов, они просто импортируются в модель, и вы можете их использовать при построении любых диаграмм.

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

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