Operações UML

A transformação gera uma operação UML como um método de sua classe e utiliza as seguintes propriedades de UML: 

Propriedade

C++

Nome

Nome do método (validação do nome se aplica)

Visibilidade

Determina a visibilidade do método

IsAbstract

Gera o método como um método virtual puro

IsQuery

Gera o método como const (inclui "const" no sufixo da operação)

IsStatic

Gera o método com classe em vez do escopo da instância (inclui a palavra-chave estática no prefixo da operação)

O tipo do parâmetro de retorno da operação de UML torna-se o tipo de método C++ gerado. Se nenhum parâmetro de retorno existir, o tipo de retorno do método é supostamente vazio (exceto nas operações padrão). Um aviso é exibido para operações sem parâmetros de retorno ou com mais de um parâmetro de retorno. 

É possível especificar várias propriedades específicas de C++, aplicando o estereótipo cpp_operation à operação UML:

·         isInline: A transformação gera a operação como seqüencial (inclui o corpo da operação no cabeçalho)

·         isVirtual: Declara a operação como uma função virtual

·         isFriend: Gera uma operação amiga

C++ não permite um qualificador estático para ser combinado com qualificadores virtuais ou amigos. Para finalidades de geração de código, a transformação prefere um qualificador estático.

parâmetros de UML

A transformação transforma parâmetros de UML nos argumentos das operações C++. A transformação não gera parâmetros com um tipo de "retorno", mas os utiliza como um indicador do tipo de retorno da operação. A transformação transforma o tipo de parâmetro no tipo de um argumento.

A transformação transforma parâmetros tendo uma direção "externa" ou "interna/externa" para referências (significando, inclui um "&" qualificador na especificação de tipo).

A transformação utiliza o valor padrão do parâmetro para especificar o valor padrão do argumento da operação de C++. 

Opcionalmente, é possível aplicar o estereótipo cpp_type a um parâmetro de UML. Este estereótipo tem um atributo qualificador que você pode utilizar para digitar qualquer cadeia como uma qualificador para o tipo gerado. 

Os seguintes exemplos mostram como determinadas condições afetam o código resultante: 

·        Se o tipo de operação estiver especificado (por exemplo, Class1) e você não especificar o qualificador ou não aplicar o estereótipo, ocódigo gerado para o atributo é "Class1 <ArgumentName>". 

·         Se o tipo de operação não estiver especificado, aplique o estereótipo cpp_type e configure a cadeia do qualificador como "int", o código gerado é "int <ArgumentName>". 

·         Se o tipo de operação estiver especificado (Class1), aplique o estereótipo cpp_type e configure a cadeia do qualificador para " * const ", o código gerado é "Class1 * const <ArgumentName>". 

A transformação inclui classes UML que são utilizadas por parâmetros na lista de inclusão.

A transformação gera parâmetros na ordem em que o Servidor de Modelos fornece.

Início da página

Termos de uso | Feedback
(C) Direitos Autorais IBM Corporation 2004. Todos os Direitos Reservados.