1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
<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-->
|