Transformações

Uma transformação é o mecanismo que obtém um conjunto de elementos de origem e transforma-os em um novo conjunto de elementos de destino. Como Round-Trip Engineering (RTE) no Rational Rose, o resultado de uma transformação pode ser gerado por código a partir de um modelo. No entanto, as transformações podem ser customizáveis e vastamente mais poderosas do que o RTE em seu potencial.
Nota: Recursos como edição visual e transformações de idioma não são oferecidos no Software Modeler.

O relacionamento entre os elementos de origem e de destino é definido por um conjunto de regras contido em uma transformação. A execução dessas regras é baseada nos conjuntos de regras que entendem como cruzar o conjunto de elementos de origem. A transformação pode depender de um perfil para aplicar as informações adicionais a suas regras.

Os serviços de transformação (e os padrões) preenchem a folga entre os modelos UML e o código, bem como entre os modelos nos diferentes níveis de abstração. As transformações podem ser, entre outras:

Além disso, as transformações podem implementar padrões para converter os elementos de um formulário a outro. As transformações instaladas com o produto estão disponíveis por meio de comandos em Rational Software Architect.

Um ponto inicial mais comum para uma transformação é um modelo Plataform Independent Model (PIM), como um modelo de classe. Um modelo de classe contém elementos de design sem referência às especificações de implementação. Você pode criar, modificar e anotar os modelos de classe e, em seguida, utilizar as transformações para gerar um Platform Specific Model (PSM), como um diagrama de tópicos Java ou texto em nível de código.

Nota: Para obter informações adicionais sobre PIMs, que são uma parte importante do processo definido do Object Management Group (OMG) para Model Driven Architecture (MDA) e Model Driven Development (MDD), consulte o Web site OMG.

Como parte de seus pacotes, os padrões também podem definir e fornecer extensões de transformação que definem as regras adicionais a serem executadas ao cruzar níveis específicos de abstração ou metamodelos específicos. Uma implementação comum desse conceito é um padrão de design que fornece regras de transformação para gerar o código específico. Essas regras devem estender uma transformação de código (por exemplo, um Java ou transformação C++) para fornecer um código específico de padrão para a saída gerada.

Você precisa das quatros partes de informações a seguir para aplicar uma transformação específica:

Um processo muito básico de transformação de modelo inclui as seguintes etapas:

  1. Se requerido pela transformação selecionada, aplique um perfil ao modelo que define os estereótipos adicionais que podem ser utilizados.
  2. Aplique esses estereótipos aos elementos de modelo existentes, conforme requerido.
  3. Preencha com as novas informações (através de propriedades de estereótipo) fornecidas por esses estereótipos, bem como quaisquer informações do modelo básico requerido para a transformação.
  4. Selecione uma transformação do IDE e inicie a operação de transformação.
Nota: Você pode desempenhar essas etapas iterativamente.

O resultado de uma transformação concluída é o modelo de destino ou o texto e o registro da transformação para fins de rastreabilidade. Em transformações de modelos para o texto, a saída poderia ser código Java ou C++, arquivos DDL para criação e ocupação do banco de dados, testes de unidade ou diagramas de visualização que combinam com os diagramas do modelo correspondente. O registro de transformação inclui um mapa do elemento no modelo de origem para os elementos correspondentes do destino e mostra quais partes do mapeamento foram utilizadas para cada parte da transformação.

Você pode criar novas transformações utilizando a API de transformação. O serviço de transformação é genérico e não possui menções sobre o modelo de origem, o modelo de destino ou a implementação da própria transformação. Embora o serviço de transformação contenha um mecanismo de transformação padrão, um autor de transformação poderia utilizar um mecanismo que é completamente diferente. No entanto, construindo transformações no mecanismo padrão, os criadores de transformações podem tirar vantagem do ambiente de depuração lógico, do mecanismo de extensibilidade e de aperfeiçoamentos futuros nessa arquitetura.

Conceitos relacionados
Desenvolvimento Orientado a Modelos
Modelagem e Edição Visual de UML
Subunidades e Fragmentos
Vários Modelos
Visualizações de Modelo de Nível Superior Rose
Conjuntos de Propriedade de Modelo e Perfis UML

Feedback