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.
| 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.
|
|
|
| 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. |
O espaço de nomes é da montagem .NET.
O espaço de nomes é de um arquivo C#.