Dans UML 2.5.1, publié en 2017, une classe possède des propriétés (généralement appelées "propriété" dans de nombreux langages de programmation) et des opérations (généralement appelées "méthode" dans de nombreux langages de programmation).
Opérations abstraites
Les "méthodes" C# Job
et Job2
sont des opérations abstraites.
Une opération (section 9.6) est un type de BehavioralFeature. Une BehavioralFeature peut être abstraite (section 9.9.2.5). Une BehavioralFeature est elle-même une classe abstraite (section 9.9.2.5). Chaque classe est un EncapsulatedClassifier (section 11.4.1). Chaque EncapsulatedClassifier est un StructuredClassifier (11.3.1). Chaque Classifiers est un Classifier (section 11.1). Je cite maintenant la norme (de la section 9.2.4.1) :
Le nom d'un Classifier abstrait est affiché en italique, lorsque la police utilisée le permet. Alternativement ou en plus, un Classifier abstrait peut être affiché en utilisant l'annotation textuelle {abstrait} après ou en dessous de son nom
Dans tous les cas, MyClass
, Job
et Job2
sont tous des classificateurs abstraits, et la manière préférée de montrer cela est par une police en italique. Et/ou utiliser la notation {abstrait}
. La notation <>
provient d'une norme UML plus ancienne.
Propriétés
a
et b
sont des propriétés appartenant à la classe MyClass
. Une propriété possédée de cette façon est également appelée un attribut (11.4.3.1). La section 11.4.4 parle de la notation
Une classe possède quatre compartiments obligatoires : attributs, opérations, réceptions (voir 9.2.4) et structure interne (voir 11.2.4).
On peut en savoir plus sur les compartiments dans la section 9.2.4. Le message clé ici est : Le fait que a
et b
sont des propriétés est communiqué en les plaçant simplement dans le compartiment supérieur de la boîte de classe - le compartiment "attributs". C'est exactement ce que vous avez fait. L'écriture de <>
pourrait être omise.
La notation <>
signifie que les propriétés a
et b
suivent un stéréotype appelé propriété
. Ce n'est pas défini dans UML, mais peut faire partie d'un profil UML. Selon https://stackoverflow.com/a/63784017, il s'agit d'un stéréotype spécifique à C#. Donc je suppose que vous pouvez conserver la notation que vous avez, indiquant que a
et b
sont non seulement des propriétés UML, mais aussi des proprietés
C#.