Perfil de Transformação de UML em CORBA

O perfil da transformação de Common Object Request Broker Architecture (CORBA) contém estereótipos que podem ser utilizados para modelar e gerar a maioria dos elementos CORBA.

Você pode utilizar os estereótipos do perfil para modelar tipos CORBA específicos, como struct, valuetype, typedef, sequence, array, e exception. No entanto, é possível modelar os seguintes tipos CORBA sem utilizar um perfil: módulos, interfaces com atributos, operações, parâmetros, herança entre interfaces, tipos nativos e enumerações.

O perfil também contém informações sobre os limitadores que são aplicados aos estereótipos.

Você também pode utilizar o perfil para especificar os componentes UML transformados em elementos CORBA Interface Definition Language (IDL), configurando a propriedade generateCode para true ou false. Durante a geração de códigos, a transformação ignora componentes que possuem a propriedade generateCode configurada como false.

Validação do Modelo

Você pode utilizar o recurso de validação do modelo para avaliar um modelo de origem que tem o perfil aplicado a ele para problemas de transformação em potencial e conflitos de nomenclatura, como relacionamentos circulares que podem causar erros de compilação no arquivo IDL gerado. A tabela a seguir lista regras para preparar o modelo de origem para a transformação e para evitar problemas de transformação.
Estereótipo UML Regra de uso
«CORBAOperation» Aplique esse estereótipo em uma operação UML.

A propriedade de contexto desse estereótipo
especifica um conjunto de cadeias literais exclusivas. Essas literais mapeiam para os identificadores que são
uma parte explícita da chamada de operação.

«CORBATruncatable» Aplique esse estereótipo a um relacionamento de generalização para indicar uma herança de tipo de valor truncatable.
Nota: Para representar um tipo de valor em UML, aplique o estereótipo «CORBAValue» a uma classe UML.

A transformação gera código para uma herança de tipo de valor truncatable.

«CORBAUnion» Aplique a uma classe UML para gerar uma união CORBA.

A propriedade switchType do
estereótipo especifica o tipo de classificador da construção do comutador gerado. O tipo de classificador
pode ser integer, character, Boolean, enum, ou qualquer outro nome com
escopo definido.

«CORBAValue»

Aplique esse estereótipo em uma classe UML.

O tipo de valor tem essas características:
  • Nenhum classificador aninhado a não ser typedef, struct, exception, ou enumeration
  • Membros com nomes exclusivos
  • Atributos herdados exclusivos
  • Operações herdadas exclusivas
  • Suporta somente uma interface não-abstrata
  • Cm membros de estado, pode herdar somente a partir de um único tipo de valor com membros de estado
O tipo de valor abstrato não pode ter essas características:
  • Herdar da mesma classe mais de uma vez
  • Ter membros de estado e não podem ser um tipo de valor em caixa
O tipo de valor em caixa tem essas características:
  • Não pode fazer parte da herança
  • Tem uma associação ou atributo
«CORBAConstants» Uma classe tem essas características:
  • Não tem operações
  • Não tem classificadores aninhados
  • Membros têm nomes exclusivos
«CORBAException» A classe não tem classificadores aninhados.
«CORBAStruct» Uma estrutura não deve ter essas características:
  • Deve possuir relacionamentos de generalização ou implementação
  • Ter classificadores aninhados
  • Ter operações
«CORBATypedef» Aplique esse estereótipo em uma classe UML.

Uma typedef não deve ter essas características:

  • Relacionamentos de Generalização
  • Um relacionamento de substituição
  • Associações, atributos ou operações
  • Classificadores aninhados

A propriedade specification nesse estereótipo indica
se a definição de tipo é uma matriz, uma sequência, ou um tipo de ponto fixo (e nesse caso um relacionamento
de substituição não é obrigatório).
Ao modelar tipos de ponto fixo, a propriedade point do estereótipo indica o dígito e a escala. Por
exemplo, especifique 10,2 para indicar um valor que tenha dez dígitos de comprimento e
um ponto decimal após o segundo dígito a partir da direita.

«CORBAState» Um atributo de membro de estado deve ter uma classe de tipo de valor como seu proprietário.
«CORBAOneway» Uma operação de uma via tem essas características:
  • Não tem parâmetros com in ou inout como o tipo
  • Tem um tipo de retorno nulo
  • Tem uma interface como seu proprietário
  • Não levanta nenhuma exceção
Enumerações As enumerações devem ter literais de enumeração com nomes exclusivos.
Componentes Componentes não contêm um componente aninhado

Pacotes no componente devem ter nomes exclusivos.

Interfaces
  • Devem ter membros com nomes exclusivos
  • Devem ter operações herdadas exclusivas
  • Devem ter atributos herdados exclusivos

Não devem conter uma interface, um pacote, um
tipo de valor ou um componente aninhado.
Uma interface abstrata pode herdar somente de outras interfaces abstratas.

Modelos
  • Não têm nomes de elementos com palavras-chave CORBA
  • Não têm classes ou interfaces com relacionamentos circulares de generalização ou implementação
  • Nomes de elementos duplicados
  • Não têm hierarquia formada incorretamente, como uma que contém um componente aninhado
«switch» Aplique esse estereótipo aos atributos de uma união CORBA. Para modelar uma união CORBA, consulte a linha «CORBAUnion» nesse tabela.

A propriedade case do estereótipo é uma cadeia literal que
representa o tipo de caso.
Quando definido para true, a propriedade isDefault indica que o atributo contém o bloco
padrão para a declaração de comutação gerada.


Feedback