Les opérations
Définition d'une opération
Une opération est un service qui peut être demandé à un objet pour mettre en oeuvre un comportement défini. Une opération possède une signature qui permet de préciser les paramètres qui lui sont nécessaires.
Exemples :
"Calcul Age" (Opération de la classe client).
"Imprimer" (Opération de la classe dessin).
"Calculer échéancier" (Opération de la classe prêt).

Les opérations ne sont pas prises en compte par les outils de
HOPEX Information Architecture (synchronisation, génération etc.).
Spécifier les opérations d'une classe
Pour spécifier les opérations d'une classe :
1. Sélectionnez la classe et affichez ses propriétés.
2. Dans la page de propriétés Composants, sous la section Opérations, cliquez sur Nouveau pour créer une opération ou sur Relier pour relier une opération existante.
L'opération apparaît dans les propriétés de la classe.
Vous pouvez préciser sa signature.
Opérations héritées
Lorsqu'une généralisation existe entre une classe générale et une classe particulière, la classe particulière hérite des opérations de la classe générale.

Cliquez sur le bouton
Opérations héritées pour visualiser les opérations héritées d'autres classes.
Propriétés d'une opération
Pour ouvrir la fenêtre de propriétés d'une opération :
1. Dans la page de propriétés Composants de la classe détentrice, sous la section Opérations, sélectionnez l'opération en question.
2. Cliquez sur Propriétés.

Le bouton

permet d'afficher les commandes cachées.
Vous pouvez indiquer pour chaque opération :
• Son Stéréotype afin de préciser son utilisation :
• Constructeur : créer une instance de la classe.
• Destructeur : détruire une instance de la classe.
• Itérateur : parcourir les instances de la classe.
• Sélecteur : effectuer une sélection parmi les instances de la classe.
• S'il s'agit d'une opération Statique : si l'opération qui peut prendre des valeurs spécifiques pour chacune des Instances de la classe ou bien avoir une valeur qui caractérise l'ensemble de la Classe.
• La Concurrence permet de préciser le comportement de l'opération lorsqu'elle est appelée plusieurs fois simultanément.
• Concurrente : l'opération répond simultanément aux différents appels.
• Protégée : l'opération répond au premier appel et rejette les suivants.
• Séquentielle : l'opération répond successivement à chacun des appels.
• Si c'est une opération en Consultation, c'est-à-dire qui ne modifie pas l'état de l'objet.
• Si cette opération est Polymorphe, c'est-à-dire que des méthodes peuvent être redéfinies pour cette opération dans des sous-classes.
Les indications suivantes sont utilisées pour compléter la signature de l'opération.
• Le Type expression de l'opération (voir type expression).

Le type expression d'une opération précise le type de la variable retournée par l'opération à la fin de son exécution.
Signature d'une opération ou d'un signal
La signature d'une opération ou d'un signal est constituée du nom de l'opération (du signal), de son type de retour, et de ses paramètres avec leurs types. La syntaxe UML standard est utilisée pour cette signature, elle est du type : Ope0 (Param0 : M-Bool) : M-Bool.
Il est possible de définir la signature :
• Soit dans la fenêtre de propriétés de l'opération ou du signal.
• Soit dans la fenêtre de propriétés de la classe à laquelle appartient l'opération, sous la section des Opérations.
La signature qui est conservée inclut une référence au type : si le type est renommé, les signatures qui l'utilisent reflètent cette évolution.
Syntaxe des signatures
La syntaxe standard des signatures est :
nomopération(paramètre1:expressiondutype1,paramètre2:expressiondutype2,...):expressiondutyperetour
Les noms comportant des blancs ou des caractères spéciaux doivent être placés entre apostrophes ('Nom du client'). Lorsqu'un nom contient une apostrophe, il faut dupliquer l'apostrophe : 'Nom de l' 'acheteur'
Exemples de signatures :
Déstocker (Produit0 : Entier(3), Quantité0 : Entier) : Booléen
'Création de commande' ('Nom du client' : Client) : Byref Variable
Dans la spécification d'une signature, il est possible de préciser le paquetage auquel appartient une classe, séparé par deux fois deux points.
Exemple : Entreprise::'Gestion Commerciale'::Client.
La classe citée est reliée au paramètre ou au type de retour. Si elle n'existe pas, elle est créée. De même, les paquetages cités dans le parcours qui n'existent pas sont créés et reliés à la classe.
Si le paquetage n'est pas précisé, une fenêtre vous propose de choisir entre les éventuelles classes homonymes.
Paramètres d'une opération
Un paramètre est la spécification d'une variable qui peut être modifiée, transmise ou retournée. Un paramètre peut préciser un nom, un type et une direction. Les paramètres sont utilisés pour les opérations, les messages et les événements.
Un argument est une valeur spécifique correspondant à un paramètre.
Dans la fenêtre de propriétés d'une opération, la section Paramètres vous permet de préciser :
• Son Type sous forme d'une expression Ex : Integer(5).
• Sa Valeur par défaut Ex : 0.
• Sa Direction : en entrée et/ou en sortie de l'opération.
Pour créer un paramètre sur une opération :
1. Affichez les propriétés de l'opération.
2. Sélectionnez la page Caractéristiques.
3. Sous la section Paramètres, cliquez sur Nouveau.
La fenêtre de création d'un paramètre apparaît.
4. Saisissez le nom du paramètre et cliquez sur OK.
Méthodes d'une opération (comportement opaque)
Une méthode - ou comportement opaque - est une représentation textuelle de l'implémentation d'une opération, d'une classe ou d'un composant. Elle spécifie l'algorithme ou la procédure qui produit les résultats d'une opération ou le comportement d'un élément.
Pour définir la méthode qui implémente une opération :
1. Ouvrez la page Caractéristiques de l'opération.
2. Sous la section Méthode, cliquez sur Ajouter.
La fenêtre d'ajout d'une méthode apparaît.
3. Saisissez le nom de la méthode à créer ou recherchez une méthode existante.
4. Cliquez sur OK.
Pour saisir le corps du texte de la méthode qui implémente l'opération :
1. Ouvrez la page Caractéristiques de la méthode.
2. Définissez la méthode dans le cadre Corps.
Quand une classe possède plusieurs sous-classes, chaque sous-classe est susceptible d'implémenter l'opération sous forme d'une méthode différente.
La section Méthode présente la méthode relative à la classe sélectionnée.
Conditions d'une opération
Vous pouvez définir les conditions d'une opération sous la forme de contraintes.
Les types de condition sont :
• La Pré-Condition, qui doit être vérifiée avant que l'opération ne s'exécute.
• La condition sur le Corps, qui doit être vérifiée lors de l'exécution de l'opération.
• La Post-Condition qui doit être vérifiée après l'exécution de l'opération.
Pour saisir une condition sur une opération :
1. Ouvrez la page Conditions de l'opération.
2. Sous la section Conditions, sélectionnez le type de condition :
• pré-condition
• condition sur le corps
• post-condition
3. Cliquez sur Nouveau.
La fenêtre d'ajout d'une contrainte apparaît.
4. Saisissez le nom de la contrainte à créer ou recherchez une contrainte existante.
5. Cliquez sur OK.
Pour saisir le corps de la condition :
1. Dans la fenêtre de propriétés de l'opération détentrice, sélectionnez la condition.
2. Cliquez sur le bouton Propriétés.

Le bouton

permet d'afficher les commandes cachées.
3. Cliquez sur la page Caractéristiques.
4. Sous la section Corps expression, saisissez l'expression de la condition.
Exceptions d'une opération
Si une condition n'est pas respectée, une exception est générée.
La section Exceptions vous permet de définir les messages d'erreur envoyés par l'opération lorsqu'une exception se produit et de préciser leur signature.
Afficher les attributs et les opérations d'une classe
Pour modifier l'affichage des attributs et des opérations de la classe :
1. Faites un clic droit sur la ou les classes dont vous voulez afficher des attributs.
2. Sélectionnez Formes et détails.
La fenêtre de sélection des éléments à afficher apparaît.
3. Dans l'arbre de gauche, cliquez sur Attribut.
4. Sélectionnez les attributs que vous voulez afficher.
Vous pouvez les afficher Tous, en afficher Certains que vous allez sélectionner dans la liste, ou n'en afficher Aucun.
Vous pouvez demander l'affichage de la Visibilité, du type, … de chacun des attributs.

Un type de données permet de mettre en commun des caractéristiques communes à plusieurs attributs. Les types de données sont implémentés sous forme de classe.
L'affichage des opérations est indiqué de la même manière, en choisissant Opération dans l'arbre qui vous est présenté.