Você pode definir as propriedades de coincidência, multiplicidade, tipo e visibilidade de elementos do modelo.
A propriedade de coincidência de uma operação é um objeto ativo que especifica como um sistema se comporta quando outro objeto ativo chama a operação.
Valor da coincidência | Descrição |
---|---|
seqüencial | Este valor é o padrão para a propriedade de coincidência de uma operação. Podem ocorrer conflitos entre processos coincidentes. As chamadas de objetos devem ser coordenadas entre si de forma que apenas uma chamada a uma operação ocorra ao mesmo tempo. |
protegido | Podem ocorrer múltiplas chamadas a uma operação ao mesmo tempo, onde apenas uma delas possui permissão para prosseguir. As chamadas subseqüentes são bloqueadas até que a primeira chamada seja concluída. Os designers do sistema devem assegurar-se de que os aplicativos possam bloquear simultaneamente as chamadas a operações. |
simultâneo | Várias chamadas a uma operação podem ocorrer e prosseguir simultaneamente. |
A propriedade de multiplicidade é aplicada a diversos elementos de modelo, mas especificamente a atributos que pertencem a classificadores, partes do diagrama de estrutura composta e a associações entre classificadores. A multiplicidade de um atributo informa quantos valores podem ser associados a esse elemento de modelo. Por exemplo, você pode definir um atributo denominado Attribute1 do tipo de dados Integer que pode ter um intervalo de valores inteiros de 0 a 3, por exemplo, Attribute1 : Integer [0..3]. Um valor de multiplicidade, ou intervalo de valores, em uma extremidade da associação, mostra o número de objetos que podem participar no relacionamento. Uma especificação de multiplicidade pode ser um único inteiro positivo, um intervalo de inteiros positivos (que são especificados por limites inferior e superior) ou uma lista de inteiros positivos separados por vírgula. Um asterisco indica um limite superior ilimitado. Por exemplo, a tabela a seguir mostra várias especificações de multiplicidade:
Exemplo | Descrição |
---|---|
1 | Exatamente um |
0..1 | Zero ou um |
* | Qualquer número, inclusive zero |
1.. | Um ou mais |
Em um contexto com parâmetros, como um gabarito, os limites superior e inferior de uma especificação de multiplicidade podem ser expressões que são avaliadas para valores inteiros.
Quando os valores de multiplicidade estão associados a um atributo, eles aparecem entre colchetes, como no exemplo a seguir:
Quando os valores de multiplicidade estão associados a partes em diagramas de estrutura composta, eles aparecem entre colchetes, como no exemplo a seguir:
Quando os valores de multiplicidade estão associados a extremidades de associação, eles são mostrados ao lado das extremidades de associação à qual são aplicados, como no exemplo a seguir:
É possível especificar o tipo de um atributo, operação, parâmetro e extremidade de associação. O tipo especificado pode ser uma classe; um tipo de dados UML, como um inteiro, uma cadeia, um natural ilimitado ou um Booleano; ou uma interface.
A visibilidade determina se os elementos do modelo podem ter acesso a outros elementos do modelo a partir da mesma classe, do mesmo pacote, de uma estrutura de herança ou de qualquer parte em um sistema inteiro. É possível especificar a visibilidade para os seguintes elementos de modelo:
Por exemplo, outras classes podem consultar e utilizar os atributos e operações em uma classe com visibilidade pública. Se os atributos e operações possuírem visibilidade particular, apenas a classe que as contém pode consultar e utilizá-las.
Nível | Ícones para atributos | Ícones para operações | Símbolo de Texto | Descrição |
---|---|---|---|---|
Público | ![]() |
![]() |
+ | Os elementos de modelo que podem consultar o contêiner também podem consultar e utilizar o elemento de modelo público. |
Particular | ![]() |
![]() |
- | Os elementos do modelo que estão no mesmo contêiner podem ver e utilizar um elementos de modelo privado desse contêiner. |
Protegido | ![]() |
![]() |
# | Os elementos do modelo que estão no mesmo contêiner, ou em um descendente do contêiner, podem ver e utilizar um elementos de modelo protegido desse contêiner. |
Pacote | ![]() |
![]() |
~ | Os elementos de modelo que estão no mesmo pacote que o contêiner podem consultar e utilizar um elemento de modelo com visibilidade de pacote. |