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

O &umbrello; é uma ferramenta de modelagem &UML;, e como tal seu principal propósito é auxiliá-lo na análise e desenho de seus sistemas. No entanto, para fazer a transição entre seu desenho e sua implementação, o &umbrello; permite gerar código fonte numa linguagem de programação que você conheça. Se você quiser iniciar o uso do &UML; num projeto em C++ já iniciado, o &umbrello; pode auxiliá-lo a criar um modelo de seu sistema a partir do código fonte analisando seu código e importando as classes encontradas nele.

## Geração de Código

O &umbrello; pode gerar código fonte a partir de várias linguagens de programação baseadas no seu Modelo &UML; para auxiliá-lo no início com a implementação do seu projeto. O código gerado consiste de declarações de classe, com seus métodos e atributos de modo que você possa preencher as lacunas fornecendo a funcionalidade das suas operações de classes.

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

### Gerando Código

Para gerar código como o &umbrello;, você primeiro precisa criar ou carregar um Modelo contendo pelo menos uma classe. Quando você estiver pronto para iniciar a escrita de algum código, selecione a entrada do Assistente de Geração de Código no menu Código para iniciar um Assistente que o guiará através do processo de geração de código.

O primeiro passo é selecionar as classes para quais você deseja gerar código fonte. Por padrão todas as classes de seu modelo serão selecionadas, e você pode remover as que não deseja que seja gerado código movendo-as para o lado esquerdo da lista.

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

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

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

#### Opções Gerais

##### Verbosidade do Código

A opção Escrever cometários da documentação se vazios instrui o Gerador de Código a escrever comentários no estilo /** blah */ sempre que o bloco de comentários estiver vazio. Se você adicionar documentação a sua classe, métodos ou atributos em seu Modelo, o Gerador de Código escreverá estes comentários como documentação Doxygen a menos que você configure algo aqui, mas se você selecionar esta opção o &umbrello; escreverá blocos de comentários para todas as classes, métodos e atributos se não houver nenhuma documentação no Modelo, caso contrário você deverá documentar suas classes posteriormente diretamente no código fonte.

Escrever comentários para seções se seção estiver vazia faz com que o &umbrello; escreva comentários no código fonte para delimitar as diferentes seções de uma classe. Por exemplo métodos públicos ou Atributos antes das seções correspondentes. Se você selecionar esta opção o &umbrello; escreverá comentários para todas as seções da classe se a seção estiver vazia. Por exemplo, ele escreverá um comentário métodos protegidos se existem métodos não protegidos em sua classe.

##### Pastas

Gravar todos os arquivos gerados para pasta. Aqui você pode selecionar a pasta onde deseja que o &umbrello; coloque os fontes gerados.

A opção Incluir arquivos de cabeçalho da pasta permite-lhe inserir um cabeçalho no início de cada arquivo gerado. Arquivos de cabeçalho podem conter informações de direito de cópia ou licença e conter variáveis que serão avaliados no momento da geração. Você pode dar uma olhada nos arquivos modelos de cabeçalho fornecidos com o &umbrello; para ver como usar estas variáveis para substituir seu nome ou a data atual no momento da geração.

##### Política de Sobrescrever

Esta opção diz ao &umbrello; o que fazer se o arquivo que está sendo criado já existe na pasta destino. O &umbrello; não pode modificar arquivos fonte existentes, logo você deve escolher entre sobrescrever o arquivo existente, pular a geração do arquivo em particular ou deixar o &umbrello; escolher um nome de arquivo diferente. Se você escolher a opção de usar um nome diferente, o &umbrello; adicionará um sufixo ao nome do arquivo.

##### Linguagem

O &umbrello; irá gerar por padrão código na linguagem que você tiver selecionado como Linguagem Ativa, mas com o Assistente de Geração de Código você tem a opção de mudar isto para outra linguagem.

#### Geração do Assistente de Geração

O terceiro e último passo do assistente mostra o estado do processo de Geração de Código. Você precisa somente clicar no botão Gerar para ter suas classes escritas para você.

Observe que as Opções que você selecionou durante o assistente de Geração de Código são válidas somente para a geração atual. Na próxima vez que executar o Assistente você precisará re-selecionar todas as opções (sua pasta de cabeçalhos, política de sobrescrever, e assim por diante). Você pode configurar os padrões usados pelo &umbrello; na seção Geração de Código das configurações do Umbrello, disponível em Configurações Configurar &umbrello;...

Se você tiver configurado suas opções de Geração de Código para as configurações corretas e desejar gerar algum código da mesma maneira sem passar pelo assistente, você pode selecionar a entrada Gerar Todo Código no menu Código. Isto irá gerar código para todas as classes em seu Modelo usando suas configurações atuais (incluindo Pasta de Saída e Política de Sobrescrever, logo use com cuidado).

## Importar Código

O &umbrello; pode importar código fonte de seus projetos existentes para auxiliá-lo a construir o Modelo de seus sistemas. O &umbrello; 1.2 suporta somente código fonte C++, mas outras linguagens devem estar disponíveis em versões futuras.

Para importar classes para seu Modelo, selecione a entrada Importar Classes... no menu Código. No diálogo de arquivo selecione os arquivos contendo as declarações de classe C++ e pressione OK. As classes serão importadas e você irá encontrá-las como parte de seu Modelo na Visão Árvore. Observe que o &umbrello; não criará nenhum tipo de Diagrama para mostrar suas classes, elas serão apenas importadas para seu Modelo e então você poderá usá-las mais tarde em qualquer diagrama que desejar.

Importar Código Menu para importação de código fonte no &umbrello;

Menu para importação de código fonte no &umbrello;