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.
|