Transformações UML-para-EJB 3.0

A transformação UML-para-EJB 3.0 gera código Enterprise JavaBeans™ (EJB) 3.0 e Java™ de elementos de modelo Unified Modeling Language (UML). Você deve aplicar os estereótipos do perfil de transformação UML-para-EJB 3.0 aos elementos de modelo UML para gerar enterprise beans.
Antes de utilizar essa transformação para gerar beans EJB 3.0 e classes Java, você deve instalar componentes específicos e ativar recursos específicos.
  1. Você deve instalar os seguintes componentes:
    • Transformações e edições gráficas Java, Java Persistence API (JPA) e EJB 3.0
    • Ferramentas para WebSphere Application Server, versão 7.0
  2. Você deve ativar os seguintes recursos:
    • Ferramenta EJB 3.0 Transformation Profile
    • Transformação Java Persistence API
  3. Se você configurar a transformação UML em EJB 3.0 para criar relacionamentos de rastreamento entre elementos UML e os elementos EJB 3.0 gerados, deve ativar os seguintes recursos:
    • Modelagem EJB 3.0
    • Modelagem JPA
    Nota: A categoria de recurso Modelagem contém os recursos Modelagem EJB 3.0 e Modelagem JPA.
Depois de executar a transformação, para customizar a saída da transformação, você deve ativar os seguintes recursos:

Geração de Artefatos Java por outras Transformações

Quando você aplica uma configuração de transformação UML-para-EJB 3.0, o serviço de transformação chama as seguintes transformações, nesta ordem:
  1. Transformação UML-para-Java
  2. Transformação UML-para-JPA
  3. Transformação UML-para-EJB 3.0
Para cada uma dessas transformações, as regras de transformação transformam quantos elementos de origem forem possíveis. Se você não aplicar os estereótipos do perfil de transformação UML-para-EJB 3.0 aos elementos de modelo UML, as transformações UML-para-Java e UML-para-JPA transformarão os elementos de modelo UML em código Java e entidades Java Persistence API (JPA) e os enterprise beans não serão gerados.

Verifique a visualização Problemas para obter informações sobre os estereótipos ausentes.

Origens de Transformação Válidas

Você pode especificar os seguintes elementos como origens para a transformação UML-para-EJB 3.0:

  • Modelos UML
  • Pacotes e seu conteúdo
  • Classes não aninhadas e seu conteúdo
  • Interfaces não aninhadas e seu conteúdo
  • Enumerações não aninhadas

A transformação transforma o conteúdo de modelos, pacotes, classes e interfaces UML. Por exemplo, ao transformar uma classe, a transformação também transforma as operações e propriedades da classe.

Se você selecionar um modelo ou elementos de modelo na visualização Explorador de Projetos em vez de utilizar o editor de Configuração de Transformação, o modelo ou elementos selecionados substituirão o modelo ou elementos de origem especificados na configuração de transformação. A configuração de transformação não é afetada e a origem especificada na página Origem e Destino do editor de configuração de transformação ou no assistente de Nova Configuração de Transformação não é alterada.

Destinos de Transformação Válidos

A transformação pode gerar saída para um único projeto EJB 3.0. Você pode criar o projeto EJB 3.0 com ou sem um projeto de cliente. A transformação gera código na primeira pasta de origem detectada do projeto EJB 3.0 e na primeira pasta de origem detectada do projeto de cliente, se algum existir.

Descritores de Implementação e Arquivos de Persistência

É possível configurar a transformação para gerar um descritor de implementação, que consiste nos seguintes arquivos de persistência:
  • orm.xml, que contém as anotações JPA que correspondem aos elementos UML na origem da transformação
  • persistence.xml, que contém um elemento <mapping-file> que se refere a orm.xml

Ao configurar a transformação para gerar um descritor de implementação, ele gera todas as anotações JPA nos arquivos de persistência, e não gera anotações JPA no código Java.

Relacionamentos de Rastreio entre os Elementos de Modelo de Origem e a Saída da Transformação

Você pode utilizar a transformação UML-para-EJB 3.0 para criar relacionamentos de rastreio das classes Java geradas com os elementos de origem UML. Depois, você pode visualizar os relacionamentos de rastreio em um diagrama de tópicos, criando e executado consultas do modelo.

A criação de relacionamentos de rastreio é útil em projetos grandes que podem conter vários modelos e várias configurações de transformação. Você também pode criar e executar consultas de rastreabilidade que exibem como a saída da transformação está relacionada às especificações de software e aos elementos de modelo.

Quando você executa uma transformação que está configurada para criar relacionamentos de rastreio, para cada elemento que suporta a tag @generated, a transformação anexa um identificador exclusivo à tag @generated. Se você renomear os elementos no modelo UML de origem, esse identificador exclusivo ativará a funcionalidade de mesclagem para refatorar e mesclar os elementos apropriados.
Nota: Se mover um elemento UML fora do escopo de sua classe de nível mais alto, quando você reexecutar a transformação, o algoritmo de mesclagem não refatorará ou mesclará o elemento renomeado porque o escopo do elemento foi alterado.

Quando você reexecutar a transformação, se necessário, a transformação utilizará o identificador no código-fonte para combinar os elementos correspondentes e, em seguida, alterará o código para refletir as alterações no modelo. Por exemplo, se você renomear uma operação UML no modelo de origem e reexecutar a transformação, a transformação renomeará o método Java gerado anteriormente e preservará o corpo do método, em vez de excluir o método gerado anteriormente e incluir um novo método.

A transformação EJB 3.0–para-UML, ou transformação reversa, também pode utilizar os identificadores para combinar elementos correspondentes entre o projeto Java e o modelo UML. Se aplicáveis, as alterações nos elementos do código-fonte Java serão tratadas como modificações ou como refatoração de código em vez de inclusões e exclusões no código gerado.

Para visualizar os relacionamentos entre os elementos de modelo de origem e a saída da transformação, você pode visualizar o elemento de modelo de origem em um diagrama e arrastar o elemento de código gerado pela transformação para esse diagrama. A tabela a seguir lista o seguinte: a representação UML para um elemento de modelo de origem nomeado Class1, que contém um atributo de número inteiro nomeado attribute1 e duas operações nomeadas Operation1 e Operation2, que não possuem nenhum parâmetro; o código gerado pela transformação; o diagrama de classes que mostra o relacionamento de rastreio entre os elementos.
Elemento UML Saída da Transformação Relacionamento de Rastreio em um Diagrama de Classes
Esta imagem mostra a representação UML de Class1 descrita no parágrafo anterior.
/**
 * 
 */
package Package1;

import java.util.Collection;

/** 
 * <!-- iniciar-doc-UML -->
 * <!-- encerrar-doc-UML -->
 * @uml.annotations
 *     derived_abstraction="platform:/resource/UMLProject/Model.emx#_9YlH8CpPEdyn7_VFIWTp4A"
 * @generated "sourceid:platform:/resource/UMLProject/Model.emx#_9YlH8CpPEdyn7_VFIWTp4A"
 */
public class Class1 {
	/** 
	 * <!-- iniciar-doc-UML -->
	 * <!-- encerrar-doc-UML -->
	 * @generated "sourceid:platform:/resource/UMLProject/Model.emx#__8ptgOSnEdyXH8PWExuX2g"
	 */
	private Integer attribute1;

	/** 
	 * @return the attribute1
	 * @generated "sourceid:platform:/resource/UMLProject/Model.emx#__8ptgOSnEdyXH8PWExuX2g?GETTER"
	 */
	public Integer getAttribute1() {
		// iniciar-código-do-usuário
		return attribute1;
		// encerrar-código-do-usuário
	}

	/** 
	 * @param theAttribute1 o attribute1 a ser configurado
	 * @generated "sourceid:platform:/resource/UMLProject/Model.emx#__8ptgOSnEdyXH8PWExuX2g?SETTER"
	 */
	public void setAttribute1(Integer theAttribute1) {
		// iniciar-código-do-usuário
		attribute1 = theAttribute1;
		// encerrar-código-do-usuário
	}

	/** 
	 * <!-- iniciar-doc-UML -->
	 * <!-- encerrar-doc-UML -->
	 * @generated "sourceid:platform:/resource/UMLProject/Model.emx#_RDsjcOSnEdyXH8PWExuX2g"
	 */
	public void Operation1() {
		// iniciar-código-do-usuário
		// TAREFA A FAZER Stub de método gerado automaticamente

		// encerrar-código-do-usuário
	}

	/** 
	 * <!-- iniciar-doc-UML -->
	 * <!-- encerrar-doc-UML -->
	 * @generated "sourceid:platform:/resource/UMLProject/Model.emx#_R04v0OSnEdyXH8PWExuX2g"
	 */
	public void Operation2() {
		// iniciar-código-do-usuário
		// TAREFA A FAZER Stub de método gerado automaticamente

		// encerrar-código-do-usuário
	}
}
Esta imagem mostra um relacionamento de rastreio, com o estereótipo de derivação aplicado, entre a representação UML de Class1 e a saída da transformação.

A transformação não altera o modelo de origem quando você especifica para a transformação gerar relacionamentos de rastreio.

Integração com a Equipe de Suporte

A transformação fornece funcionalidade de integração com os sistemas de controle de versão IBM® Rational Team Concert, CVS, Rational ClearCase, e Rational ClearCase LT, que possibilita efetuar o registro de saída dos arquivos automaticamente ou incluir novos arquivos. É necessário ativar os recursos de equipe para trabalhar com os sistemas de gerenciamento de configuração.


Feedback