Mapeamentos entre Elementos C# e UML

Em diagramas de classes, é utilizada a notação de Unified Modeling Language (UML) para representar elementos C# e CTS, os campos e métodos que formam um elemento e os relacionamentos entre elementos C#.
Diagramas de classes representam não somente classes C#, como também outros elementos C#, como estruturas, enumerações e delegados.

Um estereótipo é um mecanismo de extensão que amplia o vocabulário da UML e oferece significado mais específico a uma classe C# e outros elementos.

A tabela a seguir resume o mapeamento entre elementos C# e elementos UML em diagramas de classes.

Tabela 1.
Elementos .NET Elementos UML
Arquivo Artefato com um estereótipo «C# File» ou «.NET Assembly File».
Pasta Artefato com um estereótipo «C# Folder».
Espaço de Nomes Pacote com um estereótipo «C# Namespace» e o ícone de espaço de nomes.
Classe Classe com o estereótipo «C# Class».
Enum Enumeração com ou sem um estereótipo «C# enumeration».
Estrutura Classe com o estereótipo «C# Struct» e o ícone de classe.
Interface Interface com o ícone de interface.
Classe parcial Classe com um estereótipo «C# Partial Class».
Interface parcial Interface com um estereótipo «C# Partial Interface».
Delegado Classe com um estereótipo «C# Delegate». O método de chamada e sua assinatura são mapeados utilizando uma operação UML nessa classe. O nome dessa operação é o mesmo da classe. Sua assinatura é a assinatura do delegado. Por padrão, essa classe delegada derivará de System.Delegate ou System.MultiCastDelegate.
Campo de membro Propriedade. Dependendo das preferências do usuário, uma associação para tipos não primitivos também é criada. Os diagramas suportam mostrar as propriedades como associações, sem que a associação precise ser criada explicitamente.

O ícone do Eclipse ou da visibilidade de UML será mostrado dependendo da preferência do usuário.

Evento Isso é modelado como um campo de membro, mas com um estereótipo «C# Event».
Indexador Isso é modelado como um campo de membro, mas com um estereótipo «C# Indexer».
Propriedade Isso é modelado como um campo de membro, mas com um estereótipo «C# Property». Cada propriedade tem acessadores que podem ser modelados explicitamente como operações com os estereótipos «get» e «set».
Métodos Operação.

O ícone do Eclipse ou da visibilidade de UML é mostrado dependendo da preferência do usuário.

Nota: Métodos estáticos C# podem ser visualizados, mas não podem ser incluídos em diagramas.
  • Parâmetros de valor
  • Parâmetros de referência, declarados com o modificador ref
  • Parâmetros de saída, declarados com o modificador out
  • Matrizes de parâmetros, declaradas com o modificador params
  • Parâmetro com direção [in].
  • Parâmetro com direção [inout].
  • Parâmetro com direção [out].
  • Parâmetro com multiplicidade definida como “*” para indicar uma matriz de dimensão única.
Atributos Classe com um estereótipo «C# Attribute». Isso vem com uma propriedade, “AttributeUsage”, que deve ser definida como a cadeia de uso.

Os atributos são especificados em texto de formato livre na visualização da documentação do elemento UML correspondente de cada destino de atributo. A cadeia completa entre colchetes “[]” é especificada na visualização da documentação. Os destinos de atributo válidos são montagem, evento, campo, método, parâmetro, propriedade, returntype e typevar.

Genéricos Genéricos são mapeados para parâmetros de modelo UML. Classes, estruturas, interfaces e métodos podem ser parametrizados. Estes são mapeados para classes UML parametrizadas com um estereótipo «struct», interfaces UML parametrizadas e operações UML parametrizadas, respectivamente.
Tipos anuláveis Tipos anuláveis para um tipo predefinido são mapeados para tipos primitivos de UML com o mesmo nome. Tipos anuláveis para outros tipos de valor são mapeados para uma classe UML com o estereótipo «nullable» aplicado, denominados como o tipo de valor base e um relacionamento de substituição de UML existente da classe UML para o tipo de UML que representa o tipo de valor base.
Acessibilidade (pública, privada, protegida, interna, interna protegida) Para classes, atributos e operações, a acessibilidade é mapeada para uma propriedade de visibilidade ou de palavra-chave do mesmo nome.
Nota: O nome do estereótipo é baseado no fato de um elemento ser C# ou .NET Assembly. Os estereótipos da tabela anterior especificam apenas a forma C#. Por exemplo, um espaço de nomes visualizado pode ter os seguintes estereótipos:
  • <<Espaço de Nomes de Montagem .NET>>

    O espaço de nomes é da montagem .NET.

  • <<Espaço de Nomes C#>>

    O espaço de nomes é de um arquivo C#.


Feedback