# Importação e Geração de Código

O &umbrello; é uma ferramenta de modelação de &UML; e, como tal, o seu objectivo principal é ajudá-lo na análise e desenho dos seus sistemas. Contudo, para fazer a transição entre o seu desenho e a sua implementação, o &umbrello; permite-lhe gerar código-fonte em várias linguagens de programação diferentes para o preparar a si. Também, se você quiser começar a usar o &UML; num projecto já iniciado de C++, o &umbrello; pode ajudá-lo a criar um modelo do seu sistema a partir do código-fonte, analisando-o e importando as classes que forem encontradas nele.

## Geração de Código

O &umbrello; pode gerar código para várias linguagens de programação, baseando-se no seu Modelo &UML; para o ajudar a iniciar a implementação do seu projecto. O código gerado consiste nas declarações das classes, com os seus métodos e atributos, de modo a que você possa preencher as lacunas, fornecendo a funcionalidade das operações das suas classes.

O &umbrello; 1.2 vem com o suporte de geração de código para ActionScript, Ada, C++, IDL de CORBA, &Java;, JavaScript, PHP, Perl, Python, SQL e XMLSchema.

### Gerar Código

Para poder gerar código com o &umbrello;, você precisa primeiro de criar ou carregar um modelo que contenha pelo menos uma classe. Quando estiver pronto para começar a escrever algum código, seleccione a opção Assistente de Geração de Código do menu Código que o irá guiar no processo de geração de código.

O primeiro passo é seleccionar as classes para as quais deseja gerar código-fonte. Por omissão, todas as classes do seu modelo estão seleccionadas e remover as que não quer gerar, passando-as para a lista do lado esquerdo.

O próximo passo do assistente permite-lhe modificar os parâmetros que o Gerador de Código usa ao criar o seu código. Estão disponíveis as seguintes opções:

Opções de Geração de Código Opções de Geração de Código no &umbrello;

Opções de Geração de Código no &umbrello;

#### Opções de Geração

##### Verbosidade do Código

A opção Escrever os comentários de documentação mesmo que vazios diz ao Gerador de Código para criar os comentários do tipo /** texto */ , mesmo que os blocos de comentários estejam vazios. Se você tiver adicionado documentação às suas classes, métodos ou atributos do seu modelo, o Gerador de Código irá escrever esses comentários como documentação do Doxygen, independentemente do que tenha indicado aqui, mas se você seleccionar esta opção, o &umbrello; irá escrever os blocos de comentários para todas as classes, métodos e atributos, mesmo que não exista nenhuma documentação no modelo, onde neste caso deverá documentar as suas classes mais tarde no próprio código-fonte.

A opção Escrever os comentários para as secções mesmo que estas estejam vazias faz com que o &umbrello; escreva os comentários no código-fonte para delimitar as várias secções de uma classe. Por exemplo, os métodos públicos ou os Atributos antes das secções correspondentes. Se você seleccionar esta opção, o &umbrello; irá escrever os comentários de todas as secções da classe, mesmo que a secção esteja vazia. Por exemplo, iria escrever um comentário a dizer métodos protegidos, mesmo que estes não existam na sua classe.

##### Pastas

Criar todos os ficheiros gerados na pasta. Aqui você deverá indicar a pasta onde quer que o &umbrello; coloque o código gerado.

A opção Incluir os ficheiros da pasta permite-lhe inserir um cabeçalho no início de cada ficheiro gerado. Os ficheiros de cabeçalho poderão conter alguma informação de direitos de cópia ou de licenças ou conterem variáveis que sejam avaliadas na altura da geração. Você poderá dar uma vista de olhos nos ficheiros de cabeçalho-modelos que vêm com o &umbrello; para ver como é que poderá usar essas variáveis para substituir o seu nome ou a data actual na altura da geração.

##### Política de Sobreposição

Esta opção diz ao &umbrello; o que fazer se o ficheiro que ele desejar criar já existir na pasta de destino. O &umbrello; não pode modificar os ficheiros de código existentes, por isso você terá de optar entre sobrepor o ficheiro existe, ignorar a geração desse ficheiro em particular ou deixar que o &umbrello; escolha um nome de ficheiro diferente. Se você escolher a opção para usar um nome diferente, o &umbrello; irá adicionar um sufixo ao nome do ficheiro.

##### Linguagem

O &umbrello; irá gerar por omissão o código para a linguagem que você tenha indicado como Linguagem Activa mas, com o Assistente de Geração de Código, você tem a opção de alterar isto para outra linguagem.

#### Assistente de Geração - Geração

O terceiro e último passo do assistente mostra o estado do processo de Geração de Código. Você só terá de carregar no botão Gerar para ficar com as classes criadas para si.

Tenha em atenção que as Opções que seleccionar durante o assistente de Geração de Código só são válidas para a geração actual. Da próxima vez que você executar o Assistente, você terá de seleccionar de novo todas as opções (a sua pasta de cabeçalhos, a política de sobreposição, e assim por diante). Você poderá configurar os valores por omissão usados pelo &umbrello; na secção de Geração de Código da configuração do &umbrello;, a qual está disponível em Configuração Configurar o &umbrello;...

Se você tiver configurado as suas opções de Geração de Código para os valores correctos e quiser gerar já algum código sem ter de percorrer o assistente, você poderá seleccionar a opção Gerar Todo o Código do menu Código. Isto irá gerar o código para todas as classes do seu modelo com as opções actuais (incluindo a Pasta do Resultado e a Política de Sobreposição, por isso use isto com cuidado).

## Importação de Código

O &umbrello; pode importar o código-fonte dos seus projectos existentes para o ajudar a criar o modelo dos seus sistemas. O &umbrello; 1.2 suporta apenas o código-fonte em C++, mas poderá disponibilizar outras linguagens em futuras versões.

Para importar as classes para o seu modelo, seleccione o item Importar as Classes... do menu Código. Na janela de ficheiros, seleccione os que contêm as declarações de classes de C++ e carregue em OK. As classes serão importadas e você achá-las-á como fazendo parte do seu modelo na Árvore. Repare que o &umbrello; não irá criar nenhuma espécie de diagrama para mostrar as suas classes; elas serão apenas importadas para o seu modelo para que você as possa usar posteriormente em qualquer diagrama que desejar.

Importação de Código Menu para importar código-fonte no &umbrello;

Menu para importar código-fonte no &umbrello;