|
|
|
|
<chapter id="code-import-generation">
|
|
|
|
|
<title
|
|
|
|
|
>Импорт и генерация кода</title>
|
|
|
|
|
<para
|
|
|
|
|
>&umbrello; является средством &UML;-моделирования, и его главной целью является помощь в <emphasis
|
|
|
|
|
>анализе и проектировании</emphasis
|
|
|
|
|
> ваших систем. Тем не менее, для перехода от вашего проекта к его <emphasis
|
|
|
|
|
>реализации</emphasis
|
|
|
|
|
>, &umbrello; позволяет вам сгенерировать исходный код для различных языков программирования . Если вам понадобится использовать &UML; для существующего проекта на C++, &umbrello; может помочь в создании модели вашей системы на основе исходного кода, с помощью его анализа и импорта обнаруженных классов. </para>
|
|
|
|
|
<sect1 id="code-generation">
|
|
|
|
|
<title
|
|
|
|
|
>Генерация кода</title>
|
|
|
|
|
<para
|
|
|
|
|
>&umbrello; может генерировать исходный код для различных языков программирования на основе вашей модели &UML;, помогая вам начать реализацию вашего проекта. Сгенерированный код состоит из объявлений классов с их методами и атрибутами, вам остаётся только <quote
|
|
|
|
|
>заполнить пустые места</quote
|
|
|
|
|
> для реализации функциональности вашего класса. </para>
|
|
|
|
|
<para
|
|
|
|
|
>&umbrello; 1.2 поставляется с поддержкой генерации кода для ActionScript, Ada, C++, CORBA IDL, &Java;, JavaScript, <acronym
|
|
|
|
|
>PHP</acronym
|
|
|
|
|
>, Perl, Python, SQL и XMLSchema. </para>
|
|
|
|
|
<sect2 id="generate-code">
|
|
|
|
|
<title
|
|
|
|
|
>Генерация кода</title>
|
|
|
|
|
<para
|
|
|
|
|
>Для генерации кода с помощью &umbrello; вам сперва необходимо создать или загрузить модель, содержащую хотя бы один класс. При необходимости работы с исходным кодом выберите элемент <guimenuitem
|
|
|
|
|
>Мастер генерации кода</guimenuitem
|
|
|
|
|
> меню <guimenuitem
|
|
|
|
|
>Код</guimenuitem
|
|
|
|
|
> для запуска мастера, который проведёт вас через процесс генерации кода. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Первым шагом будет указание классов, для которых требуется сгенерировать код. По умолчанию выбираются все классы вашей модели, вы имеете возможность убрать выделение с ненужных классов, перемещая их на левую сторону списка. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Следующим шагом будет модификация параметров генератора кода. Доступны следующие опции: </para>
|
|
|
|
|
<para>
|
|
|
|
|
<screenshot>
|
|
|
|
|
<screeninfo
|
|
|
|
|
>Опции генерации кода</screeninfo>
|
|
|
|
|
<mediaobject>
|
|
|
|
|
<imageobject>
|
|
|
|
|
<imagedata fileref="generation-options.png" format="PNG"/>
|
|
|
|
|
</imageobject>
|
|
|
|
|
<textobject>
|
|
|
|
|
<phrase
|
|
|
|
|
>Опции для генерации кода в &umbrello;</phrase>
|
|
|
|
|
</textobject>
|
|
|
|
|
<caption>
|
|
|
|
|
<para
|
|
|
|
|
>Опции для генерации кода в &umbrello; </para>
|
|
|
|
|
</caption>
|
|
|
|
|
</mediaobject>
|
|
|
|
|
</screenshot>
|
|
|
|
|
</para>
|
|
|
|
|
<sect3 id="generation-options">
|
|
|
|
|
<title
|
|
|
|
|
>Опции генерации</title>
|
|
|
|
|
<!-- LW; to rearrange -->
|
|
|
|
|
|
|
|
|
|
<sect4>
|
|
|
|
|
<title
|
|
|
|
|
>Автокомментирование кода</title>
|
|
|
|
|
<para
|
|
|
|
|
>В режиме <guilabel
|
|
|
|
|
>Записывать пустые комментарии</guilabel
|
|
|
|
|
> генератор кода будет писать комментарии вида /** тра-ля-ля */, даже если комментируемые блоки пустые. Если вы добавите документацию в классы, методы или атрибуты вашей модели, генератор кода запишет эти комментарии как документацию для <application
|
|
|
|
|
>Doxygen</application
|
|
|
|
|
> независимо от этой опции. Но если вы включили данную опцию, &umbrello; запишет блоки комментариев для всех классов, методов и атрибутов, даже если никакой документации в модели не было. В этом случае вам следует задокументировать ваши классы позднее прямо в исходном коде. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Опция <guilabel
|
|
|
|
|
>Записывать комментарии для пустых секций</guilabel
|
|
|
|
|
> указывает &umbrello; записывать комментарии в исходный код для разграничения различных секций класса. Например, <quote
|
|
|
|
|
>public methods</quote
|
|
|
|
|
> или <quote
|
|
|
|
|
>Attributes</quote
|
|
|
|
|
> перед соответствующими секциями. Если вы включите данную опцию, &umbrello; будет записывать комментарии для всех секций класса, даже если некоторые из них будут пустыми. Например, будет записан комментарий <quote
|
|
|
|
|
>protected methods</quote
|
|
|
|
|
>, даже если в вашем классе нет методов, объявленных как <quote
|
|
|
|
|
>protected</quote
|
|
|
|
|
>. </para>
|
|
|
|
|
</sect4>
|
|
|
|
|
<sect4>
|
|
|
|
|
<title
|
|
|
|
|
>Каталоги</title>
|
|
|
|
|
<para
|
|
|
|
|
>Опция <guilabel
|
|
|
|
|
>Сохранять сгенерированные файлы в каталог</guilabel
|
|
|
|
|
>. Здесь вам следует указать каталог, куда &umbrello; поместит сгенерированный исходный код. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Опция <guilabel
|
|
|
|
|
>Подключать заголовочные файлы из каталога</guilabel
|
|
|
|
|
> позволяет вам вставить заголовки в начало каждого сгенерированного файла. Заголовочные файлы могут содержать сведения об авторских правах или лицензии, а также переменные, вычисляемые во время генерации кода. Вы можете ознакомиться с заголовочными файлами, поставляемыми с &umbrello;, чтобы понять, как использовать эти переменные для указания вашего имени или текущей даты во время генерации кода. </para>
|
|
|
|
|
</sect4>
|
|
|
|
|
<sect4>
|
|
|
|
|
<title
|
|
|
|
|
>Правила перезаписи</title>
|
|
|
|
|
<!-- FIXME update for Umbrello 1.2's new C++ and Java code generators -->
|
|
|
|
|
<para
|
|
|
|
|
>Данная опция указывает Umbrello, что следует делать, если создаваемый файл уже существует. Umbrello <emphasis
|
|
|
|
|
>не может изменять существующие исходные файлы</emphasis
|
|
|
|
|
>, таким образом, вы должны выбрать между перезаписью существующего файла, отменой генерации конкретного файла или позволить Umbrello выбрать другое имя файла. Если вы предпочли выбрать другое имя файла, Umbrello добавит суффикс к текущему имени файла. </para>
|
|
|
|
|
</sect4>
|
|
|
|
|
<sect4>
|
|
|
|
|
<title
|
|
|
|
|
>Язык</title>
|
|
|
|
|
<para
|
|
|
|
|
>По умолчанию &umbrello; будет генерировать код на языке, который вы указали в качестве активного языка, но мастер генерации кода позволяет указать другой язык. </para>
|
|
|
|
|
</sect4>
|
|
|
|
|
</sect3
|
|
|
|
|
><!--generation-options-->
|
|
|
|
|
<sect3 id="generation-wizard-generation">
|
|
|
|
|
<title
|
|
|
|
|
>Мастер генерации</title>
|
|
|
|
|
<para
|
|
|
|
|
>Третий и последний шаг помощника показывает состояние процесса генерации кода. Вам надо только нажать на кнопку Сгенерировать, чтобы получить ваши классы в виде исходного кода. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Следует отметить, что опции, которые вы выбрали в мастере генерации кода, верны только для текущего момента. При следующем запуске мастера вам потребуется заново указать все опции (каталог с заголовочными файлами, правила перезаписи и так далее). Можно настроить значения по умолчанию в разделе <guilabel
|
|
|
|
|
>Генерация кода</guilabel
|
|
|
|
|
> настроек Umbrello, доступной через <menuchoice
|
|
|
|
|
><guimenu
|
|
|
|
|
>Настройка</guimenu
|
|
|
|
|
> <guimenuitem
|
|
|
|
|
>Настроить Umbrello...</guimenuitem
|
|
|
|
|
></menuchoice
|
|
|
|
|
> </para>
|
|
|
|
|
<para
|
|
|
|
|
>Если вы настроили опции генерации кода и хотите сгенерировать код без использования помощника, можете выбрать <guimenuitem
|
|
|
|
|
>Генерировать весь код</guimenuitem
|
|
|
|
|
> из меню Код. При этом сгенерируется код для всех классов вашей модели с использованием текущих настроек (включая каталог назначения и правила перезаписи, так что будьте осторожны). </para>
|
|
|
|
|
</sect3>
|
|
|
|
|
</sect2
|
|
|
|
|
><!--generate-code-->
|
|
|
|
|
</sect1
|
|
|
|
|
> <!--code-generation-->
|
|
|
|
|
<sect1 id="code-import">
|
|
|
|
|
<title
|
|
|
|
|
>Импорт кода</title>
|
|
|
|
|
<para
|
|
|
|
|
>Umbrello может импортировать исходный код ваших существующих проектов для помощи в построении моделей для ваших систем. &umbrello; 1.2 поддерживает исходный код на языке C++ , но поддержка других будет добавлена в будущих версиях. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Для импортирования классов в вашу модель выберите <guimenuitem
|
|
|
|
|
>Импортировать классы...</guimenuitem
|
|
|
|
|
> из меню <guimenu
|
|
|
|
|
>Код</guimenu
|
|
|
|
|
>. В диалоге выбора файлов укажите файлы, содержащие объявления классов C++, и нажмите OK. Классы будут импортированы и появятся в виде элементов модели в дереве модели. Следует отметить, что Umbrello не создаёт никакой диаграммы для отображения ваших классов, они просто импортируются в модель, и вы можете их использовать при построении любых диаграмм. </para>
|
|
|
|
|
<para>
|
|
|
|
|
<screenshot>
|
|
|
|
|
<screeninfo
|
|
|
|
|
>Импорт кода</screeninfo>
|
|
|
|
|
<mediaobject>
|
|
|
|
|
<imageobject>
|
|
|
|
|
<imagedata fileref="code-import.png" format="PNG"/>
|
|
|
|
|
</imageobject>
|
|
|
|
|
<textobject>
|
|
|
|
|
<phrase
|
|
|
|
|
>Меню для импорта исходного кода в Umbrello</phrase>
|
|
|
|
|
</textobject>
|
|
|
|
|
<caption>
|
|
|
|
|
<para
|
|
|
|
|
>Меню для импорта исходного кода в Umbrello </para>
|
|
|
|
|
</caption>
|
|
|
|
|
</mediaobject>
|
|
|
|
|
</screenshot>
|
|
|
|
|
</para>
|
|
|
|
|
</sect1>
|
|
|
|
|
</chapter
|
|
|
|
|
> <!--code-import-generation-->
|