Modelisation orientee objet

  • 4,260 views
Uploaded on

Modélisation orientée objet

Modélisation orientée objet

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,260
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
3,679
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Modélisation orientée objet PowerAMC™ 15.1 Windows
  • 2. ID DU DOCUMENT : DC31018-01-1510-01DERNIERE REVISION : Juin 2009Copyright © 2009 Sybase, Inc. Tous droits réservés.Cette publication concerne le logiciel Sybase et toutes les versions ultérieures qui ne feraient pas l’objet d’une réédition de la documentation ou de la publicationde notes de mise à jour. Les informations contenues dans ce document pourront faire l’objet de modifications sans préavis. Le logiciel décrit est fourni souscontrat de licence et il ne peut être utilisé ou copié que conformément aux termes de ce contrat.Pour commander des ouvrages supplémentaires ou acquérir des droits de reproduction, si vous habitez aux Etats-Unis ou au Canada, appelez notre ServiceClients au (800) 685-8225, télécopie (617) 229-9845.Les clients ne résidant pas aux Etats-Unis ou au Canada et qui disposent d’un contrat de licence pour les U.S.A. peuvent joindre notre Service Clients partélécopie. Ceux qui ne bénéficient pas de cette licence doivent s’adresser à leur revendeur Sybase ou au distributeur le plus proche. Les mises à jour du logicielne sont fournies qu’à des dates d’édition périodiques. Tout ou partie de cette publication ne peut être reproduit, transmis ou traduit, sous quelque forme ou parquelque moyen que ce soit (électronique, mécanique, manuel, optique ou autre) sans l’accord écrit préalable de Sybase, Inc.Les marques déposées Sybase peuvent être consultées sur la page Sybase trademarks (http://www.sybase.com/detail?id=1011207). Sybase et les marquesmentionnées sont des marques de Sybase, Inc. ® indique le dépôt aux Etats-Unis dAmérique.Java et toutes les marques basées sur Java sont des marques ou des marques déposées de Sun Microsystems, Inc. aux Etats-Unis et dans dautres pays.Unicode et le logo Unicode sont des marques déposées d’Unicode, Inc.Tous les autres noms dentité et de produit utilisés peuvent être des marques ou des marques déposées de leur propriétaire respectif.Use, duplication, or disclosure by the government is subject to the restrictions set forth in subparagraph (c)(1)(ii) of DFARS 52.227-7013 for the DOD and asset forth in FAR 52.227-19(a)-(d) for civilian agencies.Sybase, Inc., One Sybase Drive, Dublin, CA 94568
  • 3. Table des matières Notions de base relatives à la modélisation orientée objet .....................1 Création dun MOO ....................................................................................3 Propriétés dun MOO .........................................................................5 Construction de diagrammes de cas dutilisation ..................................7 Objets dun diagramme de cas dutilisation ......................................................7 Création dun diagramme de cas dutilisation ....................................................8 Cas dutilisation (MOO) ..............................................................................8 Création dun cas dutilisation ..............................................................8 Propriétés de cas dutilisation ..............................................................9 Acteurs (MOO) .......................................................................................10 Création dun acteur ........................................................................12 Propriétés dun acteur ......................................................................12 Réutilisation des acteurs ..................................................................14 Associations de cas dutilisation (MOO) ..........................................................14 Création dune association de cas dutilisation .........................................15 Propriétés dune association de cas dutilisation .......................................15 Construction de diagrammes structurels ..........................................17 Notions de base relatives au diagramme de classes ...........................................17 Objets du diagramme de classe ..........................................................18 Création dun diagramme de classes .....................................................18 Notions de base relatives au diagramme de structures composites ........................19 Objets du diagramme de structure composite .........................................19 Création dun diagramme de structure composite .....................................20 Notions de base relatives au diagramme dobjets .............................................20 Objets du diagramme dobjets ............................................................21 Création dun diagramme dobjets ........................................................22 Notions de base relatives au diagramme de packages ........................................22 Objets du diagramme de packages .......................................................22 Création dun diagramme de packages ..................................................23 Classes (MOO) ........................................................................................23 Création dune classe .......................................................................23 Propriétés dune classe .....................................................................24 Création de classes Java BeanInfo .......................................................29 Types et méthodes génériques ............................................................32 Classificateurs composites et classificateurs internes ................................34 Affectation dun classificateur à un type de données ou à un type de résultat ................................................................................................36 Affichage des attributs migrés dune classe ............................................37 Packages (MOO) .....................................................................................38 Propriétés dun package de MOO .........................................................39 Affichage du code dun package dans un MOO .........................................40Modélisation orientée objet iii
  • 4. Table des matières Définition du type de diagramme dun nouveau package .............................40 Interfaces (MOO) ....................................................................................40 Création dune interface ...................................................................41 Propriétés dune interface .................................................................41 Objets (MOO) ........................................................................................43 Création dun objet .........................................................................44 Propriétés dun objet .......................................................................44 Liaison dun classificateur à un objet ....................................................46 Parties (MOO) ........................................................................................47 Création dune partie .......................................................................47 Propriétés dune partie .....................................................................48 Ports (MOO) ..........................................................................................48 Création dun port ..........................................................................49 Propriétés dun port ........................................................................49 Redéfinition des ports parent .............................................................50 Attributs (MOO) .....................................................................................51 Création dun attribut ......................................................................52 Propriétés dun attribut ....................................................................52 Ajout dopération Getter et Setter dans un classificateur ............................54 Copie dun attribut dans une classe, interface ou dans un identifiant .............55 Redéfinition dun attribut dans PowerBuilder ..........................................56 Identifiants (MOO) ..................................................................................57 Création dun identifiant ...................................................................57 Propriétés dun identifiant .................................................................58 Ajout dattributs à un identifiant .........................................................59 Opérations (MOO) ...................................................................................59 Création dune opération ..................................................................60 Copie dune opération dans une autre classe ...........................................63 Propriétés dune opération ................................................................64 Associations (MOO) .................................................................................68 Création dune association .................................................................69 Propriétés dune association ...............................................................69 Mise en oeuvre dune association .........................................................72 Création dune classe dassociation .......................................................74 Migration des rôles dassociation dans un diagramme de classes ....................74 Régénération des liens de type de données ............................................75 Liaison dune association à un lien entre objets .......................................76 Généralisations (MOO) .............................................................................76 Création dune généralisation .............................................................77 Propriétés dune généralisation ...........................................................78 Dépendances (MOO) ................................................................................78 Création dune dépendance ...............................................................80 Propriétés dune dépendance .............................................................80 Réalisations (MOO) ..................................................................................81 Création dune réalisation .................................................................82iv PowerAMC™
  • 5. Table des matières Propriétés dune réalisation ...............................................................82 Liens de prérequis (MOO) ..........................................................................82 Création dun lien de prérequis ...........................................................83 Propriétés dun lien de prérequis .........................................................83 Connecteurs dassemblage (MOO) ................................................................83 Création dun connecteur dassemblage .................................................84 Propriétés dun connecteur dassemblage ...............................................84 Connecteurs de délégation (MOO) ................................................................84 Création dun connecteur de délégation ................................................85 Propriétés dun connecteur de délégation ..............................................85 Annotations (MOO) ..................................................................................86 Affectation dune annotation à un objet de modèle ..................................86 Création dun nouveau type dannotation ...............................................87 Utilisation de lEditeur dannotations ....................................................88 Liens entre objets (MOO) ..........................................................................89 Création dun lien entre objets ...........................................................91 Propriétés dun lien entre objets .........................................................91 Domaines (MOO) .....................................................................................92 Création dun domaine .....................................................................92 Propriétés dun domaine ...................................................................92 Mise à jour dattributs à laide dun domaine dans un MOO ...........................95 Paramètres de contrôle (MOO) ....................................................................95 Définition de paramètres de contrôle standard pour des objets dun MOO ........96 Définition de paramètres de contrôle supplémentaires pour des objets dun MOO ................................................................................................96 Construction de diagrammes dynamiques .........................................99 Notions de base relatives au diagramme de communication .................................99 Objets dun diagramme de communication ............................................100 Création dun diagramme de communication .........................................101 Création dun diagramme de communication à partir dun diagramme de séquence ...............................................................................................101 Notions de base relatives au diagramme de séquence ......................................101 Création dun diagramme de séquence ................................................102 Création dun diagramme de séquence à partir dun diagramme de communication ...............................................................................................103 Objets dun diagramme de séquence ...................................................103 Notions de base relatives au diagramme dactivités .........................................104 Objets du diagramme dactivités ........................................................105 Création dun diagramme dactivités ...................................................105 Notions de base relatives au diagramme détats transitions ................................106 Définition dun classificateur par défaut dans le diagramme détats-transitions ...............................................................................................106 Objets du diagramme détats-transitions ..............................................107 Création dun diagramme détats-transitions ..........................................108 Notions de base relatives au diagramme dinteractions .....................................108Modélisation orientée objet v
  • 6. Table des matières Objets du diagramme dinteractions ...................................................108 Création dun diagramme dinteractions ............................................... 109 Messages (MOO) ....................................................................................109 Création dun message .................................................................... 110 Propriétés dun message ..................................................................111 Création de messages Création et Destruction dans un diagramme de séquence ............................................................................................... 113 Création dun message récursif dans un diagramme de séquence ................. 115 Messages et portes ........................................................................ 116 Numéros dordre ........................................................................... 117 Activation (MOO) .................................................................................. 119 Création dune activation ................................................................ 120 Attachement dun message à une activation .......................................... 120 Détachement dun message dune activation ..........................................121 Activations superposées .................................................................. 121 Déplacement dune activation ...........................................................121 Redimensionnement dune activation .................................................. 122 Références dinteraction et activités dinteraction (MOO) .................................. 122 Création dune référence dinteraction ................................................ 123 Création dune activité dinteraction ................................................... 123 Propriétés dune référence dinteraction ou dune activité dinteraction ......... 123 Manipulation des références dinteraction ............................................ 124 Fragments dinteraction (MOO) .................................................................. 124 Création dun fragment dinteraction ...................................................124 Propriétés dun fragment dinteraction .................................................125 Manipulation de fragments dinteraction .............................................. 126 Activités (MOO) .................................................................................... 126 Création dune activité ................................................................... 128 Propriétés dune activité ................................................................. 128 Spécification des paramètres dactivité ................................................129 Spécification des types daction .........................................................130 Activités décomposées et sous-activités ...............................................134 Unités dorganisation (MOO ) .....................................................................136 Création dune unité dorganisation .....................................................137 Propriétés dune unité dorganisation ...................................................137 Attachement dactivités à des unités dorganisation ................................. 138 Affichage dune activité communautaire ............................................. 138 Gestion des couloirs et des pools ....................................................... 139 Débuts ( MOO) ......................................................................................143 Création dun début ....................................................................... 144 Propriétés dun début ..................................................................... 144 Fins ( MOO) ......................................................................................... 144 Création dune fin ......................................................................... 145 Propriétés dune fin ....................................................................... 145 Décisions ( MOO) ...................................................................................145vi PowerAMC™
  • 7. Table des matières Création dune décision ...................................................................146 Propriétés dune décision .................................................................147 Synchronisations ( MOO) ..........................................................................147 Création dune synchronisation ..........................................................148 Propriétés dune synchronisation ........................................................148 Flux ( MOO) .........................................................................................149 Création dun flux .........................................................................150 Propriétés dun flux .......................................................................150 Noeuds dobjet (MOO) .............................................................................151 Création dun noeud dobjet .............................................................152 Propriétés dun noeud dobjet ...........................................................152 Etats (MOO) .........................................................................................153 Création dun état .........................................................................153 Propriétés dun état .......................................................................154 Etats décomposés et sous-états .........................................................155 Transitions (MOO) ..................................................................................157 Création dune transition .................................................................157 Propriétés dune transition ...............................................................157 Evénements (MOO) ................................................................................159 Création dun événement ................................................................159 Propriétés dun événement ..............................................................160 Définition dun argument dévénement ................................................161 Actions (MOO) ......................................................................................161 Création dune action .....................................................................162 Propriétés dune action ...................................................................162 Points de jonction (MOO) .........................................................................163 Création dun point de jonction .........................................................164 Propriétés dun point de jonction .......................................................164 Construction de diagrammes de mise en oeuvre ...............................165 Notions de base relatives au diagramme de composants ....................................165 Objets dun diagramme de composant .................................................166 Création dun diagramme de composants ..............................................166 Notions de base relatives au diagramme de déploiement ..................................166 Objets dun diagramme de déploiement ...............................................167 Création dun diagramme de déploiement ............................................168 Composants (MOO) ................................................................................168 Création dun composant .................................................................168 Propriétés dun composant ...............................................................169 Création dun diagramme de classes pour un composant ...........................174 Déploiement dun composant dans un noeud .........................................175 Noeuds (MOO) ......................................................................................175 Création dun noeud .......................................................................176 Propriétés dun noeud .....................................................................176 Diagrammes de noeud ....................................................................177 Instances de composant (MOO) ..................................................................178Modélisation orientée objet vii
  • 8. Table des matières Création dune instance de composant .................................................178 Propriétés dune instance de composant ...............................................179 Objets fichier (MOO) ..............................................................................179 Création dun objet fichier ...............................................................180 Propriétés dun objet fichier .............................................................180 Associations de noeuds (MOO) ...................................................................181 Création dune association de noeuds ..................................................181 Propriétés dune association de noeuds ................................................181 Travailler avec les services Web ...................................................183 Définition des outils de services Web ..........................................................183 Définition des cibles de service Web ...........................................................185 Définition dun composant de service Web ....................................................185 Types de services Web pris en charge ..................................................186 Propriétés de composant de service Web ..............................................186 Création dun service Web à laide de lAssistant .....................................188 Création dun service Web à partir du diagramme de composants ................190 Définitions de types de données pour WSDL ..........................................190 Classe de mise en oeuvre de service Web .............................................191 Gestion de méthodes de services Web .........................................................192 Création dune méthode de service Web ...............................................192 Propriétés dune méthode de service Web .............................................193 Mise en oeuvre dune méthode de service Web dans Java ..........................193 Mise en oeuvre dune méthode de service Web dans .NET ..........................196 Définition des attributs étendus dune méthode de service Web ..................197 Définition des types de données SOAP du schéma WSDL ............................197 Définition dune instance de composant de service Web ....................................198 Onglet Service Web de linstance de composant .....................................198 Onglet WSDL de linstance de composant ..............................................199 Utilisation des propriétés de noeud ....................................................200 Génération de services Web pour Java .........................................................200 Génération de services Web JAXM ......................................................200 Génération de services Web JAX-RPC ..................................................201 Génération de beans de session sans état de service Web ..........................202 Génération de services Web AXIS RPC ..................................................203 Génération de services Web dEJB AXIS ................................................204 Génération de services Web Java (JWS) ...............................................204 Test des services Web pour Java ........................................................204 Génération des services Web pour .NET .......................................................205 Définition des options de génération de services Web dans .NET .................205 Définition des tâches de génération de service Web dans .NET ...................205 Génération de services Web dans .NET ................................................206 Génération dune classe de proxy .NET pour un service Web .......................206 Déploiement de services Web dans .NET ..............................................207 Test de services Web pour .NET .........................................................207 Génération de services Web pour Sybase WorkSpace ........................................207viii PowerAMC™
  • 9. Table des matières Création et génération dun service Web Java pour Sybase WorkSpace ..........208 Création et génération dun service Web EJB pour Sybase WorkSpace ............211 Reverse engineering de services Web .......................................................... 215 Importation dun fichier WSDL ...........................................................215 Recherche de WSDL dans UDDI .......................................................... 218 Gestion des Modèles Orientés Objet ..............................................223 Personnalisation de lenvironnement de MOO ................................................. 223 Gestion des langages objet .............................................................. 223 Définition des options de modèle de MOO .............................................225 Définition des préférences daffichage de MOO ...................................... 228 Gestion des définitions étendues de modèle de MOO ............................... 230 Gestion des dépendances étendues de MOO .......................................... 231 Génération dautres modèles à partir dun MOO .............................................. 232 Mise en correspondance dobjets de MOO avec des objets dautres modèles .... 232 Gestion de la persistance dobjet lors de la génération de MOO vers le MCD ....233 Gestion de la persistance des objets lors de la génération dun MPD à partir dun MOO ......................................................................................237 Vérification dun MOO .............................................................................242 Vérifications des domaines .............................................................. 243 Vérifications des sources de données .................................................. 243 Vérifications des packages ...............................................................243 Vérifications des acteurs/cas dutilisations ........................................... 244 Vérifications des classes ..................................................................244 Vérifications des identifiants ............................................................ 249 Vérifications des interfaces ..............................................................249 Vérifications des attributs de classe/interface .......................................250 Vérifications des opérations de classe/interface .....................................251 Vérifications des réalisations ............................................................ 252 Vérifications des généralisations ........................................................253 Vérifications des objets .................................................................. 253 Vérifications des liens entre objets .................................................... 254 Vérifications des messages ...............................................................254 Vérifications des états ....................................................................254 Vérifications des actions détat ......................................................... 255 Vérifications des événements ........................................................... 255 Vérifications des points de jonction ................................................... 256 Vérifications des activités ................................................................256 Vérifications des décisions ...............................................................256 Vérifications des noeuds dobjet ........................................................ 257 Vérifications des unités dorganisation .................................................257 Vérifications des débuts/fins ............................................................ 257 Vérifications des synchronisations ...................................................... 258 Vérifications des transitions et des flux ............................................... 258 Vérifications des composants ............................................................259 Vérifications des noeuds ................................................................. 259Modélisation orientée objet ix
  • 10. Table des matières Vérifications des instances de composant .............................................260 Vérifications des références dinteraction .............................................260 Vérifications des parties de classe ......................................................261 Vérifications des ports de classe ou de composant ..................................261 Vérifications des connecteurs dassemblage de classe ou de composant .........262 Vérifications des associations ...........................................................262 Vérification des paramètres dentrée et de sortie dactivité .......................263 Importation dun modèle Rational Rose dans un MOO .......................................263 Importation des objets généraux Rational Rose ......................................263 Importation de diagrammes de cas dutilisation (use case diagrams) Rational Rose ...............................................................................................264 Importation de diagrammes de classes (class diagrams) Rational Rose ...........264 Importation de diagrammes de collaboration (collaboration diagrams) Rational Rose ......................................................................................265 Importation de diagrammes de séquence (sequence diagrams) Rational Rose ...............................................................................................266 Importation de diagrammes détats-transitions (statechart diagrams) Rational Rose ......................................................................................266 Importation de diagrammes dactivités (activity diagrams) Rational Rose .......267 Importation de diagrammes de composants (component diagrams) Rational Rose ...............................................................................................268 Importation de diagrammes de déploiement (deployment diagrams) Rational Rose ......................................................................................268 Importation et exportation dun MOO dans un format XMI ..................................269 Importation de fichiers XMI ..............................................................269 Exportation de fichiers XMI ..............................................................269 Génération et reverse engineering de fichiers source orientés objet .....271 Génération des fichiers orientés objet à partir dun MOO ...................................271 Génération de fichiers sources orienté objet .........................................271 Gestion des cibles de génération .......................................................273 Définition du package de code source .................................................274 Activation du mode de suivi dans les onglets Aperçu ................................274 Reverse engineering de fichiers orientés objet dans un MOO ..............................274 Reverse engineering dans un nouveau MOO ...........................................275 Reverse engineering dans un MOO existant ...........................................276 Synchronisation dun modèle avec des fichiers générés .....................................277 Travailler avec Java ..................................................................279 Classes publiques Java ............................................................................279 Types énumérés (enums) Java ...................................................................279 Commentaires Javadoc ...........................................................................282 Définition de valeurs pour les étiquettes Javadoc ...................................284 Génération et reverse engineering de commentaires JavaDoc ....................286 Annotations Java 5.0 ..............................................................................287 Mot clé strictfp Java ..............................................................................287 Enterprise Java Beans (EJB) v2 ..................................................................288x PowerAMC™
  • 11. Table des matières Utilisation des types dEJB ...............................................................289 Propriétés dun EJB ........................................................................289 Création dun EJB à laide de lAssistant ................................................291 Définition dinterfaces et de classes pour un EJB .................................... 293 Définition dopérations pour un EJB .................................................... 296 Notions de base relatives à la prise en charge des EJB dans un MOO ............. 298 Utilisation du descripteur de déploiement dEJB ..................................... 301 Génération des EJB ....................................................................... 303 Génération de fichiers .JAR ............................................................. 309 Reverse engineering dEJB ............................................................... 311 Enterprise Java Beans (EJB) v3 ..................................................................314 Création dun EJB 3.0 avec lAssistant Enterprise JavaBean ........................ 315 Propriétés dune classe Bean EJB 3.0 ...................................................317 Propriétés dun composant EJB 3.0 ..................................................... 318 Propriétés dune opération EJB 3.0 ..................................................... 319 Servlets Java ....................................................................................... 320 Page Servlet du composant .............................................................. 320 Définition de classes de servlet ......................................................... 320 Création dun servlet à laide de lAssistant ............................................321 Notions de base relatives à linitialisation et à la synchronisation dun servlet ............................................................................................... 322 Génération de servlets ................................................................... 322 Génération de fichiers WAR ..............................................................325 Reverse engineering de servlets ........................................................ 326 Java Server Pages (JSP) ...........................................................................327 Page JSP du composant ...................................................................327 Définition des objets fichier pour les JSP ............................................. 327 Création dun JSP à laide de lAssistant ................................................328 Génération de JSP .........................................................................329 Reverse engineering des JSP .............................................................331 Génération de code Java .........................................................................332 Définition des variables denvironnement Java ....................................... 332 Définition des options de génération pour Java ...................................... 332 Sélection des tâches de génération pour Java ........................................334 Génération de fichiers Java ............................................................. 335 Utilisation des outils pour la génération Java ........................................ 336 Reverse engineering de code Java .............................................................. 337 Onglet Options de la boîte de dialogue Reverse engineering de Java ............ 339 Travailler avec EMF (Eclipse Modeling Framework) ............................341 Objets EMF ..........................................................................................341 EPackages ...................................................................................341 EClasses, EEnums et EDataTypes ........................................................ 341 EAnnotations ............................................................................... 341 EAttributes et EEnumLiterals ............................................................342 EReferences ................................................................................ 342Modélisation orientée objet xi
  • 12. Table des matières EOperations et EParameters ............................................................. 342 Génération de fichiers EMF ......................................................................342 Reverse engineering de fichiers EMF ...........................................................343 Travailler avec IDL ....................................................................345 Mise en correspondance de base entre objets IDL et objets de MOO .....................345 Interface ....................................................................................345 Module ......................................................................................346 Mise en correspondance complexe entre objets IDL et objets de MOO ...................346 Type de données ...........................................................................346 Constante générale .......................................................................346 Constante dinterface .....................................................................346 Définition de type (Typedef) .............................................................347 Séquence ...................................................................................347 Type de valeur (valuetype) ..............................................................347 Valeur personnalisée (custom value) ...................................................348 Valeur encadrée (boxed value) ..........................................................348 Enumération (Enum) ......................................................................348 Structure (struct) ..........................................................................348 Structure (struct) dans une autre structure ...........................................349 Séquence dans une structure ............................................................349 Union ........................................................................................350 Enumération/ structure dans une union ...............................................350 Structure/ énumération comme type de données switch ...........................351 Tableau (array) .............................................................................351 Tableau pour une séquence ..............................................................351 Tableau pour une union ou une structure .............................................351 Déclenchement dune exception .......................................................352 Génération pour IDL ...............................................................................353 Reverse engineering de code IDL ................................................................353 Limitation relatives au reverse engineering de IDL ..................................353 Sélection des options de reverse engineering pour IDL .............................354 Reverse engineering de fichiers IDL ....................................................355 Travailler avec PowerBuilder .......................................................357 Correspondance complète .......................................................................357 Application .................................................................................357 Structure ....................................................................................357 Function ....................................................................................357 User object .................................................................................357 Proxy ........................................................................................358 Window ......................................................................................358 Correspondance minimale ........................................................................358 Sélection dune version de PowerBuilder ......................................................359 Sélectionner dune version PowerBuilder pour la génération .......................359 Sélectionner dune version PowerBuilder pour le rReverse engineering ..........360 Génération pour PowerBuilder ..................................................................361xii PowerAMC™
  • 13. Table des matières Objets générés .............................................................................361 Sélection des options de génération pour PowerBuilder ............................362 Reverse engineering de code PowerBuilder ...................................................363 Objets récupérés par le reverse engineering .........................................363 Sélection des options de reverse engineering pour PowerBuilder .................365 Processus de reverse engineering PowerBuilder ......................................367 Chargement dun modèle de bibliothèque PowerBuilder dans lespace de travail ...............................................................................................368 Travailler avec VB .NET ..............................................................369 Eléments automatiquement générés ...........................................................369 Objets VB .NET pris en charge ...................................................................369 Héritage et implémentation .............................................................370 Espace de noms ............................................................................370 Project ......................................................................................370 Accessibilité ................................................................................371 Classe ........................................................................................371 Structure ....................................................................................371 Interface ....................................................................................372 Types imbriqués (Nested Type) ..........................................................372 Module ......................................................................................372 Enumération ................................................................................372 Attributs personnalisés ...................................................................373 Shadows .....................................................................................373 Variables ....................................................................................374 Propriété ....................................................................................374 Méthode .....................................................................................376 Constructeur & destructeur ..............................................................377 Délégué (delegate) ........................................................................377 Evénement .................................................................................378 Gestionnaire dévénements (Event Handler) ..........................................378 Méthode externe ..........................................................................379 Génération pour VB .NET .........................................................................379 Définition des variables denvironnement VB .NET ...................................379 Sélection des options de génération pour VB .NET ...................................379 Sélection des tâches de génération pour VB .NET ...................................380 Génération de fichiers VB .NET .........................................................380 Reverse engineering de code VB .NET ..........................................................380 Sélection des options de reverse engineering pour VB .NET ........................381 Prétraitement lors du reverse engineering VB .NET .................................382 Reverse engineering de fichiers VB .NET ..............................................385 Utilisation dASP.NET ..............................................................................385 Onglet ASP de la feuille de propriétés du composant ...............................386 Définition des objets fichier pour les ASP.NET ........................................386 Création dun ASP.NET à laide de lAssistant ..........................................387 Génération de ASP.NET ...................................................................388Modélisation orientée objet xiii
  • 14. Table des matières Travailler avec Visual Basic 2005 ..................................................391 Outils Visual Basic 2005 personnalisés .........................................................391 Assemblies Visual Basic 2005 ....................................................................391 Création dun assembly ...................................................................391 Propriétés dassembly .....................................................................392 Unités de compilation (Compilation Units) Visual Basic 2005 ..............................393 Création dune unité de compilation ...................................................393 Ajout de types dans les unités de compilation .......................................394 Création dune structure de dossiers de génération .................................395 Aperçu du code à générer pour une unité de compilation ..........................395 Espaces de noms (Namespaces) Visual Basic 2005 ............................................395 Classes Visual Basic 2005 .........................................................................396 Propriétés dune classe Visual Basic 2005 ..............................................396 Types partiels ..............................................................................397 Interfaces Visual Basic 2005 .....................................................................397 Propriétés dune interface Visual Basic 2005 ..........................................397 Structures (Structs) Visual Basic 2005 ..........................................................397 Création dune structure .................................................................398 Propriétés dune structure (struct) .....................................................398 Délégués (Delegates) Visual Basic 2005 ........................................................398 Création dun délégué ....................................................................399 Propriétés dun délégué ..................................................................399 Enumérations (Enums) Visual Basic 2005 .......................................................400 Création dune énumération .............................................................400 Propriétés dune énumération ...........................................................400 Champs (Fields), événements (Events) et propriétés (Properties) Visual Basic 2005 .......................................................................................................401 Création dun champ, dun événement ou dune propriété : ........................401 Propriétés dun champ, dun événement et dune propriété ........................401 Utilisation des propriétés ................................................................401 Utilisation des événements ..............................................................402 Méthodes (Methods) Visual Basic 2005 .........................................................403 Propriétés dune méthode ................................................................403 Héritage (Inheritance) et réalisation (Implementation) Visual Basic 2005 ...............404 Attributs personnalisé (Custom Attributes) Visual Basic 2005 ..............................404 Génération de code Visual Basic 2005 ..........................................................405 Onglets Options de la boîte de dialogue de génération pour Visual Basic 2005 ...............................................................................................405 Onglet Tâches de la boîte de dialogue de génération pour Visual Basic 2005 ...............................................................................................406 Définition de variables denvironnement Visual Basic 2005 .........................406 Reverse engineering de code Visual Basic 2005 ...............................................407 Onglet Options de la boîte de dialogue Reverse engineering de VB.NET 2005 ...............................................................................................407 Directives de prétraitement pour le reverse engineering VB.NET 2005 ..........408xiv PowerAMC™
  • 15. Table des matières Travailler avec C# .....................................................................411 Eléments automatiquement générés ...........................................................411 Objets C# pris en charge .........................................................................411 Héritage & mise en oeuvre .............................................................. 411 Espace de noms ............................................................................411 Projet ........................................................................................412 Accessibilité ................................................................................412 Class .........................................................................................413 Structure ....................................................................................414 Enumération ................................................................................414 Interface ....................................................................................415 Types imbriqués (Nested Types) .........................................................415 Attributs personnalisés ...................................................................415 Champs ......................................................................................415 Propriété ....................................................................................416 Indexeur ....................................................................................417 Méthode .....................................................................................418 Constructeur & destructeur ..............................................................420 Délégué (delegate) ........................................................................420 Evénement ................................................................................. 420 Méthode dopérateur ......................................................................421 Méthode dopérateur de conversion ....................................................421 Balises de documentation ................................................................421 Génération pour C# ...............................................................................422 Définition des variables denvironnement C# .........................................422 Sélection des options de génération pour C# .........................................422 Sélection des tâches de génération pour C# ..........................................423 Génération de fichiers C# ................................................................423 Reverse engineering de code C# ................................................................424 Sélection des options de reverse engineering pour C# ..............................424 Prétraitement lors du reverse engineering C# ........................................425 Reverse engineering de fichiers C# .....................................................428 Travailler avec C# 2.0 ................................................................429 Outils C# 2.0 personnalisés ...................................................................... 429 Assemblies C# 2.0 ................................................................................. 429 Création dun assembly ...................................................................429 Propriétés dassembly .....................................................................430 Unités de compilation C# 2.0 ....................................................................431 Création dune unité de compilation ...................................................431 Ajout de types dans les unités de compilation .......................................432 Création dune structure de dossiers de génération .................................433 Aperçu du code à générer pour une unité de compilation ..........................433 Espaces de nom C# 2.0 ...........................................................................433 Classes C# 2.0 ......................................................................................434 Propriétés dune classe C# ............................................................... 435Modélisation orientée objet xv
  • 16. Table des matières Types partiels ..............................................................................435 Interfaces C# 2.0 ..................................................................................435 Propriétés dune interface C# ...........................................................436 Structures C# 2.0 ..................................................................................436 Création dune structure .................................................................436 Propriétés dune structure (struct) .....................................................436 Délégués (delegates) C# 2.0 .....................................................................437 Création dun délégué ....................................................................437 Propriétés dun délégué ..................................................................437 Enumérations C# 2.0 ..............................................................................437 Création dune énumération .............................................................438 Propriétés dune énumération ...........................................................438 Champs C# 2.0 .....................................................................................438 Propriétés dun champ ....................................................................438 Méthodes C# 2.0 ...................................................................................439 Propriétés dune méthode ................................................................439 Redéfinition des méthodes en utilisant New ..........................................440 Constructeurs and destructeurs .........................................................440 Réalisation de méthode ..................................................................440 Méthode dopérateur ......................................................................440 Méthode dopérateur de conversion ....................................................440 Evénements, indexeurs et propriétés C# 2.0 ..................................................441 Création dun événement, dun indexeur ou dune propriété .......................443 Propriétés dévénement, dindexeur et de propriété ................................443 Héritage et réalisation C# 2.0 ...................................................................443 Attributs personnalisés C# 2.0 ...................................................................443 Génération de code C# 2.0 .......................................................................444 Onglet Options de la boîte de dialogue de génération pour C# ....................444 Onglet Tâches C# de la boîte de dialogue de génération pour C# .................445 Définition de variables denvironnement C# ..........................................445 Reverse engineering de code C# 2.0 ............................................................446 Onglet Options de la boîte de dialogue Reverse engineering de C# ...............446 Directives de prétraitement pour le reverse engineering C# .......................447 Travailler avec XML ...................................................................451 Modéliser pour XML ................................................................................451 Génération pour XML ..............................................................................454 Reverse engineering XML .........................................................................454 Travailler avec C++ ...................................................................457 Modélisation pour C++ ............................................................................457 Génération pour C++ ..............................................................................458 Modélisation des correspondances O/R ...........................................459 Ingénierie standard ................................................................................459 Transformation de base ..................................................................460 Transformation dassociation ............................................................465 Transformation dhéritage ................................................................470xvi PowerAMC™
  • 17. Table des matières Rétro-ingénierie ...................................................................................472 Transformation de base ..................................................................473 Transformation de clé de référence ....................................................473 Utilisation intermédiaire .........................................................................474 Définition dune correspondance de base ..............................................474 Définition de la correspondances dune association .................................481 Définition de la correspondance dun héritage .......................................485 Génération dobjet persistants pour Java et de pages JSF ...................491 Génération dobjets persistants Hibernate ....................................................491 Ajout de la prise en charge de Hibernate .............................................491 Définition des correspondances O/R de base Hibernate ............................494 Correspondances dassociation Hibernate .............................................500 Définition des correspondances dhéritage Hibernate ...............................504 Génération de code pour Hibernate ....................................................504 Utilisation du code Hibernate généré ..................................................507 Génération des objets persistants EJB 3 .......................................................510 Génération dentités pour EJB 3.0 ......................................................510 Ajout de la persistance EJB 3 ...........................................................510 Définition de la correspondance O/R de base EJB 3 .................................511 Définition des correspondances dassociation EJB 3 .................................514 Définition des correspondances dhéritage EJB 3 .....................................516 Définition des options par défaut pour la persistance EJB 3 .......................517 Définition de la configuration de persistance EJB 3 .................................517 Vérification du modèle ...................................................................519 Génération de code pour la persistance EJB 3 ........................................519 Génération de JavaServer Faces (JSF) pour Hibernate ......................................526 Ajout de la prise en charge JSF .........................................................526 Définition des options globales ..........................................................526 Définition doptions relatives aux attributs ...........................................528 Définition de pages maître-détails .....................................................531 Génération de diagrammes de mise en page .........................................532 Installation des fichiers jar dexécution JSF ...........................................536 Configuration pour la génération JSF ..................................................537 Génération de pages JSF .................................................................537 Test des pages JSF .........................................................................538 Génération dobjets persistants JDO ..............................................539 Gestion de la persistance des JDO ..............................................................539 Définition des objets persistants pour JDO ............................................539 Utilisation des objets persistants JDO .................................................540 Création dobjets persistants JDO ...............................................................540 Définition de classes Java ................................................................540 Définition de la correspondance O/R ..................................................540 Définition des classes et de structures de base de données ........................540 Définition de correspondances O/R ....................................................541 Personnalisation des correspondances O/R ...........................................542Modélisation orientée objet xvii
  • 18. Table des matières Ajout de la prise en charge de JDO .....................................................542 Définition de descripteurs de persistance JDO standard ............................543 Définition du descripteur de persistance JDO pour Xcalia LiDO ...................545 Génération de code Java et de descripteur de persistance JDO ...........................546 Génération de code Java et de descripteur de persistance JDO ...................547 Compilation du code Java et exécution de JDO Enhancer ..................................549 Utilisation de JBuilder ....................................................................549 Utilisation de Eclipse .....................................................................550 Utilisation de Ant ..........................................................................551 Utilisation de PowerAMC .................................................................551 Personnalisation de la prise en charge de JDO .......................................552 Génération dobjets persistants .NET 2.0 et dapplications Windows ......555 Génération dobjets ADO.NET et ADO.NET CF persistants ..................................556 Ajout de la prise en charge de ADO.NET ou ADO.NET CF ...........................556 Correspondances de classes .............................................................558 Définition de correspondances dassociation ..........................................561 Définition des correspondances dhéritage ............................................562 Génération de code pour ADO.NET ou ADO.NET CF ..................................563 Génération dobjets persistants NHibernate ...................................................563 Ajout de la prise en charge de NHibernate ............................................564 Définition des correspondances de classe .............................................565 Définition de correspondances dassociation ..........................................572 Définition des correspondances dhéritage ............................................575 Génération de code pour NHibernate ..................................................575 Configuration des chaînes de connexion .......................................................577 Configuration dune chaîne de connexion à partir de ADO.NET ou ADO.NET CF ...............................................................................................577 Configuration dune chaîne de connexion à partir de onget NHibernate .........577 Paramètres de chaîne de connexion OLEDB ...........................................578 Paramètres de chaîne de connexion ODBC ............................................578 Paramètres de chaîne de connexion Microsoft SQL Server et Microsoft SQL Server Mobile Edition ..........................................................................578 Paramètres de chaîne de connexion Oracle ...........................................579 Génération des tests unitaires ...................................................................579 Ajout de la prise en charge de UnitTest ...............................................579 Génération de code pour UnitTest ......................................................580 Différences entre NUnit et Visual Studio Team Test (VSTS) .........................581 Exécution des tests unitaires NUnit ....................................................581 Exécution de test unitaires dans Visual Studio Test System ........................582 Génération dapplications Windows ou Smart Device ........................................583 Ajout de la prise en charge des applications Windows ou Smart Device .........583 Spécification dune bibliothèque dimages .............................................584 Contrôle de la DataGridView ............................................................584 Définition des options daffichage relatives aux attributs ..........................584 Définition des règles de validation dattribut et des valeurs par défaut .........585xviii PowerAMC™
  • 19. Table des matières Génération de code pour une application Windows .................................585 Génération de code pour une application Smart Device ............................586Modélisation orientée objet xix
  • 20. Table des matièresxx PowerAMC™
  • 21. Notions de base relatives à la modélisation orientée objetNotions de base relatives à la modélisation orientée objet Un modèle orienté objet (MOO) vous aide à analyser un système dinformation par lintermédiaire de cas dutilisations, danalyses structurelles et comportementales, ainsi quen termes de déploiement, ce en utilisant le langage UML (Unified Modeling Language (UML) . Vous pouvez modéliser, procéder au reverse engineering et générer pour Java, .NET et dautres langages. Le langage UML (Unified Modeling Language) est le langage standard pour la modélisation orientée objet. Il a été créé à lorigine par Grady Booch, James Rumbaugh et Ivar Jacobson, et est maintenant administré par lOMG (Object Management Group). PowerAMC™ prend en charge les diagrammes UML suivants : • Diagramme de cas dutilisation ( ) • Diagrammes structurels : • Diagramme de classes ( ) • Diagramme de structures composites ( ) • Diagramme dobjets ( ) • Diagramme de packages ( ) • Diagrammes dynamiques : • Diagramme de communication ( ) • Diagramme de séquence ( ) • Diagramme détats-transitions ( ) • Diagramme dactivités ( ) • Diagramme dinteractions ( ) • Diagrammes de mise en oeuvre : • Diagramme de composants ( ) • Diagramme de déploiement ( ) Pour plus dinformations sur ces diagrammes, reportez-vous au chapitre : • Construction de diagrammes structurels à la page 17 • Construction de diagrammes dutilisation à la page 7 • Construction de diagrammes dynamiques à la page 99 • Construction de diagrammes de mise en oeuvre à la page 165 Dans lillustration ci-dessous, vous pouvez voir de quelle façon les différents diagrammes UML peuvent interagir dans votre modèle :Modélisation orientée objet 1
  • 22. Notions de base relatives à la modélisation orientée objet PowerAMC PowerAMC Modèle Orienté Objet est un outil de conception très puissant pour la modélisation orientée objet. Il met à votre disposition tous les avantages liés à la modélisation graphique. Ce logiciel permet deffectuer les opérations suivantes : • Construire un Modèle Orienté Objet (MOO) en utilisant les diagrammes UML standard • Générer des fichiers Java, C#, VB.NET et PowerBuilder, et procéder à leur reverse engineering • Générer du code pour C++, Visual Basic, IDL-CORBA, etc. • Générer des EJB, servlets, et composants JSP • Générer des Modèles Conceptuels de Données (MCD), des Modèles Physiques de Données (MPD), des Modèles XML (MSX) et dautres Modèle Orienté Objet (MOO) à partir dun MOO • Générer un MOO à partir dun MCD, un MPD, un modèle XML, ou dun autre MOO • Importer un modèle Rose • Importer/exporter des fichiers XMI • Personnaliser le MOO pour ladapter à des considérations physiques et relatives aux performances • Personnaliser et imprimer des rapports 2 PowerAMC™
  • 23. Notions de base relatives à la modélisation orientée objet Bibliographie suggérée • James Rumbaugh, Ivar Jacobson, Grady Booch – The Unified Modeling Language Reference Manual – Addison Wesley, 1999 • Grady Booch, James Rumbaugh, Ivar Jacobson – The Unified Modeling Language User Guide – Addison Wesley, 1999 • Ivar Jacobson, Grady Booch, James Rumbaugh – The Unified Software Development Process – Addison Wesley, 1999 • Doug Rosenberg, Kendall Scott – Use Case Driven Object Modeling With UML A Practical Approach – Addison Wesley, 1999 • Michael Blaha, William Premerlani – Object-Oriented Modeling and Design for Database Applications – Prentice Hall, 1998 • Geri Schneider, Jason P. Winters, Ivar Jacobson – Applying Use Cases: A Practical Guide – Addison Wesley, 1998 • Pierre-Alain Muller – Instant UML – Wrox Press Inc, 1997 • Bertrand Meyer – Object-Oriented Software Construction – Prentice Hall, 2nd Edition, 1997 • Martin Fowler, Kendall Scott – UML Distilled Applying The Standard Object Modeling Language – Addison Wesley, 1997Création dun MOO Vous créez un nouveau modèle orienté objet en sélectionnant Fichier > Nouveau modèle . Remarque : Outre le fait que vous pouvez créer de toutes pièces un MOO en utilisant la procédure décrite ci-après, vous pouvez également procéder au reverse engineering de code orienté objet existant dans nouveau modèle (voir Reverse engineering de fichiers orientés objet dans un MOO à la page 274). La boîte de dialogue Nouveau modèle est largement configurable, et votre administrateur peut avoir masqué des options qui ne sont pas pertinentes pour votre travail ou avoir fourni des templates ou des modèles prédéfinis afin de vous guider dans la création dun modèle. Lorsque vous affichez la boîte de dialogue, lun ou plusieurs des boutons suivants sont disponibles du côté gauche : • Catégories - fournit un jeu de modèles et de diagrammes prédéfinis triés au sein dune arborescence de catégories configurable. • Types de modèle - fournit la liste classique de types de modèle et de diagramme PowerAMC. • Fichiers de template - fournit un jeu de templates de modèle triée par type de modèle.Modélisation orientée objet 3
  • 24. Notions de base relatives à la modélisation orientée objet 1. Sélectionnez Fichier > Nouveau modèle pour afficher la boîte de dialogue Nouveau modèle. 2. Cliquez sur un bouton, puis sélectionnez une catégorie ou un type de modèle ( Modèle Orienté Objet ) dans le volet de gauche. 3. Sélectionnez un élément dans le volet de droite. Selon la façon dont votre boîte de dialogue Nouveau modèle est configurée, ces éléments peuvent être les premiers diagrammes ou des templates sur lesquels baser la création de votre modèle. Utilisez loutil Vues dans langle supérieur droit de la boîte de dialogue afin de contrôler laffichage des éléments. 4. Saisissez un nom pour le modèle. Le code du modèle, qui est utilisée pour la génération de script ou de code, est dérivé du nom que vous spécifiez en fonction des conventions de dénomination. 5. [lorsque disponible] Sélectionnez un langage objet , puis spécifiez si vous souhaitez : • Partager la définition de langage objet – et créer un lien vers le fichier dans le répertoire Fichiers de ressources Langages objet . Les changements apportés à la cible affectent tous les modèles qui la partagent. • Copier la définition de langage objet dans le modèle – et créer une copie du fichier de ressource et lenregistrer avec le modèle. Les changements apportés à la cible affectent uniquement le modèle courant. Pour plus dinformations sur les fichiers de ressource PowerAMC, et sur la façon dont vous pouvez leur ajouter des extensions, voir le manuel Personnalisation et extension de PowerAMC . 6. [facultatif] Cliquez sur le bouton Extensions pour afficher la boîte de dialogue Définitions étendues de modèle, et pour attacher une ou plusieurs extensions à votre modèle. 7. Cliquez sur OK pour créer et ouvrir le modèle orienté objet . Remarque : Des exemples de MOO sont disponibles dans le répertoire Exemples. 4 PowerAMC™
  • 25. Notions de base relatives à la modélisation orientée objetPropriétés dun MOO La feuille de propriétés dun modèle affiche la définition de ce modèle. Les propriétés dun MOO sont les suivantes : Propriété Description Nom Spécifie le nom du modèle. Code Spécifie le code de référence du modèle. Ce code est généré dans les scripts de base de données. Commentaire Spécifie un libellé descriptif du modèle. Nom de fichier Spécifie le lemplacement du fichier du modèle. Cette zone est vide si le modèle na pas encore été enregistré. Auteur Spécifie lauteur du modèle. Vous pouvez insérer un nom, un espace, ou ne rien insérer. Si vous insérez un espace, le champ Auteur de la zone de titre reste vide. Si vous laissez la zone vide intentionnellement, le champ Auteur de la zone de titre affiche le contenu de la zone Utilisateur figurant sur la Page Version de la feuille de propriétés du modèle. Version Spécifie le numéro de version du modèle. Vous pouvez utiliser cette zone pour afficher le numéro de version du référentiel ou un numéro de version personnalisé. Ce paramètre est défini dans les pré- férences daffichage. Langage objet Spécifie le langage objet courant du modèle. Diagramme par défaut Spécifie le diagramme affiché par défaut lorsque vous ouvrez le modèle.Modélisation orientée objet 5
  • 26. Notions de base relatives à la modélisation orientée objet 6 PowerAMC™
  • 27. Construction de diagrammes de cas dutilisationConstruction de diagrammes de cas dutilisation Un diagramme de cas dutilisation est un diagramme UML qui fournit une représentation graphique des exigences de votre système, et vous aide à identifier la façon dont les utilisateurs interagissent avec ce dernier. Avec un diagramme de cas dutilisation, vous disposez dun aperçu instantané des fonctionnalités du système. Vous pouvez par la suite ajouter plus de détails dans le diagramme si vous le souhaitez afin déclaircir certains points relatifs au comportement du système. Un diagramme de cas dutilisation est particulièrement approprié pour décrire toutes les tâches pouvant être réalisées à laide dun système de base de données par toutes les personnes susceptibles de lutiliser. En revanche, il serait peu adapté pour décrire le protocole TCP/IP en raison du nombre de cas dexception, de branchements et de fonctionnalités conditionnelles (que se passe-t-il lorsque la connexion est coupée, que se passe-t-il lorsquun paquet est perdu ?) Lexemple suivant montre le cas dutilisation dun appareil photo, lacteur "Photographe" effectue deux actions avec son appareil : prendre des clichés et changer de pellicule. Laction de prendre une photo implique ainsi de régler le diaphragme et la mise au point et douvrir et de refermer lobturateur. Ces activités ne sont toutefois pas dun niveau suffisant pour être représentées dans un cas dutilisation.Objets dun diagramme de cas dutilisation Vous pouvez créer les objets suivants dans un diagramme de cas dutilisation peut contenir les objets suivants : Objet Outil Symbole Description Acteur Utilisé pour représenter une personne externe, un processus ou quelque chose qui interagit avec un système, avec un sous-système ou avec une classe. Voir Acteurs (MOO) à la page 10. Cas dutilisation Définit un comportement cohérent dans un système, sans révéler sa structure interne. Voir Cas dutilisation (MOO) à la page 8. Association Chemin de communication entre un acteur et un cas dutilisation auquel il participe. Voir Associations de cas dutilisation (MOO) à la page 14.Modélisation orientée objet 7
  • 28. Construction de diagrammes de cas dutilisation Objet Outil Symbole Description Généralisation Un lien entre un cas dutilisation général et un cas dutilisation plus spécifique dont il hérite et qui lui ajoute des fonctionnalités. Voir Généralisations (MOO) à la page 76. Dépendance Relation entre deux éléments de modélisation, dans laquelle tout changement effectué sur un élément affecte lautre élément. Voir Dépendances (MOO) à la page 78. Création dun diagramme de cas dutilisation Vous pouvez créer un diagramme de cas dutilisation dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de cas dutilisation . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme de cas dutilisation . Pour créer un nouveau MOO avec un diagramme de cas dutilisation, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme de cas dutilisation comme premier diagramme, puis cliquez sur OK. Cas dutilisation (MOO) Un cas dutilisation est une interaction entre un utilisateur et un système (ou une partie dun système). Il définit un but particulier que lutilisateur souhaite atteindre dans le système, sans révéler la structure interne du système. Vous pouvez créer un cas dutilisation dans le diagramme suivant : • Diagramme de cas dutilisation Exemple Dans cet exemple, acheter des tickets et acheter un abonnement sont des cas dutilisation. Création dun cas dutilisation Vous pouvez créer un cas dutilisation de lune des façons suivantes : • Utilisez loutil Cas dutilisation dans la Palette du diagramme. • Sélectionnez Modèle > Cas dutilisation pour afficher la boîte de dialogue Liste des cas dutilisation, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Cas dutilisation . Pour obtenir des informations plus générales sur la création dobjets, reportez-vous à la section "Création dun objet" dans le chapitre "Gestion des objets" du Guide des fonctionnalités générales. 8 PowerAMC™
  • 29. Construction de diagrammes de cas dutilisationPropriétés de cas dutilisation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun cas dutilisation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Cas dutilisation de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lobjet. Ce nom est utilisé pour la génération de code ou de scripts. Comment Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Onglet Spécification de la feuille de propriétés dun cas dutilisation Longlet Spécification contient les propriétés suivantes, accessibles via les sous-onglets situés en bas de la boîte de dialogue Propriété Description Suite dactions Contient une description sous forme de texte de la séquence normale dactions associée à un cas dutili- sation. Par exemple : "ouvrir un dossier, attribuer un nouveau numéro et inscrire des indications thérapeutiques" pourrait constituer la suite dactions pour un cas dutilisation appelé "inscrire un patient dans un hôpital". Points dextension Contient une description sous forme de texte des actions qui prolongent une séquence dactions normale. Les extensions sont généralement introduites par une syntaxe "If...then". Par exemple, dans le cas de figure mentionné ci-dessus, une extension de la suite dactions pourrait être : "Si le patient a déjà un numéro, son dossier personnel est extrait". Exceptions Spécifie des signaux émis en réponse à des erreurs lors de lexécution dun système. Pré-conditions Spécifie des contraintes qui doivent être vérifiées pour quune opération puisse être appelée. Post-conditions Spécifie des contraintes qui doivent être vérifiées pour quune opération se termine correctement. Chacun de ces sous-onglets contient une zone de texte (format TXT ou RTF) qui permet de donner une définition plus détaillée dun cas dutilisation. Onglet Classes de mise en oeuvre dune feuille de propriétés de cas dutilisation Longlet Classes de mise en oeuvre de la feuille de propriétés de cas dutilisation affiche la liste des classes ou des interfaces utilisées pour mettre en oeuvre un cas dutilisation. Un cas dutilisation est le plus souvent une tâche ou un service, représenté par un verbe. Lorsque vous analysez ce quun cas dutilisation doit faire, vous pouvez identifier les classes et interfaces qui doivent être créées pour accomplir cette tâche, puis les associer au cas dutilisation. Création dune classe ou dune interface Pour ajouter une classe ou une interface à la liste, utilisez lun des outils suivants :Modélisation orientée objet 9
  • 30. Construction de diagrammes de cas dutilisation Outil Action Ajouter des objets – Affiche une boîte de dialogue dans laquelle vous pouvez sélectionner nimporte quelle classe ou interface existant dans le modèle afin de mettre en oeuvre votre cas dutilisation. Créer une nouvelle classe – Crée une nouvelle classe pour mettre en oeuvre le cas dutilisation. La nouvelle classe est disponible dans le dossier Classes du modèle ou package courant dans lExplorateur dobjets et peut être utilisée dans dautres diagrammes. Créer une nouvelle interface - Crée une nouvelle interface pour mettre en oeuvre le cas dutilisation. La nouvelle interface est disponible dans le dossier Interfaces du modèle ou package courant dans lExplorateur dobjets et peut être utilisée dans dautres diagrammes. Par exemple, un cas dutilisation envoyer le produit en recommandé implique les classes Expédier, Produit et Facturer pour accomplir sa tâche : Vous pouvez afficher les noms des cas dutilisations associés à une classe en utilisant longlet Dépendances de la feuille de propriétés de cette dernière. Onglet Diagrammes associés dune feuille de propriétés de cas dutilisation Longlet Diagrammes associés répertorie les autres diagrammes du modèle courant qui sont liés à ce cas dutilisation. Cliquez sur loutil Ajouter des objets pour ajouter des diagrammes dans la liste. Pour plus dinformations, voir "Définition de diagrammes associés", dans le chapitre Diagrammes et symboles du Guide des fonctionnalités générales. Acteurs (MOO) Un acteur personnifie un utilisateur ou un groupe dutilisateurs extérieur qui interagit avec le système. Les acteurs peuvent être des humains ou dautres systèmes externes. Par exemple, les acteurs dun réseau informatique peuvent inclure ladministrateur système, un administrateur de base de données et des utilisateurs. Les acteurs sont les entités dont le comportement ne peut pas être contrôlé ou modifié car ils ne font pas partie du système que vous décrivez. Un acteur peut être créé dans les diagrammes suivants : 10 PowerAMC™
  • 31. Construction de diagrammes de cas dutilisation • Diagramme de collaboration • Diagramme de séquence • Diagramme de cas dutilisation Un même acteur peut être utilisé dans des diagrammes de cas dutilisation, de séquence et de collaboration sil joue le même rôle dans chaque diagramme. Chaque acteur est disponible pour tous les diagrammes de votre MOO. Un diagramme peut être créé directement dans le type de diagramme de votre choix, ou bien être ajouté par glisser-déposer depuis un autre type de diagramme. Acteurs dans un diagramme de cas dutilisation Dans le diagramme de cas dutilisation, un acteur est un acteur principal pour un cas dutilisation sil sollicite et/ou déclenche les actions effectuées par ce cas dutilisation. Les acteurs principaux sont situés à gauche du cas dutilisation, et lassociation qui les lie doit être tracée depuis lacteur vers le cas dutilisation. Un acteur est un acteur secondaire pour un cas dutilisation sil ne déclenche pas les actions, mais quil assiste le cas dutilisation dans laccomplissement de ces actions. Une fois une action accomplie, le cas dutilisation peut donner des résultats, des documents, ou de linformation vers lextérieur : lacteur secondaire est alors celui qui les reçoit. Les acteurs secondaires sont situés à droite du cas dutilisation. Pour indiquer quun acteur est un acteur secondaire dun cas dutilisation, lassociation qui les relie doit être dessinée depuis le cas dutilisation vers lacteur. A une échelle plus globale, un acteur secondaire peut également être lacteur principal pour un autre cas dutilisation, situé dans le même diagramme ou dans un autre diagramme. Acteurs dans un diagramme de collaboration Dans un diagramme de collaboration, un acteur peut être connecté à un objet par un lien entre objets, ou peut envoyer ou recevoir des messages. Acteurs dans un diagramme de séquence Dans le diagramme de séquence, un acteur a une ligne de vie qui représente la durée de sa vie. Vous ne pouvez pas dissocier un acteur de sa ligne de vie. Si un acteur est celui qui appelle une interaction, il est le plus souvent représenté par la première ligne de vie du diagramme (celle située le plus à gauche). Si votre diagramme comporte plusieurs acteurs, efforcez-vous de les placer à gauche ou à droite des lignes de vie existantes car les acteurs sont, par définition, externes au système.Modélisation orientée objet 11
  • 32. Construction de diagrammes de cas dutilisation Création dun acteur Vous pouvez créer un acteur de lune des façons suivantes : • Utilisez loutil Acteur dans la Palette du diagramme. • Sélectionnez Modèle > Acteurs pour afficher la boîte de dialogue Liste des acteurs, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Acteur . Pour obtenir des informations plus générales sur la création dobjets, reportez-vous à la section "Création dun objet" dans le chapitre "Gestion des objets" du Guide des fonctionnalités générales. Propriétés dun acteur Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun acteur, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Acteurs. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Onglet Classes de mise en oeuvre dune feuille de propriétés dacteur Longlet Classes de mise en oeuvre de la feuille de propriétés de cas dutilisation affiche la liste des classes ou des interfaces utilisées pour mettre en oeuvre un acteur. Un acteur peut être un être humain (personne, partenaire), une machine, ou un processus (système automatisé). Lorsque vous analysez ce quun acteur doit faire, vous pouvez identifier les classes et interfaces qui doivent être créées pour accomplir cette tâche, puis les associer à lacteur. Création dune classe ou dune interface Pour ajouter une classe ou une interface à la liste, utilisez lun des outils suivants : 12 PowerAMC™
  • 33. Construction de diagrammes de cas dutilisation Outil Action Ajouter des objets – Affiche une boîte de dialogue dans laquelle vous pouvez sélectionner nimporte quelle classe ou interface existant dans le modèle afin de mettre en oeuvre votre acteur. Créer une nouvelle classe – Crée une nouvelle classe pour mettre en oeuvre lacteur. La nouvelle classe est disponible dans le dossier Classes du modèle ou package courant dans lExplorateur dobjets et peut être utilisée dans dautres diagrammes. Créer une nouvelle interface - Crée une nouvelle interface pour mettre en oeuvre lacteur. La nouvelle interface est disponible dans le dossier Interfaces du modèle ou package courant dans lExplorateur dobjets et peut être utilisée dans dautres diagrammes. Par exemple, un acteur Voiture a besoin des classes Moteur et Route pour accomplir sa tâche. Ces classes sont montrées comme étant en relation avec lacteur dans le dessin ci-dessous : Vous pouvez afficher les noms des acteurs associés à une classe en utilisant longlet Dépendances de la feuille de propriétés de cette dernière. Exemple Dun point de vue conceptuel, vous pouvez lier les éléments encore plus avant. Par exemple, un employé travaillant dans une société dassurance est représenté sous la forme dun acteur dans un diagramme de cas dutilisation, et traite avec des clients qui déclarent un accident de voiture. Lacteur de lemployé devient un objet dans un diagramme de communication ou de séquence ; ces diagrammes représentant les actions entre les objets, lemployé en tant quobjet reçoit des messages des clients et en envoie à son responsable. Lemployé comme objet est également une instance dune classe Employé qui peut se trouver dans un diagramme de classes avec ses attributs et opérations.Modélisation orientée objet 13
  • 34. Construction de diagrammes de cas dutilisation Onglet Diagrammes associés dune feuille de propriétés dacteur Longlet Diagrammes associés répertorie les autres diagrammes du modèle courant qui sont liés à cet acteur. Cliquez sur loutil Ajouter des objets pour ajouter des diagrammes dans la liste. Pour plus dinformations, voir "Définition de diagrammes associés", dans le chapitre Diagrammes et symboles du Guide des fonctionnalités générales. Réutilisation des acteurs Un même acteur peut être utilisé dans un diagramme de cas dutilisation, dans un diagramme de collaboration et dans un diagramme de séquence. Pour réutiliser dans un autre diagramme un acteur créé dans un diagramme particulier : • Sélectionnez lacteur dans lExplorateur dobjets, et faites-le glisser dans le nouveau diagramme. • Sélectionnez Symboles > Afficher les symboles dans le nouveau diagramme afin douvrir la boîte de dialogue Affichage des symboles, cochez la case de lacteur à afficher, puis cliquez sur OK. Associations de cas dutilisation (MOO) Une association est une relation unidirectionnelle qui décrit un lien entre des objets. Une association de cas dutilisation peut être créée dans le diagramme suivant : • Diagramme de cas dutilisation Vous pouvez créer une association entre : • Un acteur et un cas dutilisation • Un cas dutilisation et un acteur Les associations contenues dans un diagramme de cas dutilisation sont similaires à celles des diagrammes de classes. Toutefois, il nest pas possible de spécifier les rôles, les cardinalités et la navigabilité pour une association. Lorientation de lassociation est définie par la façon dont elle est créée graphiquement. Une association entre un acteur et un cas dutilisation est une association dentrée. Une association entre un cas dutilisation et un acteur est une association de sortie. Lorientation de lassociation peut ne pas être affichée. Si vous souhaitez lafficher, vous devez modifier les préférences daffichage pour les associations. 14 PowerAMC™
  • 35. Construction de diagrammes de cas dutilisation ExempleCréation dune association de cas dutilisation Vous pouvez créer une association de cas dutilisation de lune des façons suivantes : • Utilisez loutil Association de cas dutilisation dans la Palette du diagramme. • Sélectionnez Modèle > Associations pour afficher la boîte de dialogue Liste des associations, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Association . Pour obtenir des informations plus générales sur la création dobjets, reportez-vous à la section "Création dun objet" dans le chapitre "Gestion des objets" du Guide des fonctionnalités générales.Propriétés dune association de cas dutilisation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune association de cas dutilisation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Associations. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. stéréotype Etend la sémantique dun objet dérivée dobjets existants, mais adaptée à vos besoins. Orientation Définit la direction de lassociation. Vous pouvez choisir entre : • Acteur principal – lassociation va de lacteur vers le cas dutilisation. • Acteur secondaire – lassociation va du cas dutilisation vers lacteur. Source Objet où commence lassociation. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Destination Objet où se termine lassociation. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné.Modélisation orientée objet 15
  • 36. Construction de diagrammes de cas dutilisation 16 PowerAMC™
  • 37. Construction de diagrammes structurelsConstruction de diagrammes structurels Ces diagrammes abordés dans ce chapitre permettent de modéliser la structure statique de votre système. PowerAMC propose trois types de diagrammes pour la modélisation de cet aspect de votre système, chacun offrant une vue différente de vos objets et de leurs relations : • Un diagramme de classes montre la structure statique des classes qui composent le système. Vous pouvez utiliser un diagramme de classes pour identifier le type des objets qui vont composer votre système, et définir les modalités selon lesquelles ils seront associés. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme de classes à la page 17. • Un diagramme de structure composite permet de définir plus en détails la structure interne de vos classes et les modalités selon lesquelles elles seront associées. Vous pouvez utiliser un diagramme de structure composite en particulier pour modéliser des formes de composition qui seraient particulièrement fastidieuses à modéliser dans un diagramme de classes. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme de structure composite à la page 19. • Un diagramme dobjets est similaire à un diagramme de classes, à ceci près quil montre des instances particulières des classes. Vous utilisez un diagramme dobjets pour représenter un instantané des relations entre les instances des classes. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme dobjets à la page 20. • Un diagramme de packages montre la structure des packages qui constituent votre application, et les relations entre elles. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme de packages à la page 22.Notions de base relatives au diagramme de classes Un diagramme de classes est un diagramme UML qui fournit une représentation graphique des classes, interfaces, et packages qui composent un système, ainsi que des relations entre eux. Vous construisez un diagramme de classes pour simplifier linteraction des objets dun système que vous êtes en train de modéliser. Les diagrammes de classes expriment la structure statique dun système en termes de classes et de relations entre ces classes. Une classe décrit un ensemble dobjets et une association décrit un ensemble de liens. Les objets sont les instances dune classe, et les liens sont les instances dune association. Un diagramme de classes nexprime rien de spécifique concernant les liens dun objet particulier, mais il décrit, de façon abstraite, le lien potentiel entre un objet et dautres objets. Lexemple suivant représente dans un diagramme de classes le processus de commande et dexpédition dun produit :Modélisation orientée objet 17
  • 38. Construction de diagrammes structurels Objets du diagramme de classe Vous pouvez créer les objets suivants dans un diagramme de classes : Objet Outil Symbole Description Classe Jeu dobjets qui partagent les mêmes attributs, opérations, métho- des et relations. Reportez-vous à la section Classes (MOO) à la page 23. Interface Descripteur des opérations visibles de lextérieur pour une classe, un objet ou toute autre spécification de structure interne. Reportez- vous à la section Interfaces (MOO) à la page 40. Port Point dinteraction entre un classificateur et son environnement. Reportez-vous à la section Ports (MOO) à la page 48. Généralisation Lien entre classes montrant que la sous-classe partage la structure ou le comportement dune ou plusieurs superclasses. Reportez- vous à la section Généralisations (MOO) à la page 76. Lien de prérequis Connecte les classes, les composants, les ports, les parties et les interfaces. Reportez-vous à la section Liens de prérequis (MOO) à la page 82. Association Relation structurelle entre les objets de différentes classes. Re- portez-vous à la section Associations (MOO) à la page 68. Agrégation Forme dassociation qui définit une relation tout-partie entre une classe composant et une classe agrégat (par exemple, une voiture a un moteur et des roues). Reportez-vous à la section Associations (MOO) à la page 68. Composition Forme dagrégation dans laquelle la notion de propriété et la co- ïncidence sont fortes entre les parties et le tout. Les parties vivent et meurent avec le tout (par exemple, une facture et un élément de cette facture). Reportez-vous à la section Associations (MOO) à la page 68. Dépendance Relation entre deux éléments de modélisation, dans laquelle tout changement intervenant sur lun des éléments est répercuté sur le second élément. Reportez-vous à la section Dépendances (MOO) à la page 78. Réalisation Relation sémantique entre classificateurs, dans laquelle un clas- sificateur spécifie un contrat que lautre classificateur sengage à remplir. Reportez-vous à la section Réalisations (MOO) à la page 81. Lien interne Existe lorsquune classe est déclarée au sein dune autre classe ou interface. Reportez-vous à la section Classificateurs composites et classificateurs internes à la page 34. Attribut (sans ob- (sans objet) Propriété nommée dune classe. Reportez-vous à la section Attri- jet) buts (MOO) à la page 68. Opération (sans ob- (sans objet) Service qui peut être demandé par une classe. Reportez-vous à la jet) section Opérations (MOO) à la page 59. Création dun diagramme de classes Vous pouvez créer un diagramme de classes dans un MOO de lune des façons suivantes : 18 PowerAMC™
  • 39. Construction de diagrammes structurels • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de classes . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme de classes . Pour créer un nouveau MOO avec un diagramme de classes, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme de classes comme premier diagramme, puis cliquez sur OK.Notions de base relatives au diagramme de structures composites Un diagramme de structures composites est un diagramme UML qui fournit une représentation graphique des classes, interfaces et packages qui composent un système, en incluant les ports et parties qui décrivent leurs structures internes. Un diagramme de structure composite joue le même rôle quun diagramme de classes, mais permet dapprofondir la description de la structure interne de plusieurs classes et la représentation des interactions entre ces classes. Vous pouvez représenter de façon graphique les classes internes et les parties et montrer les associations à la fois entre et au sein des classes. Dans lexemple suivant, les structures internes des classes TitleSql (qui contient deux classes internes) et TitleImp (qui contient deux parties) sont connectées via les interfaces dmlAccess et java.sql.connection1 :Objets du diagramme de structure composite Vous pouvez créer les objets suivants dans un diagramme de structure composite : Objet Outil Symbole Description Classe Jeu dobjets qui partagent les mêmes attributs, opérations, métho- des et relations. Reportez-vous à la section Classes (MOO) à la page 23. Interface Descripteur des opérations visibles de lextérieur pour une classe, un objet ou toute autre spécification de structure interne. Reportez- vous à la section Interfaces (MOO) à la page 40. Port Point dinteraction entre un classificateur et son environnement. Reportez-vous à la section Ports (MOO) à la page 48. Partie Instance de classificateur jouant un rôle particulier dans le con- texte dun autre classificateur. Reportez-vous à la section Parties (MOO) à la page 47. Généralisation Lien entre classes montrant que la sous-classe partage la structure ou le comportement dune ou plusieurs superclasses. Reportez- vous à la section Généralisations (MOO) à la page 76.Modélisation orientée objet 19
  • 40. Construction de diagrammes structurels Objet Outil Symbole Description Lien de prérequis Connecte les classes, les composants, les ports, les parties et les interfaces. Reportez-vous à la section Liens de prérequis (MOO) à la page 82. Connecteur dassemblage Connecte les parties entre elles. Reportez-vous à la section Con- necteurs dassemblage (MOO) à la page 83. Connecteur de délégation Connecte les parties aux ports à lextérieur des classificateurs. Reportez-vous à la section Connecteurs de délégation (MOO) à la page 84. Association Relation structurelle entre les objets de différentes classes. Re- portez-vous à la section Associations (MOO) à la page 68. Agrégation Forme dassociation qui définit une relation tout-partie entre une classe composant et une classe agrégat (par exemple, une voiture a un moteur et des roues). Reportez-vous à la section Associations (MOO) à la page 68. Composition Forme dagrégation dans laquelle la notion de propriété et la co- ïncidence sont fortes entre les parties et le tout. Les parties vivent et meurent avec le tout (par exemple, une facture et un élément de cette facture). Reportez-vous à la section Associations (MOO) à la page 68. Dépendance Relation entre deux éléments de modélisation, dans laquelle tout changement intervenant sur lun des éléments est répercuté sur le second élément. Reportez-vous à la section Dépendances (MOO) à la page 78.". Réalisation Relation sémantique entre classificateurs, dans laquelle un clas- sificateur spécifie un contrat que lautre classificateur sengage à remplir. Reportez-vous à la section Réalisations (MOO) à la page 81. Attribut (sans ob- (sans objet) Propriété nommée dune classe. Reportez-vous à la section Attri- jet) buts (MOO) à la page 68. Opération (sans ob- (sans objet) Service qui peut être demandé par une classe. Reportez-vous à la jet) section Opérations (MOO) à la page 59. Création dun diagramme de structure composite Vous pouvez créer un diagramme de structure composite dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de structure composite . • Pointez sur le fond dun diagramme, cliquez le bouton droit de la souris et sélectionnez Diagramme > Nouveau diagramme > Diagramme de structure composite . Pour créer un nouveau MOO avec un diagramme de structure composite, sélectionnez Fichier > Nouveau , choisissez Modèle Orienté Objet dans la liste Type de modèle, choisissez Diagramme de structure composite dans la zone Premier diagramme, puis cliquez sur OK. Notions de base relatives au diagramme dobjets Un diagramme dobjets est un diagramme UML qui fournit une représentation graphique de la structure dun système via des instances concrètes de classes (objets), dassociations (liens entre objets), et de dépendances. 20 PowerAMC™
  • 41. Construction de diagrammes structurels En tant que diagramme dinstances, le diagramme dobjets montre un exemple de structures de données avec des valeurs qui correspondent à une situation détaillée du système à un moment particulier. Le diagramme dobjets peut être utilisé à des fins danalyse : les contraintes entre classes qui ne sont pas classiquement représentées dans un diagramme de classes peuvent par contre être représentées dans un diagramme dobjets. Si vous ne disposez pas encore de connaissances approfondies dans le domaine de la modélisation objet, lutilisation dinstances est probablement plus "parlante" pour vous que celles de classificateurs, dans la mesure où les classificateurs représentent un certain degré dabstraction. Le fait de regrouper plusieurs instances sous un même classificateur permet de mieux comprendre ce que sont les classificateurs. En outre, même pour les analystes habitués à labstraction, le diagramme dobjets peut permettre une meilleure compréhension de certaines contraintes structurelles qui ne peuvent pas être spécifiées de façon graphique dans un diagramme de classes. A cet égard, le diagramme dobjets peut être considéré comme une version limitée du diagramme de classes. Dans lexemple suivant, le diagramme de classes spécifie quune classe Auteur est liée à une classe Document. Dans le diagramme dobjets déduit de ce diagramme de classes, laccent est mis sur les détails suivants : lobjet nommé Jean, instance de la classe Auteur est liée à deux objets différents (Brouillon et Final) qui sont deux instances de la classe Document. Remarque : Vous pouvez faire glisser des classes et des associations depuis lExplorateur dobjets dans un diagramme dobjets. Si vous faites glisser des classes, de nouveaux objets constituant des instances de classes sont créés. Si vous faites glisser une association, un nouveau lien entre objets (constituant une instance de lassociation) et deux objets sont créés.Objets du diagramme dobjets Vous pouvez créer les objets suivants dans un diagramme dobjets : Objet Outil Symbole Description Objet Instance dune classe. Reportez-vous à la section Objets (MOO) à la page 43. Valeurs dattribut (sans ob- (sans objet) Une valeur dattribut représente une instance dun attribut de clas- jet) se, cet attribut se trouvant la classe liée à lobjet. Reportez-vous à la section Onglet Valeurs dattribut de la feuille de propriétés dun objet à la page 45. Lien entre objets Lien de communication entre deux objets. Reportez-vous à la section Liens entre objets (MOO) à la page 89.Modélisation orientée objet 21
  • 42. Construction de diagrammes structurels Objet Outil Symbole Description Dépendance Relation entre deux éléments de modélisation, dans laquelle tout changement intervenant sur lun des éléments est répercuté sur le second élément. Reportez-vous à la section Dépendances (MOO) à la page 78. Création dun diagramme dobjets Vous pouvez créer un diagramme dobjets dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme dobjets . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme dobjets . Pour créer un nouveau MOO avec un diagramme dobjets, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme dobjets comme premier diagramme, puis cliquez sur OK. Notions de base relatives au diagramme de packages Un diagramme de packages est un diagramme UML qui fournit une représentation graphique de haut niveau de lorganisation de votre application, et vous aide à identifier les liens de généralisation et de dépendance entre les packages. Vous pouvez contrôler le niveau de détail fourni pour chaque package, en alternant les vues standard et composite grâce aux commandes du menu Edition ou des menus contextuels. Dans lexemple suivant, le package WebShop importe le package Cart qui, à son tour, importe le package Types et a accès au package Auxiliary. Le package Types est montré en vue composite (sous-diagramme) : Objets du diagramme de packages Vous pouvez créer les objets suivants dans un diagramme de packages : 22 PowerAMC™
  • 43. Construction de diagrammes structurels Objet Outil Symbole Description Package Conteneur permettant dorganiser vos objets de modèle. Voir Pac- kages (MOO) à la page 38. Généralisation Lien entre packages montrant quun sous-package partage la structure ou le comportement défini dans un ou plusieurs packages parent. Voir Généralisations (MOO) à la page 76. Dépendance Relation entre deux packages, dans laquelle un changement dans un package affecte lautre package. Voir Dépendances (MOO) à la page 78.Création dun diagramme de packages Vous pouvez créer un diagramme de packages dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de packages . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme de packages . Pour créer un nouveau MOO avec un diagramme de packages, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme de packages comme premier diagramme, puis cliquez sur OK.Classes (MOO) Une classe est une description dun ensemble dobjets qui ont une structure et un comportement similaires et qui partagent des attributs, opérations, relations et sémantiques. Une classe peut être créée dans les types de diagramme suivants : • Diagramme de classes • Diagramme de structure composite La structure dune classe est décrite par ses attributs et associations, et son comportement est décrit par ses opérations. Les classes, et les relations que vous créez entre elles, forment la structure de base dun MOO. Une classe définit un concept au sein de lapplication modélisée, par exemple : • un élément physique (une voiture), • un élément commercial (une commande), • un élément logique (un planning de diffusion), • un élément dapplication (un bouton OK), • un élément de comportement (une tâche) Lexemple suivant montre une classe avion dotée dattributs (rayon daction et longueur) et dopérations (démarrermoteur).Création dune classe Vous pouvez créer une classe de lune des façons suivantes :Modélisation orientée objet 23
  • 44. Construction de diagrammes structurels • Utilisez loutil Classe dans la Palette du diagramme. • Sélectionnez Modèle > Classes pour afficher la boîte de dialogue Liste des classes, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Classe . • Pointez sur une interface, cliquez le bouton droit de la souris, puis sélectionnez Créer une classe dans le menu contextuel (cette méthode permet dhériter de toutes les opérations de linterface, y compris les opérations getter et setter, crée un lien de réalisation entre la classe et linterface, et fait apparaître ce lien dans le sous-onglet Réalise de longlet Dépendances de la feuille de propriétés de la classe). Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dune classe Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune classe, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Classes de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Etend Spécifie la classe parent (la classe à laquelle la classe courante est liée par une généralisation). Cliquez sur loutil Sélectionner un classificateur à droite de la zone pour spécifier une classe parent et cliquez sur loutil Propriétés pour accéder à sa feuille de propriétés. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Les stéréotypes communs suivants sont disponibles par défaut : • <<actor>> - Groupe de rôles cohérent que lutilisateur joue • <<enumeration>> - Liste de valeurs nommées utilisée comme fourchette pour un type dattribut parti- culier • <<exception>> - Classe dexception. Utilisé principalement en relation avec les messages derreur • <<implementationClass>> - Classe dont les instances sont saisies de façon statique et qui définit la structure de données physique et les méthodes dune classe telle quutilisée dans les langages de pro- grammation traditionnels • <<process>> - Flux qui peut être exécuté en même temps que dautres processus • <<signal>> - Spécification dun stimulus asynchrone communiqué entre instances • <<metaclass>> - Classificateur stéréotypé qui indique que la classe est une métaclasse dune autre classe • <<powertype>> - Classificateur stéréotypé qui indique que la classe est une métaclasse dont les ins- tances sont des sous-classes dune autre classe • <<thread>> - Flux léger qui peut être exécuté en même temps que dautres threads au sein du même processus. Généralement exécuté au sein de lespace dadresse du processus dans lequel il est inclus • <<type>> - Classe abstraite utilisée uniquement pour spécifier la structure et le comportement dun ensemble dobjets, et non leur mise en oeuvre • <<utility>> - Classe dépourvue dinstance Dautres stéréotypes peuvent être affichés dans la liste des stéréotypes. Ces stéréotypes sont définis dans le langage objet. Pour plus dinformations, voir "Stéréotypes (Profile)" dans le chapitre Extension de vos modèles à laide de profils du manuel Personnalisation et extension de PowerAMC. 24 PowerAMC™
  • 45. Construction de diagrammes structurels Propriété Description Visibilité Spécifie la visibilité de lobjet, à savoir la façon dont il est perçu hors de son espace de noms. Lorsquune classe est visible par un autre objet, elle peut influencer la structure ou le comportement de lobjet, ou être affectée par ce dernier. Vous pouvez choisir lune des valeurs suivantes : • Private – uniquement par lobjet • Protected – uniquement par lobjet et par ses objets hérités • Package – par tous les objets contenus dans le même package • Public – par tous les objets (option par défaut) Cardinalité Spécifie le nombre dinstances que peut avoir une classe. Vous pouvez choisir parmi les valeurs suivan- tes : • 0..1 – Aucune ou une • 0..* – Aucune ou un nombre illimité • 1..1 – Une à une • 1..* – Une à un nombre illimité • * – Nombre illimité Type Permet de spécifier quune classe est de type générique, ou si elle est liée à un type générique. Vous pouvez choisir parmi les valeurs suivantes : • Classe • Générique • Lié – Si vous sélectionnez cette option, une liste supplémentaire devient disponible à droite, dans laquelle vous pouvez spécifier le type générique auquel la classe est liée. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Si vous spécifier Générique ou Lié, longlet Générique saffiche, permettant de contrôler les variables de type associées (voir Onglet Générique de la feuille de propriétés dune classe à la page 26). Pour plus dinfor- mations sur les types génériques et les liaisons, voir Types et méthodes génériques à la page 32. Abstrait Indique que la classe ne peut pas être instanciée et quelle nest donc dotée daucune instance directe. Final Spécifie que la classe ne peut pas avoir dobjets hérités. Générer du code Indique si la classe est automatiquement incluse lorsque vous générez du code à partir du modèle, cela naffecte en rien la génération intermodèle. Les onglets suivants répertorient les objets associés à la classe : • Attributs - répertorie les attributs associés à la classe. Cliquez sur le bouton Hérités pour afficher les attributs publics et protégés hérités dune classe parent. Vous pouvez créer des attributs, y compris des accesseurs, directement dans cet onglet, ou ajouter des attributs existants. Pour plus dinformations, voir Attributs (MOO) à la page 51. • Identifiants - répertorie les identifiants associés à la classe. Vous pouvez créer des identifiants directement dans cet onglet. Pour plus dinformations, voir Identifiants (MOO) à la page 57. • Opérations - répertorie les opérations associées à la classe. Vous pouvez créer des opérations directement dans cet onglet, ou ajouter des opérations existantes. Pour plus dinformations, voir Opérations (MOO) à la page 59. • Ports - répertorie les ports associés à la classe. Vous pouvez créer des ports directement dans cet onglet. Pour plus dinformations, voir Ports (MOO) à la page 48. • Parties - répertorie les parties associées à la classe. Vous pouvez créer des parties directement dans cet onglet. Pour plus dinformations, voir Parties (MOO) à la page 47. • Associations - répertorie les associations associées à la classe. Pour plus dinformations, voir Associations (MOO) à la page 68. • Classificateurs internes - répertorie les classes et interfaces internes associés à la classe. Vous pouvez créer des classificateurs internes directement dans cet onglet. Pour plus dinformations, voir Classificateurs composites et classificateurs internes à la page 34.Modélisation orientée objet 25
  • 46. Construction de diagrammes structurels • Diagrammes associés - répertorie tous les diagrammes qui sont liés à la classe. Vous pouvez ajouter des diagrammes à partir de cet onglet. Pour plus dinformations, voir "Définition de diagrammes associés", dans le chapitre Diagrammes et symboles du Guide des fonctionnalités générales. Pour plus dinformations sur la manipulation des catégories et entrées dans le langage objet, reportez-vous au chapitre Fichiers de ressources et métamodèle public PowerAMC du manuel Personnalisation et extension de PowerAMC. Pour plus dinformations sur les définitions étendues de modèle, voir "Définitions étendues de modèle" dans le chapitre Modèles du Guide des fonctionnalités générales. Onglet Détails de la feuille de propriétés dune classe The Detail tab contains a Persistent groupbox whose purpose is to defined the persistent generated code of a class during OOM to CDM or PDM generation. Longlet Détails contient les propriétés suivantes : Propriété Description Persistant Spécifie que la classe doit être persistante dans un MCD ou un MPD généré. Vous devez sélectionner lune des options suivantes : • Générer une table - la classe est générée dans une table. • Migrer les colonnes - [MPD uniquement] la classe nest pas générée, et ses attributs associations sont migrés vers la table parent ou enfant. • Générer un type de parent abstrait - [MPD uniquement] la classe est générée comme un type de données abstrait. Voir "Types de données abstraits", dans le chapitre Construction de diagrammes physiques dans le manuel Modélisation des données. • Type de valeur – la classe nest pas générée, et ses attributs sont générés dans leurs types référents. Pour plus dinformations sur la persistance des objets, voir Gestion de la persistance des objets lors de la génération dun MPD à partir dun MOO à la page 237. Code Spécifie le code de la table ou de lentité qui sera générée à partir de la classe courante dans un MCD ou un MPD. Les codes persistants sont utilisés pour lingénierie par va-et-vient : une même classe génère toujours la même entité ou table avec un code conforme au SGBD cible. Exemple : pour générer une classe Acheteur dans une table ACHT, saisissez ACHT dans la zone Code. Interne à Indique le nom de la classe ou de linterface à laquelle la classe courante appartient en tant que classifi- cateur interne. Classe dassociation Nom de lassociation liée à la classe pour former une classe dassociation. Les attributs et opérations de la classe courante sont utilisés pour compléter la définition de lassociation. Pour plus dinformations sur les autres propriétés spécifiques aux services Web, voir Onglet Détails de la feuille de propriétés de la classe à la page 191. Onglet Générique de la feuille de propriétés dune classe Longlet Générique permet de spécifier : • Que la classe est de type générique, et répertorier ses paramètres de type, ou • Que la classe est liée à un type générique, et fournir des valeurs pour les paramètres de type requis. Pour plus dinformations, voir Types et méthodes génériques à la page 32. Onglet Script de la feuille de propriétés dune classe Longlet Script permet de personnaliser le script de création de lobjet, par exemple en ajoutant des informations descriptives dans ce script. 26 PowerAMC™
  • 47. Construction de diagrammes structurels Exemples Si un projet de développement archive tous les scripts de création qui sont générés, un en-tête de script peut être inséré avant chaque script de création, indiquant la date, lheure ainsi que toute autre information spécifique au script généré. Si une organisation requiert que les scripts générés soient archivés en utilisant un système de dénomination qui soit indépendant du nom du script, un en-tête de script peut diriger un script généré de sorte quil soit enregistré sous un nom autre que celui indiqué pour le script de création. Les scripts peuvent être personnalisés comme suit : • En insérant du script au début (page Début) et à la fin (page Fin) dun script. • En insérant des scripts avant ou après la commande de création dune classe ou dune interface (page Importations). Outils de script Vous pouvez utiliser les outils suivants sur la barre doutils de longlet Script : Outil Description Raccourci clavier Menu de léditeur. Ouvre le menu contextuel de léditeur. Maj + F11 Editer avec. Affiche léditeur par défaut que vous avez précédemment défini ou ctrl + E permet de sélectionner un autre éditeur si vous cliquez sur la flèche vers le bas en regard de loutil. Importer un dossier. Disponible dans longlet Importations uniquement. Affiche — une fenêtre permettant de sélectionner des packages à importer. Les packages sont ajoutés à lemplacement du curseur. Le mot clé import est ajouté comme préfixe. Importer un classificateur. Disponible dans longlet Importations uniquement. — Affiche une fenêtre permettant de sélectionner des classificateurs à importer. Les classificateurs sont ajoutés à lemplacement du curseur. Le mot clé import est ajouté comme préfixe. Pour plus dinformations sur la définition dun éditeur par défaut, voir "Définition dun éditeur de texte" dans le chapitre Objets du Guide des fonctionnalités générales. Variables de format dans les scripts personnalisés Les variables ont une syntaxe qui permet dimposer le format de leur valeur comme suit : • Forcer les valeurs à être en majuscules ou en minuscules • Tronquer les valeurs Lorsquune variable ne spécifie aucun format particulier, ses valeurs ont le même format que dans le MOO. Vous pouvez utiliser la syntaxe de format suivante pour les variables : Code de format Format de la valeur de variable dans le script .L Caractères minuscules. .T Suppression des espaces. .U Caractères majuscules. .c Initiale majuscule et lettres suivantes en minuscules. .n Longueur maximale (n représentant le nombre de caractères). .nJ Justifié à une longueur fixe (n représentant le nombre de caractères).Modélisation orientée objet 27
  • 48. Construction de diagrammes structurels Vous pouvez incorporer la syntaxe de format dans la syntaxe dune variable comme suit : %.format:variable% Onglet Aperçu de la feuille de propriétés dune classe Longlet Aperçu permet dafficher un aperçu du code qui sera généré pour la classe. Outils daperçu Les outils et raccourcis clavier suivants sont disponibles sur longlet Aperçu : Outil Description Raccourci clavier Ouvrir le menu contextuel de léditeur. Maj + F11 Réactualiser. F5 Afficher les options de génération - Si vous cliquez sur loutil Afficher les options de ctrl + W génération, la boîte de dialogue Options de génération saffiche. Vous pouvez modifier les options de génération dans cette boîte de dialogue et juger de limpact sur le code dans la fenêtre aperçu. Cette fonctionnalité savère particulièrement utile lorsque vous travaillez avec Java. Dans le cas des autres langages objet, les options de génération sont sans influence sur le code. 28 PowerAMC™
  • 49. Construction de diagrammes structurels Outil Description Raccourci clavier Sélectionner les cibles de génération - permet dafficher la liste des cibles pour lobjet ctrl + F6 courant. Si vous ajoutez une cible de génération, longlet correspondant est ajouté dans longlet Aperçu. Si vous désélectionnez une cible, longlet correspondant dis- paraît de longlet Aperçu. Cet outil nest disponible que si au moins une définition étendue de modèle marquée pour la génération est associée au modèle et si elle contient des entrées GeneratedFiles pour lobjet courant. Pour plus dinformations sur les cibles de génération, voir "Définitions étendues de modèle" dans le chapitre Fichiers de ressource et métamodèle public de PowerAMC du manuel Personnalisation et extension de PowerAMC Signets dans le script Dans longlet Aperçu, vous pouvez ajouter et supprimer des signets à des endroits spécifiques du code puis naviguer de lun à lautre de ces signets : Raccourci clavier Description ctrl + F2 Ajoute un signet. Une marque de signet bleue saffiche. Si vous renouvelez laction à la même position, le signet est supprimé et la marque bleue disparaît. F2 Passe au signet suivant. Maj + F2 Passe au signet précédent. Les signets ne peuvent pas être imprimés et sont perdus dès que vous utilisez les outils Réactualiser ou Afficher les options de génération.Création de classes Java BeanInfo Si vous utilisez le langage objet Java, vous pouvez créer des classes Java BeanInfo à partir de nimporte quelle classe ayant le type "JavaBean". Un JavaBean est un composant logiciel réutilisable qui peut être manipulé visuellement dans un outil de développement. Une classe Java BeanInfo est utilisée comme représentation standard dun Bean. Chaque JavaBean peut mettre en oeuvre une classe BeanInfo. Les développeurs ayant recours à des Bean peuvent être amenés à fournir des informations explicites sur les méthodes, les propriétés et les événements dun Bean en fournissant une classe Java BeanInfo. La classe BeanInfo est générée avec un attribut, ainsi quavec les opérations suivantes : • constructor • getPropertyDescriptors(); • getMethodDescriptors(); Vous pouvez visualiser lintégralité du code en cliquant sur longlet Aperçu dans la feuille de propriétés de la classe BeanInfo. Attribut créé Lattribut a le code suivant : private static final Class <ClassCode>Class = <ClassCode>.class; Opérations créées Le code du constructeur est le suivant :Modélisation orientée objet 29
  • 50. Construction de diagrammes structurels <ClassCode>BeanInfo() { super(); } Lopération getPropertyDescriptors() a le code suivant : public PropertyDescriptor[] getPropertyDescriptors () { // Declare the property array PropertyDescriptor properties[] = null; // Set properties try { // Create the array properties = new PropertyDescriptor[<nbProperties>]; // Set property 1 properties[0] = new PropertyDescriptor("<propertyCode1>" ,<ClassCode>Class; properties[0].setConstrained(false); properties[0].setDisplayName("propertyName1"); properties[0].setShortDescription("propertyComment1"); // Set property 2 properties[1] = new PropertyDescriptor("<propertyCode2>" ,<ClassCode>Class; properties[1].setConstrained(false); properties[1].setDisplayName("propertyName2"); properties[1].setShortDescription("propertyComment2"); } catch { // Handle errors } return properties; } Lopération getMethodDescriptors() a le code suivant : public MethodDescriptor[] getMethodDescriptors () { // Declare the method array MethodDescriptor methods[] = null; ParameterDescriptor parameters[] = null; // Set methods try { // Create the array methods = new MethodDescriptor[<nbMethods>]; // Set method 1 parameters = new ParameterDescriptor[<nbParameters1>]; parameters[0] = new ParameterDescriptor(); parameters[0].setName("parameterCode1"); parameters[0].setDisplayName("parameterName1"); parameters[0].setShortDescription("parameterComment1"); methods[0] = new MethodDescriptor("<methodCode1>", parameters); methods[0].setDisplayName("methodName1"); methods[0].setShortDescription("methodComment1"); // Set method 2 methods[1] = new MethodDescriptor("<methodCode2>"); methods[1].setDisplayName("methodName2"); methods[1].setShortDescription("methodComment2"); 30 PowerAMC™
  • 51. Construction de diagrammes structurels } catch { // Handle errors } return methods; } Lorsque vous créez une classe Java BeanInfo, un lien de dépendance est automatiquement créé entre les classes et le stéréotype de la classe Java BeanInfo est défini à <<BeanInfo>>. Création dune classe Java BeanInfo à partir du menu Langage Vous pouvez créer une classe Java BeanInfo à partir du menu Langage. 1. Sélectionnez Langage > Créer des classes BeanInfo pour afficher la fenêtre de sélection Créer des classes BeanInfo. Elle contient une liste de toutes classes du modèle qui sont définies avec le type Java Bean. 2. Sélectionnez les classes pour lesquelles vous souhaitez créer des classes Java BeanInfo, puis cliquez sur OK. Une classe BeanInfo est créée dans le modèle pour chaque classe sélectionnée.Modélisation orientée objet 31
  • 52. Construction de diagrammes structurels Création dune classe Java BeanInfo à partir du menu contextuel dune classe Vous pouvez créer une classe Java BeanInfo à partir du menu contextuel dune classe. Pointez sur un symbole de classe dans le diagramme et cliquez le bouton droit de la souris , puis sélectionnez Créer une classe BeanInfo dans le menu contextuel. Types et méthodes génériques Les types et méthodes génériques sont une nouvelle fonctionnalité de Java 5.0. Un type générique est une classe ou une interface qui a une ou plusieurs variables de type et une ou plusieurs méthodes qui utilisent une variable de type comme emplacement pour un argument ou un type de résultat. Lutilisation de types et de méthodes génériques permettent de tirer parti dune vérification plus poussée des types lors de la compilation. Lorsquun type générique est utilisé, un type réel est spécifié pour chaque variable de type. Cette information de type supplémentaire est utilisée par le compilateur pour distribuer automatiquement les valeurs de résultat associées. Création de types génériques PowerAMC permet de définir des classes et des interfaces sous forme de type génériques. Vous définissez une liste de variables de type qui seront utilisés comme types de données pour les attributs, les paramètres de méthode ou les types de résultats. PowerAMC requiert lexistence dune classe liée pour créer une généralisation, une réalisation ou une association. Ensuite, vous liez un classificateur au type générique via cette classe liée intermédiaire, et spécifiez les types réels à utiliser en lieu de place des variables de type requises. 1. Affichez la feuille de propriétés de la classe ou de linterface, puis sélectionnez Générique dans la liste Type sur longlet Général. Longlet Générique est automatiquement ajouté, et une variable de type est créée dans la liste de cet onglet. 2. Sur longlet Générique, et ajoutez des variables de type supplémentaires requises en utilisant loutil Ajouter une ligne. Vous pouvez également spécifier une contrainte de dérivation sous la forme dune liste de types. 3. Cliquez sur OK pour revenir au diagramme. Le symbole de classificateur affiche maintenant les variables de type dans son angle supérieur gauche. Pour que le classificateur devienne un vrai type générique, il doit contenir au moins une méthode générique. Création de méthodes génériques PowerAMC permet de définir des opérations comme méthodes génériques. Les méthodes génériques sont des méthodes qui disposent de leur propre liste de variables de type. 1. Affichez la feuille de propriétés, dune classe ou dune interface, puis cliquez sur longlet Opérations. 2. Cliquez sur loutil Ajouter une ligne pour créer une nouvelle opération, puis cliquez sur loutil Propriétés pour afficher sa feuille de propriétés. 3. Cliquez sur Oui pour confirmer la création de lopération, puis cochez la case Générique sur longlet Général de la feuille de propriétés de la nouvelle opération afin de définir lopération comme méthode générique. Longlet Générique est automatiquement ajouté, et une variable de type est créée dans la liste de cet onglet. 4. Les cas échéant, ajoutez les éventuels variables de type supplémentaires en utilisant loutil Ajouter une ligne et en cliquant sur OK. Création dun classificateur spécialisé Si vous devez créer un classificateur qui va hériter dun type générique, vous devez créer un classificateur lié intermédiaire. LAssistant Spécialisation dun classificateur générique peut effectuer les opérations nécessaires pour vous. 32 PowerAMC™
  • 53. Construction de diagrammes structurels 1. Pointez sur une classe ou une interface générique, cliquez le bouton droit de la souris, puis sélectionnez Créer une classe (ou une interface) personnalisée dans le menu contextuel pour lancer lAssistant Spécialisation dun classificateur générique: 2. Saisissez un nom et un code pour le classificateur spécialisé, puis cliquez sur Suivant pour passer à longlet des paramètres de type. 3. Spécifiez des valeurs pour chacun des paramètres de type dans la liste. Si vous ne spécifiez pas de valeur pour un paramètre de type, ce dernier sera ajouté comme un paramètre de type au nouveau classificateur spécialisé. 4. Cliquez sur Terminer pour revenir au diagramme. LAssistant a créé le classificateur spécialisé ainsi quun classificateur lié qui agit comme un intermédiaire entre le classificateur générique et le classificateur spécialisé, afin de spécifier des valeurs pour les paramètres de type. Le classificateur lié est attaché au classificateur générique via une dépendance ayant le stéréotype <<bind>>, et agit comme le parent du classificateur spécialisé, auquel il est lié par le biais dune généralisation. Dans lexemple ci-dessous, Classe spécialisée hérite de Classe générique via Classe générique_Liée, qui spécifie les paramètres de type pour les types génériques T, T_2 et T_3. Au moment de la compilation, le classificateur spécialisé peut hériter de méthodes et propriétés du classificateur générique, et les variables de type générique seront remplacées par les types réels. Le compilateur sera alors en mesure de réaliser une vérification plus poussée et une diffusion automatique des valeurs de résultats associées. Création dun classificateur lié Vous pouvez être amené à lier un classificateur à un classificateur générique sans créer de classificateur spécialisé. LAssistant Création dun classificateur lié peut effectuer les opérations nécessaires pour vous.Modélisation orientée objet 33
  • 54. Construction de diagrammes structurels 1. Pointez sur une classe ou une interface générique, cliquez le bouton droit de la souris, puis sélectionnez Créer une classe (ou une interface) liée dans le menu contextuel pour lancer lAssistant Création dun classificateur lié. 2. LAssistant crée le classificateur lié, qui est attaché au classificateur générique via une dépendance ayant le stéréotype <<bind>>. Exemple de type générique Dans lexemple ci-dessous, linterface liée , List_T, spécifie un type T pour le paramètre de type <E> de List. La classe générique Vector<T> réalise linterface générique List<E> (via linterface liée List_T) avec un type <T> (qui est défini dans sa propre définition générique) : public class vector <T> implements List <E> La classe liée Vector_Integer spécifie un type Integer pour le paramètre de type <T> de Vector<T>. La classe SimpleVectorProgram est associée à Vector_Integer, ce qui lui permet dutiliser un type de données dattribut que la classe Vector définit comme Integer. Vous devez créer une classe liée pour une généralisation ou pour une réalisation. Toutefois, on peut avoir spécifié une valeur de paramètre pour le type générique <T> directement (sans créer de classe liée) comme un type de données dattribut, un type de données de paramètre ou un type de données de résultats, simplement en saisissant lexpression suivante dans la zone Type de SimpleVectorProgram : Vector<integer> Classificateurs composites et classificateurs internes Un classificateur composite est une classe ou une interface qui contient dautres classes ou interfaces (appelées classificateurs internes). Les classificateurs internes sont répertoriés dans lExplorateur dobjets sous forme denfant de leur classificateur composite : Les classificateurs internes peuvent être affichés directement dans le diagramme de classes principal, ou dans un diagramme de classes supplémentaire spécifique au classificateur composite : 34 PowerAMC™
  • 55. Construction de diagrammes structurels Diagramme principal (avec des liens internes) Diagramme de classificateur composite Vous pouvez afficher plusieurs classificateurs composites dans un diagramme de structure composite (voir Notions de base relatives au diagramme de structures composites à la page 19). Remarque : dans les versions précédentes de PowerAMC, les classificateurs composites nexistaient pas et les classificateurs internes apparaissaient au même niveau hiérarchique que leur parent dans lExplorateur dobjets ainsi que dans la liste des classificateurs. Création des classificateurs internes Vous pouvez créer des classificateurs internes dans une classe ou une interface de lune des façons suivantes : • Affichez longlet Classificateurs internes de la feuille de propriétés dune classe ou dune interface, puis cliquez sur loutil Ajouter une classe interne ou Ajouter une interface interne. • Pointez sur une nouvelle classe ou interface dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Classe ou Nouveau > Interface . • Utilisez loutil Lien interne de la Palette pour connecter deux classes dans le diagramme. La première classe devient une classe composite, et la seconde devient un classificateur. • Créez un diagramme de classificateur composite dédié à la classe (voir la section suivante), puis créez des classes ou des interfaces dans ce diagramme. Tous les classificateurs internes sont répertoriés en bas du symbole de la classe. Création dun diagramme de classificateur composite Vous pouvez être amené à créer un diagramme pour montrer la structure interne dun classificateur composite. Vous pouvez créer un diagramme de classificateur composite de lune des façons suivantes : • Pointez sur une nouvelle classe ou interface dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de classes . • Maintenez la touche CTRL enfoncée et double-cliquez sur une classe ou interface dans le diagramme. Le diagramme de classificateur est vide par défaut et ce, même si le classificateur composite comporte déjà des classificateurs internes. Vous pouvez créer des symboles pour les classificateurs internes en sélectionnant Symbole > Afficher les symboles , ou en les faisant glisser depuis lExplorateur dobjets dans le diagramme. Si vous avez créé un diagramme de classificateur composite, vous pouvez lafficher dans le diagramme de classes principal. Pour ce faire, pointez sur le symbole de classe, cliquez le bouton droit de la souris, puis sélectionnez Vue composite > Lecture seule (sous-diagramme) .Modélisation orientée objet 35
  • 56. Construction de diagrammes structurels Affectation dun classificateur à un type de données ou à un type de résultat Un type de données ou un type de résultat peut être un classificateur. Vous pouvez choisir daffecter une classe, une interface ou un classificateur provenant dune bibliothèque JDK, par exemple, à un des types dobjet suivants : • Type de données dattribut • Type de résultat dopération • Type de données de paramètre Le classificateur peut appartenir au modèle courant ou à un autre modèle. Sil appartient au modèle ou package courant, il est affiché par défaut avec les autres classificateurs du modèle ou package courant. Sil appartient à un autre modèle ou package, un raccourci vers ce classificateur est automatiquement dans le modèle ou package courant. Nom qualifié Si le classificateur appartient à un autre package du même modèle, vous pouvez lattacher manuellement à un type de données ou à un type de résultat en saisissant le nom qualifié du classificateur directement dans la zone de type de données ou de type de résultat. Par exemple, si vous devez faire référence à Classe_2 en tant que type de données de classificateur dun attribut nommé Attribut_1 dans Classe_1, affichez la feuille de propriétés de Attribut_1 et saisissez PACKAGE_2.CLASSE_2 dans la liste Type de données. • Package_1 • |__ Classe_1 • |__ Attr_1 • Package_2 • |__ Classe_2 Une fois que vous avez saisi le nom qualifié (chemin daccès et nom du classificateur), il saffiche dans la zone de type de données ou de type de résultat. Lorsque vous créez un type de données ou un type de résultat, aucun classificateur ne lui est rattaché, cest pour cela que la case Utiliser le nom complet est décochée dans la fenêtre Sélection dun classificateur. Toutefois, si vous saisissez un nom relatif, par exemple Lang.Integer au lieu de Java.Lang.Integer, ce dernier est automatiquement complété et transformé en nom qualifié : Java.Lang.Integer et la case Utiliser le nom complet est automatiquement cochée. Affectation dun classificateur Pour affecter un classificateur : 1. Double-cliquez sur le symbole dune classe dans le diagramme pour afficher sa feuille de propriétés. 36 PowerAMC™
  • 57. Construction de diagrammes structurels • Pour affecter un classificateur à un type de données dattribut, cliquez sur longlet Attribut, sélectionnez un attribut dans la liste, puis cliquez sur loutil Propriétés pour afficher la feuille de propriétés de lattribut. • Pour affecter un classificateur à un type de résultat dopération, cliquez sur longlet Opérations, sélectionnez une opération dans la liste, puis cliquez sur loutil Propriétés pour afficher la feuille de propriétés de lopération. • Pour affecter un classificateur à un type de données de paramètre dopération, cliquez sur longlet Opérations, sélectionnez une opération dans la liste, puis cliquez sur loutil Propriétés pour afficher la feuille de propriétés de lopération. Cliquez ensuite sur longlet Paramètres, sélectionnez un paramètre dans la liste, puis cliquez sur loutil Propriétés pour afficher la feuille de propriétés du paramètre. 2. Cliquez sur le bouton Sélectionner un classificateur en regard de la liste Type de données pour afficher la fenêtre Sélection. Cette fenêtre répertorie tous les classificateurs de tous les modèles ouverts. 3. Sélectionnez le classificateur que vous souhaitez affecter, puis cliquez sur OK pour revenir à la feuille de propriétés. Le nom du classificateur est affiché dans la liste Type de données. 4. Cliquez sur OK. Remarque : Lorsque vous sélectionnez un type de données qui correspond au code du classificateur, le type de données est automatiquement synchronisé si le code du classificateur change.Affichage des attributs migrés dune classe Les associations navigables migrent les attributs vers les classes lors de la génération du code. Vous avez la possibilité dafficher ces attributs migrés dans longlet Associations dune feuille de propriétés de classe. Dans lexemple suivant, la classe Employé est associée à la classe Société. Si vous affichez un aperçu du code généré pour la classe Employé, vous voyez les attributs suivants (langage Java) : public class EMPLOYEE { public COMPANY hires[]; public int NAME; public int DEPARTMENT; } Lassociation entre Employé et Société est migrée sous la forme de lattribut public SOCIETE engage []. Vous pouvez utiliser longlet Association dune feuille de propriétés dune classe pour afficher la liste de tous les attributs migrés via des associations navigables. Associations héritées Lorsquune classe hérite dune classe parent via un lien de généralisation, vous pouvez utiliser la liste des associations héritées pour visualiser la liste des attributs migrés depuis le parent de la classe courante. Par exemple, la classe Développeur hérite de Employé via une généralisation. Si vous double-cliquez sur le symbole de la classe Développeur, cliquez sur longlet Associations dans la feuille de propriétés qui saffiche, puis sur le bouton Héritées, la boîte de dialogue Associations héritées affiche les attributs migrés de la classe Employé.Modélisation orientée objet 37
  • 58. Construction de diagrammes structurels Pour plus dinformations sur les associations, voir Associations (MOO) à la page 68. Packages (MOO) Un package est un mécanisme général permettant dorganiser des éléments en groupes. Il contient des objets de modèle et peut être créé dans tous les diagrammes. Lorsque vous gérez des modèles de grande taille, il peut être utile de les répartir dans des unités de moindre importance afin déviter de manipuler de trop grandes quantités déléments. Les packages sont utilisés pour affecter des portions de modèles, représentant différentes tâches ou différents domaines dactivité, à des équipes de développement distinctes. Hiérarchie des packages Vous pouvez créer plusieurs packages au même niveau hiérarchique dans un modèle ou décomposer un package en dautres packages et ce, sans limitation de niveau de décomposition. Chaque package fait lobjet dune fenêtre de diagramme par défaut. A chaque niveau de décomposition vous pouvez créer plusieurs diagrammes. Toutefois, dans un diagramme dactivités ou détats-transitions, il nest pas possible de créer un package dans une activité composite ou dans un état composite, ces derniers se comportant déjà comme un package. Pour plus dinformations sur les packages, voir "Packages" dans le chapitre Modèles du Guide des fonctionnalités générales de PowerAMC. 38 PowerAMC™
  • 59. Construction de diagrammes structurels Vue composite Vous pouvez développer un package pour obtenir une vue globale de tout le contenu du diagramme en pointant sur ce package, en cliquant le bouton droit de la souris, puis en sélectionnant Vue composite > Lecture seule (sous- diagramme) . Vous devez redimensionner le symbole du package composite pour afficher correctement son contenu : Pour rétablir la vue normale dun package, pointez sur le symbole, cliquez le bouton droit de la souris, puis sélectionnez Vue composite > Aucune . Remarquez que si vous double-cliquez sur la vue composite, vous ouvrez automatiquement le diagramme de sous- package. Pour plus dinformations sur la fonctionnalité de vue composite, reportez-vous à la section Développement du symbole dun objet composite dans le chapitre Manipulations graphiques du manuel Guide des fonctionnalités générale. Vous pouvez créer nimporte quel type de diagramme dans un package, ou dans un modèle. Vous utilisez des packages pour organiser vos objets dans des domaines fonctionnels ou organisationnels. Si vous supprimez un package, vous supprimez également les diagrammes et objets quil contient. Les objets créés dans un modèle ou dans un package sont partagés entre les différents diagrammes du même type créés dans le même modèle ou package.Propriétés dun package de MOO Les packages sont dotés de propriétés qui saffichent sur leur page de propriétés respective. Tous les packages ont en commun les propriétés suivantes : Propriété Description Nom Nom qui permet didentifier clairement le package. Code Les codes sont des références aux packages. Commentaire Libellé facultatif qui décrit un package et fournit plus dinformations que son nom.Modélisation orientée objet 39
  • 60. Construction de diagrammes structurels Propriété Description Stéréotype Sous-classification dérivée dun package existant. Les stéréotypes suivants sont disponibles par défaut : • <<archive>> Archive Jar ou archive Bar (Java uniquement). • <<assembly>> – Indique quun package produit un fichier exécutable portable (PE), (C# et VB.NET uniquement). • <<CORBAModule>> – Package UML identifié comme étant un module IDL (IDL-CORBA unique- ment). • <<facade>> – Le package est une vue dun autre package. • <<framework>> – Le package est principalement composé de motifs. • <<metamodel>> – Le package est une abstraction dun autre package. • <<model>> – Spécifie une abstraction sémantiquement fermée dun système. • <<stub>> – Le package sert de proxy pour le contenu public dun autre package. • <<subsystem>> – Regroupement déléments, dont certains constituent une spécification du compor- tement offert par les éléments contenus. • <<system>> – Le package représente lintégralité du système en cours de modélisation. • <<systemModel>> – Le package contient dautres packages avec le même système physique. Il con- tient également toutes les relations entre les éléments de modèle contenus dans différents modèles. • <<topLevel>> – Indique le package de plus au niveau dans une hiérarchie. Utiliser lespace de Option qui définit le package comme lespace au sein duquel le nom dun objet doit être unique. noms du parent Diagramme par défaut Diagramme affiché par défaut lorsque vous ouvrez ce modèle. Affichage du code dun package dans un MOO Vous pouvez afficher un aperçu du code dun modèle ou package afin de voir le code qui sera généré. Pour ce faire, utilisez la page Aperçu de la feuille de propriétés de modèle ou de package. Le code affiché est différent selon le langage objet choisi. Définition du type de diagramme dun nouveau package Lorsque vous créez un nouveau package, le diagramme par défaut du package est défini en fonction des paramètres suivants : • Si vous créez un package à laide de loutil Package de la palette, le diagramme est du même type que celui du package ou modèle parent. • Si vous créez un package à partir de lExplorateur dobjets, le diagramme est du même type que les diagrammes existants dans le package ou modèle parent, si ces diagrammes sont du même type. Si les diagrammes du package ou modèle parent ne sont pas du même type, vous êtes invité à sélectionner le type de diagramme pour le nouveau package ou sous-package. • Si vous créez un package à partir de la boîte de dialogue Liste des packages, le diagramme est du même type que celui du diagramme actif. Interfaces (MOO) Une interface est similaire à une classe, mais elle est utilisée pour définir la spécification dun comportement. Une interface est une collection dopérations utilisée pour spécifier le comportement visible dune classe. Linterface elle- même nest pas mise en oeuvre. Une interface peut être créée dans les types de diagramme suivants : • Diagramme de classes 40 PowerAMC™
  • 61. Construction de diagrammes structurels • Diagramme structure composite • Diagramme de composants Une interface inclut les signatures des opérations. Elle spécifie uniquement une partie limitée du comportement dune classe. Une classe permet de mettre en oeuvre une ou plusieurs interfaces. Une classe doit mettre en oeuvre toutes les opérations dans une interface pour réaliser cette interface. Lexemple suivant montre une interface (Designated) réalisée par une classe (Employee).Création dune interface Vous pouvez créer une interface de lune des façons suivantes : • Utilisez loutil Interface dans la Palette du diagramme. • Sélectionnez Modèle > Interfaces pour afficher la boîte de dialogue Liste des Interfaces, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Interface . • Pointez sur une classe, cliquez le bouton droit de la souris, puis sélectionnez Créer une interface dans le menu contextuel (cette méthode permet dhériter de toutes les opérations de la classe, y compris les opérations getter et setter, crée un lien de réalisation entre linterface et la classe, et montre ce lien dans le sous-onglet Réalise de longlet Dépendances dans la feuille de propriétés de linterface). Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dune interface Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune interface, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Interfaces de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet.Modélisation orientée objet 41
  • 62. Construction de diagrammes structurels Propriété Description Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Les stéréotypes communs suivants sont disponibles par défaut : • <<metaclass>> - interface qui va interagir avec un modèle qui contient des classes ayant des stéréo- types metaclass. • <<powertype>> - métaclasse dont les instances sont des sous-classes dune autre classe. • <<process>> - flux lourd qui peut être exécuté en même temps que dautres processus. • <<thread>> - flux léger qui peut être exécuté en même temps que dautres threads au sein du même processus. Généralement exécuté au sein de lespace dadresse du processus dans lequel il est inclus. • <<utility>> - classe dépourvue dinstance. Visibilité Spécifie la visibilité de lobjet, à savoir la façon dont il est perçu hors de son espace de noms. Une interface qui est visible dun autre objet peut influer sur la structure ou le comportement de cet objet et, de la même manière, ses propres propriétés peuvent être affectées par cet objet. Vous pouvez choisir parmi les valeurs suivantes : • Private – uniquement par lobjet. • Protected – uniquement par lobjet et par ses objets hérités. • Package – par tous les objets contenus dans le même package. • Public – par tous les objets (option par défaut). Interne à Indique le nom de la classe ou de linterface à laquelle la classe courante appartient en tant que classifi- cateur interne. Type Permet de spécifier quune interface est de type générique, ou si elle est liée à un type générique. Vous pouvez choisir parmi les valeurs suivantes : • Classe • Générique • Lié – Si vous sélectionnez cette option, une liste supplémentaire devient disponible à droite, dans laquelle vous pouvez spécifier le type générique auquel linterface est liée. Si vous spécifiez Générique ou Lié, longlet Générique saffiche, permettant de contrôler les variables de type associées (voir Onglet Générique de la feuille de propriétés dune interface à la page 42). Pour plus dinformations sur les types génériques et les liaisons, voirTypes et méthodes génériques à la page 32. Générer du code Indique si linterface est automatiquement incluse lorsque vous générez du code à partir du modèle. Les onglets suivants répertorient les objets associés à linterface : • Attributs - répertorie les attributs associés à linterface. Vous pouvez créer des attributs directement sur cet onglet, ou bien ajouter des attributs existants. Pour plus dinformations, voir Attributs (MOO) à la page 51. • Opérations - répertorie les opérations associées à linterface. Vous pouvez créer des opérations directement dans cet onglet, ou ajouter des attributs existants. Pour plus dinformations, voir Opérations (MOO) à la page 59. • Classificateurs internes - répertorie les classes et interfaces internes associés à linterface. Vous pouvez créer des classificateurs internes directement dans cet onglet. Pour plus dinformations, voir Classificateurs composites et classificateurs internes à la page 34. • Diagrammes associés - répertorie tous les diagrammes qui sont liés à linterface. Vous pouvez ajouter des diagrammes à partir de cet onglet. Pour plus dinformations, voir "Définition de diagrammes associés", dans le chapitre Diagrammes et symboles du Guide des fonctionnalités générales Onglet Générique de la feuille de propriétés dune interface Longlet Générique permet de spécifier : • Que linterface est de type générique, et répertorier ses paramètres de type, ou • Que linterface est liée à un type générique, et fournir des valeurs pour les paramètres de type requis Pour plus dinformations, voir Types et méthodes génériques à la page 32. 42 PowerAMC™
  • 63. Construction de diagrammes structurelsObjets (MOO) Au niveau conceptuel, un objet est un élément défini comme faisant partie du système décrit. Il représente un objet qui na pas encore été instancié car à ce stade les classes ne sont pas encore clairement définies. Si vous devez poursuivre plus avant la mise en oeuvre de votre modèle, lobjet qui a émergé lors de lanalyse se transformera probablement en instance dune classe définie. Dans ce cas, un objet sera considéré comme une instance dune classe. Les trois situations suivantes peuvent se présenter : • Lorsquun objet nest pas une instance dune classe - il na quun nom. • Lorsquun objet est une instance dune classe - il a un nom et une classe. • Lorsquun objet est une instance dune classe mais quil représente tout ou partie des instances de la classe - il a une classe mais pas de nom. Un objet peut être créé dans les types de diagramme suivants : • Diagramme de communication • Diagramme dobjets • Diagramme de séquence Un objet à la même définition dans les diagrammes dobjet, de séquence et de communication. Vous pouvez soit le créer directement dans le type de diagramme de votre choix, soit le faire glisser dun type de diagramme à lautre. Définition de multiples Un multiple définit un jeu dinstances. Il sagit dune représentation graphique dun objet qui représente plusieurs instances. Un objet peut communiquer avec un autre objet qui est multiple. Cette fonctionnalité est principalement utilisée dans le diagramme de communication mais peut également être utilisée dans le diagramme dobjets. Un employé gère une liste de documents : cest la liste des documents qui représente un objet multiple. Lorsque la case Multiple est cochée dans la feuille de propriétés de lobjet, un symbole spécifique représentant deux rectangles superposés saffiche. Objets dans un diagramme dobjets Dans le diagramme dobjets, un objet instance dune classe peut afficher les valeurs des attributs définis sur la classe. Lorsque la classe est supprimée, les objets associés ne sont pas automatiquement supprimés. Objets dans un diagramme de communication Dans un diagramme de communication, un objet est une instance dune classe. Il peut être persistant ou transitoire : un objet persistant est un objet qui continue dexister une fois que le processus qui la créé est terminé, un objet transitoire est un objet qui cesse dexister une fois que le processus qui la créé est terminé. Le nom de lobjet saffiche souligné. Le soulignement indique traditionnellement quun élément est une instance dun autre élément.Modélisation orientée objet 43
  • 64. Construction de diagrammes structurels Objets dans un diagramme de séquence Dans un diagramme de séquence, un objet a une ligne de vie dobjet qui est représentée par une ligne verticale en tirets sous le symbole de lobjet. Le temps sécoule toujours vers le bas de la page. La ligne de vie dobjet indique la période durant laquelle un objet existe. Vous ne pouvez pas séparer un objet de sa ligne de vie. Si lobjet est créé ou supprimé lors de la période représentée sur le diagramme, sa ligne de vie commence ou sarrête au point correspondant. Les objets saffichent en haut du diagramme. Ils échangent des messages entre eux. Un objet qui existe quand une transaction ou un message commence est affiché en haut du diagramme, au-dessus de la première flèche de message. La ligne de vie dun objet qui existe encore après la fin de la transaction se poursuit au-delà de la flèche de fin du message. Création dun objet Pour créer un objet, vous pouvez procéder de lune des façons suivantes : • Utilisez loutil Objet dans la Palette du diagramme. • Sélectionnez Modèle > Objets pour afficher la boîte de dialogue Liste des objets, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Objet . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun objet Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun objet, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Objets de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Cette propriété nest pas obligatoire puisque vous pouvez faire en sorte quun objet représente une instance non nommée dune classe ou dune interface, mais si la zone nom ou code est vide, vous devez spécifier le nom de la classe ou de linterface dans la zone Classificateur. Le nom et le code doivent être uniques pour une classe ou interface. Deux objets ne peuvent avoir le même nom que sils appartiennent à des classes ou interfaces différentes. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. 44 PowerAMC™
  • 65. Construction de diagrammes structurels Propriété Description Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Classificateur Spécifie la classe ou linterface dont lobjet est une instance. Vous pouvez lier un objet à une classe ou à une interface, ou bien créer une classe à laide de loutil Créer une classe situé en regard de la zone. Pour plus dinformations, voir Liaison dun classificateur à un objet à la page 46. Multiple Objet qui représente plusieurs instances. Onglet Valeurs dattribut de la feuille de propriétés dun objet Lorsquun objet est une instance dune classe, les attributs de la classe peuvent être ajoutés à lobjet à partir de longlet Valeur dattribut dans la feuille de propriétés de lobjet. Une fois lattribut ajouté, vous pouvez attacher une valeur à lattribut à partir de cette page. Lorsque vous ajoutez une valeur à lattribut, la feuille de propriétés de lattribut affiche cette information dans longlet Valeurs dattribut de longlet Dépendances. Une valeur dattribut représente une instance dun attribut de classe. Elle fait référence à un attribut de la classe dont lobjet courant est une instance, ou peut faire référence à un attribut hérité dun parent de la classe. Une valeur dattribut est stockée sous forme de texte. Une valeur dattribut est créée lorsque vous affectez une valeur à un attribut. Les valeurs dattribut sont dépourvues de symbole et ne font pas lobjet dune feuille de propriétés. Vous pouvez accéder aux valeurs dattribut à partir de longlet Valeurs dattribut de la feuille de propriétés de lobjet. Un outil Ajouter des valeurs dattribut permet dajouter des attributs sur cette page. Il affiche une boîte de dialogue de sélection contenant tous les attributs de la classe de lobjet, y compris les attributs hérités des classes dont sa classe hérite (également appelées superclasses). Une fois lattribut ajouté à lobjet, il est possible de définir sa valeur dans la colonne Valeur de la liste. Il ne peut y avoir quune seule valeur dattribut par attribut (attribut de la classe de lobjet). Les valeurs dattribut sont affichées à lintérieur du symbole de lobjet dans le diagramme dobjets, sils ne sont pas affichés, vous pouvez modifier les préférences daffichage de façon à les faire apparaître. Vous pouvez affecter une valeur à un attribut migré. Vous ne pouvez pas créer de raccourcis pour une valeur dattribut, ni la déplacer ou la copier. Pour tous les symboles de raccourcis externes, la liste des valeurs dattribut est affichée uniquement lorsque le modèle contenant le raccourci est chargé dans lespace de travail. Comportement des valeurs dattribut Lorsquune valeur dattribut est affectée à un objet, elle est associée à cet objet et lattribut doit appartenir à la classe de lobjet ou à lune des ses classes héritées. La cohérence entre la classe de lobjet, lattribut et la valeur dattribut est gérée par PowerAMC. Par exemple, si vous changez lhéritage, la valeur dattribut sur lobjet correspondant est automatiquement supprimée si elle nest pas associée aux attributs appartenant à la nouvelle classe, ou à ses superclasses.Modélisation orientée objet 45
  • 66. Construction de diagrammes structurels La cohérence entre lordre des attributs dans la classe et lordre des valeurs dattributs nest pas gérée. Vous pouvez donc ordonner les valeurs dattribut comme bon vous semble. Les règles suivantes sappliquent également aux valeurs dattribut : • Lorsque la classe dont lobjet constitue une instance est un raccourci externe, les valeurs dattribut de cet objet doivent être mises à jour si les attributs de la classe, ou des superclasses, ont été modifiés, supprimés ou ajoutés ou si leur type de données a été changé. Vous devez les mettre à jour après avoir chargé dans lespace de travail le modèle contenant les classes ou le modèle contenant lobjet. • Lorsque vous supprimez un attribut, la valeur dattribut correspondante est également supprimée. Une valeur dattribut na pas de feuille de propriétés. Toutes les propriétés qui sont affichées dans longlet Valeurs dattribut de la feuille de propriétés de lobjet sont calculées et en lecture seule et sont dupliquées à partir de lattribut. La seule propriété qui nest pas en lecture seule est la propriété Valeur que vous devez saisir ou sélectionner pour créer une valeur dattribut. Propriété Description Classe Classe de lobjet. Vous pouvez cliquer sur le bouton Points de suspension dans la colonne Classe pour afficher la feuille de propriétés de la classe. Attribut Attribut de la classe de lobjet. Vous pouvez cliquer sur le bouton Points de suspension dans la colonne Attribut pour afficher la feuille de propriétés de lattribut. Valeur Valeur de lattribut. Vous pouvez saisir votre propre valeur, ou bien sélectionner la flèche vers le bas et choisir une valeur. Cette liste provient de la zone Liste des valeurs possibles de longlet Contrôle standard dans la feuille de propriétés de lattribut. Si vous utilisez des attributs pouvant avoir plusieurs valeurs, vous pouvez recourir à la syntaxe de votre choix pour les saisir dans cette colonne. Type de données Type de données de lattribut. Valeur initiale Valeur initiale de lattribut (y compris les guillemets si nécessaire). Identifiant primaire Indique que lattribut fait partie dun identifiant primaire Pour plus dinformations sur les identifiants primaires, reportez-vous à la section Identifiants (MOO) à la page 57. Liaison dun classificateur à un objet Le diagramme dobjets représente les instances dune classe ou dune interface, le diagramme de séquence représente le comportement dynamique dune classe ou dune interface et le diagramme de communication représente ces instances dans un mode de communication. Pour toutes ces raisons, vous pouvez lier une classe ou une interface à un objet dans un MOO. Dans la feuille de propriétés de lobjet vous pouvez : • Lier lobjet à une classe ou à une interface existante • Créer une classe 1. Sélectionnez une classe ou une interface dans la liste Classificateur située dans la feuille de propriétés de lobjet. ou Cliquez sur loutil Créer une classe en regard de la zone de liste Classe pour créer une classe et afficher sa feuille de propriétés. Définissez les propriétés de la nouvelle classe puis cliquez sur OK. Le nom de la classe ou de linterface saffiche dans la liste Classificateur. 2. Cliquez sur OK. Le nom de lobjet saffiche alors dans le diagramme de séquence suivi du signe deux points et du nom de la classe ou de linterface sélectionnée. 46 PowerAMC™
  • 67. Construction de diagrammes structurels Vous pouvez également afficher le nom de lobjet dans la feuille de propriétés de la classe ou de linterface. Pour ce faire, cliquez sur longlet Dépendances, puis sur le sous-onglet Objets. Le nom de lobjet est automatiquement ajouté dans longlet Objets. Remarque : Vous pouvez faire glisser le noeud dune classe ou dune interface depuis lExplorateur dobjets dans un diagramme de séquence, de communication ou dobjets. Vous avez également la possibilité de copier une classe ou une interface puis de la coller, ou de la coller en tant que raccourci, dans lun de ces diagrammes. Vous créez alors automatiquement un objet qui constitue une instance de la classe ou de linterface.Parties (MOO) Une partie permet de définir une zone bien délimitée à lintérieur dune classe ou dun composant. Les parties peuvent être connectées aux autres parties ou ports, soit directement, soit via un port situé à lextérieur de la partie. Vous connectez les parties entre elles via des connecteurs dassemblage. Vous connectez une partie à un port situé à lextérieur dune classe ou dun composant en utilisant un connecteur de délégation. Une partie peut être créée dans les types de diagramme suivants : • Diagramme de structure composite (au sein dune classe) • Diagramme de composants (au sein dun composant) Vous ne pouvez créer une partie quau sein dune classe ou dun composant. Si vous tentez de faire glisser une partie hors de son classificateur, ce dernier est agrandi de façon à continuer à contenir cette partie. Parties dans un diagramme de structure composite Dans lexemple ci-dessous, la classe TitleImpl2 contient une partie appelée unitTest : Parties dans un diagramme de composants Dans lexemple ci-dessous, le composant PersistentTitle contient deux parties, TitleManager et TitleDataAccess :Création dune partie Vous pouvez créer une partie de lune des façons suivantes : • Utilisez loutil Partie dans la Palette du diagramme. • Affichez longlet Parties de la feuille de propriétés dune classe ou dun composant, puis cliquez sur loutil Ajouter une ligne. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Modélisation orientée objet 47
  • 68. Construction de diagrammes structurels Propriétés dune partie Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune partie, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Parties de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Parent Spécifie lobjet parent. Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Visibilité Spécifie la visibilité de lobjet, à savoir la façon dont il est perçu hors de son espace de noms. Vous pouvez choisir parmi les valeurs suivantes : • Private – uniquement par lobjet • Protected – uniquement par lobjet et par ses objets hérités • Package – par tous les objets contenus dans le même package • Public – par tous les objets (option par défaut) Type de données Spécifie un classificateur comme type de données. Multiplicité Spécifie le nombre dinstances de la partie. Si la multiplicité est une plage de valeurs, cela signifie que le nombre de parties peut varier au moment de lexécution. Vous pouvez choisir parmi les valeurs suivantes : • * – Une à un nombre illimité • 0..* – Aucune ou un nombre illimité • 0..1 – Aucune ou une • 1..* – Une à un nombre illimité • 1..1 – Une à une Composition Spécifie la nature de lassociation avec lobjet parent. Si cette option est sélectionnée, il sagit dune composition, dans le cas contraire, il sagit dune agrégation. Les onglets suivants répertorient les objets associés à la partie : • Ports - répertorie les ports associés à la partie. Vous pouvez créer des ports directement dans cet onglet. Pour plus dinformations, voir Ports (MOO) à la page 48. Ports (MOO) Un port est créé à lextérieur dun classificateur et spécifie un point dinteraction distinct entre le classificateur et son environnement ou bien entre le (comportement du) classificateur et ses parties internes. Les ports peuvent être connectés à : • Une partie via un connecteur de délégation, par le biais duquel les demandes peuvent être effectuées pour appeler des fonctionnalités de comportement dun classificateur. 48 PowerAMC™
  • 69. Construction de diagrammes structurels • Une interface via un lien de prérequis, par le biais duquel le port peut spécifier les services quun classificateur fournit (offre) à son environnement ainsi que les services quun classificateur attend (requiert) de son environnement. Un port peut être créé dans les types de diagramme suivants : • Diagramme de classes (sur une classe) • Diagramme de structure composite (sur une classe, une partie, ou une interface) • Diagramme de composants (sur un composant ou sur une partie) Ports dans un diagramme de classes Dans lexemple ci-dessous, la classe TitleImpl2 contient les ports sql et stat, qui sont connectés par des liens de prérequis aux interfaces java.math.stat2 et java.sql.connection2 : Ports dans un diagramme de structure composite Dans lexemple ci-dessous, la structure interne de la classe TitleImpl2 est affichée plus en détails, et montre comment les ports peuvent être utilisés pour spécifier des points dinteraction entre une partie et le classificateur qui la contient : Ports dans un diagramme de composants Lexemple ci-dessous illustre lutilisation des ports pour connecter des parties :Création dun port Vous pouvez créer un port de lune des façons suivantes : • Utilisez loutil Port dans la Palette du diagramme. • Affichez longlet Ports dans la feuille de propriétés dune classe, dune partie, ou dun composant, puis cliquez sur loutil Ajouter une ligne. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dun port Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun port, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Ports de lExplorateur dobjets.Modélisation orientée objet 49
  • 70. Construction de diagrammes structurels Longlet Général contient les propriétés suivantes : Propriété Description Parent Spécifie le classificateur parent. Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Visibilité Spécifie la visibilité de lobjet, à savoir la façon dont il est perçu hors de son espace de noms. Vous pouvez choisir parmi les valeurs suivantes : • Private – uniquement par lobjet • Protected – uniquement par lobjet et par ses objets hérités • Package – par tous les objets contenus dans le même package • Public – par tous les objets (option par défaut) Type de données Spécifie un classificateur comme type de données. Multiplicité Spécifie le nombre dinstances du port. Si la multiplicité est une plage de valeurs, cela signifie que le nombre de ports peut varier au moment de lexécution. Vous pouvez choisir parmi les valeurs suivantes : • * – Un à un nombre illimité. • 0..* – Aucun ou un nombre illimité. • 0..1 – Aucun ou un. • 1..* – Un à un nombre illimité. • 1..1 – Un à un. Redéfinit Un port peut être redéfini lorsque le classificateur qui le contient est spécialisé. Le port qui redéfinit peut avoir des interfaces supplémentaires à celles qui étaient associées au port redéfini ou peut remplacer une interface par lun de ses sous-types. Service Spécifie que ce port est utilisé pour fournir la fonctionnalité publiée dun classificateur (valeur par défaut). Si cette case est décochée, le port est utilisé pour mettre en oeuvre le classificateur mais ne fait pas partie de la fonctionnalité perceptible depuis lextérieur du classificateur. Il peut toutefois être modifié ou supprimé avec la mise en oeuvre interne du classificateur et les autres propriétés qui sont considérées comme faisant partie de sa mise en oeuvre. Comportement Spécifie que ce port est "port de comportement", et les requêtes arrivant à ce port sont envoyées au comportement de classificateur du classificateur. Tout appel dune fonctionnalité de comportement ci- blant un port de comportement peut être géré par les instances du classificateur propriétaire lui-même, plutôt que par des instances que ce classificateur peut contenir. Redéfinition des ports parent Un classificateur connecté à un parent par le biais dune généralisation peut redéfinir les ports du parent. 1. Affichez la feuille de propriétés dune classe, dune interface ou dun composant, puis cliquez sur longlet Ports. 2. Cliquez sur le bouton Redéfinir en bas de longlet pour afficher la boîte de dialogue Ports parent, qui affiche une liste de parents qui appartiennent au classificateur parent. 50 PowerAMC™
  • 71. Construction de diagrammes structurels 1. Sélectionnez un port, puis cliquez sur Redéfinir pour le faire redéfinir par le classificateur enfant. 2. Cliquez sur Fermer pour revenir à la feuille de propriétés de lenfant. Le port redéfini saffiche maintenant dans la liste de longlet Ports.Attributs (MOO) Un attribut est une propriété nommée dune classe (ou dune interface) et qui décrit ses caractéristiques. Un attribut peut être créé pour une classe ou une interface dans les types de diagramme suivants : • Diagramme de classes • Diagramme de structure composite • Diagramme de composants Une classe ou interface peut avoir un ou plusieurs attributs. Tous les objets dune classe peuvent avoir les mêmes attributs, mais pas avec les mêmes valeurs. Les noms dattribut doivent être uniques au sein dune classe. Vous pouvez affecter le même nom à plusieurs attributs, à condition quils soient placés dans des classes différentes. Dans lexemple suivant, la classe Imprimante contient deux attributs nommés Vitesse et Laser : Attribut dinterface Un attribut dinterface est différent dun attribut de classe car une interface ne peut avoir que des attributs constants (statique et figé). Par exemple, considérons une interface nommée Couleur avec trois attributs ROUGE, VERT et BLEU. Ces attributs sont à la fois statiques, finaux et figés. Si vous générez cette interface en Java, vous obtenez le code suivant : public interface Couleur { public static final int Rouge = 0xFF0000; public static final int Vert = 0x00FF00; public static final int Bleu = 0x0000FF; }Modélisation orientée objet 51
  • 72. Construction de diagrammes structurels Ces attributs sont constants car statiques (indépendants de leurs instances), finaux (ne peuvent pas être surchargés), et figés (leur valeur nest pas modifiable). Vous pouvez utiliser les attributs des autres interfaces ou classes et les ajouter à linterface courante. Création dun attribut Vous pouvez créer un attribut de lune des façons suivantes : • Affichez longlet Attributs dans la feuille de propriétés dune classe, dun identificateur, ou dune interface, puis cliquez sur loutil Ajouter une ligne. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun attribut Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun attribut, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Attributs de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Parent Elément auquel lattribut appartient. Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Visibilité Spécifie la visibilité de lobjet, à savoir la façon dont il est perçu hors de son espace de noms. Lorsquune classe est visible par un autre objet, elle peut influencer la structure ou le comportement de lobjet, ou être affectée par ce dernier. Vous pouvez choisir parmi les valeurs suivantes : • Private – uniquement par lobjet. • Protected – uniquement par lobjet et par ses objets hérités. • Package – par tous les objets contenus dans le même package. • Public – par tous les objets (option par défaut). Type de données Jeu dinstances partageant les mêmes opérations, attributs abstraits, relations, et sémantiques. Multiplicité Spécification de la plage des nombre de valeurs admises que peut prendre un attribut. Vous pouvez choisir parmi les valeurs suivantes : • 0..1 – Zéro ou une • 0..* – Aucune à un nombre illimité • 1..1 – Une et une seule • 1..* – Une à un nombre illimité • * – Aucune ou un nombre illimité Vous pouvez changer le format par défaut de la multiplicité à partir du Registre. HKEY_CURRENT_USERSoftwareSybasePowerAMC 12ModelOptions Cld MultiplicityNotation = 1 (0..1) or 2 (0,1) 52 PowerAMC™
  • 73. Construction de diagrammes structurels Propriété Description Taille du tableau Spécifie la multiplicité dans la syntaxe dun langage donné, lorsque la multiplicité de lattribut ne peut pas lexprimer. Par exemple, vous pouvez définir une taille de tableau de [4,6,8] pour obtenir la syntaxe PowerBuilder int n[4,6,8] ou définir une taille de tableau [,,] pour obtenir la syntaxe c# int[,,] n; Selon le langage objet choisi pour le modèle, les valeurs suivantes sont générées : • Java, C# et C++ – [2][4][6] • PowerBuilder – [2,4,6] • VB .NET – (2,4,6) Classe dénumération [Java 5.0 uniquement] Spécifie une classe anonyme pour un EnumConstant. Pour créer la classe, cliquez sur loutil Créer à droite de cette propriété. Pour ouvrir la feuille de propriétés de cette classe anonyme, cliquez sur loutil Propriétés.Pour la supprimer, cliquez sur loutil Propriétés. Statique Lattribut est associé à la classe, par conséquence les attributs statiques sont partagés par toutes les instances de la classe et ont toujours la même valeur parmi les instances. Dérivé Indique que lattribut peut être calculé à partir dun autre attribut. La formule de dérivation peut être définie dans longlet de description de lattribut, et ninflue par sur la génération de code. Obligatoire Attribut calculé booléen sélectionné si la multiplicité minimale est supérieure à zéro. Volatile Indique que lattribut nest pas membre de la classe. Défini uniquement par les opérations getter et setter. Dans C#, remplace lancien attribut étendu Volatile. Pour plus dinformations sur lajout dopérations à une classe, voir Ajout dopération Getter et Setter dans un classificateur à la page 54. Onglet Détails de la feuille de propriétés dun attribut The Detail tab contains a Persistent groupbox whose purpose is to improve the generation of code and data types during generation of a CDM or a PDM from an OOM. Les propriétés contenues dans cet onglet sont les suivantes : Propriété Description Modifiable Spécifie si la valeur de lattribut peut être modifiée une fois que lobjet a été initialisé. Vous pouvez choisir parmi les valeurs suivantes : • Modifiable – La valeur peut être modifiée. • Lecture seule – Empêche la création dune opération setter (une telle opération est créée dans la méthode contenue dans la classe). • Figé – Constante. • Ajout uniquement – Permet uniquement la création dune nouvelle valeur. Domaine Nom du domaine associé. Si vous affectez un attribut à un domaine, ce domaine définit le type de données de lattribut ainsi que les autres informations relatives au type de données. Il peut également définir les paramètres de contrôle et les règles de gestion. Sélectionnez un domaine dans la liste, ou bien cliquez sur le bouton Liste en regard de la liste pour créer un nouveau domaine dans la boîte de dialogue Liste des domaines. Identifiant primaire Si cette case est cochée, indique que lattribut courant fait partie dun identifiant primaire. Les identifiants primaires sont convertis en clés primaires lors de la génération dun MPD à partir dun MOO. Valable uniquement pour les classes. Migré depuis Contient le nom de lassociation à lorigine de la création de lattribut. Vous pouvez cliquer sur loutil Propriétés en regard de cette zone pour afficher la feuille de propriétés de cette association. Pour plus dinformations sur la migration des attributs, voir Migration des rôles dassociation dans un diagramme de classes à la page 74.Modélisation orientée objet 53
  • 74. Construction de diagrammes structurels Propriété Description Persistant Zone de groupe pour la génération de modèles MCD ou MPD persistants. Valable uniquement pour les attributs de classe (pas applicable aux attributs dinterface). Pour plus dinformations sur la persistance des objets, voir Gestion de la persistance des objets lors de la génération dun MPD à partir dun MOO à la page 237. Code Spécifie le code de la table ou de lentité qui sera générée dans un MCD ou un MPD persistant. Type de données Spécifie un type de données persistant utilisé dans la génération dun modèle persistant, quil sagisse dun MCD ou dun MPD. Le type de données persistant est défini à partir des types de données conceptuels PowerAMC. Longueur Nombre maximal de caractères du type de données persistant. Précision Nombre de décimales pour les valeurs de type de données persistant qui comportent des chiffres après la virgule. Redéfinit [PowerBuilder uniquement] Indique quel attribut parent lattribut courant redéfinit via un lien de géné- ralisation. Ajout dopération Getter et Setter dans un classificateur Les opérations Getter ou Setter sont des types dopération particuliers que vous pouvez créer pour un attribut. Vous pouvez créer des opérations Getter ou Setter pour échanger des valeurs entre attributs dune même classe ou interface. Vous pouvez créer une opération Getter ou Setter à partir de la liste des attributs dune classe. Pour chaque attribut, vous pouvez créer une opération Getter, une opération Setter, ou bien une opération de chacun de ces deux types. Opération Description Getter Renvoie une valeur contenue dans un champ. Setter Place une valeur dans un champ. Exception relative à C# : dans le langage C#, si un attribut a le stéréotype <<Event>>, les méthodes par défaut ne sont pas Getter et Setter mais Add et Remove. Lorsque vous cliquez sur le bouton Ajouter les accesseurs, les méthodes Add et Remove sont automatiquement ajoutées. 1. Double-cliquez sur le symbole dune classe ou dune interface dans le diagramme pour afficher sa feuille de propriétés, puis cliquez sur longlet Attributs. 2. Sélectionnez un ou plusieurs attributs, puis cliquez sur le bouton Ajouter les accesseurs en bas de longlet Attributs. 54 PowerAMC™
  • 75. Construction de diagrammes structurels 3. Cliquez sur longlet Opérations pour afficher les opérations que vous venez de créer en bas de la liste des opérations. Ces opérations sont grisées, ce qui indique que leur nom nest pas modifiable. 4. Cliquez sur OK.Copie dun attribut dans une classe, interface ou dans un identifiant Vous pouvez dupliquer un attribut dun classificateur dans un autre. Si le classificateur de destination contient déjà un attribut portant le même nom ou code que lattribut copié, ce dernier est renommé. Par exemple, un attribut nommé PERIPHLD est renommé PERIPHLD2 lorsque vous le copiez dans une classe contenant déjà un attribut nommé PERIPHLD. 1. Affichez la feuille de propriétés dune classe, dune interface ou dun identifiant, puis cliquez sur longlet Attributs.Modélisation orientée objet 55
  • 76. Construction de diagrammes structurels 2. Cliquez sur loutil Ajouter des attributs pour afficher la fenêtre Sélection. Cette fenêtre contient la liste de tous les attributs contenus dans le modèle, à lexception de ceux qui appartiennent déjà à lobjet. 3. Sélectionnez les attributs à ajouter à lobjet. ou Cliquez sur loutil Sélectionnez tout pour ajouter les attributs contenus dans la liste à lobjet. 4. Cliquez sur OK pour ajouter les attributs sélectionnés à lobjet courant. Redéfinition dun attribut dans PowerBuilder La boîte de dialogue Attributs hérités permet deffectuer les opérations suivantes : • Visualiser les attributs hérités des classes ou interfaces parent. • Redéfinir un attribut, cette fonctionnalité nest toutefois disponible que pour PowerBuilder. Au sein du contexte dun héritage, vous pouvez ajouter à une classe un attribut qui appartient à une classe parent, on parle alors de redéfinition. Lattribut de la classe parent est considéré comme redéfini lorsque cet attribut est à nouveau défini dans une classe enfant. 56 PowerAMC™
  • 77. Construction de diagrammes structurels Une fois que vous avez ajouté ainsi un attribut dans une classe, vous pouvez seulement modifier la valeur initiale de cet attribut, vous ne pouvez pas modifier ses autres propriétés. Ajouter dun attribut hérité à une classe Pour ajouter un attribut hérité à une classe : 1. Double-cliquez sur une classe liée à une classe parent dans le diagramme pour afficher sa feuille de propriétés, puis cliquez sur longlet Attributs. 2. Cliquez sur le bouton Hérités pour afficher la fenêtre Attributs hérités. Cette fenêtre répertorie tous les attributs qui appartiennent aux classes parent de la classe. 3. Sélectionnez un attribut, cliquez sur Redéfinir, puis sur Fermer. Une copie de lattribut est ajoutée dans la liste des attributs de la classe enfant. Elle saffiche grisée, ce qui indique que ses propriétés ne peuvent pas être modifiées. En outre, le stéréotype <<Override>> est automatiquement ajouté à lattribut. 4. Cliquez sur OK.Identifiants (MOO) Un identifiant est un attribut de classe, ou une combinaison dattributs de classe, dont les valeurs identifient de façon unique chaque occurrence dune classe. Il est utilisé lors de la génération intermodèle, lorsque vous générez un MOO depuis un MCD ou un MPD. Les identifiants de MCD ou les clés primaires ou alternatives de MPD sont transformés en identifiants dans le MOO résultant. Un identifiant peut être créé pour une classe dans les types de diagramme suivants : • Diagramme de classes • Diagramme de structure composite Chaque classe peut être dotée dau moins un identifiant. Parmi les identifiants, lidentifiant primaire est le principal identifiant de la classe. Cet identifiant correspond à la clé primaire dans un MPD. Lorsque vous créez un identifiant, vous pouvez lui attacher des attributs ou des règles de gestion. Vous avez également la possibilité de définir un ou plusieurs attributs comme identificateurs primaires dune classe. Par exemple, le numéro de sécurité sociale pourrait être utilisé comme identifiant primaire dune classe Employé.Création dun identifiant Vous pouvez créer un identifiant de lune des façons suivantes : • Affichez longlet Identifiants dans la feuille de propriétés dune classe ou dune interface, puis cliquez sur loutil Ajouter une ligne.Modélisation orientée objet 57
  • 78. Construction de diagrammes structurels • Cochez la case Identifiant primaire lorsque vous créez un attribut. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Création dun identifiant primaire lors de la création des attributs de classe Pour créer un identifiant primaire lors de la création des attributs de classe : 1. Double-cliquez sur le symbole dune classe dans le diagramme pour afficher sa feuille de propriétés, puis cliquez sur longlet Attributs. 2. Double-cliquez sur un attribut dans la liste pour afficher la feuille de propriétés correspondante, puis cliquez sur longlet Détails. 3. Cochez la case Identifiant primaire, puis cliquez sur OK pour revenir à longlet Attributs de la feuille de propriétés de la classe. 4. Cliquez sur longlet Identifiants pour afficher le nouvel identifiant dans la liste. 5. Cliquez sur OK. Définition dun identifiant primaire à partir de la liste des identifiants Pour définir un identifiant primaire à partir de la liste des identifiants : 1. Sélectionnez Modèle > Identifiants pour afficher la liste des identifiants. 2. Double-cliquez sur un identifiant dans la liste pour afficher sa feuille de propriétés. 3. Cochez la case Identifiant primaire. 4. Cliquez sur OK dans les boîtes de dialogue successives. Propriétés dun identifiant Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun identifiant, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Identifiants de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : 58 PowerAMC™
  • 79. Construction de diagrammes structurels Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Classe Spécifie la classe à laquelle lidentifiant appartient. Identifiant primaire Spécifie que lidentifiant est un identifiant primaire.Ajout dattributs à un identifiant Un identifiant peut comporter plusieurs attributs. Vous pouvez ajouter des attributs à un identifiant afin de mieux caractériser ce dernier. 1. Sélectionnez un identifiant dans la boîte de dialogue Liste des identifiants ou dans longlet Identifiants de la feuille de propriétés dune classe, puis cliquez sur loutil Propriétés pour afficher sa feuille de propriétés. 2. Cliquez sur longlet Attributs, puis cliquez sur loutil Ajouter des attributs afin dafficher la liste des attributs pour la classe. 3. Cochez les cases correspondant aux attributs que vous souhaitez ajouter à lidentifiant. 4. Cliquez sur OK dans les boîtes de dialogue successives.Opérations (MOO) Une opération est une spécification nommée dun service qui peut être requis par nimporte quel objet dune classe afin de modifier son comportement. Il sagit de la spécification dune requête quun objet peut être appelé à exécuter. Une opération peut être créée pour une classe ou une interface dans les types de diagramme suivants : • Diagramme de classes • Diagramme de structure composite • Diagramme de composants Une classe peut comporter un nombre illimité dopérations, ou bien nen comporter aucune. Dans lexemple suivant, la classe Voiture comporte 3 opérations : démarrer, freiner et accélérer.Modélisation orientée objet 59
  • 80. Construction de diagrammes structurels Les opérations doivent être dotées dun nom et dune liste de paramètres. Plusieurs opérations peuvent porter le même nom au sein dune classe, à condition toutefois que leurs paramètres soient différents. Pour plus dinformations sur les opérations EJB, voir Définition dopérations pour les EJB à la page 296. Création dune opération Vous pouvez créer une opération de lune des façons suivantes : • Affichez longlet Opérations dans la feuille de propriétés dune classe ou dune interface, puis cliquez sur loutil Ajouter une ligne. Vous pouvez cliquer sur les types dopération suivants dans une classe ou une interface : • Vos propres opérations. • Les opérations héritées dun parent de la classe courant. • Les opérations standard telles que les constructeurs/destructeurs ou initialisateurs. • Les opérations à mettre en oeuvre depuis une interface à laquelle la classe courante est liée via un lien de réalisation. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Création dune opération utilisateur Pour créer une opération utilisateur : 1. Double-cliquez sur une classe ou sur une interface pour afficher sa feuille de propriétés, puis cliquez sur longlet Opérations. 2. Cliquez sur loutil Ajouter une ligne pour créer une nouvelle opération. 3. Cliquez sur loutil Propriétés, puis cliquez sur Oui dans la boîte de confirmation pour afficher la feuille de propriétés de la nouvelle opération. 60 PowerAMC™
  • 81. Construction de diagrammes structurels 4. Spécifiez les propriétés appropriées, puis cliquez sur OK pour valider la création de lopération. Redéfinition dune opération héritée dune classe parent La boîte de dialogue Opérations héritées permet de : • Visualiser les opérations héritées des classes ou interfaces parent. • Redéfinir une opération. Dans le contexte dun héritage, vous pouvez ajouter dans une classe une opération qui appartient à une classe parent, cest-à-dire la redéfinir. Lopération de la classe parent est considérée comme redéfinie lorsque cette opération est spécifiée dans une classe enfant. La nouvelle opération a alors la même signature (nom et paramètres) que lopération dorigine. Une fois que vous avez ajouté une opération dans une classe de cette façon, vous ne pouvez modifier que les modalités de mise en oeuvre du code de cette opération. Vous ne pouvez pas modifier la signature de lopération. Ajouter dune opération héritée dans une classe Pour ajouter une opération héritée dans une classe : 1. Double-cliquez sur le symbole dune classe qui est liée à une classe parent dans le diagramme, puis cliquez sur longlet Opérations. 2. Cliquez sur le bouton Héritées pour afficher la fenêtre Opérations héritées. Cette fenêtre répertorie toutes les opérations qui appartiennent à toutes les classes parent de la classe. 3. Sélectionnez une opération, cliquez sur le bouton Redéfinir, puis sur Fermer afin de copier lopération dans la liste des opérations de la classe enfant. Lopération copiée est grisée, ce qui indique que ses propriétés ne peuvent pas être modifiées, et son stéréotype est défini à <<Override>>. 4. Cliquez sur OK dans les boîtes de dialogue successives. Création dune opération standard Vous pouvez créer les types dopérations standard suivants : • Opérations Constructeur/Destructeur par défaut - Un constructeur est un type particulier dopération qui peut être ajouté à lissue de la création et de linitialisation dune instance de classe. Un destructeur peut être ajouté pour désinitialiser et supprimer une instance dune classe. Vous pouvez créer des constructeurs et des destructeurs à partir de longlet Opérations de la feuille de propriétés de la classe. Selon le langage objet du MOO, vous pouvez créer un constructeur par défaut (par défaut signifie que lopération est dépourvue de paramètre), et un destructeur pour une classe. Par exemple, dans C++ et dans PowerBuilder, vous pouvez créer un constructeur et un destructeur, alors que dans Java, vous ne pouvez créer quun constructeur. Si vous souhaitez ajouter des paramètres à un constructeur, vous devez créer un constructeur par défaut en procédant comme indiqué ci-après, puis ajouter les paramètres de votre choix.Modélisation orientée objet 61
  • 82. Construction de diagrammes structurels • Opérations Constructeur par copie - Un constructeur est un type dopération particulier qui crée et initialise une instance dune classe. Un constructeur par copie réalise une copie des attributs dune instance de classe afin dinitialiser dans une autre instance. Lorsque vous créez un constructeur par copie, ce dernier a le même nom que la classe. Il est doté dun paramètre par défaut, préfixé du mot clé old que vous pouvez modifier, ou auxquels vous pouvez adjoindre des paramètres supplémentaires. Si la classe est un parent dune autre classe, les noms dattribut contenus dans le corps de lopération constructeur par copie sont les mêmes que ceux contenus dans la classe parent. • Opérations Initialisateur ou Initialisateur statique(Java uniquement) - Linitialisateur et linitialisateur statique sont des blocs de code dont lobjet est linitialisation dune classe. Ils sont exécutés avant le constructeur de classe et sont gérés comme méthodes spécifiques préfixées des noms : _INITIALIZER et _STATIC_INITIALIZER. Le nom et le code de la méthode de ces initialisateurs sont en lecture seule et leurs paramètres sont ignorés. • Opérations de duplication - une opération de duplication est une opération qui crée et initialise une instance dune classe au sein de la classe. Lorsque vous créez une opération de duplication, elle a le nom par défaut Duplicate que vous pouvez ensuite modifier. Vous ne pouvez définir quune seule opération de duplication pour une classe donnée. • Opérations Activate/Deactivate (PowerBuilder uniquement). Création dune opération standard Pour créer une opération standard : 1. Double-cliquez sur une classe dans le diagramme pour afficher sa feuille de propriétés, puis cliquez sur longlet Opérations. 2. Cliquez sur loutil Ajouter des attributs en bas de longlet, puis sélectionnez le type dopération standard que vous souhaitez ajouter. Lopération est ajoutée dans la liste. Certaines de ses propriétés, ou toutes, sont grisées pour indiquer quelles sont non modifiables. 3. Ajoutez dautres opérations, ou bien cliquez sur OK pour fermer la feuille de propriétés. Création dune opération à réaliser Lorsque vous créez un lien de réalisation entre une classe et une interface, la classe doit réaliser toutes les opérations de linterface. Lorsque loption Mettre en oeuvre automatiquement les interfaces réalisées est sélectionnée dans les options de modèle ( Outils > Options du modèle ), lopération est automatiquement créée dans la classe qui réalise linterface. 62 PowerAMC™
  • 83. Construction de diagrammes structurels Lorsque loption Mettre en oeuvre automatiquement les interfaces réalisées est désélectionnée dans les options de modèle, vous pouvez créer manuellement une opération à réaliser, en procédant comme suit : 1. Double-cliquez sur le symbole dune classe liée à une interface par un lien de réalisation, puis cliquez sur longlet Opérations. 2. Cliquez sur le bouton A réaliser pour afficher la fenêtre Opérations à réaliser. Cette fenêtre contient la liste de toutes les opérations de linterface qui peuvent être réalisées à partir de la classe. Vous pouvez utiliser le bouton Propriétés pour afficher la feuille de propriétés dune opération. 3. Sélectionnez une opération dans la liste, cliquez sur Réaliser, puis sur Fermer. Une copie de lopération est créée dans la classe et est ajoutée à la fin de la liste des opérations pour la classe. Elle est grisée, ce qui signifie quelle ne peut pas être modifiée. En outre, le stéréotype <<Implement>> est automatiquement ajouté dans lopération. Ce stéréotype ne peut être ni modifié ni supprimé. 4. Cliquez sur OK.Copie dune opération dans une autre classe Vous pouvez copier une opération contenue dans une classe pour lajouter dans une autre classe. Si la classe de destination contient déjà une opération portant le même nom que celle que vous copiez, lopération copiée est alors renommée automatiquement. Par exemple, une opération nommée testPort est renommée testPort2 lorsque vous la copiez dans une classe contenant déjà une opération testPort.Modélisation orientée objet 63
  • 84. Construction de diagrammes structurels 1. Double-cliquez sur une classe dans le diagramme pour afficher sa feuille de propriétés, puis cliquez sur longlet Opérations. 2. Cliquez sur loutil Ajouter des opérations pour afficher une fenêtre Sélection. Cette fenêtre répertorie toutes les opérations attachées à toutes les classes dans le modèle. 3. Sélectionnez une ou plusieurs opérations dans la liste, puis cliquez sur OK pour ajouter des opérations copiées dans la liste opérations. 4. Cliquez sur OK. Propriétés dune opération Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune opération, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Opérations de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Parent Elément auquel lopération appartient. Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. 64 PowerAMC™
  • 85. Construction de diagrammes structurels Propriété Description Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Les stéréotypes communs suivants sont disponibles par défaut : • <<constructor>> - Opération appelée lors de linstanciation dun objet et qui crée une instance dune classe. • <<create>> - Opération utilisée par une classe lorsquelle instancie un objet. • <<destroy>> - Opération utilisée par une classe et qui détruit une instance dune classe. • <<storedProcedure>> - Opération qui deviendra une procédure stockée dans le MPD généré. • <<storedFunction>> - Opération qui deviendra une fonction stockée dans le MPD généré. • <<EJBCreateMethod>> - CreateMethod spécifique aux EJB. • <<EJBFinderMethod>> - FinderMethod spécifique aux EJB. • <<EJBSelectMethod>> - SelectMethod spécifique aux EJB. Pour plus dinformations sur les méthods spécifiques aux EJB, voir Définition dopérations pour un EJB à la page 296. Type de résultat Une liste de valeurs renvoyées par un appel de lopération. Si lopération ne renvoie aucune valeur, la valeur Type de résultat est NULL. Visibilité Visibilité de lopération, dont les valeurs indiquent comment elle est perçue hors de son espace de noms. Nexiste que dans les classes : • Private - Uniquement par la classe à laquelle elle appartient. • Protected - Uniquement par la classe et ses objets dérivés. • Package - Par tous les objets du même package. • Public - Par tous les objets. Evénement de langage Lorsque les classes représentent des éléments dinterfaces, cette zone permet de montrer une opération comme déclenchée par une occurrence significative dun événement. Statique Lopération est associée à la classe, les opérations statiques sont donc partagées par toutes les instances de la classe et ont la même valeur pour toutes ces instances. Tableau Indicateur définissant le type de résultat de lopération. A la valeur "true" si la valeur renvoyée est un tableau. Abstrait Indique que lopération ne peut pas être instanciée et quelle nest donc dotée daucune instance directe. Final Indique que lopération ne peut pas être redéfinie Lecture seule Opération dont lexécution ne change pas linstance de la classe. Méthode de service Web Si affichée et sélectionnée, implique que lopération est utilisée comme méthode de service Web. Objet influent Opération qui influence lopération courante. Les liens dinfluence les plus courants sont "Redéfinit" et "Met en oeuvre", décrits ci-dessous. Redéfinit Indique quelle opération parent lopération courante redéfinit via un lien de généralisation. Met en oeuvre Nom de lopération dinterface que lopération courante met en oeuvre via un lien de réalisation. Générique Spécifie que lopération est une méthode générique. Pour plus dinformations sur les méthodes géné- riques, voir Types et méthodes génériques à la page 32. Les onglets suivants répertorient les objets associés à lopération : • Diagrammes associés - répertorie les diagrammes du modèle courant qui sont associés à cette opération. Vous pouvez ajouter des diagrammes dans ce page. Pour plus dinformations, voir "Définition de diagrammes associés", dans le chapitre Diagrammes et symboles du Guide des fonctionnalités générales.Modélisation orientée objet 65
  • 86. Construction de diagrammes structurels Onglet Mise en oeuvre de la feuille de propriétés dune opération Longlet Mise en oeuvre permet de modifier le code dune opération. Cet onglet contient les propriétés suivantes, accessibles via des sous-onglets situés en bas de la feuille de propriétés : Elément Description Corps Code de la mise en oeuvre. Exceptions Signal émis en réponse à une erreur de comportement lors de lexécution du système. Pré-condition Contrainte qui doit être vérifiée lorsquune opération est appelée. Post-condition Contrainte qui doit être vérifiée à la fin dune opération. Spécification Similaire à un pseudo code, il sagit de la description dune séquence normale dactions. Vous pouvez utiliser loutil suivant présent sur la barre doutils de longlet Mise en oeuvre lorsque longlet Exceptions est actif : Outil Description Outil Ajouter une exception. Affiche une fenêtre qui permet de sélectionner un classificateur dex- ception à ajouter. Ce dernier est ensuite ajouté à lemplacement du curseur. Modification du code dune opération à réaliser Pour modifier le code dune opération à réaliser : 1. Double-cliquez sur une opération à réaliser dans la liste des opérations dune classe qui réalise une interface afin dafficher la feuille de propriétés de cette opération. 2. Cliquez sur longlet Mise en oeuvre. 3. Cliquez sur un sous-onglet placé en bas de la fenêtre de modification, puis saisissez ou modifiez le code. 4. Cliquez sur OK dans les boîtes de dialogue successives. Onglet Paramètres de la feuille de propriétés dune opération Un paramètre est la spécification dune variable qui peut être modifiée, transmise ou renvoyée. Les paramètres sont utilisés pour les opérations dans un diagramme de classes. Un paramètre est toujours doté dun type de paramètre, qui indique la direction du flux dinformation ainsi que dun nom et dun code. 66 PowerAMC™
  • 87. Construction de diagrammes structurels Les propriétés dun paramètre sont les suivantes : Propriété Description Parent Opération à laquelle le paramètre appartient. Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Type de données Série dinstances qui partagent les mêmes opérations, attributs abstraits, relations et sémantique. Tableau Permet de présenter les attributs sous forme de tableau. Taille du tableau Spécifie une taille de tableau précise lorsque la multiplicité est supérieure à 1. Argument variable Spécifie que la méthode peut prendre un nombre variable de paramètres pour un argument donné. Vous ne pouvez sélectionner cette propriété que si le paramètre est le dernier de la liste. Type de paramètre Direction du flux dinformation du paramètre. Indique le type de valeur renvoyé lorsque le paramètre est appelé par lopération lors de la procédure dexécution. Vous pouvez définir les valeurs suivantes pour le type de paramètre : • Entrée - Paramètre dentrée passé par une valeur. La valeur finale ne peut pas être modifiée et linformation nest pas disponible pour lappelant. • Entrée/Sortie - Paramètre dentrée qui peut être modifié. La valeur finale peut être modifiée pour communiquer linformation à lappelant. • Sortie - Paramètre de sortie. La valeur finale peut être modifiée pour communiquer linformation à lappelant. Valeur par défaut Valeur par défaut lorsquun paramètre est omis. Par exemple : Vous utilisez une opération oper(string param1, integer param2) et spécifiez deux arguments oper(val1, val2) lors de linvocation. Certains langages, par exemple C++, permettent de définir une valeur par défaut qui est ensuite mémorisée lorsque le paramètre est omis lors de linvocation. Si la déclaration de la méthode est oper(string param1, integer param2 = default), linvocation oper(val1) équivaut à oper(val1, default). Type de données WSDL Uniquement disponible avec les services Web. Définit le type XML Schema/SOAP utilisé lors de lappel dune méthode Web (en utilisant HTTP ou Soap). Création dun paramètre dopération Pour crér un paramètres dopération : 1. Cliquez sur longlet Paramètres dans la feuille de propriétés dune opération. 2. Cliquez sur loutil Ajouter une ligne, puis double-cliquez sur la flèche au début de la ligne du nouveau paramètre afin dafficher sa feuille de propriétés.Modélisation orientée objet 67
  • 88. Construction de diagrammes structurels 3. Spécifiez les propriétés appropriées (sans omettre la propriété Type de paramètre, qui est obligatoire). 4. Cliquez sur OK pour ajouter le paramètre à lopération. Onglet générique de la feuille de propriétés dune opération Longlet Générique de la feuille de propriétés dune opération permet de spécifier si lopération est une méthode générique, et permet de répertorier ses paramètres de type. Pour plus dinformations, voir Types et méthodes génériques à la page 32. Associations (MOO) Une association représente une relation structurelle entre des classes ou entre une classe et une interface. Une association peut être créée dans les types de diagramme suivants : • Diagramme de classes • Diagramme de structures composites Une association est représentée sous la forme dun trait plein entre deux symboles. Vous pouvez non seulement nommer lassociation elle-même, mais aussi spécifier un nom de rôle pour chaque extrémité de celle-ci afin de décrire la fonction dune classe du point de vue de la classe opposée. Par exemple, une personne considère la société qui lemploie comme un employeur et la compagnie considère cette personne comme un employé. Association réflexive Une association réflexive est une association entre une classe et elle-même. Dans lexemple suivant, lassociation Supervise exprime le fait quun employé peut être à la fois gestionnaire et géré. 68 PowerAMC™
  • 89. Construction de diagrammes structurels Dans longlet Dépendances de la feuille de propriétés dune classe, vous pouvez voir deux occurrences identiques de lassociation, ce afin dindiquer que lassociation est réflexive et sert à la fois dorigine et de destination pour le lien. Agrégation Une agrégation est un type dassociation dans lequel une classe représente un ensemble (un tout) composé déléments (les parties). Cette association spéciale est un lien de type "comporte un". Ceci signifie quun objet du tout comporte des objets de la partie. Dans lexemple suivant, la famille est le tout et elle peut comporter des enfants. Vous pouvez créer une agrégation directement en utilisant loutil Agrégation dans la Palette. Le symbole dagrégation dans un diagramme se présente comme suit : Composition Une composition est un type particulier dagrégation dans lequel les parties sont fortement liées au tout. Dans une composition, un objet ne peut être partie que dun seul composite à la fois, et le composite gère la création et la destruction de ses parties. Dans lexemple suivant, le cadre est une partie dune fenêtre. Si vous supprimez la fenêtre, le cadre disparaît également. Vous pouvez créer une composition directement en utilisant loutil Composition dans la Palette. Le symbole de composition dans un diagramme se présente comme suit : Vous pouvez définir lun des rôles dune association comme étant une agrégation ou une composition. La propriété Conteneur doit être définie pour spécifier lequel des deux rôles est une agrégation ou une composition.Création dune association Vous pouvez créer une association de lune des façons suivantes : • Utilisez loutil Association, Agrégation, ou Composition dans la Palette du diagramme. • Sélectionnez Modèle > Associations pour afficher la boîte de dialogue Liste des associations, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Association . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dune association Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune association, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossierModélisation orientée objet 69
  • 90. Construction de diagrammes structurels Associations de lExplorateur dobjets. Les sections suivantes détaillent les onglets de la feuille de propriétés qui contiennent les propriétés les plus utilisées pour les associations. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. <<implicit>> signifie que la relation nest pas manifeste, quelle est uniquement dordre conceptuel. Classe A Nom de la classe située à une extrémité de lassociation. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Classe B Nom de la classe située à lautre extrémité de lassociation. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Type Spécifie le type of association. Vous pouvez choisir parmi les valeurs suivantes : • Association. • Agrégation – relation tout-partie entre une classe et une classe agrégée. • Composition – forme dagrégation avec une forte notion de propriété entre les parties et le tout et des cycles de vie coïncidents. Conteneur Si lassociation est une agrégation ou une composition, les boutons radio Conteneur permettent de spécifier quelle classe contient lautre dans lassociation. Classe dassociation Classe reliée à lassociation courante et qui complète la définition de lassociation. Onglet Détails de la feuille de propriétés dune association Chaque extrémité dune association est appelée un rôle. Vous pouvez définir sa multiplicité, sa persistance, son ordre et son caractère modifiable. Vous avez également la possibilité de définir sa mise en oeuvre. Propriété Description Nom de rôle Nom de la fonction de la classe du point de vue de la classe opposée. Visibilité Visibilité du rôle de lassociation, dont la valeur indique comment elle est perçue hors de son espace de noms. Une association dont le rôle est visible par un autre objet peut influer sur la structure ou le comportement de cet objet. De même, ses propres propriétés peuvent être affectées par cet objet. Vous pouvez choisir parmi les valeurs suivantes : • Private – uniquement par lobjet. • Protected – uniquement par lobjet et par ses objets hérités. • Package – par tous les objets contenus dans le même package. • Public – par tous les objets (option par défaut). 70 PowerAMC™
  • 91. Construction de diagrammes structurels Propriété Description Multiplicité La cardinalité de chacun des deux rôles dune association est appelée multiplicité. La multiplicité indique les nombres maximal et minimal de valeurs quun rôle peut avoir. Vous pouvez choisir parmi les valeurs suivantes : • 0..1 – Aucune ou une. • 0..* – Daucune à linfini. • 1..1 – Exactement une. • 1..* – Dune à linfini. • * – Aucune ou infini. Chaque rôle dune association fait lobjet dun attribut étendu. Cet attribut étendu permet de choisir les modalités de mise en oeuvre de lassociation. Ils sont disponibles dans votre langage objet courant, dans la catégorie ProfileAssociationExtendedAttributes, sous les noms roleAContainer et roleBContai- ner. Ces attributs étendus sont pertinents uniquement dans le cas dune multiplicité de type "plusieurs" (représentée par *), ils fournissent une définition des collections dassociations. Pour plus dinformations sur le langage objet, voir "Guide de référence des fichiers de ressources" et "Utilisation de léditeur de ressources" dans le chapitre Fichiers de ressources et métamodèle public de PowerAMC du manuel Personnalisation et extension de PowerAMC. Taille de tableau Spécifie une taille de tableau précise lorsque la multiplicité est supérieure à 1. Modifiable Indique si un jeu de liens associés à un objet peuvent changer une fois lobjet initialisé. Vous pouvez choisir parmi les valeurs suivantes : • Modifiable – Vous pouvez ajouter, supprimer et modifier les associations sans contrainte. • Lecture seule – Vous nêtes pas autorisé à modifier lassociation. • Figé – Association constante. Ajout uniquement – De nouvelles associations peuvent être ajoutées à partir dune classe sur lextrémité opposée de lassociation. Ordre Lassociation est incluse dans lordre qui trie la liste des associations en fonction de leur ordre de création. Vous pouvez choisir parmi les valeurs suivantes : • Trié – Les objets situés à lextrémité dune association sont arrangés en fonction de la façon dont ils sont définis dans le modèle. • Ordonné – Les objets situés à lextrémité dune association sont arrangés en fonction dun ordre spécifique. Non ordonné – Les objets situés à lextrémité dune association ne sont ni triés, ni ordonnés. Valeur initiale Permet de spécifier une instruction pour initialiser les attributs migrés, par exemple new client (). Navigable Indique si linformation peut être ou non transmise entre les deux objets liés par la relation. Persistant Lorsque cette option est sélectionnée, spécifie que linstance de lassociation est conservée après la disparition du processus qui la créé. Volatile Indique que les attributs migrés correspondants ne sont pas membres de la classe. Est défini unique- ment par les opérations getter et setter. Type de conteneur Permet de sélectionner une collection de conteneurs pour les attributs migrés de types complexes. Classe de mise en oeuvre Permet de sélectionner la mise en oeuvre de conteneur. Attribut migré Nom du rôle dassociation migré. Pour plus dinformations sur le conteneur et la mise en oeuvre dune association, voir Mise en oeuvre dune association à la page 72.Modélisation orientée objet 71
  • 92. Construction de diagrammes structurels Mise en oeuvre dune association Les associations décrivent des relations structurelles entre des classes, qui deviennent des liens entre les instances de ces classes. Ces liens représentent une navigation interobjet, cest-à-dire le fait quune instance puisse extraire une autre instance via le lien navigable. Lorsque lextrémité dune association est navigable, cela signifie que vous souhaitez pouvoir extraire linstance de la classe à laquelle cette extrémité est liée, cette instance saffiche sous forme dattribut migré dans linstance courante dune classe. Le nom de rôle de cette extrémité peut être utilisé pour clarifier la structure utilisée pour représenter le lien. Par exemple, considérons une association entre la classe Société et la classe Personne. La navigation est possible dans les deux directions pour permettre à Société dobtenir la liste des employés, et à chaque employé dobtenir le nom de sa société. PowerAMC prend en charge différents modes de mise en oeuvre des associations dans chaque langage objet. Mise en oeuvre par défaut Par défaut, les attributs migrés utilisent la classe dont ils proviennent comme type. Lorsque la multiplicité dassociation est supérieure à un, le type est le plus souvent un tableau de la classe, affiché avec des signes [ ]. Dans notre exemple, lattribut Employé de la classe Société est de type Personne et a un tableau de valeurs. Lorsque vous instanciez la classe Société, vous obtenez une liste demployés à stocker pour chaque société. public class Company { public String Nom; public String Catalog; public String Address; public Person[] employee; Selon le type de langage sur lequel vous travaillez, vous pouvez mettre en oeuvre des attributs migrés de façons différentes. PowerAMC permet de choisir une mise en oeuvre dans longlet Détails de la feuille de propriétés dassociations. Type de conteneur et classe de mise en oeuvre Unconteneur est un type de collection dobjets qui stocke des éléments. La structure de conteneur est plus complexe que celle du type de tableau et fournit plus de méthodes pour accéder aux éléments (tester lexistence de lélément, insérer lélément dans la collection, etc.) et pour gérer lallocation de mémoire de façon dynamique. Vous pouvez sélectionner un type de conteneur à partir de la liste Type de conteneur. Ce type sera utilisé par les attributs migrés. Le code dun attribut migré qui utilise un type de conteneur contient des fonctions getter et setter utilisées pour définir la mise en oeuvre de lassociation. Ces fonctions sont visibles dans longlet Aperçu du code, mais ne saffichent pas dans la liste des opérations. Lorsque vous utilisez la fonctionnalité de migration de rôle pour visualiser des attributs migrés et sélectionner un type de conteneur, le code généré est identique. Selon le langage et les bibliothèques que vous utilisez, le type de conteneur peut être associé à une classe de mise en oeuvre. Dans ce cas, le type de conteneur est utilisé comme une interface pour déclarer les fonctionnalités de la collection, et la classe de mise en oeuvre développe cette collection. Par exemple, si vous sélectionnez les type de conteneur java.util.Set, vous savez que cette collection ne contient aucun élément en double. Vous pouvez alors sélectionner une classe de mise en oeuvre parmi les suivantes : HashSet, LinkedHashSet ou TreeSet. 72 PowerAMC™
  • 93. Construction de diagrammes structurels Pour plus dinformations sur les types de conteneur et les classes de mise en oeuvre, reportez-vous à la documentation relative au langage approprié. Plus dinformations sur la classe de mise en oeuvre Le mécanisme de mise en oeuvre par défaut est défini dans le fichier de ressources situé sous la catégorie Profile Association. Ce mécanisme utilise des templates pour définir la syntaxe générée pour lattribut migré, les opérations à générer, et les autres détails relatifs à lassociation. Par exemple, le template roleAMigratedAttribute permet de récupérer la visibilité et la valeur initiale du rôle dassociation. Vous pouvez utiliser linterface de léditeur de ressources pour modifier les détails de mise en oeuvre. Pour plus dinformations sur les langages objet et la définition des templates, reportez-vous aux chapitres Fichiers de ressources et métamodèle public PowerAMC et Personnalisation de la génération à laide du langage de génération par template dans le manuel Personnalisation et extension de PowerAMC. Notions de base relatives au code généré Lorsque vous définissez une classe de mise en oeuvre, les détails de la mise en oeuvre de lassociation sont toujours générés dans les classes dorigine et/ou de destination de lassociation navigable. Les détails de la mise en oeuvre dune association ne sont pas générés dans le code de lassociation, en revanche la génération utilise des balises de documentation spécifiques pour stocker les informations relatives à lassociation. Ces balises de commentaire rassemblent tous les détails requis pour recréer lassociation à lissue dun reverse engineering. Les balises de commentaires de documentation sont traitées lors du reverse engineering afin de rendre possible lingénierie par va-et-vient. Les balises de documentation suivantes sont utilisées : • pdRoleInfo permet dextraire le nom du classificateur, le type de conteneur, la classe de mise en oeuvre, la multiplicité et le type dassociation. • pdGenerated est utilisé pour signaler les fonctions générées automatiquement liées à la mise en oeuvre de lassociation. Ces fonctions ne doivent pas faire lobjet dun reverse engineering, faute de quoi les modèles générés et récupérés via reverse engineering seront différents. Avertissement ! Prenez garde à ne pas modifier ces balises afin de préserver vos possibilités dingénierie par va-et-vient. Dans Java La syntaxe de tag javadoc est utilisée /**@valeur balise*/. Dans lexemple suivant, la balise @pdRoleInfo est utilisée pour stocker des détails de la mise en oeuvre dassociation, et @pdGenerated est utilisée pour indiquer que la méthode getter est automatiquement générée et ne doit pas faire lobjet dun reverse engineering. /**@pdRoleInfo name=Person coll=java.util.Collection impl=java.util.LinkedList mult=1..* */ public java.util.Collection employee; /** @pdGenerated default getter */ public java.util.Collection getEmployee() { if (employee == null) employee = new java.util.HashSet(); return employee; } ... Dans C# La balise de documentation ///<valeur balise /> est utilisée. Dans lexemple suivant, la balise <pdRoleInfo> est utilisée pour stocker les détails de mise en oeuvre dassociation, et <pdGenerated> est utilisée pour indiquer que la méthode getter est automatiquement générée et ne doit pas faire lobjet dun reverse engineering.Modélisation orientée objet 73
  • 94. Construction de diagrammes structurels ///<pdRoleInfo name=Person coll=System.CollectionsArrayList impl=java.util.LinkedList mult=1..* type=composition/> public java.util.Collection employee; ///<pdGenerated> default getter </pdGenerated> ... Dans VB .NET La balise de documentation "<valeur balise /> est utilisée. Dans lexemple suivant, la balise <pdRoleInfo> est utilisée pour stocker les détails de la mise en oeuvre dassociation, et <pdGenerated> est utilisée pour indiquer que la méthode getter est automatiquement générée et ne doit pas faire lobjet dun reverse engineering. "<pdRoleInfo name=Person coll=System.CollectionsArrayList impl=java.util.LinkedList mult=1..* type=composition/> public java.util.Collection employee; "<pdGenerated> default getter </pdGenerated> ... Création dune classe dassociation Vous pouvez ajouter des propriétés à une association liant des classes ou liant une classe et une interface en créant une classe dassociation, celle-ci permet denrichir les propriétés dune association en lui ajoutant des attributs et opérations. Une classe dassociation est une association qui a les propriétés dune classe ou une classe qui a des propriétés dassociation. Dans le diagramme, le symbole dune classe dassociation est une connexion entre une association et une classe. Les classes dassociation doivent se trouver dans le même package que lassociation parent. Vous ne pouvez pas utiliser un raccourci de classe pour créer une classe dassociation. La classe utilisée pour créer une classe dassociation ne peut pas être réutilisée pour une autre classe dassociation. Vous pouvez en revanche créer dautres types de liens depuis et vers cette classe. Dans lexemple suivant, les classes Etudiant et Sujet sont liées par lassociation Examen. En revanche, cette association ne spécifie pas la date de lexamen. Vous pouvez alors créer une classe dassociation appelée Examen qui va indiquer les informations supplémentaires relatives à lassociation. 1. Pointez sur lassociation, cliquez le bouton droit de la souris, puis sélectionnez Ajouter une association de classe dans le menu contextuel. 2. Double-cliquez sur lassociation pour afficher sa feuille de propriétés, puis cliquez sur le bouton Créer à droite de la liste Classe dassociation. Une ligne discontinue est automatiquement ajoutée entre la classe et lassociation. Migration des rôles dassociation dans un diagramme de classes Il est possible de migrer des rôles dassociation et de créer des attributs avant la génération. Cette fonctionnalité permet entre autres de personnaliser les types de données et de modifier lordre des attributs dans les listes dattributs, ce qui peut se révéler particulièrement utile pour XML. Quelle que soit la navigabilité, la migration crée un attribut et définit ses propriétés comme suit : 74 PowerAMC™
  • 95. Construction de diagrammes structurels • Nom et code de lattribut : le rôle de lassociation sil est déjà défini, dans le cas contraire, utilise le nom de lassociation. • Type de données : le code du classificateur lié par lassociation. • Multiplicité : la multiplicité du rôle. • Visibilité : la visibilité du rôle. Règles de migration Les règles suivantes sappliquent lors de la migration de rôles dassociation : • Si le nom de lattribut migré est identique au nom du rôle, toute modification du nom de rôle est répercutée sur le nom de lattribut migré. • Si le type de données de lattribut migré est identique au classificateur du rôle, toute modification de la multiplicité du rôle est répercutée sur la multiplicité de lattribut migré. • Si le code du classificateur, lié par lassociation, change, le type de données de lattribut migré est automatiquement synchronisé. • Si vous changez manuellement lattribut migré, la synchronisation ne fonctionnera pas et le rôle de lassociation ne sera pas modifié. • Lattribut migré est automatiquement supprimé si lassociation est supprimée. A lissue de la migration, la feuille de propriétés du nouvel attribut affiche le nom de lassociation dans la zone Migré depuis longlet Détails. Migration des rôles navigables Vous pouvez migrer les rôles navigables dune association et la transformer en attribut : 1. Pointez sur un lien dassociation dans le diagramme et cliquez le bouton droit de la souris. 2. Sélectionnez Migrer > Migrer les rôles navigables dans le menu contextuel de lassociation. Un attribut est créé et nommé daprès le rôle navigable de lassociation, il est suivi du nom du classificateur.Régénération des liens de type de données Si un type de données de classificateur nest pas lié à son classificateur dorigine, vous pouvez utiliser la fonctionnalité de régénération des liens de type de données pour restaurer ce lien. Cette fonctionnalité recherche tous les classificateurs du modèle courant et les lie, si nécessaire, au classificateur dorigine. La régénération des liens de type de données examine les types de données suivants : • Type de données dattribut : une association est créée et lattribut est signalé comme étant un attribut migré. • Type de données de paramètre : une association est créée et liée au classificateur dorigine. • Type de résultat dopération : une association est créée et liée au classificateur dorigine. Dans certains cas, en particulier pour C++, cette fonctionnalité est très utile pour conserver la synchronisation dun lien même après un changement de type de données lorsquil fait toujours référence à la classe dorigine. La fonctionnalité de régénération des liens de type de données comporte les options suivantes :Modélisation orientée objet 75
  • 96. Construction de diagrammes structurels 1. Sélectionnez Outils > Régénérer les liens de types de données pour afficher la fenêtre Création dassociations et de liens internes. 2. Définissez les options suivantes : Option Description Créer des associations Recherche des attributs dont les types de données correspondent à un classificateur et lie les attributs à la nouvelle association en tant quattributs migrés. Créer des symboles pour les Crée un symbole de la nouvelle association. associations Créer des liens internes Crée un lien entre le type de résultat ou le type de données de paramètre et le classificateur auquel il fait référence. 3. Cliquez sur OK. Liaison dune association à un lien entre objets Vous pouvez faire glisser un noeud dassociation depuis lExplorateur dobjets dans un diagramme de communication ou dobjets. Vous créez alors automatiquement deux objets, ainsi quun lien entre eux. Ces deux objets sont des instances des classes ou dinterfaces, et le lien entre objets est une instance de lassociation. Généralisations (MOO) Une généralisation est une relation entre un élément général (le parent) et un élément plus spécifique (lenfant). Lélément plus spécifique est entièrement cohérent avec lélément plus général et comporte des informations supplémentaires. Une généralisation peut être créée dans les types de diagramme suivants : • Diagramme de classes • Diagramme de structures composites • Diagramme de composants • Diagrammes de cas dutilisation Vous créez une relation de généralisation lorsque plusieurs objets ont des comportements en commun. Vous avez également la possibilité de créer une généralisation entre un raccourci dobjet et un objet mais, si le lien a un sens, seul lobjet parent peut être le raccourci. Généralisations ans un diagramme de cas dutilisation Dans un diagramme de cas dutilisation, vous pouvez créer une généralisation entre : • Deux acteurs • Deux cas dutilisation Par exemple, plusieurs acteurs peuvent présenter des points communs, et communiquer de façon identique avec le même groupe de cas dutilisation. Cette similarité est exprimée en termes de généralisation vers un autre acteur. Dans ce cas, les acteurs enfant héritent à la fois des rôles et des relations avec les cas dutilisation définis pour lacteur parent. Un acteur enfant inclut les attributs et opérations de son ancêtre. 76 PowerAMC™
  • 97. Construction de diagrammes structurels Généralisations dans un diagramme de classes ou de structure composite Dans un diagramme de classes, vous pouvez créez une généralisation entre : • Deux classes • Deux interfaces Par exemple, un animal est un concept plus général quun chat, un chien ou un oiseau. A linverse, un chat est un concept plus spécifique quun animal. Animal est une superclasse. Chat, Chien et Oiseau sont des sous-classes de la superclasse. Généralisations dans un diagramme de composants Dans un diagramme de composants, vous pouvez créer une généralisation entre deux composants, comme indiqué ci- dessous :Création dune généralisation Vous pouvez créer une généralisation de lune des façons suivantes : • Utilisez loutil Généralisation dans la Palette du diagramme. • Sélectionnez Modèle > Généralisations pour afficher la boîte de dialogue Liste des Généralisations, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Généralisation .Modélisation orientée objet 77
  • 98. Construction de diagrammes structurels Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dune généralisation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune généralisation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Généralisations de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Parent Spécifie lobjet parent. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Enfant Spécifie lobjet enfant. Cliquez sur le bouton Propriétés à droite de cette zone pour accéder à la feuille de propriétés de lobjet spécifié. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. <<implementation>> signifie que lobjet enfant hérite des modalités de mise en oeuvre de lobjet parent, mais quil ne rend pas publiques ou ne prend pas en charge ses interfaces, et ne peut donc pas se substituer à lobjet spécialisé. Visibilité Spécifie la visibilité de lobjet, à savoir la façon dont il est perçu hors de son espace de noms. Vous pouvez choisir parmi les valeurs suivantes : • Private – Uniquement par la généralisation elle-même. • Protected – Uniquement par la généralisation elle-même et par ses objets hérités. • Package – Par tous les objets contenus dans le même package. • Public – Par tous les objets (option par défaut). Générer la classe parent Sélectionne loption de persistance "Générer une table" dans longlet Détails de la feuille de propriétés sous forme de table de la classe parent. Si cette option nest pas sélectionnée, loption de persistance "Migrer les colonnes" de la classe parent est sélectionnée. Générer la classe enfant Sélectionne loption de persistance "Générer une table" dans longlet Détails de la feuille de propriétés sous forme de table de la classe enfant. Si cette option nest pas sélectionnée, loption de persistance "Migrer les colonnes" de la classe enfant est sélectionnée. Attribut discriminant Spécifie un attribut persistant (avec le stéréotype <<specifying>>) dans la table parent. Cliquez sur loutil Nouveau pour créer un nouvel attribut. Cet attribut ne sera généré que si la table enfant nest pas générée. Si la généralisation est créée dans un diagramme de cas dutilisation, vous ne pouvez pas changer le type des objets liés par la généralisation. Par exemple, vous ne pouvez pas attacher la dépendance provenant dun cas dutilisation à une classe, ou à une interface. Dépendances (MOO) Une dépendance est une relation sémantique entre deux objets dans laquelle toute modification effectuée sur un objet (lélément influent) affecte lautre objet (élément dépendant). Une dépendance peut être créée dans les types de diagramme suivants : 78 PowerAMC™
  • 99. Construction de diagrammes structurels • Diagramme de classes • Diagramme de structures composites • Diagramme dobjets • Diagrammes de cas dutilisation • Diagramme de composants • Diagramme de déploiement La relation de dépendance indique quun objet dans un diagramme utilise les services ou fonctionnalités dun autre objet. Vous pouvez également définir des dépendances entre un package et un élément de modélisation. Dépendances dans un diagramme de classes ou de structure composite Dans un diagramme de classes, vous pouvez créer une dépendance entre : • Une classe et une interface (et réciproquement) • Deux classes • Deux interfaces Par exemple : Dépendances dans un diagramme dobjets Dans un diagramme dobjets, vous pouvez créer une dépendance entre deux objets comme suit : Dépendances dans un diagramme de cas dutilisation Dans un diagramme de cas dutilisation, vous pouvez créer une dépendance entre : • Un acteur et un cas dutilisation (et réciproquement) • Deux acteurs • Deux cas dutilisation Par exemple, lachat dun ordinateur via un site Internet implique de trouver longlet correspondant au produit sur le site du vendeur : Dépendances dans un diagramme de composants Dans un diagramme de composants, vous pouvez créer une dépendance entre deux composants comme illustré ci- dessous. Vous ne pouvez pas créer une dépendance entre un composant et une interface.Modélisation orientée objet 79
  • 100. Construction de diagrammes structurels Lorsque vous utilisez une dépendance, vous pouvez imbriquer deux composants en utilisant un stéréotype. Dépendances dans un diagramme de déploiement Dans un diagramme de déploiement, vous pouvez créer une dépendance entre des noeuds, ainsi quentre des instances de composant, comme illustré ci-dessous : Création dune dépendance Vous pouvez créer une dépendance de lune des façons suivantes : • Utilisez loutil Dépendance dans la Palette du diagramme. • Sélectionnez Modèle > Dépendances pour afficher la boîte de dialogue Liste des Dépendances, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Dépendance . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dune dépendance Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune dépendance, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Dépendances de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Influant Le cas dutilisation ou acteur sélectionné influe sur lobjet dépendant. Les changements apportés sur lobjet influent affectent lobjet dépendant. Vous pouvez cliquer sur loutil Propriétés en regard de la zone pour afficher la feuille de propriétés de lobjet. Dépendant Le cas dutilisation ou acteur sélectionné dépend de lobjet influent. Les changements apportés sur lobjet dépendant naffectent pas lobjet influent. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. 80 PowerAMC™
  • 101. Construction de diagrammes structurels Propriété Description Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Les stéréotypes communs suivants sont fournis par défaut : • << Access >> - Contenu public du package cible auquel le package source peut accéder. • << Bind >> - Objet source qui instancie le template cible à laide des paramètres fournis. • << Call>> - Opération source qui appelle lopération cible. • << Derive >> - Objet source qui peut être calculé à partir de la cible. • << Extend >> - (Cas dutilisation/Class) Lobjet cible enrichit le comportement de lobjet source au point dextension spécifié. • << Friend>> - Objet source doté dune visibilité spéciale vis-à-vis de la cible. • << Import >> - Tout ce qui est déclaré comme public dans lobjet cible devient visible pour lobjet source, comme si cela faisait partie de la définition de lobjet source. • << Include >> - (Cas dutilisation/Class) Inclusion du comportement dun premier objet dans le comportement de lobjet client, sous le contrôle du premier objet. • << Instantiate >> - Spécifie que les opérations sur la classe source créent des instances de la classe cible. • << Refine >> - Le degré dabstraction de lobjet source est meilleur que celui de lobjet cible. • << Trace >> - Indique quil existe un lien historique entre lobjet source et lobjet cible. • << Use >> - Spécifie que la sémantique de lobjet source dépend de la sémantique de la partie publique de lobjet cible. • << ejb-ref >> - (Java uniquement) Utilisé dans la génération Java pour créer des références aux EJB (beans dentité et beans de session) pour générer le descripteur de déploiement. • << sameFile >> - (Java uniquement) Utilisé dans la génération Java pour générer des classes Java ayant la visibilité protected ou private au sein dun fichier correspondant à une classe de visibilité public. Si la dépendance est créée dans un diagramme de cas dutilisation, vous ne pouvez pas changer les objets liés par la dépendance. Par exemple, vous ne pouvez pas attacher les dépendances provenant dun cas dutilisation à une classe ou à une interface.Réalisations (MOO) Une réalisation est une relation entre une classe ou un composant et une interface. Une réalisation peut être créée dans les types de diagramme suivants : • Diagramme de classes • Diagramme de composants • Diagramme de structure composite Dans une réalisation, la classe met en oeuvre les méthodes spécifiées dans linterface. Linterface est appelée élément de spécification et la classe est appelée élément de mise en oeuvre. Vous avez également la possibilité de créer une réalisation entre le raccourci dune interface et une classe. Quand le lien est orienté, seul lobjet parent peut être le raccourci. La pointe de la flèche située à lune des extrémités de la réalisation pointe toujours vers linterface.Modélisation orientée objet 81
  • 102. Construction de diagrammes structurels Création dune réalisation Vous pouvez créer une réalisation de lune des façons suivantes : • Utilisez loutil Réalisation dans la Palette du diagramme. • Sélectionnez Modèle > Réalisations pour afficher la boîte de dialogue Liste des Réalisations, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Réalisations . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dune réalisation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune réalisation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Réalisations de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Interface Nom de linterface qui effectue la réalisation. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Classe Nom de la classe pour laquelle la réalisation est effectuée. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Liens de prérequis (MOO) Les liens de prérequis connectent les classificateurs et les interfaces. Un lien de prérequis peut connecter une classe, un composant ou un port situé à lextérieur de lun de ces classificateurs à une classe. Un lien de prérequis peut être créé dans les types de diagramme suivants : • Diagramme de classes • Diagramme de composants • Diagramme de structure composite Liens de prérequis dans un diagramme de classes Dans lexemple ci-dessous, les liens de prérequis connectent la classe TitleImpl aux interfaces java.math.stat et java.sql.connection. Notez comment un lien de prérequis peut provenir dun port ou directement de la classe : 82 PowerAMC™
  • 103. Construction de diagrammes structurelsCréation dun lien de prérequis Vous pouvez créer un lien de prérequis de lune des façons suivantes : • Utilisez loutil Lien de prérequis/Connecteur dans la Palette du diagramme. • Pointez sur le modèle ou sur un package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Lien de prérequis . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dun lien de prérequis Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun lien de prérequis, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Liens de prérequis de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Interface Spécifie linterface à lier. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Client Spécifie la classe, le port ou le composant à lier. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML.Connecteurs dassemblage (MOO) Les connecteurs dassemblage représentent les chemins de communication par le biais desquels vos classificateurs se demandent et se fournissent des services. Un connecteur dassemblage peut être créé dans les types de diagramme suivants : • Diagramme de composants • Diagramme de structure composite Connecteurs dassemblage dans un diagramme de structure composite Dans lexemple ci-dessous, un connecteur dassemblage connecte la partie fournisseur "TitleDataAccess" à la partie client "TitleManager".Modélisation orientée objet 83
  • 104. Construction de diagrammes structurels Connecteurs dassemblage dans un diagramme de composant Dans lexemple ci-dessous, un connecteur dassemblage connecte la partie fournisseur "TitleDataAccess" à la partie client "TitleManager". Création dun connecteur dassemblage Vous pouvez créer un connecteur dassemblage de lune des façons suivantes : • Utilisez loutil Lien de prérequis/Connecteur dans la Palette du diagramme Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun connecteur dassemblage Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun connecteur dassemblage, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Client Spéficie la partie qui demande le service. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Fournisseur Spéficie la partie qui fournit le service. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Interface Spécifie linterface que la partie fournisseur utilise pour fournir le service. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Connecteurs de délégation (MOO) Les connecteurs de délégation représentent les chemins de communication par le biais desquels les parties situées à lintérieur dun classificateur sont connectées aux ports situés à lextérieur de ce classificateur et se demandent et se fournissent des services. Un connecteur de délégation peut être créé dans les types de diagramme suivants : 84 PowerAMC™
  • 105. Construction de diagrammes structurels • Diagramme de composants • Diagramme de structure composite Connecteurs de délégation dans un diagramme de structure composite Dans lexemple ci-dessous, un connecteur de délégation connecte le port fournisseur "sql" à lextérieur de la classe "TitleImp" à la partie client "TitleDataAccess" via un port "sql". Un second connecteur de délégation connecte la partie fournisseur "TitleManager" via le port "mgr" au port "mgr" à lextérieur de la classe "TitleImp". Connecteurs de délégation dans un diagramme de composants Dans lexemple ci-dessous un connecteur de délégation connecte la partie fournisseur "TitleDataAccess" via le port "sql" au port client "sql" à lextérieur du composant "PersistentTitle".Création dun connecteur de délégation Vous pouvez créer un connecteur de délégation de lune des façons suivantes : • Utilisez loutil Lien de prérequis/Connecteur dans la Palette du diagramme. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dun connecteur de délégation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun connecteur de délégation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet.Modélisation orientée objet 85
  • 106. Construction de diagrammes structurels Propriété Description Client Spéficie la partie ou le port qui demande le service. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélec- tionné. Fournisseur Spéficie la partie ou le port qui fournit le service. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélec- tionné. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Annotations (MOO) Les langages Java 5.0 et . NET (C# 2.0 et VB 2005) fournissent des méthodes permettant dajouter des métadonnées dans le code. PowerAMC prend en charge complètement les annotations Java et les attributs personnalisés .NET. En ce qui concerne les informations particulières à chaque langage, veuillez vous reporter au chapitre approprié dans la seconde partie de ce manuel. Ces métadonnées sont accessibles aux outils de post-traitement ou lors de lexécution afin de faire varier le comportement du système. Affectation dune annotation à un objet de modèle PowerAMC prend en charge les annotations intégrées de Java 5.0, les attributs personnalisés .NET 2.0 et permet, que ce soit pour Java 5.0 et .NET 2.0, de créer les vôtres. Vous pouvez affecter des annotations à des types et à dautres objets de modèle : 1. Double-cliquez sur une classe ou un autre objet pour afficher sa feuille de propriétés, puis cliquez sur longlet Annotations. 2. Cliquez sur la colonne Nom dannotation, puis sélectionnez une annotation dans la liste. 86 PowerAMC™
  • 107. Construction de diagrammes structurels 3. Si lannotation nécessite des paramètres, vous pouvez les saisir directement dans la colonne Texte de lannotation, ou bien cliquer sur le bouton Points de suspension pour afficher lEditeur dannotations. 4. [facultatif] Cliquez sur longlet Aperçu pour voir le code qui sera généré pour la classe, avec sa déclaration précédée par lannotation : 5. Cliquez sur OK pour revenir au diagramme.Création dun nouveau type dannotation Vous pouvez créer des nouveaux types dannotation à rattacher à vos objets. 1. Créez une classe, puis double-cliquez sur cette classe pour afficher sa feuille de propriétés. 2. Sur longlet Général, dans la liste Stéréotype : • Pour Java 5.0 - sélectionnez AnnotationType. • Pour .NET 2.0 - sélectionnez AttributeType. 3. Cliquez sur longlet Attributs, et ajoutez un attribut pour chaque paramètre accepté par le type dannotation.Modélisation orientée objet 87
  • 108. Construction de diagrammes structurels 4. [facultatif] Cliquez sur longlet Aperçu pour voir le code à générer pour le type dannotation : 5. Cliquez sur OK pour revenir au diagramme. Le type dannotation sera présenté comme suit : Utilisation de lEditeur dannotations LEditeur dannotations vous aide à spécifier les valeurs pour les paramètres dannotation. Pour y accéder, cliquez sur le bouton Points de suspension dans la colonne Texte de lannotation dune classe ou dun autre objet : 88 PowerAMC™
  • 109. Construction de diagrammes structurels Les volets supérieurs fournissent des listes propriétés et constructeurs disponibles, sur lesquels vous pouvez double- cliquer pour les ajouter dans le volet du bas, qui sert à lédition.Liens entre objets (MOO) Un lien entre objets représente une connexion entre deux objets. Il saffiche sous la forme dun trait plein entre deux objets. Un lien entre objets peut être créé dans les types de diagramme suivants : • Diagramme de communication • Diagramme dobjets Lien entre objets dans un diagramme dobjets Les liens entre objets ont une relation forte avec les associations du diagramme de classes : les associations entre classes, ou les associations entre une classe et une interface peuvent devenir des liens entre objets (instances dassociations) entre objets dans le diagramme dobjets. En outre, le symbole du lien entre objets dans le diagramme dobjets est similaire à celui de lassociation dans le diagramme de classes, à ceci près quil est dépourvu de cardinalités. Les rôles du lien entre objets sont dupliqués depuis les rôles de lassociation. Un lien entre objets peut donc être une agrégation ou une composition, tout comme une association du diagramme de classes. Si tel est le cas, le symbole deModélisation orientée objet 89
  • 110. Construction de diagrammes structurels composition ou dagrégation saffiche sur le symbole du lien entre objets. Les rôles de lassociation sont également affichés sur le symbole du lien entre objets si vous avez activé loption Noms de rôle de lassociation dans les préférences daffichage des liens entre objets. Exemple Lillustration suivante montre Objet_1 comme instance de Classe_1, et Objet_2 comme instance de Classe_2. Ces objets sont liés par un lien entre objets. Classe_1 et Classe_2 sont liées par une association. En outre, attendu que Classe_2 est associée à Classe_1 et hérite de Classe_3, Classe_1 et Classe_3 sont par conséquent liées par une association. Le lien entre objets entre Objet_1 et Objet_2 dans lillustration représente Association_1 ou Association_2. Vous pouvez également utiliser des raccourcis dassociations, à condition toutefois que le modèle auquel ils renvoient soit ouvert dans lespace de travail. Comportement des liens entre objets Les règles suivantes sappliquent aux liens entre objets : • Lorsquune association entre classes devient un lien entre objets, les deux classes liées par lassociation et les deux classes des objets liés par le lien entre objets doivent correspondre (ou bien la classe de lobjet doit hériter des classes parent liées par lassociation). Ceci est également valable concernant une association entre une classe et une interface. • Deux liens entre objets peuvent être définis entre les mêmes objets source et destination (liens entre objets parallèles). Si vous fusionnez les deux modèles, la fonctionnalité de fusion différencie les liens entre objets parallèles en fonction des associations de diagramme de classes auxquelles ils correspondent. • Vous pouvez lier un objet à lui-même via un lien réflexif (même objet source et destination) Lien entre objets dans un diagramme de communication Un lien entre objets représente une connexion entre deux objets, il permet de mettre en exergue la collaboration entre objets, doù le nom de diagramme de communication. Il est représenté sous forme dun trait plein entre : • Deux objets • Un objet et un acteur (ou vice-versa) Un lien entre objets peut être une instance dassociation entre classes, ou une association entre une classe et une interface. Le rôle du lien entre objets provient de lassociation. Le nom dun lien entre objets inclut les noms des objets situés à ses extrémités, ainsi que celui de lassociation. 90 PowerAMC™
  • 111. Construction de diagrammes structurels Le symbole du lien entre objets peut inclure plusieurs symboles de message associés. Les liens entre objets contiennent une liste de messages ordonnée : le numéro dordre qui spécifie lordre dans lequel les messages sont échangés entre objets. Pour plus dinformations, voir Messages (MOO) à la page 109. Comportement des liens entre objets Les règles suivantes sappliquent aux liens entre objets : • Vous pouvez utiliser un lien entre objets récursif (même objet source et destination). • Deux liens entre objets peuvent être définis entre les mêmes objets source et destination (liens entre objets parallèles). • Lorsque vous supprimez un lien entre objets, ses messages sont aussi supprimés si aucun diagramme de séquence ne les utilise. • Lorsquune association entre classes est transformée en lien entre objets, les deux classes liées par lassociation, et les deux classes des objets liés par le lien entre objets doivent correspondre (ou bien la classe de lobjet doit hériter des classes parent liées par lassociation). Ceci est également valable concernant lassociation entre une classe et une interface. • Si vous changez une extrémité dune association, le lien entre objets qui vient de lassociation est détaché. • Lorsque vous copiez et collez, ou que vous déplacez, un lien entre objets, ses messages sont automatiquement copiés. • Lorsque les extrémités du message changent, le message est détaché du lien entre objets. • Si vous utilisez la fonctionnalité Afficher les symboles pour afficher le symbole dun lien entre objets, tous les messages attachés au lien entre objets sont affichés.Création dun lien entre objets Vous pouvez créer un lien entre objets de lune des façons suivantes : • Utilisez loutil Lien entre objets dans la Palette du diagramme. • Sélectionnez Modèle > Liens entre objets pour afficher la boîte de dialogue Liste des liens entre objets, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Lien entre objets . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Glisser-déposer dassociations dans un diagramme dobjets Vous pouvez faire glisser une association depuis lExplorateur dobjets dans un diagramme de communication. Vous créez ainsi un lien entre objets en tant quinstance de lassociation, et deux objets constituant des instances de ces classes ou interfaces.Propriétés dun lien entre objets Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun lien entre objet, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Liens entre objet de lExplorateur dobjets. Longlet Général contient les propriétés suivantes :Modélisation orientée objet 91
  • 112. Construction de diagrammes structurels Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Valeur calculée, en lecture seule. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Valeur calculée, en lecture seule. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Objet A Nom de lobjet à une extrémité du lien entre objets. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Objet B Nom de lobjet à lautre extrémité du lien entre objets. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Association Association entre classes (ou association entre une classe et une interface) que le lien entre objets utilise pour communiquer entre les objets de ces classes. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Pour plus dinformations sur les différentes façons de modifier un lien entre objets, voir "Propriétés dun objet" dans le chapitre Objets du Guide des fonctionnalités générales. Domaines (MOO) Les domaines vous aident à identifier le type des informations contenues dans votre projet. Ils définissent un ensemble de valeurs pour lesquelles un attribut est correct. Lutilisation de domaines sur des attributs permet duniformiser les caractéristiques de données des attributs contenus dans différentes classes. Un domaine peut être créé dans les types de diagramme suivants : • Diagramme de classes Dans un MOO, vous pouvez définir les informations suivantes en affectant un domaine : • Type de données • Paramètres de contrôle • Règles de gestion Création dun domaine Vous pouvez créer un domaine de lune des façons suivantes : • Sélectionnez Modèle > Domaines pour afficher la boîte de dialogue Liste des domaines, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Domaine . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun domaine Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun domaine, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Domaines de 92 PowerAMC™
  • 113. Construction de diagrammes structurels lExplorateur dobjets. Les sections suivantes détaillent les onglets de la feuille de propriétés qui contiennent les propriétés les plus utilisées pour les domaines. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Type de données Format des données correspondant au domaine (par exemple, numérique, alphanumérique, booléen, etc.) Multiplicité Spécification de la plage des nombres de valeurs admises que peut prendre un attribut utilisant ce domaine. La multiplicité dun domaine est utile lorsque vous travaillez par exemple avec plusieurs attributs. La multiplicité fait partie du type de données et la multiplicité et le type de données peuvent être fournis par le domaine. Vous pouvez choisir parmi les valeurs suivantes : • 0..1 – Zéro ou une. • 0..* – Aucune à un nombre illimité. • 1..1 – Une et une seule. • 1..* – Une à un nombre illimité. • * – Aucune ou un nombre illimité. Les tableaux suivants indiquent les types de données pour lesquels vous pouvez spécifier : • Longueur fixe • Longueur maximale • Précision Types de données numériques Type de données Contenu Longueur Précision obliga- conceptuel toire Entier Entier 32 bits — — Entier court Entier 16 bits — — Entier long Entier 32 bits — — Octet Valeurs comprises entre 1 et 256 — — Numérique Nombre à décimale fixe Fixe Décimal Nombre à décimale fixe Fixe Réel Nombre en virgule flottante 32 bits Fixe — Réel court Nombre en virgule flottante de moins de 32 bits • — — Réel long Nombre en virgule flottante de 64 bits — — Monnaie Nombre à décimale fixe FixeModélisation orientée objet 93
  • 114. Construction de diagrammes structurels Type de données Contenu Longueur Précision obliga- conceptuel toire Séquentiel Nombre incrémenté automatiquement Fixe — Booléen Deux valeurs opposées (vrai/faux ; oui/non ; 1/0) — — Chaînes de caractères Type de données conceptuel Contenu Longueur Caractère alpha Chaînes de caractères Fixe Caractère variable Chaînes de caractères Maximum Caractère long Chaînes de caractères Maximum Caractère long var. Chaînes de caractères Maximum Texte Chaînes de caractères Maximum Multibyte Chaînes de caractères sur plusieurs octets Fixe Multibyte variable Chaînes de caractères sur plusieurs octets Maximum Date et heure Type de données conceptuel Contenu Date Jour, mois et année Heure Heure, minute et seconde Date et heure Date et heure Date système Date et heure système Autres types de données Type de données conceptuel Contenu Longueur Binaire Chaînes binaires Maximum Binaire long Chaînes binaires Maximum Bitmap Images au format bitmap (BMP) Maximum Image Images Maximum OLE Liaisons OLE Maximum Autre Types de données définis par lutilisateur — Non défini Type de données non encore défini — Onglet Détails de la feuille de propriétés dun domaine Longlet Détails contient une zone de groupe Persistant dont lobjet est daméliorer la génération des codes et des types de données lors de la génération dun modèle conceptuel de données ou dun modèle physique de données à partir dun modèle orienté objet. 94 PowerAMC™
  • 115. Construction de diagrammes structurels Cet onglet contient les options suivantes : Propriété Description Persistant Zone de groupe pour la génération de modèles MCD ou MPD persistants. Définit un modèle comme persistant. Pour plus dinformations sur la persistance des objets, voir Gestion de la persistance des objets lors de la génération dun MPD à partir dun MOO à la page 237. Type de données Spécifie un type de données persistant utilisé dans la génération dun modèle persistant, soit un MCD soit un MPD. Le type de données persistant est défini à partir des types de données conceptuels par défaut de PowerAMC. Longueur Nombre maximal de caractères du type de données persistant. Précision Nombre de décimales pour les valeurs de type de données persistant. Autres onglets de la feuille de propriétés dun domaine Les onglets suivants sont également fréquemment utilisés lorsque vous définissez un domaine : Propriété Description Contrôles standard Paramètres de contrôle définis pour le domaine. Contrôles supplémentaires Contraintes de domaines ou règles de validation non définies par les paramètres de contrôle standard. Règles Règles de gestion attachées au domaine.Mise à jour dattributs à laide dun domaine dans un MOO Lorsque vous modifiez un domaine, vous pouvez choisir de mettre à jour automatiquement les propriétés suivantes pour les colonnes qui utilisent ce domaine : • Type de données • Paramètres de contrôle • Règles de gestion 1. Sélectionnez Modèle > Domaines pour afficher la boîte de dialogue Liste des domaines. 2. Cliquez sur un domaine dans la liste, puis cliquez sur loutil Propriétés pour afficher sa feuille de propriétés. Remarque : Vous pouvez également accéder à la feuille de propriétés dun domaine en double-cliquant sur le domaine approprié dans lExplorateur dobjets. 3. Saisissez ou sélectionnez les propriétés de domaine appropriées sur les différents onglets, puis cliquez sur OK. Si le domaine est utilisé par un ou plusieurs attributs, une boîte de confirmation saffiche pour vous demander si vous souhaitez modifier les propriétés des attributs qui utilisent ce domaine. 4. Sélectionnez les propriétés que vous souhaitez voir mises à jour pour les attributs utilisant le domaine, puis cliquez sur Oui.Paramètres de contrôle (MOO) Les paramètres de contrôle sont un ensemble de conditions que les données doivent satisfaire pour pouvoir rester valides. Ces paramètres sont attachés à des attributs et des domaines. Ils sont principalement utilisés dans les MCD et les MPD et ne sont utiles que lorsque vous importez le contenu dun MCD ou dun MPD dans un MOO. Ces paramètres ne sont pas exploités dans un MOO. Vous pouvez utiliser trois types de paramètres de contrôle dans un MOO :Modélisation orientée objet 95
  • 116. Construction de diagrammes structurels Type de paramètre Description Paramètres de contrôle standard Contraintes de données courantes, qui définissent une plage de valeurs admises. Paramètres de contrôle supplémen- Expression SQL définissant une contrainte sur les données à laide des variables qui sont taires renseignées à laide de valeurs de paramètres standard. Règles Règle de gestion définie en tant quexpression serveur. Définition de paramètres de contrôle standard pour des objets dun MOO Les paramètres standard spécifient les contraintes de données courantes. Le tableau suivant répertorie les paramètres standard : Paramètre Description Minimum Plus petite valeur numérique admise. Maximum Plus grande valeur numérique admise. Défaut Valeur attribuée en labsence de valeur saisie de façon explicite. Unité Mesure standard. Format Format de données (par exemple, 9999.99). Minuscules Met toutes les lettres en minuscules. Majuscules Met toutes les lettres en majuscules. Non modifiable Protège contre toute modification, ce qui produit un attribut non modifiable dans la classe. Liste des valeurs possibles Valeurs admises. 1. Cliquez sur longlet Contrôles standard dans la feuille de propriétés dun domaine ou dun attribut pour afficher longlet correspondant. 2. Spécifiez les paramètres standard appropriés, puis cliquez sur OK. Définition de paramètres de contrôle supplémentaires pour des objets dun MOO Vous pouvez utiliser les variables suivantes comme paramètres de contrôle pour les domaines et attributs : Variable Description %MINMAX%, Valeurs minimale et maximale définies dans la zone de groupe Valeurs de longlet Contrôles standard. %LISTVAL% Valeurs personnalisées définies dans la zone de groupe Liste des valeurs possibles de longlet Contrôles standard. %RULES% Expression de règle de validation définie sur longlet Expression dune feuille de propriétés de règle de gestion. Vous définissez des paramètres de contrôle supplémentaires lorsque les paramètres de contrôle standard ne suffisent pas à définir les contraintes nécessaires sur les données. 1. Sélectionnez Modèle > Domaines pour afficher la boîte de dialogue Liste des domaines. 2. Cliquez sur un domaine dans la liste, puis cliquez sur loutil Propriétés pour afficher sa feuille de propriétés. 96 PowerAMC™
  • 117. Construction de diagrammes structurels 3. Cliquez sur longlet Contrôles supplémentaires, puis spécifiez vos expressions requise, en utilisant les variables %MINMAX%, %LISTVAL%, et %RULES%. 4. Cliquez sur OK.Modélisation orientée objet 97
  • 118. Construction de diagrammes structurels 98 PowerAMC™
  • 119. Construction de diagrammes dynamiquesConstruction de diagrammes dynamiques Les diagrammes décrits dans ce chapitre permettent de modéliser le comportement dynamique de votre système, et dindiquer comment ses objets interagissent au moment de lexécution. PowerAMC propose quatre types de diagrammes pour la modélisation de cet aspect de votre système : • Un diagramme de communication qui représente un cas dutilisation particulier ou une fonctionnalité du système en termes dinteractions entre des objets, tout en se focalisant sur la structure de lobjet. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme de communication à la page 99. • Un diagramme de séquence qui représente un cas dutilisation particulier ou une fonctionnalité du système en termes dinteractions entre des objets, tout en se focalisant sur lordre chronologique des messages échangés. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme de séquence à la page 101. • Un diagramme dactivités qui représente un cas dutilisation particulier ou une fonctionnalité du système en termes dactions ou dactivités effectuées et de transitions déclenchées par laccomplissement de ces actions. Il permet également de représenter des branches conditionnelles. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme dactivités à la page 104. • Un diagramme détats-transitions qui représente un cas dutilisation particulier ou une fonctionnalité du système en utilisant les états par lesquels passe un classificateur et les transitions entre ces états. Pour plus dinformations, reportez-vous à la section Notions de base relatives au diagramme détats transitions à la page 106. • Un diagramme dinteractions qui fournit une représentation de haut niveau des interactions se produisant dans votre système. Pour plus dinformations, voir Notions de base relatives au diagramme dinteractions à la page 108.Notions de base relatives au diagramme de communication Un diagramme de communication est un diagramme UML qui fournit une représentation graphique des interactions entre les objets dun scénario de cas dutilisation, lexécution dune opération, ou une interaction entre des classes, en mettant laccent sur la structure du système. Vous pouvez utiliser un ou plusieurs diagrammes de communication pour mettre en scène un cas dutilisation ou pour identifier toutes les possibilités dun comportement complexe. Un diagramme de communication véhicule le même genre dinformation quun diagramme de séquence, à ceci près quil se concentre sur la structure des objets au lieu de la chronologie des messages quils échangent. Un diagramme de communication montre des acteurs, des objets (instances de classes) et leurs liens de communication (appelés liens entre objets), ainsi que les messages quils échangent. Les messages sont définis sur des liens entre objets qui correspondent à un lien de communication entre deux objets qui interagissent. Lordre dans lequel les messages sont échangés est représenté par les numéros dordre. Analyse dun cas dutilisation Un diagramme de communication peut être utilisé pour modéliser le comportement dun cas dutilisation, pour affiner la description dun cas dutilisation ou enrichir la définition dun diagramme de classes en utilisant une approche itérative.Modélisation orientée objet 99
  • 120. Construction de diagrammes dynamiques Cette approche est utile lors de lanalyse des besoins car elle peut aider à identifier des classes et associations qui ne sétaient pas imposées immédiatement. Vous pouvez formaliser lassociation entre le cas dutilisation et le diagramme de communication en ajoutant le diagramme dans longlet Diagrammes associés de la feuille de propriétés du cas dutilisation. Il est souvent nécessaire de créer plusieurs diagrammes afin de décrire tous les scénarios possibles dun cas dutilisation. Dans ce cas de figure, il peut être utile dutiliser les diagrammes de communication pour découvrir tous les objets pertinents avant de tenter didentifier les classes qui vont les instancier. Une fois ces classes identifiées, vous pouvez ensuite déduire les associations entre elles grâce aux liens entre objets. La principale difficulté de cette approche consiste à identifier les objets appropriés afin de transcrire les pas daction du cas dutilisation. Une extension dUML, "Robustness Analysis" peut simplifier ce processus. Cette méthode préconise de séparer les objets en 3 types : • Les objets Boundary sont utilisés par les acteurs lorsquils communiquent avec le système, il peut sagir de fenêtres, décrans, de boîtes de dialogue ou de menus. • Les objets Entity représentent des données stockées telles quune base de données, des tables de base de données ou tout type dobjet temporaire tel quun résultat de recherche. • Les objets Control sont utilisés pour contrôler les objets Boundary et Entity, et qui représentent un transfert dinformations. PowerAMC prend en charge lextension Robustness Analysis via une définition étendue de modèle. Pour plus dinformations, reportez-vous à la section "Utilisation de profils : une étude de cas" dans le chapitre Extension de vos modèles à laide de profils du manuel Personnalisation et extension de PowerAMC. Analyse dun diagramme de classe La construction dun diagramme de communication peut également être lopportunité de tester un modèle statique pendant la conception ; il peut représenter un scénario dans lequel les classes du diagramme de classes sont instanciées pour créer les objets nécessaires à lexécution du scénario. Il complète le diagramme de classes qui représente la structure statique dun système en spécifiant le comportement des classes et interfaces ainsi que lutilisation possible de leurs opérations. Vous pouvez créer les objets et les liens entre objets nécessaires automatiquement en sélectionnant les classes et associations appropriées dans un diagramme de classes, puis en appuyant sur CTRL+MAJ et en les faisant glisser dans un diagramme de communication vide. Il vous suffit ensuite dajouter les messages nécessaires. Objets dun diagramme de communication Vous pouvez créer les objets suivants dans un diagramme de communication: Objet Outil Symbole Description Acteur Personne externe, un processus ou quelque chose interagissant avec un système, un sous-système ou une classe. Voir Acteurs (MOO) à la page 10. Objet Instance dune classe, voir Objets (MOO) à la page 43. Lien entre objets Lien de communication entre deux objets. Voir Liens entre objets (MOO) à la page 89. Message Interaction qui convoie des informations avec lespoir quune ac- tion en découle. Crée un lien entre objets par défaut lorsquil nen existe pas. Voir Messages (MOO) à la page 109. 100 PowerAMC™
  • 121. Construction de diagrammes dynamiquesCréation dun diagramme de communication Vous pouvez créer un diagramme de communication dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de communication . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme de communication . Pour créer un nouveau MOO avec un diagramme de communication, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme de communication comme premier diagramme, puis cliquez sur OK.Création dun diagramme de communication à partir dun diagramme de séquence Vous pouvez créer un diagramme de communication à partir dun diagramme de séquence. Le nouveau diagramme de communication réutilise les objets et les messages provenant du diagramme de séquence, et crée des liens entre les objets qui communiquent par le biais de messages. La conversion met également à jour les numéros dordre des messages, en se basant sur la position relative de ces messages sur la ligne de vie. Notez que si vous créez un diagramme de communication à partir dun diagramme de séquence, ces deux diagrammes ne restant pas synchronisés, les changements effectués dans un diagramme ne seront pas répercutés dans lautre. Pointez sur le fond dun diagramme, cliquez le bouton droit de la souris et sélectionnez Créer un diagramme de communication par défaut dans le menu contextuel. ou Sélectionnez Outils > Créer un diagramme de communication par défaut .Notions de base relatives au diagramme de séquence Un diagramme de séquence est un diagramme UML qui fournit une représentation graphique de la technologie déchange de messages entre des objets et des acteurs pour un cas dutilisation, lexécution dune opération, ou une interaction des classes, en mettant laccent sur leur chronologie. Vous pouvez utiliser un ou plusieurs diagrammes de séquence pour mettre en scène un cas dutilisation ou pour identifier toutes les possibilités dun comportement complexe. Un diagramme de séquence véhicule le même genre dinformations quun diagramme de communication, à ceci près quil se concentre sur la chronologie des messages échangés entre les objets plutôt que sur la structure des objets. Un diagramme de séquence montre des acteurs, des objets (instances de classes) et les messages quils échangent. Par défaut, PowerAMC fournit un "cadre dinteraction", qui entoure les objets dans le diagramme. Les messages peuvent provenir de nimporte quel endroit de ce cadre dinteraction, ou y aboutir. Ce cadre agit comme la limite extérieure du système (ou dune partie de ce système) en cours de modélisation, et ces portes peuvent être utilisées à la place des acteurs. Pour plus dinformations sur lutilisation du cadre dinteraction dans ces contextes, reportez-vous à la section Messages et portes à la page 116. Lun des principaux avantages dun diagramme de séquence sur un diagramme de communication est quil permet de référencer des interactions courantes et de spécifier facilement des scénarios alternatifs ou parallèles en utilisant des fragments dinteraction. Ainsi, vous pouvez décrire dans un seul diagramme de séquence un nombre dinteractions liées qui nécessiterait plusieurs diagrammes de communication. Dans lexemple ci-dessus, lacteur Client passe une commande. Le message Passer commande crée un objet Commande. Un fragment dinteraction gère diverses possibilités de vérifier la commande. Lobjet Compte et lauteur Responsable peuvent interagir avec la commande en fonction de sa taille. Une fois le message Confirmer commande envoyé,Modélisation orientée objet 101
  • 122. Construction de diagrammes dynamiques linteraction Traiter commande est initiée. Cette interaction est stockée dans un autre diagramme de séquence, et est représentée ici par une référence dinteraction : Analyse dun cas dutilisation Un diagramme de séquence peut être utilisé pour affiner le comportement ou la description dun cas dutilisation. Cette approche est utile lors de lanalyse des besoins car elle peut aider à identifier des classes et associations qui ne sétaient pas imposées immédiatement. Vous pouvez formaliser lassociation entre le cas dutilisation et le diagramme de séquence en ajoutant le diagramme dans longlet Diagrammes associés de la feuille de propriétés du cas dutilisation. Il est souvent nécessaire de créer plusieurs diagrammes afin de décrire tous les scénarios possibles dun cas dutilisation. Dans ce cas de figure, il peut être utile dutiliser les diagrammes de séquence pour découvrir tous les objets pertinents avant de tenter didentifier les classes qui vont les instancier. Une fois ces classes identifiées, vous pouvez ensuite déduire les associations entre elles grâce aux liens entre objets. Analyse dun diagramme de classe La construction dun diagramme de séquence peut également être lopportunité de tester un modèle statique pendant la conception ; il peut représenter un scénario dans lequel les classes du diagramme de classes sont instanciées pour créer les objets nécessaires à lexécution du scénario. Il complète le diagramme de classes qui représente la structure statique dun système en spécifiant le comportement des classes et interfaces ainsi que lutilisation possible de leurs opérations. Un diagramme de séquence permet danalyser des opérations de classe avec plus de précision quun diagramme de communication. Vous pouvez créer une opération dans la classe dun objet qui reçoit un message par le biais de la feuille de propriétés du message. Vous pouvez également effectuer une telle tâche dans un diagramme de communication, mais il y a plus despace dans un diagramme de séquence pour afficher des informations détaillées (arguments, valeur de résultat, etc.) relatives à lopération. Création dun diagramme de séquence Vous pouvez créer un diagramme de séquence dans un MOO de lune des façons suivantes : 102 PowerAMC™
  • 123. Construction de diagrammes dynamiques • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme de séquence . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme de séquence . Pour créer un nouveau MOO avec un diagramme de séquence, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme de séquence comme premier diagramme, puis cliquez sur OK. Remarque : Les fonctionnalités Disposition automatique, Aligner et Grouper les symboles ne sont pas disponibles dans le diagramme de séquence. Lorsque vous utilisez la fonctionnalité de fusion de modèles sur des diagrammes de séquence, les symboles de tous les éléments du diagramme de séquence sont fusionnés sans comparaison. Vous avez le choix daccepter toutes les modifications sur tous les symboles ou de refuser toute modification.Création dun diagramme de séquence à partir dun diagramme de communication Vous pouvez créer un diagramme de séquence à partir dun diagramme de communication. Le nouveau diagramme de séquence réutilise les objets et les messages provenant du diagramme de communication. Pointez sur le fond dun diagramme de communication et cliquez le bouton droit. Sélectionnez Créer un diagramme par défaut. ou Sélectionnez Outils > Créer un diagramme de séquence par défaut .Objets dun diagramme de séquence Vous pouvez créer les objets suivants dans un diagramme de séquence: Objet Outil Symbole Description Acteur Personne externe, un processus ou quelque chose interagissant avec un système, un sous-système ou une classe. Voir Acteurs (MOO) à la page 10. Objet Instance dune classe, voir Objets (MOO) à la page 43. Activation Exécution dune procédure, y compris le temps nécessaire à lexé- cution des procédures qui y sont imbriquées. Voir Activation (MOO) à la page 119. Référence dinteraction Référence à un autre diagramme de séquence. Voir Références dinteraction et activités dinteraction (MOO) à la page 122. Fragment dinteraction Collection de messages associés. Voir Fragments dinteraction (MOO) à la page 124. Message Communication qui convoie des informations avec lespoir quune action en découle. Voir Messages (MOO) à la page 109. Message réflexif Message récursif ayant le même objet comme émetteur et récepteur. Voir Messages (MOO) à la page 109.Modélisation orientée objet 103
  • 124. Construction de diagrammes dynamiques Objet Outil Symbole Description Message dappel de procé- Message dappel de procédure avec une activation par défaut. Voir dure Messages (MOO) à la page 109. Message dappel réflexif Message récursif dappel de procédure avec une activation par dé- faut. Voir Messages (MOO) à la page 109. Message de retour Spécifie la fin dune procédure. Généralement associé à un appel de procédure, le message de retour peut être omis car il est implicite à la fin dune activation. Voir Messages (MOO) à la page 109. Message de retour réflexif Message récursif avec un type de flux de contrôle Retour. Voir Messages (MOO) à la page 109. Notions de base relatives au diagramme dactivités Un diagramme dactivités est un diagramme UML qui fournit une représentation graphique du comportement dun système, et vous aide à le décomposer de façon fonctionnelle afin danalyser sa mise en oeuvre. Alors quun diagramme détats-transitions se focalise sur la mise en oeuvre des opérations dans lesquelles la plupart des événements correspondent précisément à la fin de lactivité précédente, le diagramme dactivités ne fait pas la distinction entre les états, les activités et les événements. Le diagramme dactivités donne une représentation simplifiée dun processus, en montrant les flux de contrôle (appelés transitions) entre les actions effectuées dans le système (appelées activités). Ces flux représentent le comportement interne dun élément de modèle (cas dutilisation, package, classificateur ou opération) depuis un point de début jusquà plusieurs points de fin potentiels. Vous pouvez créer plusieurs diagrammes dactivités dans un package ou dans un modèle. Chacun de ces diagrammes est indépendant et définit un contexte isolé dans lequel lintégrité des éléments peut être vérifiée. 104 PowerAMC™
  • 125. Construction de diagrammes dynamiques Analyse dun cas dutilisation Un diagramme dactivités est fréquemment utilisé pour décrire de façon graphique un cas dutilisation. Chaque activité correspond à une étape daction et les points dextension peuvent être représentés comme des branches conditionnelles. Analyse dun processus métiers Au-delà de la modélisation orientée objets, les diagrammes dactivité sont de plus en plus souvent utilisés pour modéliser les aspects métiers de lentreprise. Ce type de modélisation se produit avant la modélisation UML classique dune application, et permet lidentification des processus importants de lentreprise et les domaines de responsabilité pour chaque unité organisationnelle au sein de lentreprise. Pour plus dinformations sur la modélisation de processus métiers à laide de PowerAMC, reportez-vous au manuel Modélisation des processus métiers.Objets du diagramme dactivités Vous pouvez créer les objets suivants dans un diagramme dactivités: Objet Outil Symbole Description Début Point de départ des activités représentées dans le diagramme dac- tivités. Voir Débuts (MOO) à la page 143. Activité Appel dune action. Voir Activités (MOO) à la page 126. Activité décomposée — Activité complexe décomposée pour être détaillée. Voir Activités (MOO) à la page 126. Noeud dobjet Représente un état particulier dune activité. Voir Noeuds dobjet (MOO) à la page 151. Unité dorganisation Société, système, service, organisation, utilisateur ou rôle. Voir Unités dorganisation (MOO) à la page 136. Flux Chemin emprunté par le flux de contrôle pour joindre les activités. Voir Flux (MOO) à la page 149. Décision Décision que le flux de contrôle doit prendre lorsque plusieurs itinéraires de transition sont possibles. Voir Décisions (MOO) à la page 145. Synchronisation Permet la synchronisation du contrôle entre plusieurs actions con- currentes. Voir Synchronisations (MOO) à la page 147. Fin Point de fin des activités décrites dans le diagramme dactivités. voir Fins (MOO) à la page 144.Création dun diagramme dactivités Vous pouvez créer un diagramme dactivités dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme dactivités . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme Nouveau diagramme Diagramme dactivités . Pour créer un nouveau MOO avec un diagramme dactivités, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme dactivités comme premier diagramme, puis cliquez sur OK.Modélisation orientée objet 105
  • 126. Construction de diagrammes dynamiques Notions de base relatives au diagramme détats transitions Un diagramme détats-transitions est un diagramme UML qui fournit une représentation graphique dune State Machine, le comportement public dun classificateur (composant ou classe), sous la forme des changements de létat du classificateur et des événements qui permettent la transition dun état à lautre. Le classificateur est censé avoir déjà été identifié dans un autre diagramme et tous ses états doivent pouvoir être répertoriés. A la différence des autres diagrammes dinteraction, le diagramme détats-transitions peut représenter une spécification complète des scénarios possibles appartenant au classificateur. A un moment donné, lobjet doit être dans lun des états définis. Vous pouvez créer plusieurs diagrammes détats-transitions pour le même classificateur, mais alors les états et les transitions représentés doivent être liés à différents aspects de son évolution. Par exemple, une personne peut être considérée dun côté comme se déplaçant entre les états étudiant, travailleur, sans emploi et en retraite, et de lautre étant successivement célibataire, fiancé, marié et divorcé. Les diagrammes détats-transitions montrent le comportement du classificateur via des règles dexécution qui expliquent précisément de quelle façon les actions sont exécutées lors des transitions entre les différents états ; ces états correspondent aux différentes situations se produisant lors de la vie du classificateur. Lexemple ci-dessus montre les états dun jeu déchecs. La première étape dans la création dun diagramme détats-transitions consiste à définir les états initial et final et le jeu détats possibles entre eux. Vous liez ensuite les états à laide de transitions, en notant sur chacune dentre elles lévénement qui déclenche le passage dun état à lautre. Vous pouvez également définir une action qui sexécute au moment de la transition. De même, lentrée ou la sortie dun état peut provoquer lexécution dune action. Il est même possible de définir les événements internes qui ne changent pas létat. Les actions peuvent être associées aux opérations du classificateur décrit par le diagramme. Il est également possible de décomposer les états complexes en sous-états, qui sont représentés dans des sous-diagrammes détats-transitions. Un diagramme détats-transitions requiert lidentification préalable dun classificateur. Il peut être utilisé pour décrire le comportement du classificateur, et vous aide également à découvrir ses opérations via la spécification des actions associées aux événements détats-transitions. Vous pouvez également utiliser les transitions identifiées afin détablir lordre dans lequel les opérations peuvent être appelées. Ce type de diagramme est appelé "protocol state machine". La spécification de linterface utilisateur graphique (GUI, Graphic User Interface) peut être une autre utilisation. Les états sont les différents écrans disponibles avec les transitions entre eux, le tout dépendant des événements de clavier et de souris produits par lutilisateur. Définition dun classificateur par défaut dans le diagramme détats-transitions Vous pouvez définir le classificateur dun état en utilisant la liste Classificateur dans la feuille de propriétés de létat. Cette opération permet de lier létat à un cas dutilisation, à un composant ou à une classe. 106 PowerAMC™
  • 127. Construction de diagrammes dynamiques Au niveau du diagramme, vous avez également la possibilité de spécifier le contexte dun état en renseignant la zone Classificateur par défaut dans la feuille de propriétés du diagramme détats-transitions. Chaque état qui est alors créé dans un diagramme à laide de loutil Etat est automatiquement associé au classificateur par défaut spécifié dans la feuille de propriétés du diagramme détats-transitions. Les nouveaux diagrammes sont créés par défaut avec une valeur vide dans la liste Classificateur par défaut, sauf les diagrammes de sous-état qui partagent automatiquement la valeur Classificateur définie pour létat composite parent. La valeur Classificateur par défaut est une valeur facultative dans le diagramme détats-transitions. Pour obtenir des informations générales sur les propriétés de diagramme, voir "Propriétés dun diagramme" dans le chapitre Diagrammes et symboles du Guide des fonctionnalités générales.Objets du diagramme détats-transitions Vous pouvez créer les objets suivants dans un diagramme détats-transitions : Objet Outil Symbole Description Début Point de départ des états représentés dans le diagramme détats-transi- tions. Voir Débuts (MOO) à la page 143. Etat Situation dun élément de modèle dans lattente dévénements. Voir Etats (MOO) à la page 153. Action — — Spécification dune instruction pouvant être exécutée. Voir Actions (MOO) à la page 161. Evénement — — Occurrence dun élément observable, convoie des informations spéci- fiées par des paramètres. Voir Evénements (MOO) à la page 159. Transition Chemin emprunté par le flux de contrôle pour joindre les états. Voir Transitions (MOO) à la page 157. Point de jonction Divise une transition entre états. Utilisé particulièrement lorsque vous spécifiez des conditions mutuellement exclusives. Voir Points de jonc- tion (MOO) à la page 163. Synchronisation Permet de scinder ou de synchroniser le contrôle entre deux états con- currents. Voir Synchronisations (OOM) à la page 147.Modélisation orientée objet 107
  • 128. Construction de diagrammes dynamiques Objet Outil Symbole Description Fin Point de terminaison des états décrits dans le diagramme détats-tran- sitions. Voir Fins (MOO) à la page 144. Création dun diagramme détats-transitions Vous pouvez créer un diagramme détats-transitions dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme détats-transitions . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme détats-transitions . Pour créer un nouveau MOO avec un diagramme détats-transitions, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme détats-transitions comme premier diagramme, puis cliquez sur OK. Notions de base relatives au diagramme dinteractions Un diagramme dinteractions est un diagramme UML qui fournit une représentation graphique de haut niveau du flux de contrôle de votre système alors que ce dernier est décomposé en diagrammes de séquence et autres diagrammes dinteractions. Vous pouvez inclure des références vers des diagrammes de séquence, vers des diagrammes de communication et vers dautres diagrammes dinteractions. Dans lexemple suivant, un flux de contrôle lie deux diagrammes de séquence : Objets du diagramme dinteractions Vous pouvez créer les objets suivants dans un diagramme dinteractions : Objet Outil Symbole Description Début Point de départ des interactions représentées dans le diagramme. Voir Débuts (MOO) à la page 143. Activité dinteraction Référence à un diagramme de séquence, à un diagramme de com- munication ou à un diagramme dinteractions. Voir Activités (MOO) à la page 122. Flux Flux de contrôle entre deux interactions. Voir Flux (MOO) à la page 149. 108 PowerAMC™
  • 129. Construction de diagrammes dynamiques Objet Outil Symbole Description Décision Décision que le flux de contrôle doit prendre lorsque plusieurs itinéraires sont possibles. Voir Décisions (MOO) à la page 145. Synchronisation Permet la scission ou la synchronisation du contrôle entre plusieurs flux. Voir Synchronisations (MOO) à la page 147. Fin Point de terminaison des interactions décrites dans le diagramme. Voir Fins (MOO) à la page 144.Création dun diagramme dinteractions Vous pouvez créer un diagramme dinteractions dans un MOO de lune des façons suivantes : • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Diagramme dinteractions . • Pointez sur le modèle dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Diagramme > Nouveau diagramme > Diagramme dinteractions . Pour créer un nouveau MOO avec un diagramme dinteractions, sélectionnez Fichier > Nouveau modèle , choisissez de créer un modèle orienté objet dans la liste Type de modèle, choisissez Diagramme dinteractions comme premier diagramme, puis cliquez sur OK.Messages (MOO) Un message est une communication entre objets. La réception dun message produit généralement un résultat. Un message peut être créé dans les diagrammes suivants : • Diagramme de communication • Diagramme de séquence Les objets peuvent coopérer à laide de différents types de requêtes (envoi dun signal, appel dune opération, création dun objet, suppression dun objet existant, etc.). Lenvoi dun signal permet de déclencher une réaction de la part du récepteur de façon asynchrone et sans quune réponse ne soit nécessaire. Lappel dune opération va appliquer une opération à un objet de façon synchrone ou asynchrone, et peut requérir une réponse de la part de son récepteur. Toutes ces requêtes constituent des messages. Ces messages correspondent aux stimulus dans le langage UML. Un message a un émetteur, un récepteur et une action. Lémetteur est lobjet ou lacteur qui envoie le message. Le récepteur est lobjet ou lacteur qui reçoit le message. Laction est exécutée sur le récepteur. Vous pouvez également créer des messages récursifs, cest-à-dire des messages dont lémetteur est en même temps le récepteur. Le symbole dun message est une flèche qui montre son sens, et qui peut également afficher les informations suivantes : • Un numéro dordre qui indique lordre dans lequel les messages sont échangés (voir Numéros dordre à la page 117). • Le nom du message (ou nom de lopération associée). • La condition. • La valeur de résultat. • Largument. Réutilisation des messages Le même message peut être utilisé à la fois dans un diagramme de séquence et de communication ou dans plusieurs autres diagrammes de lun ou lautre de ces types de diagramme. Lorsque vous faites glisser un message dun diagramme versModélisation orientée objet 109
  • 130. Construction de diagrammes dynamiques un autre, vous récupérez en même temps ses deux extrémités si elles nexistent pas (dans un diagramme de communication), et ce message est attaché à un lien entre objets par défaut. Le numéro dordre attaché à un message est identique dans tous les diagrammes si le message est réutilisé. Lorsque vous copiez un message, son nom ne change pas. Vous pouvez conserver son nom ou bien le modifier à lissue de la copie. Toute modification apportée à la valeur Action ou Flux de contrôle dun message sera répercutée dans tous les diagrammes. Cependant, si le changement que vous souhaitez apporter nest pas valide, il ne sera pas effectué. Par exemple, vous nêtes pas autorisé à déplacer un message Création si un message Création existe déjà entre lémetteur et le récepteur. Messages dans un diagramme de communication Dans un diagramme de communication, chaque message est associé à un lien entre objets. Un lien entre objets peut avoir plusieurs messages associés, mais chacun de ces messages ne peut être associés quà un seul lien entre objets. La destruction dun lien entre objets détruit tous les messages qui lui sont associés. Messages dans un diagramme de séquence Un message est affiché sous la forme dune flèche horizontale pleine partant de la ligne de vie dun objet ou dun acteur pour aller à la ligne de vie dun autre objet ou acteur. La flèche est légendée par le nom du message. Vous pouvez également définir un type de flux de contrôle qui représente à la fois la relation entre une action et les actions qui le précèdent et le suivent, ainsi que la sémantique dattente entre eux. Dans un diagramme de séquence, vous pouvez choisir parmi les types de message suivants : • Message • Message récursif • Message dappel de procédure • Message dappel réflexif • Message de retour • Message de retour réflexif Vous pouvez créer des activations sur la ligne de vie dun objet pour représenter la période pendant laquelle il effectue une action. Un message peut être tracé depuis un acteur vers un objet, ou inversement. Il est également possible de créer un message entre deux acteurs, mais il sera détecté et provoquera un avertissement lors du processus de vérification de modèle. Remarque : Si vous devez décrire un peu plus un message ou lui adjoindre un libellé, vous pouvez rédiger une note à laide de loutil Note, puis la placer à proximité du message. Création dun message Vous pouvez créer un message de lune des façons suivantes : • Utilisez loutil Message (ou, dans un Diagramme de séquence, loutil Message récursif, Message dappel de procédure ou Message dappel réflexif) dans la palette du diagramme. • Sélectionnez Modèle > Messages pour afficher la boîte de dialogue Liste des messages, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Message . 110 PowerAMC™
  • 131. Construction de diagrammes dynamiques • Affichez la feuille de propriétés dun lien entre objets (dans un diagramme de communication), cliquez sur longlet Messages, puis cliquez sur loutil Créer un nouveau message. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dun message Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun message, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Messages de lExplorateur dobjets. Les sections suivantes détaillent les onglets de la feuille de propriétés qui contiennent les propriétés les plus utilisées pour les messages. Les propriétés générales dun message sont les suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif au message. Numéro dordre Permet dajouter manuellement un numéro dordre au message. Principalement utilisé dans des diagrammes de communication pour décrire lordre des messages, mais peut également être utilisé dans des diagrammes de séquence. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Emetteur Objet dorigine du message. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Récepteur Objet sur lequel le message se termine. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Cliquez sur loutil Inverser le sens en regard de cette zone pour permuter lémetteur et le récepteur. Vous ne pouvez pas inverser le sens dun message lorsque ce message est un message Création ou Destruction. Remarque : Vous pouvez inverser le sens dun message en pointant sur son symbole dans le diagramme, en cliquant le bouton droit de la souris et en sélectionnant Inverser dans le menu contextuel. Onglet Détails de la feuille de propriétés dun message Longlet Détails dans la feuille de propriétés du message inclut les propriétés suivantes : Propriété Description Action Spécifie le type daction du message. Vous pouvez choisir parmi les valeurs suivantes : • Création – lobjet émetteur instancie et initialise lobjet récepteur. Un message avec une action Création est le premier message entre un émetteur et un récepteur. • Destruction – lobjet émetteur détruit lobjet récepteur. Un grand X est affiché sur la ligne de vie de lobjet récepteur. Un message avec une action Destruction est le dernier message entre un émetteur et un récepteur. • Auto-destruction – (disponible uniquement si la propriété Flux de contrôle est définie à "Retour") lobjet émetteur avertit lobjet récepteur quil se détruit. Un grand X est affiché sur la ligne de vie de lobjet émetteur. Un message avec une action Auto-destruction est le dernier message entre un émetteur et un récepteur.Modélisation orientée objet 111
  • 132. Construction de diagrammes dynamiques Propriété Description Flux de contrôle Spécifie le mode denvoi des messages. Vous pouvez choisir parmi les valeurs suivantes : • Asynchrone – lobjet émetteur nattend pas un résultat et peut donc faire autre chose en parallèle. No-wait semantics • Appel de procédure – Appel dune procédure. La séquence est terminée avant que la séquence suivante ne commence. Lémetteur doit attendre une réponse ou la fin de lactivation. Wait se- mantics • Retour – Généralement associé à un Appel de procédure. La flèche Retour peut être omise puis- quelle est implicite à la fin dune activation • Non défini – Aucun flux de contrôle nest défini Opération Lie le message à une opération dune classe. Si le récepteur dun message est un objet, et si cet objet a une classe, le message, en tant que flux dynamique dinformation, appelle une opération. Vous pouvez donc lier un message à une opération existante dune classe mais également aux opérations définies sur les classes parent, ou bien vous pouvez créer une nouvelle opération à partir de la liste Opération dans la feuille de propriétés du message. Si une opération est liée à un message, vous pouvez remplacer le nom du message par le nom de la méthode quun objet demande à lautre dappeler. Cette façon de procéder peut savérer très utile lors de la phase de mise en oeuvre. Pour afficher le nom de lopération au lieu du nom du message, sélectionnez loption Remplacer par le nom de lopération dans les préférences daffichage de message. Vous avez même la possibilité de lier un message Création à une opération Constructeur dune classe si vous souhaitez détailler encore plus avant la relation entre un message et une opération. Vous nêtes toutefois pas autorisé à lier un message avec un flux de contrôle Retour à une opération. Si vous modifiez la généralisation qui existe entre les classes, lopération qui est liée au message peut ne plus être disponible. Dans ce cas, lopération est automatiquement détachée du message. Il en va de même si vous inversez le sens du message, à moins toutefois que le nouvel objet récepteur ait la même classe. Arguments Arguments de lopération. Valeur de résultat Valeur de résultat de fonction stockée dans une variable et qui peut être utilisée par dautres fonctions. Liste des prédécesseurs Composée dune liste de numéros dordre suivie de / , la liste des prédécesseurs définit quels messages doivent être échangés avant que le message courant ne puisse être envoyé. Exemple : numéros de séquence 1, 2, 4 avant 3 = 1,2,4/ 3. Condition Condition associée au message. Peut être spécifiée en plaçant une expression booléenne entre crochets sur le diagramme. Exemple : Condition pour le minutage : [durée de numérotation < 30 sec]. Heure de début Alias dheure défini par lutilisateur, utilisé pour définir des contraintes. Exemple : Heure de début=t1, Heure de fin=t2, contrainte={t2 - t1 < 30 sec}. Heure de fin Alias dheure défini par lutilisateur, utilisé pour définir des contraintes. Pris en charge du retard Spécifie que le message peut avoir une durée. Le symbole du message sera incliné, et toujours orienté vers le bas. Si vous avez désélectionné cette option, le message est instantané, ou rapide, et le symbole de message sera toujours horizontal dans le diagramme. Vous pouvez sélectionner également loption Prise en charge du retard comme option par défaut dans la boîte de dialogue Options du modèle. Loption Prise en charge du retard nest pas disponible avec un message récursif, cette option apparaît alors sélectionnée et grisée. Flux de contrôle Un message a par défaut un flux de contrôle Non défini. 112 PowerAMC™
  • 133. Construction de diagrammes dynamiques Si vous souhaitez rendre un diagramme plus lisible, vous pouvez tracer une flèche Retour pour illustrer le moment exact auquel laction est renvoyée à lémetteur. Il sagit dun retour explicite qui se traduit par le renvoi dune valeur à son point dorigine. Dans lexemple ci-dessous, le retour explicite provoque le renvoi des valeurs à leur activation dorigine. Vous pouvez combiner des flux de contrôle de message et des actions de message en fonction du tableau ci-après : Flux de contrôle Symbole Aucune action Création Destruction Auto-destruc- tion Asynchrone — Appel de procédure — Retour — — Non défini — = admis — = non admis Remarque : Vous pouvez accéder aux valeurs Action et Flux de contrôle dun message. Pour ce faire, pointez sur le symbole du message dans le diagramme et cliquez le bouton droit de la souris, puis sélectionnez Action/Flux de contrôle dans le menu contextuel.Création de messages Création et Destruction dans un diagramme de séquence Les messages Création et Destruction sont spécifiés via la propriété Action située sur longlet Détails de leur feuille de propriétés. Création dun message Création Un message peut créer un objet sil sagit du premier message reçu par lobjet et que vous avez spécifié la valeur "Création" pour la propriété Action. Vous ne pouvez pas créer un acteur ou utiliser laction Création avec un message récursif. Lorsquun message crée un objet, ce message est tracé avec sa flèche sur lobjet ; lobjet et le message sont situés au même niveau. Dans un diagramme de séquence, vous pouvez également créer un message Création comme suit : 1. Cliquez sur loutil Message dans la palette. 2. Cliquez sur la ligne de vie de lémetteur et maintenez le bouton de la souris enfoncé. Faites glisser le curseur diagonalement sur le symbole du récepteur. 3. Relâchez le bouton de la souris au-dessus du symbole du récepteur (et non sur sa ligne de vie).Modélisation orientée objet 113
  • 134. Construction de diagrammes dynamiques Si le message est le premier message a être reçu par lobjet récepteur, le symbole de lobjet récepteur se déplace vers le bas et vient saligner sur la flèche du message. Création dun message Destruction Un message peut détruire un objet sil sagit du dernier message reçu par lobjet et si vous spécifiez la valeur Destruction à sa propriété Action. Vous ne pouvez pas détruire un acteur ou utiliser laction Destruction avec un message récursif. En cas de destruction, un grand X saffiche au point dintersection entre la ligne de vie de lobjet et le message. Laction Destruction termine à la fois lactivation et la ligne de vie de lobjet au même point. Laction Destruction ne détruit pas lobjet, elle se contente de représenter la destruction de lobjet dans le diagramme. La ligne de vie de lobjet sinterrompt à un moment précis dans le temps ; il nest pas possible de prolonger sa ligne de vie vers le bas. Il existe deux types de destruction : • Destruction • Auto-destruction Création dun message Destruction Pour créer un message Destruction : 1. Cliquez sur loutil Message dans la palette. 2. Cliquez sur la ligne de vie de lémetteur et maintenez le bouton de la souris enfoncé. Faites glisser le curseur sur la ligne de vie du récepteur. 3. Relâchez le bouton de la souris sur la ligne de vie du récepteur, puis double-cliquez sur le symbole du nouveau message pour afficher sa feuille de propriétés. 4. Sélectionnez Destruction dans la liste Action dans longlet Détails (cette action nest pas disponible si le message nest pas le dernier de la ligne de vie du récepteur). 5. Cliquez sur OK. La ligne de vie de lobjet est marquée par un grand X, au point dintersection avec la flèche du message Destruction. Création dun message Auto-destruction Pour créer un message Auto-destruction : 114 PowerAMC™
  • 135. Construction de diagrammes dynamiques 1. Cliquez sur loutil Message dans la palette. 2. Cliquez sur la ligne de vie de lémetteur et maintenez le bouton de la souris enfoncé. Faites glisser le curseur sur la ligne de vie du récepteur. 3. Relâchez le bouton de la souris sur la ligne de vie du récepteur, puis double-cliquez sur le symbole du nouveau message pour afficher sa feuille de propriétés. 4. Sélectionnez Auto-destruction dans la liste Action de longlet Détails. 5. Sélectionnez Retour dans la liste Flux de contrôle. 6. Cliquez sur OK. La ligne de vie de lobjet auto-détruit est marquée par un grand X.Création dun message récursif dans un diagramme de séquence Un message peut être récursif lorsque lobjet senvoie un message à lui-même. Dans ce cas, la flèche commence et se termine sur la ligne de vie du même objet. Vous nêtes pas autorisé à utiliser laction Création ou Auto-destruction, ni loption Prise en charge du retard, avec un message récursif. Lorsque vous créez des messages récursifs Non défini ou Retour à partir de la palette, la valeur du flux de contrôle est déjà sélectionnée : Type de message Outil Message récursif Non défini Message récursif Retour Vous pouvez également créer un message récursif Non défini, puis changer ensuite sa valeur de flux de contrôle. Exemple Vous pouvez choisir de créer un message récursif avec ou sans activation en utilisant les outils de la palette. Lorsque vous créez un message récursif avec activation, ce dernier est automatiquement attaché à une activation et sa valeur de flux de contrôle est un Appel de procédure qui, par défaut, démarre lactivation. Les symboles dactivation sont ensuite automatiquement créés sur la ligne de vie de lobjet comme illustré ci-après :Modélisation orientée objet 115
  • 136. Construction de diagrammes dynamiques Création dun message récursif sans activation Pour créer un message récursif sans activation : 1. Cliquez sur loutil Message réflexif dans la palette. 2. Cliquez sur la ligne de vie de lobjet pour créer un message récursif. Création dun message récursif avec activation Pour créer un message récursif avec activation : 1. Cliquez sur loutil Message dappel réflexif dans la palette. 2. Cliquez sur la ligne de vie de lobjet pour créer un message récursif avec activation. Messages et portes Dans UML 2, vous pouvez envoyer des messages vers et depuis le cadre dinteraction qui entoure votre diagramme de séquence. Le cadre représente la limite externe du système (ou de la partie du système) en cours de modélisation et peut être utilisé à la place dun acteur (les acteurs ne sont plus utilisés dans les diagrammes de séquence UML 2, mais continuent à être pris en charge pour des raisons de rétrocompatibilité dans PowerAMC). Un message provenant dun endroit du cadre est envoyé depuis une porte dentrée, tandis quun message parvenant à cet endroit est reçu par une porte de sortie. Dans lexemple ci-dessous, un diagramme de séquence de haut niveau, TraiterCommande, montre une série de communications entre un utilisateur et un système de ventes : 116 PowerAMC™
  • 137. Construction de diagrammes dynamiques Le message TraiterCommande part dune porte dentrée sur le cadre dinteraction TraiterCommande, et est reçu sous la forme dun message dentrée par lobjet Contrôleur commande. Une fois le traitement de la commande terminé, le message RenvoyerEtatCommande est reçu par une porte de sortie sur le cadre dinteraction TraiterCommande. Le message VérifierCommande provient de lobjet Contrôleur commande et est reçu comme un message dentrée par une porte dentrée sur le cadre dinteraction VérifierCommande. Une fois la vérification de la commande terminée, le message RenvoyerEtatVérif est envoyé depuis une porte de sortie sur le cadre de référence dinteraction et est reçu par lobjet Contrôleur commande. Le diagramme suivant montre le diagramme de séquence VérifierCommande qui illustre le processus de vérification dune commande : Ici, le message VérifierCommande provient dune porte dentrée sur le cadre dinteraction VérifierCommande, et est reçu comme message dentrée par lobjet Interface Vérif. Une fois le traitement de la commande terminé, le message RenvoyerMessage est reçu par une porte de sortie sur le cadre dinteraction VérifierCommande. Remarque : PowerAMC permet dutiliser des acteurs et des cadres dinteraction dans vos diagrammes afin de mettre à votre disposition un choix de styles et dassurer une compatibilité avec les versions antérieures. Toutefois, ces deux concepts représentant des objets extérieurs au système modélisé, nous vous déconseillons dutiliser à la fois des acteurs et des cadres dinteraction au sein du même diagramme. Vous ne pouvez pas envoyer des messages entre un acteur et un cadre dinteraction.Numéros dordre Vous pouvez attribuer des numéros dordre dans les diagrammes de communication et diagrammes de séquence, mais cest dans les diagrammes de communication quils jouent un rôle plus important. Lorsque vous créez un message dans un diagramme de communication, la valeur par défaut du numéro de séquence est calculée par rapport au message créé ou modifié le plus récemment. Le premier numéro dordre créé est 1. La succession des numéros dordre est construite en partant du dernier numéro de séquence utilisé, incrémenté de 1. Par exemple, 3 + 1 => 4, ou 2.1 + 1 => 2.2 La création des numéros de séquence respecte la syntaxe des numéros déjà utilisés dans le diagramme (1, 2, 3, etc. ou 1.1, 1.2, etc.). Par convention, lajout de lettres aux numéros dordre signifie que les messages sont parallèles. Par exemple, les messages ayant un numéro dordre 3.1a et 3.1b sont envoyés simultanément.Modélisation orientée objet 117
  • 138. Construction de diagrammes dynamiques Si vous devez changer les numéros dordre manuellement, vous pouvez déplacer ou insérer des messages dans le diagramme ou bien augmenter ou diminuer les numéros dordre. Déplacement de numéros dordre Vous pouvez déplacer et insérer des numéros dordre dans un diagramme de communication. Lorsque vous déplacez un numéro dordre existant et lattachez à un autre message, les numéros dordre sont recalculés en fonction des règles suivantes : • Pour un numéro x, tous les numéros supérieurs ou égaux à x sont modifiés. • Tout intervalle libre dans la numérotation est occupé par le numéro de séquence suivant à lissue du déplacement. Exemple 1 Les numéros dordre dans un diagramme de communication sont 1, 2, 3, 4, 5, et 6. Lorsque vous faites passer le numéro dordre 6 à la troisième position, le numéro 6 devient le 3, tous les nombres entre 3 et 6 sont alors modifiés comme suit : Exemple 2 Lorsque vous faites passer le numéro dordre 4 à la seconde position, il devient alors le numéro 4 et tous les numéros compris entre 2 et quatre inclus changent alors. Les numéros 5 et 6 restent inchangés : Exemple 3 Lorsque vous faites passer le numéro dordre 2 à la cinquième position, il devient le numéro 5: tous les numéros de 2 à 5 sont modifiés comme suit : Exemple 4 Les numéros dordre dans un diagramme de communication se présentent comme suit : • 1 • 1.1:msg_a • 1.1.1:msg_a1 • 1.1.2:msg_a2 • 1.2:msg_b • 2 118 PowerAMC™
  • 139. Construction de diagrammes dynamiques • 3 Si vous déplacez le numéro 1.1:msg_a en troisième position 3, les changements suivants se produisent : Remarque : Vous pouvez utiliser la fonction Annuler chaque fois que nécessaire au cours de la manipulation de ces éléments dans des diagrammes de communication. Insertion de numéros dordre Lorsque vous insérez un nouveau message doté dun nouveau numéro dordre dans un diagramme de communication existant, les numéros dordre sont recalculés en fonction de la règle suivante : tous les numéros situés après le point dinsertion sont incrémentés dune unité (+1). De même, un numéro parent change ses numéros enfant. Par exemple, si on incrémente dune unité des numéros tels que 1.1, 1.2 ou 1.3 on obtient le résultat du type : 1.1 + 1 => 1.2. La syntaxe des numéros de séquence utilisée dans le diagramme est respectée ; ainsi les numéros de séquence sont incrémentés dune unité quelle que soit leur syntaxe (1, 2, 3... ou 1.1, 1.2, 1.3...). Incrémentation de numéros dordre dans un diagramme de communication Vous pouvez incrémenter un numéro dordre de lune des façons suivantes : • Pointez sur le message dans le diagramme, cliquez le bouton droit de la souris, puis sélectionnez Incrémenter le numéro dans le menu contextuel. ou Sélectionnez le message dans le diagramme, puis appuyez simultanément sur les touche ctrl et la touche + (plus) du pavé numérique pour incrémenter le numéro dune unité. Décrémentation de numéros dordre dans un diagramme de communication Vous pouvez décrémenter un numéro dordre de lune des façons suivantes : • Pointez sur le message dans le diagramme, cliquez le bouton droit de la souris, puis sélectionnez Décrémenter le numéro dans le menu contextuel. ou Sélectionnez le message dans le diagramme, puis appuyez simultanément sur la touche ctrl et la touche - (moins) du pavé numérique pour décrémenter le numéro dune unité.Activation (MOO) Les activations sont des symboles facultatifs qui représentent le temps requis pour quune action soit effectuée. Ils sont créés sur la ligne de vie dun objet. Les activations sont uniquement des symboles et elles sont dépourvues de feuille de propriétés. Une activation peut être créée dans les types de diagramme suivants :Modélisation orientée objet 119
  • 140. Construction de diagrammes dynamiques • Diagramme de séquence Dans un diagramme de communication, les messages qui sont transmis lors de la période représentée par une activation se voient attribuer des sous-numéros. Ainsi, une activation créée par le message 1 peut donner lieu à la création de messages 1.1 et 1.2. Vous pouvez attacher un message à une activation ou len détacher. Vous pouvez également déplacer et redimensionner une activation ou lui faire chevaucher dautres activations. Création dune activation Vous pouvez créer une activation lorsque vous créez un message Appel de procédure ou après avoir créé tout type de message. Un message Appel de procédure démarre une activation, cest pourquoi le message est toujours attaché à une activation. Création dune activation à la création du message Pour créer une activation à la création du message : 1. Cliquez sur loutil Message dappel de procédure dans la palette. 2. Cliquez sur la ligne de vie de lémetteur et maintenez le bouton de la souris enfoncé. Faites glisser le curseur sur la ligne de vie du récepteur. 3. Relâchez le bouton de la souris sur la ligne de vie du récepteur. Le message est créé, avec les activations sur les lignes de vie de lémetteur et du récepteur (notez que les activations ne sont pas créées sur les lignes de vie des acteurs). Création dune activation à partir dun diagramme Pour créer une activation à partir dun diagramme : 1. Cliquez sur loutil Activation dans la palette. 2. Cliquez sur la ligne de vie dun objet pour créer un symbole dactivation là où vous avez cliqué. Si vous créez lactivation au-dessus de messages existants, ceux-ci sont alors automatiquement attachés à cette activation. Attachement dun message à une activation Un message est attaché à une activation lorsque son point de début ou de fin se trouve sur le symbole dactivation et non pas sur la ligne de vie de lobjet. Les symboles dattachement sont situés aux extrémités de la flèche du message. Si les symboles dattachement ne sont pas affichés dans le diagramme, sélectionnez Outils > Préférences daffichage , puis sélectionnez Point dattache des activations dans la catégorie Message. Vous pouvez attacher un message existant à une activation en faisant glisser le message dans lactivation en maintenant la touche ctrl enfoncée. Lorsquun message est attaché à une activation, vous ne pouvez pas le déplacer hors des limites du symbole dactivation comme illustré ci-dessous : Si vous supprimez une activation à laquelle un message est attaché, le message est détaché de lactivation mais nest pas supprimé. 120 PowerAMC™
  • 141. Construction de diagrammes dynamiques Flux de contrôle de message et activation Lorsquun message est attaché à une activation, la valeur du flux de contrôle influe sur la position de lactivation vis-à-vis du message : • Appel de procédure - Un message Appel de procédure attaché à une activation démarre lactivation sur la ligne de vie du récepteur, cest-à-dire que le point darrivée du message est situé au sommet de lactivation. • Retour - Un message Retour attaché à une activation termine lactivation sur la ligne de vie de lémetteur, cest-à-dire que le point de départ du message est situé à la base de lactivation. Les messages Appel de procédure et Retour sont les seuls messages définis à un endroit particulier dans lactivation : un message Appel de procédure se trouve au sommet de lactivation, un message Retour se trouve à la base de lactivation. Les autres messages attachés à lactivation peuvent être déplacés sans contrainte particulière au sein de lactivation.Détachement dun message dune activation Vous pouvez détacher un message dune activation en faisant glisser le message hors de lactivation, en maintenant la touche ctrlenfoncée.Activations superposées Une activation peut se superposer à dautres activations existantes. Par exemple, vous pouvez souhaiter quune activation se superpose à une autre pour représenter une action dans une boucle. Laction est répétée jusquà ce quelle atteigne son but, cette boucle peut commencer et se terminer en même temps que lautre activation représente une autre action. Vous pouvez superposer ainsi les activations pour illustrer des activités simultanées.Déplacement dune activation Si vous déplacez une activation à laquelle un message est attaché, il est possible de la déplacer vers le haut et vers le bas jusquà ce que son sommet ou sa base atteigne le niveau du message. Le message lui-même ne se déplace pas : Si vous déplacez le point de fin dun message pour lequel loption Prise en charge du retard est activée, langle dinclinaison du message est préservé comme illustré ci-dessous :Modélisation orientée objet 121
  • 142. Construction de diagrammes dynamiques Redimensionnement dune activation Vous pouvez redimensionner une activation en étirant le sommet ou la base de son symbole. Vous redimensionnez alors lactivation verticalement. Lorsque vous redimensionnez une activation, les règles suivantes sappliquent : • Un message Appel de procédure est toujours attaché au sommet de lactivation sur la ligne de vie du récepteur. Le message Appel de procédure reste au sommet de lactivation si cette dernière est déplacée vers le haut, ou redimensionnée vers le bas. • Un message Retour est toujours attaché à la base de lactivation sur la ligne de vie de lémetteur. Le message Retour reste à la base de lactivation si cette dernière est déplacée vers le bas. • Les messages qui sont couverts par lactivation à lissue du redimensionnement ne sont pas automatiquement attachés à lactivation. Pour changer lactivation dun message, utilisez ctrl + clic pour sélectionner le point de début ou de fin du message et le faire glisser sur une autre activation. Références dinteraction et activités dinteraction (MOO) Une référence dinteraction est utilisée pour représenter un diagramme de séquence dans le corps dun autre. Cette fonctionnalité vous permet de modulariser et de réutiliser des interactions couramment utilisées sur une plage de diagrammes de séquence. Une référence dinteraction peut être créée dans les types de diagramme suivants : • Diagramme de séquence Les activités dinteraction sont similaires, mais permettent de représenter un diagramme de séquence, un diagramme de communication ou un diagramme dinteractions. Les activités dinteraction peuvent être créées dans les types de diagramme suivants : • Diagramme de séquence Pour une activité dinteraction, pointez sur une activité, cliquez le bouton droit de la souris, puis sélectionnez Vue composite > Lecture seule (sous-diagrame) pour afficher le diagramme référencé dans le symbole. Sélectionnez Ajuster à la vue en lecture seule dans le menu contextuel afin de redimensionner automatiquement le symbole afin doptimiser laffichage du diagramme référencé. Exemple : référence dinteraction dans un diagramme dactivité Dans lexemple ci-dessous, lutilisateur doit ouvrir une session avant de transmettre une requête sur la page de compte dun site web. Comme le processus de connexion fera partie des nombreuses interactions avec le site, il a été représenté dans un autre diagramme de séquence appelé "Ouverture de session", et est représenté ici sous forme dune référence dinteraction. 122 PowerAMC™
  • 143. Construction de diagrammes dynamiquesCréation dune référence dinteraction Vous pouvez créer une référence dinteraction de lune des façons suivantes : • Utilisez loutil Référence dinteraction dans la palette du diagramme. Vous pouvez soit cliquer à proximité de la ligne de vie dun objet pour créer une référence dinteraction attachée à cette la ligne de vie, soit tracer un rectangle qui va englober et attacher plusieurs lignes de vie. La boîte de dialogue de sélection dun diagramme de séquence saffiche pour vous permettre de spécifier le diagramme de séquence auquel la référence se réfère. Sélectionnez un diagramme existant ou un nouveau diagramme, cliquez sur OK. • Faites glisser un autre diagramme de séquence depuis lExplorateur dobjets dans le diagramme de séquence courant. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Création dune activité dinteraction Vous pouvez créer une activité dinteraction de lune des façons suivantes : • Utilisez loutil Activité dinteraction dans la palette du diagramme. La boîte de dialogue de sélection dun diagramme saffiche pour vous permettre de spécifier le diagramme auquel lactivité fait référence. Sélectionnez un diagramme existant ou un nouveau diagramme, cliquez sur OK. • Faites glisser un diagramme de séquence, un diagramme de communication ou un diagramme dinteractions depuis lExplorateur dobjets dans le diagramme dinteractions. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dune référence dinteraction ou dune activité dinteraction Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune référence ou activité dinteraction, double-cliquez sur son symbole dans le diagramme, en prenant soin de pointer sur létiquette dopérateur, dans langle supérieur gauche. Longlet Général contient les propriétés suivantes :Modélisation orientée objet 123
  • 144. Construction de diagrammes dynamiques Propriété Description Diagramme référencé Spécifie le diagramme de séquence qui sera représenté dans le diagramme courant par la référence dinteraction. Vous pouvez cliquer sur loutil Créer à droite de la zone pour créer un nouveau diagramme de séquence. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Arguments Spécifie les arguments qui doivent être transmis au premier message dans le diagramme référencé. Valeur de retour Spécifie la valeur à renvoyer par le dernier message dans le diagramme référencé. Manipulation des références dinteraction Vous pouvez déplacer les références dinteraction, les redimensionner et généralement les manipuler librement. Lorsque vous faites en sorte que le symbole se superpose à la ligne de vie dun objet, il sy attache immédiatement, et cet attachement est représenté par une petite pastille sur la partie supérieure du symbole, là où il rencontre la ligne de vie. Si vous faites glisser ou redimensionnez le symbole de telle sorte quil ne se superpose plus à la ligne de vie, il sen détache automatiquement. Si vous déplacez un objet attaché à une interaction, le symbole se redimensionne automatiquement pour rester attaché à la ligne de vie de lobjet. Vous pouvez contrôler manuellement si les lignes de vies sont attachées à une référence dinteraction qui les chevauche en cliquant sur le point dattachement. Notez quune référence dinteraction ne peut pas être copiée ou réutilisée dans un autre diagramme. Toutefois, plusieurs références au même diagramme peuvent être créées. Fragments dinteraction (MOO) Un fragment dinteraction permet de regrouper des messages liés au sein dun diagramme de séquence. Il existe différents types de fragment prédéfinis qui permettent de spécifier des trajets alternatifs, des messages parallèles ou des boucles. Un fragment dinteraction peut être créé dans les types de diagramme suivants : • Diagramme de séquence Dans lexemple ci-dessous, Utilisateur envoie une requête à la page Compte. Deux réponses possibles et les conditions dont elles dépendent sont contenues dans un fragment dinteraction. Création dun fragment dinteraction Vous pouvez créer un fragment dinteraction comme suit : 124 PowerAMC™
  • 145. Construction de diagrammes dynamiques • Utilisez loutil Fragment dinteraction dans la palette du diagramme. Vous pouvez soit cliquer à proximité de la ligne de vie dun objet pour créer un fragment dinteraction attaché à cette ligne de vie, soit tracer un rectangle qui englobe et attache plusieurs lignes de vie. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dun fragment dinteraction Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher une feuille de propriétés de fragment dinteraction, double-cliquez sur son symbole dans le diagramme, dans létiquette dopérateur située dans la partie supérieure gauche de ce symbole. Les sections suivantes détaillent les onglets de la feuille de propriétés qui contiennent les propriétés les plus utilisées pour les fragments dinteraction. Longlet Général contient les propriétés suivantes : Propriété Description Opérateur Spécifie le type de fragment. Vous pouvez choisir parmi les valeurs suivantes : • Alternative (alt) – le fragment est scindé en plusieurs régions mutuellement exclusives, chacune dotée dune condition de garde. Seuls les messages provenant de lune de ces régions seront exécutés au moment de lexécution. • Assertion (assert) – linteraction doit se produire exactement tel quindiqué sous peine dêtre invalide. • Break (break) – si la condition associée est remplie, linteraction parent se termine à la fin du fragment. • Consider (consider) – seuls les messages affichés sont significatifs. • Critical Region (critical) – aucun autre message ne peut intervenir avant que ces messages ne soient terminés. • Ignore (ignore) – certains messages non significatifs ne sont pas affichés. • Loop (loop) – le fragment dinteraction sera répété à plusieurs reprises. • Negative (neg) – linteraction est invalide et ne peut pas se produire. • Option (opt) – linteraction se produit uniquement si la condition de garde est satisfaite. • Parallel (par) – le fragment est scindé en plusieurs régions, toutes seront exécutées en parallèle lors de lexécution. • Strict Sequencing (strict) – lordre des messages est forcé. • Weak Sequencing (seq) – lordre des messages est forcé sur chaque ligne de vie, mais pas entre les lignes de vie. Le type dopérateur est affiché dans langle supérieur gauche du symbole de fragment dinteraction. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Condition Spécifie toute condition associée au fragment. Il peut sagir de lévaluation dune variable, telle que : X>3 Ou, dans le cas dun fragment de boucle, la spécification du nombre minimum et (éventuellement) du nombre maximum de fois que la boucle est parcourue. Exemple : 1,10 Dans le cas des opérateurs Consider ou Ignore, ce champ répertorie les messages associés. Ce champ nest pas disponible si le fragment ne prend pas en charge les conditions. Onglet Sous-régions de la feuille de propriétés dun fragment dinteraction Longlet Sous-régions de la feuille de propriétés dun fragment dinteraction répertorie les régions contenues dans le fragment. Il nest affiché que si vous sélectionnez un opérateur qui requiert plus dune région. Vous pouvez ajouter ou supprimer des régions et (le cas échéant) spécifier les conditions correspondantes.Modélisation orientée objet 125
  • 146. Construction de diagrammes dynamiques Manipulation de fragments dinteraction Vous pouvez manipuler des fragments dinteraction, avec toutefois certaines limitations. Déplacement et redimensionnement de fragments Vous pouvez déplacer des fragments dinteraction, les redimensionner, et généralement les manipuler librement. Lorsque vous faites en sorte que le symbole se superpose à la ligne de vie dun objet, il sy attache immédiatement, et cet attachement est représenté par une petite pastille sur la partie supérieure du symbole, là où il rencontre la ligne de vie. Si vous faites glisser ou redimensionnez le symbole de telle sorte quil ne se superpose plus à la ligne de vie, il sen détache automatiquement. Si vous déplacez un objet attaché à un fragment dinteraction, le symbole se redimensionne automatiquement pour rester attaché à la ligne de vie de lobjet. Vous pouvez contrôler manuellement si les lignes de vies sont attachées à une référence dinteraction qui les chevauche en cliquant sur le point dattachement. Déplacement de messages Chaque message qui est entièrement contenu dans un fragment dinteraction se déplace avec le fragment vers le haut et le bas sur la ligne de vie de lobjet auquel il est attaché. Toutefois, si vous éloignez le fragment de la ligne de vie auquel il est attaché, le message sera détaché du fragment et ne sera pas déplacé. Vous pouvez déplacer les messages librement vers lextérieur ou lintérieur des fragments dinteraction. Si vous déplacez un message de sorte quil soit inclus entièrement dans un fragment, il est attaché à ce fragment. Si vous déplacez un message de sorte quune ou lautre de ses extrémités se retrouve hors du fragment, ce message est détaché du fragment. Messages et régions Lorsquun fragment est scindé en plusieurs régions, vous pouvez déplacer les messages librement entre les régions. Toutefois, vous ne pouvez pas déplacer la ligne de séparation située au-dessous. Un tel redimensionnement va affecter la taille totale du fragment. Pour redimensionner la dernière région, située en bas du fragment, vous devez sélectionner et déplacer le bord inférieur du fragment. Si vous supprimez une région, lespace quelle occupait et les messages quelle contenait seront fusionnés avec ceux de la région située au-dessus. Notez quun fragment dinteraction ne peut pas être copié comme raccourci dans un autre diagramme. Activités (MOO) Une activité est lappel dune action manuelle ou automatisée, telle que "envoyer un courrier", ou "incrémenter un compteur". Lorsquune activité prend le contrôle, elle effectue laction puis, selon le résultat de cette action, la transition (flux de contrôle) est transmise à une autre activité. Une activité peut être créée dans les types de diagramme suivants : • Diagramme dactivités La prise en charge de UML 2 par PowerAMC permet de disposer dune grande souplesse et dun grand niveau de détail dans vos diagrammes dactivité. Vous pouvez simplement lier les activités entre elles afin de montrer un flux de contrôle de haut niveau, ou affiner votre modèle en spécifiant : • les paramètres passés entre les activités (voir Spécification des paramètres dactivité à la page 129). • le type daction et lactivité et lassocier avec dautres objets de modèle (voir Spécification des types daction à la page 130). 126 PowerAMC™
  • 147. Construction de diagrammes dynamiques Dans lexemple ci-dessus, lactivité RéceptionVérificationConnexion a comme type daction "Accept call" (voir Spécification des types daction à la page 130), et passe les deux paramètres de sortie "ID utilisateur" et "mot de passe" (voir Spécification des paramètres dactivité à la page 129) à une série de décisions qui conduisent à RéponseVérificationConnexion. Cette dernière activité a un paramètre dentrée appelé "Résultat" et le type daction Reply Call. Activités atomiques et décomposées Une activité peut être atomique ou décomposée. Les activités décomposées contiennent des sous-activités, qui sont représentées dans un sous-diagramme. Pour plus dinformations, voir Activités décomposées et sous-activités à la page 134. Une activité PowerAMC équivaut à une activité UML (ActionState ou SubactivityState) et à un graphe dactivité. Dans UML, un ActionState représente lexécution dune action atomique, et un SubactivityState est lexécution dun graphe dactivité (qui est, à son tour, la description dune action complexe représentée par des sous-activités). Le tableau suivant montre les correspondances entre les concepts et la terminologie UML et PowerAMC : Objet UML Objets PowerAMC ActionState Activité SubactivityState Activité composite Activity Graph Activité composite PowerAMC combine une SubactivityState et un graphe dactivités (activity graph) dans une activité décomposée de sorte que vous pouvez définir des sous-activités directement sous lactivité parent et ce, sans avoir à définir dobjet supplémentaire. Si vous devez mettre en exergue la différence, vous pouvez créer des activités directement sous le modèle ou le package, et utiliser des raccourcis dactivité pour détailler la mise en oeuvre des activités, ainsi SubactivityState correspond au raccourci dune activité décomposée.Modélisation orientée objet 127
  • 148. Construction de diagrammes dynamiques Création dune activité Vous pouvez créer une activité de lune des façons suivantes : • Utilisez loutil Activité dans la palette du diagramme. • Sélectionnez Modèle > Activités pour afficher la boîte de dialogue Liste des activités, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle, le package ou lactivité décomposée dans lExplorateur dobjets, puis sélectionnez Nouveau > Activité . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dune activité Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune activité, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Activités de lExplorateur dobjets. Les sections suivantes détaillent les onglets de la feuille de propriétés qui contiennent les propriétés les plus utilisées pour les activités. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Unité dorganisation Spécifie lunité dorganisation (voir Unités dorganisation (MOO) à la page 136) liée à lactivité et permet également daffecter la valeur Activité communautaire (voir Affichage dune activité communautaire à la page 138) à une activité décomposée afin de représenter de façon graphique les liens qui existent entre les unités dorganisation représentées sous forme de couloirs et les sous-activités. Une activité commu- nautaire est une activité réalisée par plusieurs unités dorganisation. Vous pouvez cliquer sur le bouton Points de suspension en regard de la zone Unité dorganisation pour créer une nouvelle unité dorganisation, ou bien cliquer sur loutil Propriétés afin dafficher la feuille de propriétés de lunité dorganisation. Etat composite Spécifie si lactivité est décomposée en sous-activités. Vous pouvez choisir parmi les valeurs suivan- tes : • Activité atomique – (valeur par défaut) lactivité ne contient aucune sous-activité. • Activité décomposée – lactivité peut contenir des sous-activités. Un onglet Sous-activités est affiché dans la feuille de propriétés afin de répertorier ces sous-activités, et un sous-diagramme est créé sous lactivité dans lExplorateur dobjets pour les afficher. Si vous repassez de Activité décomposée à Activité atomique, les sous-activités que vous avez créées seront supprimées. Onglet Action de la feuille de propriétés dune activité Longlet Action définit la nature, le type et la durée dune action quune activité exécute. Il contient les propriétés suivantes : 128 PowerAMC™
  • 149. Construction de diagrammes dynamiques Propriété Description Type daction Spécifie la catégorie daction que lactivité exécute. Pour obtenir la liste des types dactions disponi- bles, voir Spécification des types daction à la page 130. [objet de laction] Selon le type daction que vous sélectionnez, une zone supplémentaire peut être affichée, permettant de spécifier une activité, un classificateur, un attribut, un événement, une expression, une opération ou une variable sur lequel/laquelle laction est accomplie. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir la liste des objets disponibles ou afficher la feuille de propriétés de lobjet sélectionné. Pré-conditions/ Actions / Ces sous-onglets fournissent des informations contextuelles sur les modalités dexécution de laction. Post-conditions Par exemple, vous pouvez rédiger du pseudo code ou de linformation sur le programme à exécuter. Durée Spécifie la durée estimée ou statistique nécessaire à lexécution de laction. Cette information est utilisée à des fins de documentation uniquement ; lestimation de la durée globale nest pas calculée. Dépassement de délai Zéro par défaut. Si la valeur nest pas fixée à zéro, une erreur de dépassement de délai se produit si lexécution de lactivation prend plus de temps que la limite spécifiée. Vous pouvez saisir la valeur alphanumérique de votre choix dans la zone Dépassement de délai (par exemple : 20 secondes). Onglets Paramètres dentrée et Paramètres de sortie de la feuille de propriétés dune activité Ces onglets contiennent les paramètres dentrée et de sortie requis par lactivité. Pour plus dinformations, voir Spécification des paramètres dactivité à la page 129. Onglet Sous-activités de la feuille de propriétés dune activité Cet onglet nest affiché que si la propriété Etat composite de lactivité a pour valeur Décomposé , et répertorie les sous- activités de lactivité.Spécification des paramètres dactivité Les paramètres dactivité sont des valeurs passées entre les activités. Elles sont représentées sous la forme de petits carrés sur le bord des symboles dactivité, les paramètres ID utilisateur et mot de passe sont passés de lactivité Saisie mot de passe à lactivité Vérification mot de passe : 1. Affichez la feuille de propriétés dune activité et cliquez sur longlet Paramètres dentrée ou Paramètres de sortie. 2. Utilisez les outils pour ajouter les paramètres existants ou créer un nouveau paramètre. Remarque : Vous pouvez également créer des paramètres dans le cadre de la spécification dun type daction dactivité. Voir Spécification des types daction à la page 130. Les paramètres dactivité peuvent avoir les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts.Modélisation orientée objet 129
  • 150. Construction de diagrammes dynamiques Propriété Description Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Type de données Spécifie le type de données du paramètre. Vous pouvez choisir un type de données standard ou spécifier un classificateur. Vous pouvez utiliser les outils situés à droite de la liste pour créer un classificateur, passer en revue les classificateurs disponibles ou afficher les propriétés du classificateur sélectionné. Etat Spécifie létat dobjet lié au paramètre. Vous pouvez saisir du texte libre dans la zone, ou utiliser les outils à droite de la liste afin de créer un état, passer en revue les états disponibles ou afficher les propriétés de létat sélectionné. Spécification des types daction Vous pouvez ajouter des détails supplémentaires à vos modélisations dactivités en spécifiant le type daction effectué et, dans certains cas, en lassociant à un modèle objet particulier sur lequel elle agit, ainsi que les paramètres quelle passe. 1. Affichez la feuille de propriétés dune activité, puis cliquez sur longlet Action. 2. Sélectionnez un type daction. La liste suivante détaille les types daction disponibles, et spécifie, le cas échéant, lobjet requis pour laction : • <Undefined> [aucun objet] - valeur par défaut. Aucune action définie. • Reusable Activity [aucun objet] – conteneur racine. • Call [opération ou activité] – appelle une opération ou activité. Voir Exemple: Utilisation du type daction Call à la page 131. • Accept Call [opération ou activité] – attend quune opération ou activité soit appelée. • Reply Call [opération ou activité] – suit une action Accept Call, et répond à une opération ou activité. • Generate Event [événement] – génère un événement. Peut être utilisé pour soulever une exception. • Accept Event [événement] – attend quun événement se produise. • Create Object [classificateur] – crée une nouvelle instance dun classificateur. • Destroy Object [classificateur] – supprime une instance dun classificateur. • Read Attribute [attribut de classificateur] – lit une valeur dattribut dans une instance dun classificateur. • Write Attribute [attribut de classificateur] – écrit une valeur dattribut dans une instance dun classificateur • Read Variable [variable] – écrit une valeur dans une variable locale. La variable peut être utilisée pour stocker un paramètre de sortie fourni par une action à réutiliser ultérieurement dans le diagramme. Voir Exemple : Lecteur et écriture de variables à la page 133. • Write Variable [variable] - lit une valeur depuis une variable locale. Voir Exemple : Lecteur et écriture de variables à la page 133. • Evaluate Expression [texte dexpression] – évalue une expression et envoie la valeur sous la forme dun paramètre de sortie. • Unmarshall [aucun objet] – scinde les instances dun objet entrant en plusieurs sorties calculées à partir de ce dernier. • Region [aucun objet] – activité composite qui isole une partie du graphe. Equivaut à lobjet UML Interruptible Activity Region. • For Each [aucun objet] – boucle une collection dentrée pour exécuter un jeu dactions spécifiées dans lactivité décomposée. Equivaut à lobjet UML Expansion Region. • Loop Node [texte dexpression] – texte dexpression. 3. Si le type daction requiert un objet, une zone supplémentaire saffiche directement sous la liste Type daction, vous permettant de spécifier une activité, un classificateur, un attribut, un événement, une expression, une opération ou une variable sur lequel/laquelle laction agit. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. 130 PowerAMC™
  • 151. Construction de diagrammes dynamiques 4. Cliquez sur OK pour enregistrer vos modifications et revenir au diagramme. Exemple: Utilisation du type daction Call Un des types daction les plus couramment utilisés est Call, qui permet à une activité dappeler une opération de classificateur (ou une autre activité). 1. Créez une activité et appelez-là Vérification connexion. 2. Affichez sa feuille de propriétés, cliquez sur longlet Action, puis sélectionnez Call dans la liste Type daction. La zone Opération saffiche : 3. Cliquez sur loutil Créer à droite de la nouvelle zone pour afficher un Assistant permettant de choisir une opération : 4. Vous pouvez choisir un classificateur ou une activité existant, ou bien choisir den créer. Sélectionnez New Class, puis cliquez sur Suivant :Modélisation orientée objet 131
  • 152. Construction de diagrammes dynamiques 5. Spécifiez un nom pour la classe et pour lopération que vous souhaitez créer, puis cliquez sur Suivant : 6. Créez deux paramètres dentrée et un paramètre de sortie pour la nouvelle opération, puis cliquez sur Terminer. La feuille de propriétés de la nouvelle opération saffiche pour permettre daffiner sa définition. Une fois les informations appropriées spécifiez, cliquez sur OK pour revenir à la feuille de propriétés de lactivité, puis cliquez sur longlet Paramètres dentrée pour visualiser les paramètres que vous avez créés : 132 PowerAMC™
  • 153. Construction de diagrammes dynamiques Notez que, en plus de vos deux paramètres dentrée, PowerAMC en a créé un troisième, appelé "cible", avec le type de la nouvelle classe. 7. Cliquez sur OK pour enregistrer les modifications et revenir au diagramme : Lactivité affiche maintenant deux paramètres dentrée et un paramètre de sortie (le paramètre cible est caché par défaut). La classe et lopération que vous avez créées sont disponibles dans lExplorateur dobjets pour utilisation ultérieure. Exemple : Lecture et écriture de variables Les variables contiennent des valeurs temporaires qui peuvent être passées dune activité à lautre. Vous pouvez créer des variables et y accéder en utilisant les types daction Write Variable et Read Variables. Propriétés de variable Les propriétés dune variable sont les suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Type de données Spécifie le type de données de la variable. Vous pouvez choisir un type de données standard ou spécifier un classificateur. Vous pouvez utiliser les outils situés à droite de la liste pour créer un classificateur, passer en revue les classificateurs disponibles ou afficher les propriétés du classificateur sélectionné.Modélisation orientée objet 133
  • 154. Construction de diagrammes dynamiques Propriété Description Multiplicité Spécifie le nombre dinstances de la variable. Si la multiplicité est une plage de valeurs, cela signifie que le nombre de variables peut varier au moment de lexécution. Vous pouvez choisir une des valeurs suivantes : • * – de aucune à un nombre illimitée. • 0..* – de zéro à un nombre illimitée. • 0..1 – de zéro à une. • 1..* – de une à un nombre illimitée. • 1..1 – exactement une. Création dune variable : Pour créer une variable : 1. Affichez la feuille de propriétés dune activité, puis cliquez sur longlet Actions. 2. Sélectionnez le type daction Write Variable, puis cliquez sur loutil Créer à droite de la zone Variable pour créer une nouvelle variable et afficher sa feuille de propriétés. 3. Spécifiez le nom et les autres propriétés, puis cliquez sur OK pour revenir à la feuille de propriétés dactivité . Ecriture dans une variable existante : Pour écrire dans une variable existante : 1. Affichez la feuille de propriétés dune activité, puis cliquez sur longlet Actions. 2. Sélectionnez le type daction Write Variable, puis cliquez sur loutil Sélectionner un objet à droite de la zone Variable afin de choisir la variable. 3. Sélectionnez la variable appropriée dans la liste, puis cliquez sur OK pour revenir à la feuille de propriétés dactivité. Lecture dans une variable : Pour lire dans une variable : 1. Affichez la feuille de propriétés dune activité, puis cliquez sur longlet Actions. 2. Sélectionnez le type daction Read Variable, puis cliquez sur loutil Créer ou Sélectionner un objet à droite de la zone Variable afin de créer une variable ou den sélectionner une. Activités décomposées et sous-activités Une activité décomposée est une activité qui contient des sous-activités. Elle équivaut à la description dun SubactivityState et dun graphe dactivité dans UML. Lactivité décomposée se comporte comme un package spécialisé ou un conteneur. Une sous-activité peut elle-même être décomposée en sous-activités, et ainsi de suite. Remarque : Pour afficher toutes les activités situées dans des activités décomposées du modèle, cliquez sur loutil Inclure les activités décomposées dans la liste des activités accessible depuis le menu Modèle. Vous pouvez décomposer des activités soit directement dans le diagramme en utilisant une vue composite modifiable ou en utilisant des sous-diagrammes. Les sous-objets créés dans lun de ces modes peuvent être affichés dans les deux modes, mais les deux modes ne sont pas automatiquement synchronisés. La vue composite Modifiable permet de rapidement décomposer des activités et de montrer les liens directs entre les activités et les sous-activités, tandis que le mode Lecture seule (sous-diagramme) favorise une décomposition plus formelle et est plus approprié si vous utilisez de nombreux niveaux de décomposition. Vous pouvez choisir le mode daffichage des activités composites objet par objet. Pour ce faire, pointez sur un symbole, cliquez le bouton droit de la souris, puis sélectionnez le mode souhaité dans le menu Vue composite . Vous ne pouvez pas créer un package ou tout autre type de diagramme UML au sein dune activité décomposée, mais vous pouvez utiliser des raccourcis vers des packages. 134 PowerAMC™
  • 155. Construction de diagrammes dynamiques Utilisation du mode de vue composite modifiable Vous pouvez décomposer une activité et créer des sous-activités dans cette dernière tout simplement en créant ou faisant glisser dautres activités sur son symbole. Vous pouvez redimensionner le symbole parent si besoin est et y créer autant de sous-activités que vous le souhaitez. Vous pouvez décomposer une sous-activité en créant ou en faisant glisser sur son symbole une autre activité, et ainsi de suite. Les flux peuvent lier des activités situées au même niveau, ou bien lier des activités dans le diagramme parent à des sous-activités contenues dans la vue composite directe : Conversion dun activité atomique en activité décomposée Vous pouvez convertir une activité atomique en activité décomposée de lune des façons suivantes : • Appuyez sur CTRL et double-cliquez sur le symbole dactivité (vous affichez directement la sous-activité) • Affichez la feuille de propriétés dune activité puis, dans longlet Général, sélectionnez loption Activité décomposée • Pointez sur lactivité, cliquez le bouton droit de la souris, puis sélectionnez Décomposer lactivité dans le menu contextuel Lorsque vous créez une activité décomposée, un diagramme de sous-activité, initialement vide, est ajouté au-dessous de son entrée dans lExplorateur dobjets : Pour ouvrir un diagramme de sous-activité, maintenez la touche CTRL enfoncée et double-cliquez sur le symbole de lactivité décomposée, ou bien double-cliquez sur le diagramme approprié dans lExplorateur dobjets. Vous pouvez ajouter des objets dans un diagramme de sous-activité de la même façon que vous les ajoutez dans un diagramme dactivités. Toute activité que vous ajoutez à un diagramme de sous-activité fera partie de son activité décomposée parent et sera répertoriée sous lactivité décomposée dans lExplorateur dobjets. Vous pouvez créer plusieurs diagrammes de sous-activité dans une activité décomposée, mais nous vous conseillons de nen créer quun seul, à moins que vous ne soyez amené à concevoir des cas dexception, par exemple pour gérer des cas derreur. Remarque : Vous pouvez localiser nimporte quel objet ou diagramme dans lExplorateur dobjets à partir de la fenêtre de diagramme courante. Pour ce faire, pointez sur le symbole de lobjet, ou bien sur le fond du diagramme, cliquez le bouton droit de la souris, puis sélectionnez Edition > Rechercher dans lExplorateur dobjets .Modélisation orientée objet 135
  • 156. Construction de diagrammes dynamiques Conversion dun diagramme dactivités en activité décomposée Vous pouvez convertir un diagramme dactivités en activité décomposée en utilisant lAssistant Convertir en activité décomposée. Vous ne pouvez effectuer cette opération que sur un diagramme qui contient des objets. En convertissant un diagramme en activité décomposée, vous pouvez ensuite utiliser lactivité décomposée dans un autre diagramme dactivités. 1. Pointez sur le noeud du diagramme dans lExplorateur dobjets, cliquez le bouton droit de la souris et sélectionnez Convertir en activité décomposée dans le menu contextuel. ou Pointez sur le fond du diagramme, cliquez sur le bouton droit de la souris et sélectionnez Diagramme > Convertir en activité décomposée dans le menu contextuel. ou Sélectionnez Outils > Convertir en activité décomposée . 2. Saisissez un nom et un code dans la page Conversion dun diagramme en activité décomposée, puis cliquez sur Suivant pour afficher la page Sélection des objets à déplacer. 3. Sélectionnez les activités que vous souhaitez déplacer dans le nouveau diagramme dactivité décomposée. Les activités que vous sélectionnez seront déplacées dans lExplorateur dobjets sous la nouvelle activité décomposée. Celles que vous ne sélectionnez pas restent à leur emplacement actuel dans lExplorateur dobjets et seront représentées dans le nouveau diagramme de sous-activité sous la forme de raccourcis. 4. Cliquez sur Terminer pour quitter lAssistant. La nouvelle activité décomposée et son diagramme de sous-activité sont créés, et tous les objets sélectionnés pour être déplacés saffichent maintenant sous lobjet décomposé dans lExplorateur dobjets. Unités dorganisation (MOO ) Une unité dorganisation peut représenter une société, un système, un service, une organisation, un utilisateur ou un rôle, qui est responsable dune activité. Dans UML, une unité dorganisation est appelée un couloir, tandis que dans le MOO, le terme "couloir" fait référence au symbole de lunité dorganisation. Remarque : Pour activer laffichage des couloirs dunité dorganisation, sélectionnez Outils > Préférences daffichage , puis cochez la case Couloir dunité dorganisation sur la page Général, ou bien pointez sur le fond du diagramme, cliquez le bouton droit de la souris, puis sélectionnez Activer le mode Couloir. Une unité dorganisation peut être créée dans un diagramme dactivités et peut contenir les objets suivants du diagramme dactivités : 136 PowerAMC™
  • 157. Construction de diagrammes dynamiquesCréation dune unité dorganisation Vous créez une unité dorganisation afin de montrer qui est responsable de lexécution des activités . Pour pouvoir ajouter des couloirs dunité dorganisation dans vos diagrammes, vous devez sélectionner Outils > Préférences daffichage , puis cocher la case Couloirs dunité dorganisation. • Utilisez loutil Couloir dunité dorganisation dans la Palette du diagramme. • Sélectionnez Modèle > Unités dorganisation pour afficher la boîte de dialogue Liste des unités dorganisation, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateurs dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Unité dorganisation. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Création dunités dorganisation à laide de loutil Couloir Utilisez loutil Couloir dunité dorganisation dans la Palette pour créer rapidement des couloirs dunité dorganisation. Cliquez sur un couloir ou pool de couloirs existant pour ajouter un couloir au pool. Cliquez à lécart de tout couloir pour créer un nouveau pool.Propriétés dune unité dorganisation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune unité dorganisation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Unités dorganisation de lExplorateur dobjets. Longlet Général contient les propriétés suivantes :Modélisation orientée objet 137
  • 158. Construction de diagrammes dynamiques Propriété Description Nom Spécifie le nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Spécifie le nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Il peut avoir une forme abrégée et il est préférable quil ne contienne pas despace. Commentaire Spécifie un commentaire descriptif pour lobjet. Stéréotype Etend la sémantique dun objet dérivé dobjets existants, mais adaptée à vos besoins. Vous pouvez spécifier un stéréotype directement dans la liste Stéréotype ou sélectionner une valeur dans la liste si vous avez préalablement défini des stéréotypes dans une définition étendue de modèle (.XEM) incorporée ou importée ou dans le langage de processus. Une unité dorganisation peut avoir les stéréotypes prédéfinis suivants : • Rôle. Définit un rôle que lutilisateur joue. • Utilisateur. Définit un utilisateur. • Groupe. Définit un groupe dutilisateurs. • Société. Définit une société. • Organisation. Définit une organisation comme un ensemble. • Division. Définit une division au sein dune structure globale. • Service. Définit un service au sein dune structure globale. Organisation parent Spécifie une autre unité dorganisation comme unité dorganisation parent de celle-ci. Par exemple, vous pouvez souhaiter décrire une hiérarchie organisationnelle entre un service Serv1 et un chef de service ChefServ1, avec ChefServ1 comme unité dorganisation parent de Serv1. La relation entre les unités dorganisation parent et enfant peut être utilisée pour grouper des couloirs ayant le même parent. Pour plus dinformations, voir Groupement et dissociation de couloirs à la page 140 . Attachement dactivités à des unités dorganisation Vous attachez des activités à des unités dorganisation afin de rendre ces dernières responsables de ces activités. Lorsque des activités sont attachées à une unité dorganisation affichée sous forme de couloir, le nom de lunité dorganisation saffiche dans la liste Unité dorganisation de leur feuille de propriétés. Vous attachez des activités à des unités organisation en les créant dans le couloir approprié (ou en y déplaçant des activités existantes). Vous pouvez également sélectionner un nom dunité dorganisation dans la liste Unité dorganisation de la feuille de propriétés dactivité, puis cliquer sur OK pour lattacher. Pour détacher des activités dune unité dorganisation, faites-les glisser hors du couloir correspondant, ou bien sélectionnez <Aucune> dans la liste Unité dorganisation de la feuille de propriétés de chaque activité. Affichage dune activité communautaire Une activité communautaire est une activité décomposée dont les sous-activités sont gérées par plusieurs unités dorganisation. 1. Affichez la feuille de propriétés dune activité décomposée. 2. Sélectionnez Activité communautaire dans la liste Unité dorganisation, puis cliquez sur OK. Cette valeur est disponible uniquement pour les activités décomposées. 3. Dans le diagramme, redimensionnez le symbole dactivité décomposée de façon à recouvrir les couloirs appropriés. La couleur de fond du symbole change sur les couloirs selon que chacun dentre eux est ou non responsable de sous- activités. 138 PowerAMC™
  • 159. Construction de diagrammes dynamiques Dans lexemple suivant, toutes les sous-activités de Paiement sont gérées dans lunité dorganisation Comptabilité : Le fond du symbole de lactivité communautaire est plus clair et hachuré sur Ventes et Livraison car : • Elles ne gèrent pas de sous-activités • Elles nont pas de symbole dans le diagramme de sous-activité Notez que cet affichage nest pas possible en mode de vue composite.Gestion des couloirs et des pools Chaque groupe dun ou de plusieurs couloirs forme un pool. Vous pouvez créer plusieurs pools dans un diagramme, et chaque pool est généralement utilisé pour représenter une organisation distincte. Pour sélectionner un couloir individuel dans un pool, cliquez sur son en-tête : Pour sélectionner un pool, cliquez sur lun de ses couloirs ou placez le curseur au-dessus du pool, jusquà ce quapparaisse une flèche verticale pointant vers le cadre, puis cliquez pour afficher le cadre de sélection : Déplacement, copie et collage de couloirs Vous pouvez déplacer, copier et coller des couloirs et pools dans le même diagramme, ou dans un autre diagramme. Diagramme Ce qui se produit... Même diagramme Lorsque vous déplacez un couloir ou un pool au sein dun même diagramme, tous les symboles contenus dans les couloirs sont déplacés simultanément (et ce, même si certains éléments ne sont pas attachés de façon formelle), de façon à préserver la disposition générale du diagramme.Modélisation orientée objet 139
  • 160. Construction de diagrammes dynamiques Diagramme Ce qui se produit... Autre diagramme Lorsque vous déplacez un couloir ou un pool vers un autre dossier ou diagramme, les symboles contenus dans le ou les couloirs ne sont pas copiés. Si un couloir est déposé sur un autre couloir ou pool ou à sa proximité immédiate, il rejoint le pool. Dans lexemple suivant, Ventes forme un pool avec Comptabilité et Livraison, et est transféré dans un autre pool contenant Client et Service client : A lissue du déplacement, Ventes est transféré depuis son pool dorigine, et rejoint le pool contenant Client et Service client : Si le couloir déplacé est déposé à lécart de tout autre couloir ou pool, il forme de lui-même un nouveau pool, comme dans lexemple suivant : Si vous déplacez des objets liés au sein dun couloir, la largeur ou la hauteur des couloirs varie avec ces derniers. Remarque : La fonctionnalité de disposition automatique nest pas disponible pour les unités dorganisation qui saffichent sous forme de couloirs. Groupement et dissociation de couloirs Vous groupez des couloirs dunité dorganisation au sein dun pool afin de les organiser sous un parent commun ou sous un nom personnalisé. Pour grouper des couloirs au sein dun pool, pointez sur ce pool, cliquez le bouton droit de la souris, puis sélectionnez Type de groupe de couloirs , puis sélectionnez une des options suivantes : • Par parent - pour affecter le nom du dernier parent commun au groupe. Ce nom provient de la zone Unité dorganisation parent dans la feuille de propriétés des couloirs. • Personnalisé - pour affecter le nom de votre choix au groupe. Ensuite, vous devez sélectionner au moins deux couloirs attachés, puis sélectionner Symbole > Grouper les symboles dans la barre de menus afin dafficher un nom par défaut que vous pouvez modifier. Pour dissocier des couloirs, sélectionnez Séparer les symboles dans le menu contextuel du pool, ou bien sélectionnez Symbole > Séparer les symboles . 140 PowerAMC™
  • 161. Construction de diagrammes dynamiques Lexemple suivant montre un pool dépourvu de groupe : Dans lexemple suivant, Ventes et Distribution sont groupés par leur parent commun CielBleu S.A. : Dans lexemple suivant, le pool est affecté à un groupe personnalisé appelé second Semestre :Modélisation orientée objet 141
  • 162. Construction de diagrammes dynamiques Création de liens entre des pools de couloirs Vous créez des liens entre pools ou entre activités contenues dans des pools distincts afin de représenter les liens entre eux. Pour créer des liens entre pools de couloirs, il vous suffit de cliquer sur loutil Flux dans la Palette, puis de tracer un flux entre une activité dans un pool et une autre activité contenue dans un autre pool, ou bien entre deux pools. Dans lexemple suivant, les flux passent de Autoriser paiement dans le couloir Ventes à Autorisation dans le couloir Banque contenu dans un autre pool : Remarque : De tels liens entre activités contenues dans des pools distincts ne sont pas visibles lorsque les couloirs ne sont pas en mode de vue composite. Changement de lorientation des couloirs Vous pouvez choisir dorienter vos couloirs verticalement de haut en bas, ou horizontalement de gauche à droite. Tous les couloirs doivent être orientés de la même manière. 1. Sélectionnez Outils > Préférences daffichage pour afficher la boîte de dialogue Préférences daffichage. 2. Sélectionnez loption appropriée dans la zone de groupe Couloir dunité dorganisation, puis cliquez sur OK. 142 PowerAMC™
  • 163. Construction de diagrammes dynamiques Redimensionnement dun couloir Vous pouvez redimensionner des couloirs au sein dun pool en cliquant sur la ligne qui les sépare et en la faisant glisser. Si vous changez la largeur ou la hauteur dun couloir individuel, tous les symboles dactivité attacchés à ce couloir conservent leur position. Vous pouvez redimensionner un couloir en sélectionnant lune des poignées située autour du pool, puis en la faisant glisser dans la direction de votre choix. Les éventuels autres pools de votre diagramme peuvent également être redimensionnés afin de préserver la disposition générale du diagramme. Changement du format des couloirs Vous pouvez changer le format des couloirs ou dun pool en utilisant la boîte de dialogue Format de symbole. 1. Pointez sur le couloir ou le pool, cliquez le bouton droit de la souris, puis sélectionnez Format pour afficher la boîte de dialogue Format de symbole. 2. Définissez le nouveau format sur les différents onglets, puis cliquez sur OK pour revenir au diagramme.Débuts ( MOO) Un début est le point de départ du flux représenté dans le diagramme. Un début peut être créé dans les types de diagramme suivants : • Diagramme dactivités - un ou plusieurs par diagramme • Diagramme détats-transitions - un ou plusieurs par diagramme • Diagramme dinteractions - un seul par diagramme Vous ne devez pas utiliser le même début dans deux diagrammes, et vous ne pouvez pas créer des raccourcis pour des débuts. Remarque : Le début est comparé et fusionné dans la fonctionnalité de fusion de modèles, qui sassure quil ny quun seul début par activité décomposée.Modélisation orientée objet 143
  • 164. Construction de diagrammes dynamiques Création dun début Vous pouvez créer un début de lune des façons suivantes : • Utilisez loutil Début de la palette du diagramme. • Sélectionnez Modèle > Débuts pour accéder à la boîte de dialogue Liste des débuts, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Début . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun début Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun début, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Débuts de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Spécifie le nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Spécifie le nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Il peut avoir une forme abrégée et il est préférable quil ne contienne pas despace. Commentaire Spécifie un commentaire descriptif pour lobjet. Stéréotype Etend la sémantique dun objet dérivé dobjets existants, mais adaptée à vos besoins. Vous pouvez saisir des stéréotypes directement dans cette zone, ou bien ajouter des stéréotypes dans la liste en les spécifiant dans le fichier de ressource du modèle ou dans une définition étendue de modèle. Fins ( MOO) Une fin est un point de terminaison dun flux représenté dans le diagramme. Une fin peut être créée dans les types de diagrammes suivants : • Diagramme dactivités • Diagramme détats-transitions • Diagramme dinteractions Vous pouvez créer plusieurs fins au sein dun même diagramme si vous souhaitez représenter plusieurs cas de fins différents, par exemple des scénarios derreur : 144 PowerAMC™
  • 165. Construction de diagrammes dynamiques Vous pouvez également ne spécifier aucune fin si vous souhaitez représenter une activité infinie. En revanche, une activité décomposée doit toujours contenir au moins une fin. Vous ne devez pas utiliser la même fin dans plusieurs diagrammes. Vous ne pouvez pas créer des raccourcis vers des fins, mais ces dernières peuvent faire lobjet de synonymes graphiques.Création dune fin Vous pouvez créer une fin de lune des façons suivantes : • Utilisez loutil Fin de la palette du diagramme • Sélectionnez Modèle > Fins pour accéder à la boîte de dialogue Liste des fins, puis cliquez sur loutil Ajouter une ligne • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Fin . Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dune fin Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune fin, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Fins de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Spécifie le nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Spécifie le nom technique de lobjet. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Spécifie un commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique dun objet dérivé dobjets existants, mais adaptée à vos besoins. Vous pouvez saisir des stéréotypes directement dans cette zone, ou bien ajouter des stéréotypes dans la liste en les spécifiant dans le fichier de ressource du modèle ou dans une définition étendue de modèle. Terminaison Spécifie si la fin est la terminaison de lactivité entière ou simplement celle dun des flux possibles.Décisions ( MOO) Une décision spécifie quel chemin emprunter lorsquun choix parmi plusieurs options est possible. Une décision peut être créée dans les types de diagramme suivants : • Diagramme dactivités • Diagramme dinteractionsModélisation orientée objet 145
  • 166. Construction de diagrammes dynamiques Une décision peut avoir une ou plusieurs transitions entrantes et une ou plusieurs transitions sortantes, chacune dotée dune condition de garde distincte. Une condition de garde est une condition qui doit être satisfaite pour quun flux associé exécute une action. Parmi ces transitions, les conditions de garde ne doivent pas se recouper afin déviter toute ambiguïté mais doivent couvrir toutes les possibilités afin déviter un gel du processus. Une décision peut représenter : • Une branche conditionnelle : un flux dentrée et plusieurs flux de sortie. Dans lexemple suivant, le flux de gauche contrôle si lâge spécifié dans le formulaire de candidature est inférieur à 18 ans, et à droite si lâge est supérieur à 65 ans, et prend une autre route si lâge nest pas mentionné : Vous pouvez spécifier une condition sur la décision afin de factoriser les conditions attachées aux flux. Dans lexemple suivant, la condition Total * NB + TVA > 10.000 est saisie dans longlet Condition de la feuille de propriétés dune décision, et True et False sont saisis dans les onglets Condition des flux : • Une fusion : plusieurs flux entrants et un seul flux sortant. Dans lexemple suivant, les flux Subscription et Charge account fusionnent pour devenir le flux Ship order : Une décision permet de créer des flux complexes de type : • if ... then ... else ... • switch ... case ... • do ... while ... • loop • for ... next ... Remarque : Il nest pas possible dattacher deux flux de directions opposées au même angle dun symbole de décision. Création dune décision Vous pouvez créer une décision de lune des façons suivantes • Utilisez loutil Décision de la palette du diagramme 146 PowerAMC™
  • 167. Construction de diagrammes dynamiques • Sélectionnez Modèle > Décisions pour accéder à la boîte de dialogue Liste des décisions, puis cliquez sur loutil Ajouter une ligne • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Décision Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Propriétés dune décision Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dune décision double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Décisions de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Spécifie le nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Spécifie le nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Il peut avoir une forme abrégée et il est préférable quil ne contienne pas despace. Commentaire Spécifie un commentaire descriptif pour lobjet. Stéréotype Etend la sémantique dun objet dérivé dobjets existants, mais adaptée à vos besoins. Vous pouvez saisir des stéréotypes directement dans cette zone, ou bien ajouter des stéréotypes dans la liste en les spé- cifiant dans le fichier de ressource du modèle ou dans une définition étendue de modèle. Type Valeur calculée en lecture seule montrant le format de la décision : • Incomplet - Aucune transition entrante ou sortante na été définie ou une transition entrante et une transition sortante ont été définies • Branche conditionnelle – Une transition entrante et plusieurs transitions sortantes ont été définies • Fusion - Plusieurs transitions entrantes et une transition sortante ont été définies Onglet Condition de la feuille de propriétés dune décision Longlet Condition contient les propriétés suivantes : Propriété Description Alias Spécifie un nom abrégé pour la condition, à afficher en regard de son symbole dans le diagramme. Condition (zone de Spécifie une condition à évaluer pour déterminer de quelle façon la décision doit être traversée. Vous texte) pouvez saisir nimporte quelle information appropriée dans cette zone, mais aussi ouvrir, insérer et enre- gistrer des fichiers de texte. Vous pouvez afficher directement longlet condition en pointant sur le symbole de la décision dans le diagramme, puis en cliquant le bouton droit de la souris et en sélectionnant Condition.Synchronisations ( MOO) Une synchronisation permet de scinder ou de synchroniser le contrôle entre plusieurs actions concurrentes. Une synchronisation peut être créée dans les diagrammes suivants : • Diagramme dactivitéModélisation orientée objet 147
  • 168. Construction de diagrammes dynamiques • Diagramme détats-transitions • Diagramme dinteractions Les synchronisations sont représentées sous la forme de traits verticaux ou horizontaux. Vous pouvez changer lorientation du symbole en pointant sur ce dernier, en cliquant le bouton droit de la souris, puis en sélectionnant Afficher verticalement ou Afficher horizontalement dans le menu contextuel. Une synchronisation peut être une : • Fourche - Scinde un flux entrant en plusieurs flux sortants indépendants exécutés en parallèle: • Jointure – Fusionne plusieurs flux entrants en un seul flux sortant. Tous les flux entrants doivent atteindre la jointure avant que le flux sortant unique ne puisse poursuivre : Dans lexemple suivant, le flux provenant de la première synchronisation est scindé en deux flux séparés entrant dans les processus Check Customer Account et Check Stock. Les deux flux sont ensuite fusionnés en une autre synchronisation qui produit un flux unique, ce dernier aboutissant au processus Process Order : Création dune synchronisation Vous pouvez créer une synchronisation de lune des façons suivantes : • Utilisez loutil Synchronisation de la palette du diagramme • Sélectionnez Modèle > Synchronisations pour accéder à la boîte de dialogue Liste des synchronisations, puis cliquez sur loutil Ajouter une ligne • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Synchronisation Par défaut, le symbole de synchronisation est créé horizontalement. Pour commuter entre laffichage horizontal et laffichage vertical, cliquez le bouton droit de la souris, puis sélectionnez Changer en vertical ou Changer en horizontal dans le menu contextuel. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dune synchronisation Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun synchronisation, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Synchronisations de lExplorateur dobjets. 148 PowerAMC™
  • 169. Construction de diagrammes dynamiques Longlet Général contient les propriétés suivantes : Propriété Description Nom Spécifie le nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Spécifie le nom technique de lobjet. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Spécifie un commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique dun objet dérivé dobjets existants, mais adaptée à vos besoins. Vous pouvez saisir des stéréotypes directement dans cette zone, ou bien ajouter des stéréotypes dans la liste en les spécifiant dans le fichier de ressource du modèle ou dans une définition étendue de modèle. Dépassement de délai Définit un délai dattente maximal avant que toutes les transitions se terminent. Vide lorsque la valeur est égale à zéro. Type [lecture seule] Calcule la forme de la synchronisation • Incomplet - Aucune transition entrante ou sortante na été définie ou une transition entrante et une transition sortante ont été définies. • Branche conditionnelle – Une transition entrante et plusieurs transitions sortantes ont été définies • Fusion - Plusieurs transitions entrantes et une transition sortante ont été définiesFlux ( MOO) Un flux est la route que le flux de contrôle emprunte pour transiter entre des objets. Lacheminement du flux seffectue via lutilisation de conditions de garde définies sur les flux. Si la condition est remplie, le contrôle est passé à lobjet suivant. Un flux peut être créé dans les types de diagramme suivants : • Diagramme dactivités • Diagramme dinteractions Un flux entre une activité et un noeud dobjet indique que lexécution de lactivité met un objet dans un état particulier. Lorsquun événement particulier se produit ou que des conditions particulières sont remplies, le flux de contrôle passe de lactivité au noeud dobjet. Un flux entre un noeud dobjet et une activité signifie que lactivité utilise cet état particulier dans son exécution. Dans les deux cas, le flux est représenté sous la forme dune simple flèche. Dans lexemple suivant, le flux lie le processus Traiter commande au processus Envoyer par la poste : Un flux peut lier des raccourcis. Un flux accepte les raccourcis aux deux extrémités afin dempêcher son déplacement automatique lorsquun processus est déplacé. Dans ce cas, le processus est déplacé et laisse un raccourci, mais contrairement aux autres liens, le flux nest pas déplacé. Les raccourcis de flux nexistent pas, et les flux restent en place dans tous les cas. Les règles suivantes sappliquent : • Les flux réflexifs (le processus source est en même temps le processus de destination) sont admis sur les processus.Modélisation orientée objet 149
  • 170. Construction de diagrammes dynamiques • Deux flux distincts peuvent être définis entre la même paire dobjets source et destination, on parle alors de flux parallèles. Remarque : Lorsque des flux sont comparés et fusionnés par la fonctionnalité de fusion de modèles, elles sont mises en correspondance dabord par événement déclencheur, puis par leur nom calculé. Lorsque deux flux correspondent, les actions de déclenchement sont automatiquement mises en correspondance car il ne peut y avoir plusieurs actions de déclenchement. Création dun flux Vous pouvez créer un flux de ressource de lune des façons suivantes : • Utilisez loutil Flux/Flux de ressource de la palette du diagramme • Sélectionnez Modèle > Flux pour accéder à la boîte de dialogue Liste des flux, puis cliquez sur loutil Ajouter une ligne • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Flux Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun flux Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun flux, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Flux de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Spécifie le nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécialistes de savoir à quoi sert lélément. Code Spécifie le nom technique de lobjet. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Spécifie un commentaire descriptif relatif à lobjet. Source Spécifie lobjet dont part le flux. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Vous pouvez également afficher la feuille de propriétés de lobjet source en cliquant sur le bouton Source situé dans la partie supérieure de la feuille de propriétés de lobjet courant. Destination Spécifie lobjet auquel le flux aboutit. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Vous pouvez également afficher la feuille de propriétés de lobjet de destination en cliquant sur le bouton Destination situé dans la partie supérieure de la feuille de propriétés de lobjet courant. Stéréotype Etend la sémantique dun objet dérivé dobjets existants, mais adaptée à vos besoins. Vous pouvez saisir des stéréotypes directement dans cette zone, ou bien ajouter des stéréotypes dans la liste en les spécifiant dans le fichier de ressource du modèle ou dans une définition étendue de modèle. 150 PowerAMC™
  • 171. Construction de diagrammes dynamiques Propriété Description Type de flux Définit le type du flux. Vous pouvez créer vos propres types de flux dans la liste Type de flux, ou bien sélectionner lune des valeurs suivantes : • Succès. Définit un flux terminé avec succès. • Dépassement de délai. Définit loccurrence dun dépassement de délai. • Erreur technique. • Erreur de gestion. • Compensation. Définit un flux de compensation. Le type de flux nest pas disponible si vous associez un événement au flux sur longlet Condition. Poids Spécifie le nombre dobjets consommés à chaque traversée. Remarque : Vous pouvez afficher les flux entrants et sortants dun objet à partir de la feuille de propriétés de ce dernier en cliquant sur les sous-onglets Flux entrants et Flux sortants de longlet Dépendances. Onglet Condition de la feuille de propriétés dun flux Propriété Description Alias Nom abrégé de la condition, à afficher en regard de son symbole dans le diagramme. Condition (zone de Spécifie une condition à évaluer pour déterminer de quelle façon le flux doit être traversé. Vous pouvez texte) saisir toute information appropriée dans cette zone, mais aussi ouvrir, insérer et enregistrer des fichiers de texte. Vous pouvez afficher directement longlet Condition en pointant sur le symbole du flux dans le diagramme, en cliquant le bouton droit de la souris et en sélectionnant Condition. Onglet Paramètres de la feuille de propriétés dun flux Longlet Paramètres répertorie les paramètres passés par le flux. Cette liste est complétée automatiquement lorsque vous tracez un flux entre deux paramètres dactivité . Onglet Transformations de la feuille de propriétés dun flux Longlet Transformations spécifie une transformation de données à appliquer pour faire entrer des jetons. Par exemple, elle peut extraire une valeur dun attribut dun objet dentrée.Noeuds dobjet (MOO) Un noeud dobjet est lassociation entre un objet (instance dune classe) et un état. Il représente un objet dans un état particulier. Le symbole du noeud dobjet est un rectangle, comme illustré ci-dessous : Un noeud dobjet peut être créé dans les types de diagramme suivants : • Diagramme dactivités Dans le diagramme dactivités, un même objet peut évoluer après que plusieurs actions définies par des activités aient été exécutées. Par exemple, un document peut évoluer en partant de son état initial vers un brouillon, puis vers une version corrigée avant de passer finalement à létat de document approuvé. Vous pouvez tracer une lien allant dune activité à un noeud dobjet, et inversement :Modélisation orientée objet 151
  • 172. Construction de diagrammes dynamiques • Flux allant dune activité à un noeud dobjet - signifie que lexécution de lactivité met lobjet dans un état spécifique. Représente alors le résultat dune activité. • Flux allant du noeud dobjet à une activité - signifie que lactivité utilise cet état spécifique dans son exécution. Représente un flux de données entre ces deux éléments. Lorsquune activité met un objet dans un état et que cet objet est immédiatement réutilisé par une autre activité, cela dénote une transition entre deux activités avec un échange de données, et le noeud dobjet représente cet échange de données. Par exemple, les noeuds dobjet Commande approuvée et Facture éditée sont liés aux classes Commande et Facture, qui sont représentées dans un diagramme de classe distinct : Création dun noeud dobjet Vous pouvez créer un noeud dobjet de lune des façons suivantes : • Utilisez loutil Noeud dobjet dans la Palette du diagramme. • Sélectionnez Modèle > Noeuds dobjet pour afficher la boîte de dialogue Liste des états dobjet, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Noeud dobjet . • Faites glisser un classificateur depuis lExplorateur dobjets dans un diagramme dactivités. Le nouveau noeud dobjet sera lié au nom du classificateur et affichera son nom. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales. Propriétés dun noeud dobjet Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun noeud dobjet, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Noeuds dobjet de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Commentaire Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Type de données Spécifie le type de données du noeud dobjet. Vous pouvez utiliser les outils à droite de la liste pour créer un classificateur, parcourir larborescence des classificateurs disponibles ou afficher les propriétés du classificateur sélectionné. Etat Spécifie létat du noeud dobjet. Vous pouvez saisir le nom dun état dans cette zone ou, si un classi- ficateur a été spécifié comme type de données, sélectionner un de ses états dans la liste. Vous pouvez utiliser les outils à droite de la liste pour créer un état, parcourir larborescence des états disponibles ou afficher les propriétés de létat sélectionné. 152 PowerAMC™
  • 173. Construction de diagrammes dynamiquesEtats (MOO) Un état représente une situation lors de la vie dun classificateur qui est généralement spécifiée par des conditions. Il peut également être défini comme la situation dun classificateur en attente dévénements. La stabilité et la durée sont deux caractéristiques dun état. Un état peut être créé dans les types de diagramme suivants : • Diagramme détats-transitions Un état peut être atomique ou décomposé : • Un état atomique ne contient pas de sous-état, et son symbole se présente comme suit : • Un état décomposé contient des sous-états, qui sont représentés par un sous-diagramme, et ont un symbole qui se présente comme suit : Pour plus dinformations sur les états décomposés, reportez-vous à la section Activités décomposées et sous-activités à la page 155. Plusieurs états dun diagramme détats-transitions correspondent à plusieurs situations lors de la vie du classificateur. Les événements ou conditions définis sur les transitions sortantes définissent la stabilité dun état. Certaines actions peuvent être associées à un état, tout particulièrement lorsque lobjet entre dans létat ou le quitte. Certaines actions peuvent également être effectuées lorsque des événements se produisent dans létat ; ces actions sont appelées transitions internes et ne provoquent pas de changement de létat. Vous ne pouvez pas utiliser des raccourcis vers des états. Faire glisser un cas dutilisation, un composant, ou une classe dans un diagramme détats-transitions Le diagramme détats-transitions décrit le comportement dun classificateur. Pour mettre en exergue la relation entre un classificateur et un état, vous pouvez définir le classificateur de contexte dun état à laide de la liste Classificateur dans la feuille de propriétés de létat. Vous liez ainsi un état à un cas dutilisation, à un composant ou à une classe. Vous avez également la possibilité de déplacer, copier/coller ou bien glisser-déposer une classe, un cas dutilisation ou un composant dans un diagramme détats-transitions pour créer automatiquement un état associé à lélément déplacé.Création dun état Vous pouvez créer un état de lune des façons suivantes : • Utilisez loutil Etat dans la Palette du diagramme. • Sélectionnez Modèle > Etats pour afficher la boîte de dialogue Liste des états, puis cliquez sur loutil Ajouter une ligne. • Pointez sur le modèle ou le package dans lExplorateur dobjets, cliquez le bouton droit de la souris, puis sélectionnez Nouveau > Etat . • Faites glisser une classe, un cas dutilisation ou un composant depuis lExplorateur dobjets dans le diagramme. Pour obtenir des informations plus générales sur la création dobjets, voir "Création dobjets" dans le chapitre Objets du Guide des fonctionnalités générales.Modélisation orientée objet 153
  • 174. Construction de diagrammes dynamiques Propriétés dun état Vous pouvez modifier les propriétés dun objet à partir de sa feuille de propriétés. Pour afficher la feuille de propriétés dun état, double-cliquez sur son symbole dans le diagramme ou sur lentrée correspondante dans le dossier Etats de lExplorateur dobjets. Longlet Général contient les propriétés suivantes : Propriété Description Nom Nom de lélément. Il doit sagir dun nom clair et explicite, qui permette à des utilisateurs non spécia- listes de savoir à quoi sert lélément. Code Nom technique de lélément. Ce nom est utilisé pour la génération de code ou de scripts. Comment Commentaire descriptif relatif à lobjet. Stéréotype Etend la sémantique de lobjet au-delà de la définition UML. Classificateur Classificateur lié à létat. Il peut sagir dun cas dutilisation, dune classe ou dun composant. Lorsquun classificateur est sélectionné, il saffiche entre crochets après le nom de létat dans lExplorateur dob- jets. Vous pouvez utiliser les outils à droite de la liste pour créer un objet, parcourir larborescence des objets disponibles ou afficher les propriétés de lobjet sélectionné. Etat composite Si vous sélectionnez loption Etat décomposé, létat devient