Vous pouvez définir les propriétés de concurrence, de multiplicité, de type et de visibilité des éléments de modèle.
La propriété de concurrence d'une opération dans un objet actif permet de préciser la manière dont se comporte un système lorsqu'un autre objet actif appelle l'opération.
Valeur de concurrence | Description |
---|---|
sequential (séquentiel) | Il s'agit de la valeur par défaut de la propriété de concurrence d'une opération. Des conflits peuvent se produire entre des processus concurrents. Tous les appels d'objets doivent être coordonnés de sorte qu'un seul appel à la fois soit transmis à l'opération. |
guarded (protégé) | Plusieurs appels d'une opération peuvent avoir lieu simultanément, mais un seul est traité. Les appels suivants sont bloqués tant que le traitement du premier n'est pas terminé. Les concepteurs du système doivent s'assurer que les applications peuvent simultanément bloquer les appels aux opérations. |
concurrent (simultané) | Une opération peut recevoir plusieurs appels qui vont être traités simultanément. |
La propriété de multiplicité s'applique à plusieurs éléments de modèle, mais plus particulièrement aux attributs appartenant aux discriminants, aux parties de diagramme de structure composite et aux associations entre discriminants. La multiplicité d'un attribut vous indique le nombre de valeurs que vous pouvez associer à cet élément de modèle. Par exemple, vous pouvez définir un attribut appelé Attribute1 de données de type Entier dont la plage de valeurs est comprise entre 0 et 3, comme Attribute1 : Entier [0..3]. Une valeur de multiplicité ou plage de valeurs d'une fin d'association illustre le nombre d'objets pouvant participer à la relation. Une spécification de multiplicité peut être un entier positif unique, une plage d'entiers positifs (spécifiée par des limites inférieure et supérieure) ou une liste d'entiers positifs séparés par des virgules. Un astérisque indique une limite supérieure indéterminée. Par exemple, le tableau ci-dessous montre plusieurs spécifications de multiplicité :
Exemple | Description |
---|---|
1 | Exactement un |
0..1 | Zéro ou un |
* | Nombre quelconque, y compris zéro |
1.. | Un ou plus |
Dans un contexte avec des paramètres comme un canevas, les limites supérieure et inférieure d'une spécification de multiplicité peuvent être des expressions ayant pour résultat des valeurs entières.
Si les valeurs de multiplicité sont associées à un attribut, elles apparaissent entre crochets, comme dans l'exemple suivant :
Si les valeurs de multiplicité sont associées aux parties de diagrammes de structure composite, elles apparaissent entre crochets, comme dans l'exemple suivant :
Si les valeurs de multiplicité sont associées à des fins d'association, elles s'affichent en regard de celles auxquelles elles s'appliquent, comme l'illustre l'exemple ci-dessous :
Vous pouvez préciser le type d'un attribut, d'une opération, d'un paramètre et d'une fin d'association. Ce type peut être une classe, un type de données UML (un entier, une chaîne, un naturel illimité ou un booléen, par exemple) ou une interface.
La visibilité permet de déterminer si des éléments de modèle peuvent accéder à d'autres éléments de modèle à partir de la même classe, du même package, d'une structure d'héritage ou d'une quelconque partie d'un système. Vous pouvez préciser la visibilité des éléments de modèle ci-dessous :
Par exemple, d'autres classes peuvent voir et utiliser les attributs et opérations d'une classe à visibilité publique. Si la visibilité des attributs et opérations est privée, seule la classe les contenant peuvent les voir et les utiliser.
Niveau | Icônes des attributs | Icônes des opérations | Symbole textuel | Description |
---|---|---|---|---|
Public | ![]() |
![]() |
+ | Les éléments de modèle peuvent également afficher le conteneur et utiliser l'élément de modèle public. |
Privé | ![]() |
![]() |
- | Les éléments de modèle qui se trouvent dans le même conteneur peuvent afficher et utiliser un élément de modèle privé de ce conteneur. |
Protégé | ![]() |
![]() |
# | Les éléments de modèle qui se trouvent dans le même conteneur ou dans un conteneur descendant peuvent afficher un élément de modèle protégé de ce conteneur. |
Package | ![]() |
![]() |
~ | Les éléments de modèle qui se trouvent dans le même package que le conteneur peuvent afficher et utiliser un élément de modèle avec une visibilité de package. |