Descrição das 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 em 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 de UML em 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

É possível 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. É possível 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

É possível 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, é possível 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 mudanças 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 mudanças 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, é possível 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;

/** 
 * <!-- begin-UML-doc -->
 * <!-- 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 {
	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- 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;
		// end-user-code
	}

	/** 
	 * @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;
		// end-user-code
	}

	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- 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

		// end-user-code
	}

	/** 
	 * <!-- begin-UML-doc -->
	 * <!-- 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

		// end-user-code
	}
}
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