Guide de l utilisateur de Borland Together Developer Borland Together. Solutions de modélisation agiles et intégrées
|
|
|
- Violette Petit
- il y a 10 ans
- Total affichages :
Transcription
1 Guide de l utilisateur de Borland Together Developer 2005 Borland Together Solutions de modélisation agiles et intégrées
2 Borland Software Corporation 100 Enterprise Way Scotts Valley, California Les applications mentionnées dans ce manuel sont brevetées, ou en attente de brevet, par TogetherSoft Corporation, filiale à 100 % de Borland Software Corporation. Reportez-vous au CD ou à la boîte de dialogue A propos pour avoir la liste des brevets. Ce document ne donne aucun droit sur ces brevets. COPYRIGHT TogetherSoft Corporation, filiale à 100 % de Borland Software Corporation. Tous droits réservés. Tous les noms de marques et de produits Borland sont des marques de fabrique ou des marques déposées de Borland Software Corporation aux Etats-Unis et dans d autres pays. Tous les autres produits sont la propriété de leurs fabricants respectifs. tdevelug 1E0R PDF
3 Table des matières Borland Together Developer Fonctionnalités prises en charge Documentation Obtention et utilisation de l aide Conventions Chapitre 1 Visite de Together 5 Composants de l interface utilisateur de Together.. 5 Menus et barre d outils Volets de Together Affichage ou masquage des volets Redimensionnement ou agrandissement des volets en plein écran Ancrage, désancrage, déplacement et mise en icône de volets Volets de navigation Navigateur de modèle Navigateur de favoris Navigateur de diagrammes Volet projet Volet contenu Editeur de diagramme Inspecteur Basculement entre les vues de l inspecteur.. 12 Utilisation du volet Inspecteur Nœuds de l inspecteur Recherche des emplacements de nœuds, fichiers et dossiers Préférences de configuration Affichage et modification des options Chapitre 2 Utilisation de projets dans Together 19 Notions fondamentales sur les projets Répertoire racine du projet Fichier projet Le diagramme <default> Métamodèle d imbrication Stockage physique des diagrammes et des éléments de modélisation Eléments de modélisation autonomes Filemates Comportement des opérations liées au Presse-papiers Création de projets Création d un projet Together classique Création d un projet UML 2.0 à partir d un projet UML Création d un projet à partir d un modèle MDL.. 25 Création d un projet à partir d un modèle XMI Projet JBuilder à partir d un modèle Designer Projet JBuilder avec diagrammes UML 1.4 créé ex-nihilo Ouverture, fermeture et sélection de projets Modification des propriétés du projet Gestion des ressources d un projet Conversion de projets UML 1.4 en projets UML Conversion d un élément Etat sur un diagramme d activité Conversion de l élément Composant sur un diagramme de déploiement Conversion des éléments de modélisation Périmètre du système et Travée Conversion de débranchements et de jointures. 33 Utilisation de fichiers et de dossiers Ajout et suppression de fichiers Ouverture et fermeture de fichiers Passage d un fichier à l autre Utilisation des systèmes de contrôle de version pour les fichiers et les dossiers de Together.. 35 Utilisation de favoris Chapitre 3 Utilisation des diagrammes 37 Création de diagrammes dans des projets Création de diagramme à l aide du menu principal ou de la barre d outils Utilisation de la fonction hyperlien pour créer des diagrammes Clonage de diagrammes Renommer des diagrammes Suppression de diagrammes Ouverture et fermeture de diagrammes Affichage et organisation de diagrammes Visualisation Vue globale Affichage et masquage d éléments Zoom Gestion de la disposition d un diagramme Création d une disposition personnalisée Alignement des éléments de modélisation Dessin d éléments de modélisation Dessin des éléments d un nœud Dessin de liens de relation Dessin de liens avec des points de courbure. 46 Dessin d un lien réflexif Création de raccourcis Manipulation d éléments de nœuds et de liens Utilisation de la grille Sélection d éléments de nœuds et de liens Menus contextuels Modification des propriétés Modifications dans l Inspecteur Edition in-situ Déplacement et copie d éléments par glisser-déposer Prise en charge complète du glisser-déposer.. 50 Copie, clonage et déplacement d éléments et raccourcis Utilisation du presse-papiers et du glisser-déposer sur des raccourcis.. 51 Redimensionnement des éléments d un nœud. 51 i
4 Réacheminement et classement des liens Utilisation des liens d association Définition du type de lien Libellés de lien Rôle client et fournisseur Cardinalité client et fournisseur Qualificateurs client et fournisseur Ajouts de qualificateurs d attributs Synchronisation avec le navigateur de modèle.. 56 Annuler Rétablir Dépendances de package Annotation de diagrammes Utilisation des notes Modification des notes et de leurs propriétés Enregistrement et copie des images des diagrammes Copie de l image Enregistrement d une image Hyperliens et diagrammes Création d hyperliens Visualisation des hyperliens Navigation dans les hyperliens Suppression d hyperliens Hyperliens entre projets Utilisation des fonctions de recherche Recherche sur les diagrammes Recherche par requête Résultat de la recherche Recherche rapide Recherche d un élément référencé Chapitre 4 Modélisation 67 Types de diagramme pris en charge Prise en charge OCL (Object Constraint Language). 68 Editeur OCL Diagrammes UML Utilisation des diagrammes UML 1.4 de packages et de classes Diagramme de classes Diagramme de packages Eléments des diagrammes de classes et de packages Définition de classes internes (classes inner). 74 Création des liens d implémentation Création d associations, d agrégations et de compositions Classes d associations et associations n-aire. 75 Création de membres Modification des propriétés des éléments de diagramme et des membres Configuration des contrôles du compartiment. 77 Prise en charge de Java 5.0 dans les diagrammes de classes UML Génériques Enumérations Type d annotation Utilisation des diagrammes de séquence et de collaboration (interaction) UML Diagramme de séquence Diagrammes de collaboration Eléments du diagramme Conversion entre diagrammes de séquence et de collaboration Options du diagramme de séquence Instanciation des classes Importation de classes Utilisation des messages Création de blocs d instructions Utilisation des objets et des lignes de vie Utilisation du code d implémentation dans un diagramme de séquence Utilisation des diagrammes de cas d utilisation UML Eléments du diagramme Création de séquences de navigation dans les diagrammes de cas d utilisation...91 Utilisation des diagrammes d états UML Eléments du diagramme Dessin de transitions réflexives Création de transitions internes Spécification des actions d entrée et de sortie.93 Création d éléments différés Création de sous-états imbriqués Affichage de plusieurs sources de transition..94 Création d un historique Modélisation d états complexes Utilisation des diagrammes d activité UML Eléments des diagrammes d activité UML Création de transitions internes Création d éléments différés Spécification des actions d entrée/sortie pour un état Création de sous-états imbriqués Création de transitions à sources et cibles multiples Utilisation des diagrammes de composants UML Eléments du diagramme Modélisation des diagrammes de composants Utilisation des diagrammes de déploiement UML Eléments du diagramme Modélisation des diagrammes de déploiement Diagrammes UML Utilisation des diagrammes UML 2.0 de packages et de classes Eléments des diagrammes de classes UML Utilisation d interfaces Utilisation des diagrammes d interaction (séquence et communication) UML Utilisation d interactions Eléments du diagramme Lignes de vie Invariants d état Fragments combinés ii
5 Références aux interactions. Utilisation de l interaction Vérificateur d intégrité Utilisation des diagrammes de cas d utilisation UML Eléments du diagramme Utilisation des cas d utilisation Création de séquences de navigation dans les diagrammes de cas d utilisation Utilisation des diagrammes d états UML Eléments du diagramme Création d états Modification d états Création de membres d états et de régions. 127 Création de transitions pour connecter des états Modification des transitions Création d un historique Utilisation des diagrammes d activité UML Eléments des diagrammes d activité UML Création, regroupement et décomposition d actions et d activités Création de paramètres d activités Création de connecteurs d entrée, de sortie et de valeur Création de liens pour les flots de contrôle et les flots d objets Création de flots de contrôle à plusieurs sources ou cibles Création de branchements conditionnels et de fusions Utilisation des diagrammes de composants UML Eléments du diagramme Notation Utilisation des spécifications d instances Utilisation des diagrammes de déploiement UML Eléments du diagramme Modélisation des diagrammes de déploiement Utilisation des diagrammes de structures composites UML Eléments du diagramme Création d une structure interne et de ports. 138 Définition d instances de collaboration Liaison de rôle Utilisation d interfaces Diagrammes (relations-entités) de modélisation de données Utilisation des diagrammes relations-entités (ERD) Modèles de données logique et physique Création de diagrammes relations-entités Notation Niveaux d affichage Eléments du diagramme Vérification du modèle logique Comparaison de modèles Notions de base de la comparaison Configuration des types d éléments de modèle Utilisation de configurations multiples Utilisation de la comparaison de modèles Comparaison d entités avec les propriétés personnalisées Analyse des résultats de la comparaison Schéma de couleur Profilage UML Profils disponibles Activation et désactivation de profils Profil Together Profil UML en couleur Profil UML de processus métier Profil UML de processus de développement de logiciel Chapitre 5 Génération du code source 157 Expert Génération de code source Chapitre 6 Génération de la documentation 159 Génération de la documentation des projets Génération de la documentation d un projet ouvert Génération de la documentation HTML Génération de la documentation à l aide d un template Paramètres de la boîte de dialogue Automatisation de la génération de documentation. 163 Lancement du générateur de documentation à partir de la ligne de commande Options de génération de la documentation Option de génération de documentation à l aide d un template Option de génération de la documentation HTML Chapitre 7 Patterns 167 Notions de base sur les patterns Registre de patterns et gestionnaire de patterns Synchronisation des patterns Filtrage et tri des patterns Modification des noms Création de groupes logiques de patterns Patterns de code source Catégories de patterns de code source Propriétés du pattern Utilisation des macros de patterns Macros définies par l utilisateur Création de patterns de code Modification des patterns de code Suppression des patterns de code et des dossiers iii
6 Patterns binaires Comportement des patterns Création de patterns binaires en utilisant l API ouverte Création de descriptions de patterns Création d un exemple de pattern personnalisé Patterns de modélisation Création de patterns de modélisation Patterns de première classe Reconnaissance des patterns Application des patterns Migration de patterns utilisateur Copiez les patterns existants dans le dossier template Utilisation des anciens patterns binaires Chapitre 8 Exécution des audits et métriques 189 Audits Exécution des audits Affichage du résultat des audits Utilisation du rapport des résultats Navigation jusqu au code source Tri des résultats Mise à jour des résultats Impression des résultats des audits Exportation des résultats d audits Correction automatique des violations d audit Enregistrement d ensembles d audits à exécuter Métriques Comment utiliser les métriques? Exécution des métriques Résultats des métriques Tri des résultats dans le tableau Filtrage des résultats Affichage des graphiques de résultats Graphe de Kiviat Impression des résultats Impression des résultats à partir du tableau. 202 Impression des résultats graphiques Exportation des résultats des métriques Création de rapports HTML avec hyperliens pour les métriques Enregistrement et chargement des résultats des métriques Comparaison des résultats des métriques Enregistrement d ensembles de métriques à exécuter Sources d information supplémentaires Définitions des audits Audits de révision de code Fragments de code similaires (LIKE) Audits sur le style de codage L instruction switch devrait inclure un case default (SSSIDC) Accès aux membres statiques par le nom de classe d un descendant (ASMDCN) Accès aux membres statiques via des objets (ASMO) Affectations de paramètres formels (AFP) Affectations complexes (CA) Clauses d initialisation ou de mise à jour complexes dans une boucle for (CIUCFL). 215 Fichiers longs (LF) Lignes longues (LL) Instructions multiples sur une ligne (MSOL). 215 Opérateur de négation dans une instruction if (NOIS) Attribut statique non final (NFSA) Littéraux numériques dans le code (NLC) L opérateur?: ne devrait pas être utilisé (OSNBU) Mettre la condition entre parenthèses dans l opérateur?: (PCO) Placer les déclarations au début des blocs (PDBB) Fournir l incrément dans l instruction for ou utiliser l instruction while (PIFS) Référencement des packages d implémentation (RIP) Littéraux chaîne (SL) Utilisation explicite de this pour accéder aux membres de classe (UTE) Utiliser un opérateur d affectation abrégé (UAAO) Audits d erreurs critiques Séparation commande/requête (CQS) Masquage des attributs hérités (HIA) Masquage des méthodes statiques héritées (HISM) Masquage des noms (HN) Constructeurs ou méthodes correspondants inaccessibles (IMCM) Multiples déclarations visibles avec le même nom (MVDSN) Surcharge dans une sous-classe (OWS) Redéfinition de méthode non abstraite par une méthode abstraite (ONAMAM) Redéfinition de méthode privée (OPM) Attribut statique utilisé pour l initialisation (SAUI) Audits sur le style de déclaration Emplacement incorrect des déclarateurs de tableau (BLAD) Les attributs privés constants doivent être correctibles (CPASBF) Les variables constantes devraient être déclarées final (CVSBF) Déclaration de chaque variable dans une instruction séparée (DVSS) Les classes instanciées devraient être déclarées final (ICSBF) Lister en premier les membres publics et package (LPPMF) Ordre de déclaration des membres de classe (ODCM) iv
7 Ordre des modificateurs (OM) Placer en dernier la fonction Main (PMFL) Placer d abord la classe publique (PPCF) Audits de documentation Balise incorrecte dans des commentaires Javadoc (BTJC) Détection des associations basées sur des collections (DCBA) Fournir des commentaires de fichier (PFC). 230 Fournir des commentaires Javadoc (PFC) Audits sur le style de nommage Un nom de classe devrait correspondre à un nom de fichier (CNSMFN) Noms des classes d exception (NEC) Conventions de nommage (NC) Rassemblement des opérations de même nom (POSNT) Utiliser des noms de variable conventionnels (UCVN) Audits de performances Ajout à une chaîne dans une boucle (ASWL) 233 Expressions de boucles complexes (CLE) Déclaration de variables dans des boucles (DVIL) Concaténations de chaînes multiples (MSC). 235 Trop de case dans l instruction Switch (TMSSC) Audits d erreurs possibles Modificateur synchronized (SM) Affectations dans une expression conditionnelle (ACE) Affectation de variables de boucle for (AFLV) Appel à super.finalize() à partir de finalize (CSF) Comparaison entre types à virgule flottante (CFPT) Constantes avec valeurs égales (CEV) Blocs catch vides (ECB) Corps dans un bloc (EBWB) Initialisation explicite de toutes les variables (EIAV) Mélange d opérateurs logiques sans parenthèse (MLOWP) Attributs publics et de package (PPA) Renvoi d une valeur Null au lieu d une collection vide (RNEC) Instruction avec un corps vide (SEB) Instruction break ou commentaire dans l instruction Case (SBCCS) Utiliser equals au lieu de = = (UE) Utilisation de L au lieu de l à la fin des constantes entières (UL) Audits de contenu superflu Opérations d égalité sur des arguments booléens (EOBA) Construction de liste d importation (ILC) Modificateurs d interface obsolètes (OIM) Evaluations instanceof superflues (UIOE) Casts superflus (UC) Modificateurs de membres d interface inutiles (UIMM) Parenthèses d instruction return inutiles (URSP) Variables locales et paramètres formels inutilisés (ULVFP) Membres de classes privés non utilisés (UPCM) Définitions des métriques Métriques de base Lines of Code (LOC) (lignes de code) Number of Attributes (NOA) (nombre d attributs) Number of Classes (NOC) (nombre de classes) Number of Constructors (NOCON) (nombre de constructeurs) Number of Members (NOM) (nombre de membres) Number of Operations (NOO) (nombre d opérations) Number of Import Statements (NOIS) (nombre d instructions Import) Métriques de cohésion Lack of Cohesion of Methods 1 (LOCOM1) (manque de cohésion des méthodes 1) Lack of Cohesion of Methods 2 (LOCOM2) (manque de cohésion des méthodes 2) Lack of Cohesion of Methods 3 (LOCOM3) (manque de cohésion des méthodes 3) Métriques de complexité Attribute Complexity (AC) (complexité des attributs) Cyclomatic Complexity (CC) (complexité cyclomatique) Number of Remote Methods (NORM) (nombre de méthodes Remote) Response for Class (RFC) (réponse pour la classe) Weighted Methods Per Class 1 (WMPC1) (méthodes pondérées par classe 1) Weighted Methods Per Class 2 (WMPC2) (méthodes pondérées par classe 2) Métriques de couplage Change Dependency Between Classes (CDBC) (modification de la dépendance entre classes) Coupling Between Objects (CBO) (couplage entre objets) Coupling Factor (CF) (facteur de couplage) Data Abstraction Coupling (DAC) (couplage avec abstraction de données) FanOut (FO) (déploiement) Method Invocation Coupling (MIC) (couplage des appels de méthode) Violations of Demeters Law (VOD) (violations de la loi de Demeters) v
8 Métriques d encapsulation Attribute Hiding Factor (AHF) (facteur de masquage des attributs) Method Hiding Factor (MHF) (facteur de masquage des méthodes) Métriques Halstead Halstead Difficulty (HDiff) (difficulté Halstead) Halstead Effort (HEff) (travail Halstead) Halstead Program Length (HPLen) (longueur de programme Halstead) Halstead Program Vocabulary (HPVoc) (vocabulaire du programme Halstead) Halstead Program Volume (HPVol) (volume du programme Halstead) Number of Operands (NOprnd) (nombre d opérandes) Number of Operators (NOprtr) (nombre d opérateurs) Number of Unique Operands (NUOprnd) (nombre d opérandes uniques) Number of Unique Operators (NUOprtr) (nombre d opérateurs uniques) Métriques sur l héritage Attribute Inheritance Factor (AIF) (facteur d héritage des attributs) Method Inheritance Factor (MIF) (facteur d héritage des méthodes) Depth of Inheritance Hierarchy (DOIH) (profondeur de la hiérarchie des héritages) 262 Number of Child Classes (NOCC) (nombre de classes enfant) Métriques sur le couplage fondé sur l héritage. 263 Total Reuse in Descendants Unitary (TRDu) (total des réutilisations dans l unitaire des descendants) Total Reuse in Descendants percentage (TRDp) (total des réutilisations dans le pourcentage de descendants) Total Reuse from Ancestors unitary (TRAu) (total des réutilisations depuis l unitaire des ancêtres) Total Reuse from Ancestors percentage (TRAp) (total des réutilisations depuis le pourcentage des ancêtres) Métriques du maximum Maximum Number of Levels (MNOL) (nombre maximal de niveaux) Maximum Number of Parameters (MNOP) (nombre maximal de paramètres) Maximum Size of Operation (MSOO) (taille maximale de l opération) Métriques relatives au polymorphisme Number of Added Methods (NOAM) (nombre de méthodes ajoutées) Number of Overridden Methods (NOOM) (nombre de méthodes remplacées) Polymorphism Factor (PF) (facteur de polymorphisme) Métriques sur les ratios Comment Ratio (CR) (ratio de commentaire) True Comment Ratio (TCR) (ratio des commentaires véritables) Percentage of Package Members (PPkgM) (pourcentage de membres du package) Percentage of Private Members (PPrivM) (pourcentage de membres privés) Percentage of Protected Members (PProtM) (pourcentage de membres protégés) Percentage of Public Members (PPubM) (pourcentage de membres publics) Chapitre 9 Importation et exportation de modèles 273 Importation et exportation de modèles XMI Exportation de modèles XMI Importation de modèles XMI Importation de modèles IBM Rational Rose (MDL). 274 Importation de modèles MDL via la ligne de commande Chapitre 10 Intégration des outils de gestion des exigences 277 Présentation de l intégration de CaliberRM Utilisation de l intégration de CaliberRM Ajout d une connexion CaliberRM à un projet Together Ouverture d un projet CaliberRM Gestion des traces Utilisation de l inspecteur Navigation entre des exigences et des éléments Génération de la documentation Création de cas d utilisation à partir d exigences 281 Création d exigences sur le serveur Présentation de l intégration de RequisitePro Utilisation de l intégration de RequisitePro Activation de l intégration Modification des paramètres d un projet Together Gestion de traces vers des éléments de modélisation Navigation entre les exigences et les diagrammes Génération de la documentation Création de diagrammes de cas d utilisation Annexe A Raccourcis clavier 287 Navigation entre vues et volets Navigation entre les onglets internes Manipulation des éléments de diagramme Récapitulatif des raccourcis clavier vi
9 Annexe B Préférences de modélisation 291 Préférences de base Préférences de liens Préférences des détails d affichage Onglets Membres, Elément de modélisation et Package Préférences des Filtres d affichage Cacher Destinations exclues Notations UML Préférences de diagrammes de séquence Préférences de diagrammes de séquence Préférences de disposition Préférences d impression Préférences de génération de la documentation Préférences de génération du HTML Préférences de génération du HTML Préférences Javadoc Préférences des profils Préférences du code source Préférences des navigateurs Options de tri Préférences de comparaison des modèles Index 309 vii
10 viii
11 0Borland Together Developer 2005 Chapitre Borland Together Developer est une extension du studio de développement JBuilder Ce produit vous permet de créer des logiciels ultra-efficaces à partir de modèles générés avec Borland Together Designer. Together Developer est un kit de développement Java comprenant des fonctionnalités appréciées et demandées comme les audits, les métriques, les patterns et bien d autres. Fonctionnalités prises en charge Le tableau suivant indique les fonctionnalités prises en charge par chaque produit : Tableau 1 Fonctionnalités prises en charge par les produits Fonctionnalité Together Designer 2005 Together Developer 2005 UML UML Diagrammes logiques ER LiveSource (Java) - Audits du contrôle de qualité - Métriques du contrôle de qualité - Impression des diagrammes Comparaison de modèles - OCL Patterns de modélisation - Patterns de code source - Collecte de patterns - Génération de code source Java - Génération de la documentation Import XMI v Borland Together Developer
12 Documentation Tableau 1 Fonctionnalités prises en charge par les produits (suite) Fonctionnalité Together Designer 2005 Together Developer 2005 Export XMI v Importation de fichiers IBM Rational Rose 2003 Enterprise Edition (MDL) - Intégration de logiciels de gestion des exigences (Borland CaliberRM, IBM RequisitePro) Intégration de logiciels de gestion du code source (SCM=Source Code Management) (ClearCase, CVS, StarTeam, Visual Source Safe) 2 1. Dans Together Developer, seuls les diagrammes de classes, de séquence et de collaboration sont pris en charges. 2. La prise en charge SCM est fournie par JBuilder Together Developer comprend toutes les fonctionnalités de Together Designer, si vous disposez également d une licence pour Designer. Toutes les descriptions des fonctionnalités soumises à cette condition sont signalées par des notes spéciales en rouge. Documentation La documentation de Together inclut : Elément Description Emplacement Aide en ligne (Guide de l utilisateur) Prise en main Informations complètes particulièrement adaptées à l utilisateur, comprenant : Visite d introduction à Together Définition des préférences personnelles et des options Des instructions détaillées pour l utilisation des fonctionnalités de Together Des informations de référence sur les commandes, les macros et les raccourcis clavier Présentation de la modélisation avec Together ; descriptions de l utilisation de projets exemple. Readme.html Informations de dernière minute, comprenant : Notes de licence Configuration système nécessaire Installation et démarrage de Together Problèmes connus Les correctifs importants Dossier /doc sous l installation de Together $TGH$/getting_started.pdf $TGH$/readme/ readme.html Pour en savoir plus sur les produits Together et les mises à jour à venir, consultez le site Together community et la Documentation Together de Borland. 2 Guide de l utilisateur de Borland Together Developer 2005
13 Conventions Obtention et utilisation de l aide Les rubriques et astuces d aide fournies avec Together vous aident à accomplir vos tâches. Pour obtenir de l assistance pendant votre travail, procédez comme suit : Pour voir une description du rôle joué par un élément d une boîte de dialogue ouverte, appuyez sur F1 ou cliquez sur Aide. Pour ouvrir des rubriques d aide dans Together, cliquez sur Rubriques d aide dans le menu Aide ou cliquez sur dans la barre d outils. Pour rechercher des rubriques, des mots ou des phrases spécifiques, utilisez l onglet Index ou Recherche. Pour plus d informations sur l utilisation de l aide, consultez la rubrique Utilisation de l aide en ligne que vous pouvez ouvrir en sélectionnant Comment utiliser l aide dans le menu Aide du visualiseur d aide. Conventions La documentation Together suit les conventions suivantes : Elément $TGH$ Répertoire home de l utilisateur Séparateur dans les procédures Description Le répertoire d installation de Together. L emplacement du répertoire de base dépend de la plate-forme : Pour UNIX et Linux, le répertoire de base peut varier. Par exemple, il peut s agir de /user/<nomutilisateur> ou /home/<nomutilisateur> Pour Windows NT, le répertoire de base est C:\Winnt\Profiles\ <nomutilisateur> Pour Windows 2000, 2003 et XP, le répertoire de base est C:\Documents and Settings\<nomutilisateur> : dans la documentation Together, ce symbole sert à séparer les étapes d une procédure. Borland Together Developer
14 4 Guide de l utilisateur de Borland Together Developer 2005
15 Chapitre 1 1Visite de Together Chapitre Avant de commencer à travailler, familiarisez-vous avec les composants de Together. Visitez les fenêtres, volets et menus de Together et apprenez à ancrer, désancrer, redimensionner ou réduire en icône les composants de Together. Avec les divers arrangements de ces composants, vous créez des espaces de travail mieux adaptés à certains projets et tâches. Avec la boîte de dialogue Préférences, apprenez à configurer l environnement de Together selon vos besoins. Rubriques de cette section : Composants de l interface utilisateur de Together Gestion des espaces de travail Préférences de configuration Composants de l interface utilisateur de Together La fenêtre principale réunit un ensemble de composants importants : Menus et barre d outils de Together Volets de Together Volets de navigation : Navigateur de modèle Navigateur de favoris Navigateur de diagrammes Volet Projet Volet contenu Editeur de diagramme Inspecteur Volet Messages Chapitre 1 : Visite de Together 5
16 Composants de l interface utilisateur de Together Les éléments de modélisation de Together sont des composants individuels du projet et de l interface utilisateur. Les éléments peuvent être des diagrammes, des fichiers, des éléments de diagrammes comme les nœuds ou les liens, des noms, des messages d erreur, etc. Un clic droit sur un élément de Together affiche un menu de commandes pour cet élément. Les menus contextuels varient en fonction du type d élément. Menus et barre d outils Le menu principal et la barre d outils se trouvent en haut de la fenêtre principale. Le menu principal se compose d un ensemble de menus dont la liste dépend de l espace de travail, de l état et des options du projet ouvert et de l élément sélectionné. Les commandes sont, pour la plupart, dupliquées dans les menus contextuels des éléments et dans la barre d outils principale située sous le menu principal. Les boutons et commandes non disponibles sont grisés dans la barre d outils et les menus. La barre d outils principale se compose de plusieurs barres d outils différentes selon les groupes de fonctions proposés. Il est possible d afficher ou de masquer des barres d outils individuelles pour accélérer l accès aux contrôles ou libérer de la place. Chaque bouton de la barre d outils principale s accompagne d une info-bulle qui s affiche lorsque vous passez le pointeur de la souris dessus. Pour afficher ou masquer des barres d outils : 1 Dans le menu principal, choisissez Voir Barres d outils ou cliquez avec le bouton droit sur la barre d outils principale pour afficher son menu contextuel. 2 Dans le sous-menu, cochez les cases des barres d outils à afficher et désactivez les autres. Pour afficher ou masquer la barre d outils principale en entier : 1 Dans le menu principal, choisissez Voir Barres d outils ou cliquez avec le bouton droit sur la barre d outils principale pour afficher son menu contextuel. 2 Choisissez Tout afficher (ou Tout cacher). De nombreuses commandes peuvent être exécutées sans passer par les contrôles de l interface utilisateur. Vous pouvez utiliser les raccourcis clavier. Les combinaisons de touches qui y correspondent sont spécifiées dans le menu principal. Vous trouverez la liste complète des raccourcis clavier disponibles dans l Annexe A, Raccourcis clavier. Volets de Together Chaque volet contient une barre de titre. Dans le menu contextuel de la barre de titre, des commandes permettent de fermer, redimensionner et ancrer/désancrer le volet, ou encore de le réduire en icône. Outre les commandes de la barre de titre, vous pouvez utiliser le glisser-déposer. Le volet focalisation, avec la barre de titre en bleu clair, est le site de l activité la plus récente. Vous pouvez réorganiser le fenêtrage et la disposition des volets. Vous pouvez masquer des volets, les redimensionner, les afficher en plein écran ou en icône, les déplacer ou les désancrer dans la fenêtre principale. 6 Guide de l utilisateur de Borland Together Developer 2005
17 Composants de l interface utilisateur de Together Astuce Affichage ou masquage des volets Pour afficher ou cacher un volet : 1 Dans le menu principal, choisissez Voir Volets. 2 Dans le sous-menu, cochez les options des volets à afficher et désactivez les options des volets à masquer. Utilisez les raccourcis clavier du volet. Les raccourcis clavier des divers volets sont présentés dans le menu en cascade Voir Volets. Redimensionnement ou agrandissement des volets en plein écran Pour redimensionner des volets ancrés, faites glisser leurs barres de séparation. Pour sélectionner la barre de séparation souhaitée, vous avez le choix entre : Déplacer le pointeur de la souris au-dessus de la barre jusqu à ce qu il prenne la forme d une flèche double. Utiliser la commande Voir Diviseur de navigateur du menu principal, puis choisir la barre dans la liste déroulante. Pour redimensionner des volets désancrés, faites glisser leurs bords ou leurs coins jusqu à obtenir la forme souhaitée. Pour qu un volet ancré s affiche en plein écran, vous avez le choix entre : Sélectionner Agrandir dans le menu contextuel de sa barre de titre Double-cliquer sur la barre de titre. Un volet désancré ne peut pas être affiché en plein écran. Répétez une des actions ci-dessus pour revenir à l état précédent du volet. Ancrage, désancrage, déplacement et mise en icône de volets Pour désancrer un volet, effectuez l une des opérations suivantes : Dans le menu contextuel de la barre de titre, choisissez Désancrer Faites glisser la barre de titre et déposez-la lorsque le pointeur de la souris prend la forme d un rectangle blanc. Pour ancrer un volet, effectuez l une des opérations suivantes : Dans le menu contextuel de la barre de titre, choisissez Ancrer Cliquez sur le bouton en forme d épingle dans la barre de titre. Astuce Quand vous ancrez un volet, Together met en évidence la nouvelle position du volet à l aide d un rectangle ombré gris. Pour mettre un volet en icône, effectuez l une des opérations suivantes : Dans le menu contextuel de la barre de titre, choisissez Mettre en icône Cliquez sur le bouton de mise en icône dans la barre de titre. Astuce Utilisez la commande Actions de la fenêtre du menu principal Voir pour ouvrir le menu contextuel de la barre de titre de la fenêtre active. Utilisez la barre de titre pour déplacer des volets ancrés vers l emplacement voulu. Vous pouvez organiser les volets de manière à choisir pour la fenêtre principale la présentation qui vous met la plus à l aise. Dans cette organisation est compris un espace de travail. Lorsque vous faites glisser un volet au-dessus des différentes parties de la fenêtre principale, remarquez la forme du pointeur de la souris. Elle change suivant l emplacement auquel le volet sera ancré. Par exemple, une flèche noire indique qu un volet sera ancré dans une vue séparée. Son emplacement futur est indiqué par un Chapitre 1 : Visite de Together 7
18 Composants de l interface utilisateur de Together rectangle gris. Une pile indique qu il s ancrera en haut d une vue en tant que page à onglets. Un rectangle blanc indique que le volet sera désancré. Le tableau suivant montre les formes que prend le pointeur et les emplacements cible correspondants des composants : Curseur Résultat d un glisser-déposer Impossible de déposer le composant. Une fois déposé, le composant s ancre à l emplacement marqué par une ombre grise. Les composants permutent Le composant s ancre en haut d une pile de pages à onglets. Le composant se désancre. Volets de navigation Les navigateurs de modèle, de diagrammes et de favoris proposent un moyen pratique de visualiser et d organiser les modèles. Ces trois volets ont des boutons de barre d outils similaires qui autorisent les actions suivantes : Fermer le projet en cours Actualiser la vue Sélectionner l un des projets ouverts dans la boîte liste du sélecteur de projet Utilisez la fonction de recherche rapide pour trouver rapidement l emplacement souhaité dans le modèle. Pour ce faire, commencez à saisir le nom recherché et la mise en surbrillance se déplace dans l arborescence. Pour de plus amples informations, voir la section Recherche rapide, page 64. Cette fonctionnalité est également disponible dans la vue projet et dans l éditeur de diagramme. Les volets de navigation sont configurables aux niveaux global, projet par défaut et projet en cours. Vous pouvez configurer le format d affichage des noms, le comportement des nœuds développables, etc. en changeant les préférences de modélisation. Dans les volets de navigation, vous pouvez trier les différents types d éléments par nom, par type ou par modificateur. Pour trier les éléments dans les volets de navigation : 1 Depuis le menu principal, choisissez Projet Propriétés du projet. 2 Sous la catégorie Modélisation, sélectionnez Navigateurs. 3 Dans la section Tri, cochez l option Trier les éléments. 4 Spécifiez les options de tri pour les classes, les méthodes et les attributs. 5 Si vous souhaitez afficher les packages en haut de la vue arborescente, cochez l option Afficher d abord les nœuds de package. 6 Cliquez sur OK pour appliquer les modifications. Les menus contextuels des volets de navigation contiennent des commandes spécifiques aux types de vues et de nœuds. En utilisant les menus contextuels, vous pouvez ouvrir des diagrammes, atteindre des éléments dans l éditeur de diagramme, créer, renommer ou supprimer des diagrammes, des éléments et des raccourcis, lier des diagrammes à des éléments, appliquer des patterns, etc. Pour une description détaillée de ces fonctionnalités, voir Chapitre 3, Utilisation des diagrammes. 8 Guide de l utilisateur de Borland Together Developer 2005
19 Composants de l interface utilisateur de Together Examinez les menus contextuels par vous-même pour connaître les commandes disponibles. Navigateur de modèle Le Navigateur de modèle affiche une vue logique des éléments qui constituent le modèle du projet. Il affiche les packages de niveau racine de votre projet, vous permettant de naviguer de manière logique parmi le contenu pour voir les sous-packages, les diagrammes et les éléments de diagrammes dans chacun d eux. Utilisez le menu contextuel pour ouvrir des fichiers diagrammes depuis le Navigateur de modèle. Pour ouvrir le Navigateur de modèle : 1 Dans le menu principal, choisissez Voir Volets. 2 Cliquez sur la case à cocher Navigateur de modèle dans le sous-menu des vues disponibles. Dans le navigateur de modèle, vous pouvez regrouper dans le même conteneur des éléments appartenant à la même métaclasse. Cela signifie que si, par exemple, un package contient plusieurs classes, ces dernières peuvent être renvoyées dans le navigateur de modèle sous forme de groupe au lieu d apparaître chacune en tant que nœud distinct dans l arborescence. Ce comportement est contrôlé par les options de regroupement. Pour obtenir un regroupement selon une métaclasse : 1 Dans le menu principal, choisissez Outils Préférences. 2 Dans les options de Modélisation Navigateurs, cochez Regrouper les éléments par métaclasse et Replier le groupe par défaut. 3 Dans le champ Nombre minimum d éléments par groupe, spécifiez le nombre minimal d éléments d une même métaclasse à atteindre pour autoriser le regroupement. Résultat : Les éléments de la même métaclasse apparaissent dans un nœud qui peut être développé, accompagné du nom de la métaclasse. A gauche de l arborescence du modèle, une barre verticale affiche un signe plus à côté de chaque groupe réduit. Si un groupe est développé, un signe moins remplace le signe plus. Cette fonctionnalité est disponible dans le navigateur de diagramme et dans le navigateur de favoris. Navigateur de favoris Le Navigateur de favoris peut afficher les nœuds du modèle auquel vous voulez accéder sans naviguer dans la hiérarchie de projet logique du Navigateur de modèle ou d un diagramme. Ces nœuds peuvent représenter des diagrammes et leurs éléments. Le Navigateur de favoris est particulièrement utile pour les grands projets. Vous pouvez ajouter un élément aux favoris à partir de l éditeur de diagramme, ainsi qu à partir du Navigateur de modèle. Pour ouvrir le Navigateur de favoris : 1 Dans le menu principal, choisissez Voir Volets. 2 Cliquez sur la case à cocher Favoris dans le sous-menu des vues disponibles. Pour ajouter un élément aux favoris : 1 Dans le Navigateur de modèle ou l éditeur de diagramme, sélectionnez les diagrammes ou les éléments à ajouter aux favoris. 2 Effectuez un clic droit sur l élément et choisissez Ajouter aux Favoris. Chapitre 1 : Visite de Together 9
20 Composants de l interface utilisateur de Together Pour retirer un élément des favoris : 1 Sélectionnez un élément dans les favoris. 2 Effectuez un clic droit et choisissez Retirer des Favoris. Pour ouvrir un élément appartenant aux favoris dans l éditeur de diagramme : 1 Sélectionnez un élément dans les favoris. 2 Effectuez un clic droit et choisissez Ouvrir. Résultat : Le diagramme s ouvre dans l éditeur de diagramme et l élément référencé est en évidence. Pour rechercher un élément favori dans le navigateur de projets : 1 Sélectionnez un élément dans les favoris. 2 Effectuez un clic droit et choisissez Sélectionner dans le navigateur de projets. Résultat : Le navigateur de projets s ouvre et l élément référencé y est en évidence. Pour ajouter un favori en tant que raccourci : 1 Sélectionnez un élément dans les favoris. 2 Effectuez un clic droit et choisissez Ajouter comme raccourci. Résultat : Le raccourci vers l élément sélectionné apparaît dans le diagramme actif Remarque Navigateur de diagrammes Le Navigateur de diagrammes affiche la liste de tous les types de diagrammes logiques disponibles dans Together. Les diagrammes sont répertoriés selon leurs types. L ouverture des fichiers de diagrammes s effectue de la même manière dans le navigateur de diagrammes et dans le navigateur de modèle. Le Navigateur de diagrammes n affiche pas les diagrammes package. Ce sont des diagrammes physiques et non des diagrammes logiques. Vous pouvez développer chaque nœud de diagramme pour voir ses éléments. Les éléments des diagrammes qui ne sont pas réellement contenus dans les diagrammes apparaissent comme des raccourcis. Par exemple, si un diagramme de classes affiche les classes qui résident en dehors du package du diagramme de classes, les nœuds de ces classes ont des symboles de raccourci à la fois dans la vue arborescente et dans le diagramme. Les diagrammes de classes peuvent présenter les classes et interfaces des packages qui résident sur le chemin de classes ou sur d autres chemins définis dans les propriétés du projet. Pour ouvrir le Navigateur de diagrammes : 1 Dans le menu principal, choisissez Voir Volets. 2 Cliquez sur la case à cocher Navigateur de diagrammes dans le sous-menu des vues disponibles. Volet projet Le volet Projet montre la structure des fichiers d un projet. En utilisant le volet Projet, vous pouvez ajouter ou retirer des fichiers. Pour ouvrir le volet Projet : 1 Dans le menu principal, choisissez Voir Volets. 2 Cochez la case Projet dans le sous-menu des volets disponibles. 10 Guide de l utilisateur de Borland Together Developer 2005
21 Composants de l interface utilisateur de Together Pour ajouter des fichiers à un projet : 1 Dans le volet Projet, effectuez un clic droit sur le nom du projet, puis choisissez Ajouter des fichiers dans le menu contextuel. Astuce : Vous pouvez aussi cliquer sur dans la barre d outils de la vue Projet. 2 Dans la boîte de dialogue Ajouter des fichiers, sélectionnez un ou plusieurs fichiers à ajouter, puis cliquez sur OK. Volet contenu Together Developer ajoute une nouvelle vue à l ensemble standard de Borland JBuilder 2005 : Editeur de diagramme. Pour agrandir au maximum le volet Contenu, effectuez l une des opérations suivantes : Dans le menu principal, choisissez Voir Agrandir le volet Contenu. Utilisez le raccourci clavier CTRL+ALT+Z Editeur de diagramme L éditeur de diagramme s ouvre automatiquement à chaque fois que vous créez ou ouvrez un diagramme. Le volet affiche un onglet pour chaque diagramme ouvert. Chaque onglet affiche une icône pour le type de diagramme UML et le nom du diagramme. Pour basculer entre diagrammes ouverts, cliquez sur l onglet du diagramme à afficher ou appuyez sur ALT + flèche vers la gauche ou la droite. Les divers outils de l éditeur de diagramme sont proposés dans la barre d outils en haut de la fenêtre, et la boîte à outils à gauche. Les boutons de la barre d outils permettent d effectuer les opérations communes à tous les types de diagrammes, alors que les boutons de la boîte à outils sont spécifiques à chaque type de diagramme. Le tableau suivant résume les fonctions des boutons de la barre d outils. Tableau 1.1 Bouton Fonctions de la barre d outils Diagramme Description Nouveau diagramme : Affiche la boîte de dialogue Galerie d objets pour les diagrammes. Dans cette boîte de dialogue, vous pouvez sélectionner les type, nom, emplacement et description du nouveau diagramme. Ouvrir le diagramme parent : Ouvre le parent du diagramme actif. Si un diagramme n a pas de parent, le bouton est désactivé. Développer les compartiments : Si ce bouton est enfoncé, tous les compartiments de tous les éléments de modélisation peuvent être développés. Mettre à jour : Actualise le diagramme en cours. Préférences de diagramme : Ouvre la boîte de dialogue Préférences au niveau du diagramme. Groupe Disposition : Cliquez sur la boîte liste et sélectionnez l option de disposition Disposer tout Disposer tout pour impression Disposer les éléments sélectionnés Disposer tout à l exception des éléments sélectionnés Disposer la sous-structure inner Optimiser la taille de l élément Chapitre 1 : Visite de Together 11
22 Composants de l interface utilisateur de Together Tableau 1.1 Fonctions de la barre d outils Diagramme Bouton Description Groupe Aligner : Cliquez sur la boîte liste et sélectionnez l option d alignement Haut Gauche Droite Bas Aligner les centres horizontalement Aligner les centres verticalement Egaliser la taille Egaliser la largeur Egaliser la hauteur Répartir équitablement horizontalement Répartir équitablement verticalement Groupe Zoom Zoom avant : chaque clic sur ce bouton agrandit l image du diagramme. Zoom arrière : chaque clic sur ce bouton réduit l image du diagramme. Taille réelle : affiche le diagramme à l échelle 1:1 Ajuster à la fenêtre : réduit pour afficher le diagramme entier. Pour une description détaillée des opérations autorisées dans l éditeur de diagramme, voir Chapitre 3, Utilisation des diagrammes. Le volet de l éditeur de diagramme peut être déplacé, réduit en icône, ancré ou désancré. Utilisez les icônes de la barre de titre pour effectuer ces actions. Vous pouvez aussi utiliser le raccourci clavier ALT+F10 pour ouvrir le menu déroulant du titre de la fenêtre qui contient des commandes relatives au diagramme en cours. Inspecteur Les inspecteurs vous permettent d afficher et de modifier les propriétés de nombreux éléments de Together. Le volet Inspecteur présente un ensemble de nœuds ou onglets dont le contenu change dynamiquement selon le type d élément. A chaque élément de modélisation est associé un titre portant le nom de cet élément : Inspecteur:<nom_élément>. Basculement entre les vues de l inspecteur Par défaut, le contenu de l inspecteur se présente sous forme de nœuds à développer, dont le contenu dépend du type d élément sélectionné. Ce format de présentation, appelé Vue moderne, est une nouveauté de cette version de Together. Si vous avez utilisé d anciennes versions de Together, vous pouvez toujours afficher le contenu de l inspecteur dans une vue classique. Dans ce cas, le contenu de l inspecteur se présente dans des pages à onglets et non sous forme de nœuds à développer. 12 Guide de l utilisateur de Borland Together Developer 2005
23 Composants de l interface utilisateur de Together Pour basculer entre les deux vues : Pour que l inspecteur adopte une vue classique, cliquez avec le bouton droit dans son arrière-plan, puis choisissez, dans le menu contextuel, Passer en vue classique. Pour que l inspecteur adopte une vue moderne, effectuez un clic droit sur l une des pages à onglets de la vue classique, puis, dans le menu contextuel, choisissez Passer en vue moderne. En outre, tout en travaillant en vue classique, vous pouvez à l aide du menu contextuel des pages à onglets : Masquer des pages à onglets spécifiques. Afficher des pages à onglets spécifiques. Montrer toutes les pages à onglets masquées. Astuce Utilisation du volet Inspecteur Pour afficher les propriétés d un élément : 1 Cliquez avec le bouton droit sur un élément ou sur un diagramme dans l éditeur de diagramme ou dans un autre volet. 2 Dans le menu contextuel de la sélection, choisissez Inspecteur. Vous pouvez aussi utiliser l une des méthodes suivantes, en ayant sélectionné un élément : Dans la barre d outils principale, cliquez sur le bouton Utilisez le raccourci clavier Alt+Entrée. Dans le menu principal, choisissez Voir Volets Inspecteur. Quand l inspecteur est ouvert, le fait de sélectionner un élément charge automatiquement ses propriétés dans l inspecteur. Si plusieurs éléments sont sélectionnés simultanément, l inspecteur n affiche que les propriétés communes à tous ces éléments. Les propriétés d élément que les inspecteurs vous permettent de modifier varient de manière significative selon le type de l élément. Les actions les plus courantes activées par l inspecteur sont : Editer les propriétés de l élément, y compris le nom, le stéréotype et l alias. Modifier l aspect du nœud de l élément sur le diagramme. Créer et naviguer sur les hyperliens entre les diagrammes ou les éléments de diagrammes et d autres diagrammes, les éléments d autres diagrammes, et les fichiers externes ou les URL. Modifier et ajouter des commentaires aux éléments du diagramme. Editer les informations des exigences. Les éditeurs de propriétés pour les champs de l inspecteur dépendent des types de valeurs. Chapitre 1 : Visite de Together 13
24 Composants de l interface utilisateur de Together Le tableau suivant indique les icônes affichées par les inspecteurs pour certains types de champs : Tableau 1.2 Icône Icônes de l inspecteur Description Sélectionne l élément de modèle Modifie des valeurs textuelles Modifie les couleurs de texte et d arrière-plan de l élément. Pour appliquer les valeurs saisies : Déplacez la focalisation sur un autre emplacement en cliquant avec le bouton droit de la souris. Appuyez sur Entrée Appuyez sur Tab Pour annuler ou supprimer une nouvelle entrée: Appuyez sur Echap pour annuler les saisies dans les champs texte si vous n avez pas encore appuyé sur Entrée pour terminer vos modifications. Si une valeur a déjà été saisie, utilisez les boutons Annuler/Rétablir dans la barre d outils principale ou appuyez sur Ctrl+Z. Ces actions sont possibles pour les champs de type texte, les boîtes liste et les cases à cocher. Pour fermer l inspecteur : Cliquez sur le bouton dans la barre de titre de l inspecteur. Dans le menu principal, choisissez Voir Volets et décochez la case Inspecteur. Nœuds de l inspecteur La composition des nœuds (onglets) de l inspecteur change selon l élément sélectionné. Cette section décrit la fonction de base de chaque nœud d un inspecteur d une classe ordinaire et d un lien, comme illustré ci-dessous : Figure 1.1 Inspecteurs de classe et de lien en vue moderne Propriétés Le nœud Propriétés affiche les propriétés de l élément sélectionné. Certaines propriétés contiennent plusieurs valeurs. Ces valeurs sont délimitées par des virgules. 14 Guide de l utilisateur de Borland Together Developer 2005
25 Composants de l interface utilisateur de Together Définition de stéréotypes Un stéréotype est une propriété commune qui s applique à tout élément de Together. Dans l inspecteur, un contrôle spécial permet de définir pour un élément un ou plusieurs stéréotypes. Sous l onglet Propriétés de l inspecteur, entrez les stéréotypes dans le champ de texte stereotype ou cliquez sur le bouton pour ouvrir la boîte de dialogue Valeurs pour le stéréotype. Figure 1.2 Boîte de dialogue Valeurs pour le stéréotype Astuce Créez une entrée avec le bouton Ajouter, puis sélectionnez la valeur de stéréotype dans la liste déroulante. Dans les diagrammes, vous pouvez utiliser l éditeur in-situ pour modifier les valeurs des stéréotypes. Hyperliens Le nœud Hyperliens permet de créer des hyperliens vers différents types d artefacts et d y accéder directement. Vous pouvez créer des hyperliens à partir du diagramme détenant la focalisation ou depuis un élément sélectionné sur le diagramme vers : Un diagramme ou un élément de diagramme partout dans le projet. Un diagramme ou un élément de diagramme se trouvant n importe où dans un des projets ouverts (hyperlien multi-projet). Un fichier externe à votre projet. Une URL sur l intranet de votre société ou sur Internet. Affichage Le nœud Affichage permet de définir les couleurs d avant-plan et d arrière-plan d un élément sélectionné dans l éditeur de diagramme. Lorsque vous commencez à travailler avec les diagrammes Together, les couleurs d avant-plan et d arrière-plan sont les couleurs système par défaut. Pour changer la couleur d arrière-plan ou d avant-plan d un nœud : 1 Cliquez sur le bouton de sélection de couleur dans le champ background color ou foreground color. 2 Dans la boîte de dialogue résultante : Choisissez la couleur dans l échelle de couleurs Swing standard en utilisant la palette de couleurs, ou Chapitre 1 : Visite de Together 15
26 Composants de l interface utilisateur de Together Astuce Définissez une couleur personnalisée en utilisant l onglet RVB (Rouge-Vert-Bleu). Dans ce cas, vous pouvez choisir la couleur en déplaçant les glissières. Pour rétablir la couleur par défaut, cliquez sur Valeurs par défaut. Description Dans ce champ, entrez vos commentaires sur l élément. Ils sont stockés avec le fichier du diagramme. Lien Ce nœud ne s affiche que pour les liens. Vous pouvez afficher le fournisseur et le client du lien, définir le rôle et la cardinalité du fournisseur et du client, sélectionner le type de lien, etc. Personnalisation Ce nœud permet d ajouter facilement des propriétés et de modifier leur nom. Par défaut, le nœud Personnalisation est vide et propose des boutons Ajouter et Retirer pour gérer les propriétés. Pour ajouter une propriété personnalisée: 1 Dans l inspecteur, développez le nœud Personnalisation. 2 Cliquez sur le bouton Ajouter. Une entrée est ajoutée avec le nom de propriété et la valeur par défaut. 3 Cliquez sur le champ du nom de la propriété et modifiez-le si nécessaire. 4 Cliquez sur le champ de la valeur de la propriété et entrez la valeur voulue. Vous pouvez ajouter autant de propriétés que nécessaire. Utilisez le bouton Retirer pour supprimer les propriétés inutiles. Recherche des emplacements de nœuds, fichiers et dossiers Astuce Dans tous les volets de navigation, dans le volet Projet et dans l éditeur de diagramme, vous pouvez aller jusqu à l emplacement souhaité sans faire défiler l arborescence. L onglet approprié étant actif, tapez le nom du dossier désiré. A mesure que vous tapez les caractères, le nœud approprié de la vue arborescente est mis en évidence. Il n est pas nécessaire de taper les noms complets des nœuds. Dès que le nœud requis est atteint, tapez un délimiteur (barre oblique, barre oblique inverse ou point) pour compléter le nom et développer le nœud ; puis continuez la saisie du nom du nœud imbriqué requis. N oubliez pas que la saisie prend en compte la casse. Voir aussi Annexe B, Préférences de modélisation Création de propriétés de modèles personnalisées dans l aide en ligne Chapitre 3, Utilisation des diagrammes Chapitre 2, Utilisation de projets dans Together 16 Guide de l utilisateur de Borland Together Developer 2005
27 Préférences de configuration Préférences de configuration L environnement Together présente une grande souplesse de configuration. Vous pouvez définir des options pour l éditeur de diagramme, les volets de navigation, etc. Les préférences sont applicables aux divers niveaux. Ces niveaux sont : Niveau Boîte de dialogue Portée Niveau global Niveau projet par défaut Niveau projet Niveau diagramme Boîte de dialogue Outils Préférences, page Global Boîte de dialogue Projet Propriétés du projet par défaut, page du projet par défaut Boîte de dialogue Projet Propriétés du projet, page Projet Menu contextuel du diagramme Préférences de diagramme Modifications globales dans Together Les modifications s appliquent à tous les nouveaux projets créés Les modifications s appliquent uniquement dans le cadre du projet actif Les modifications s appliquent uniquement dans le cadre du diagramme en cours Astuce Le niveau est sélectionné automatiquement selon qu un projet est ouvert ou non et selon la commande de menu utilisée pour ouvrir la boîte de dialogue. Enregistrez le projet après avoir apporté des modifications aux propriétés du projet. Toutes les modifications apportées aux propriétés du projet sont enregistrées avec le fichier projet. Affichage et modification des options La boîte de dialogue Préférences regroupe logiquement les options sous forme de nœuds dans une arborescence. Lorsqu une option se compose de groupes de sous-options, vous pouvez développer le nœud pour voir toutes les sous-options disponibles. Les options peuvent avoir des valeurs simples ou multiples. Ainsi, si une option a plusieurs valeurs, les valeurs sont séparées par des virgules. La boîte de dialogue Préférences est auto-documentée. Quand vous parcourez les options, vous pouvez lire leur description dans des info-bulles. En plus, vous pouvez accéder à des informations plus détaillées sur les options de la page en cours en choisissant le bouton Aide. Pour voir une description d option : 1 Cliquez avec le bouton droit sur le nom de l option. 2 Cliquez sur l invite Qu est-ce que c est? et observez la description dans la fenêtre info-bulle. Les modifications des valeurs d option sont appliquées au niveau approprié. Au niveau du diagramme, la modification des options est désactivée par défaut. Pour pouvoir modifier les paramètres, l utilisateur doit cocher la case Redéfinir les valeurs par défaut du projet. Important Pour modifier les paramètres : 1 Appelez la boîte de dialogue Préférences au niveau souhaité. 2 Dans l arborescence Préférences, cliquez sur la catégorie à modifier. 3 Spécifiez les valeurs d option. Au niveau diagramme, cochez Redéfinir les valeurs par défaut du projet. 4 Cliquez sur OK pour appliquer les modifications et fermer la boîte de dialogue. Voir aussi Annexe B, Préférences de modélisation Chapitre 1 : Visite de Together 17
28 18 Guide de l utilisateur de Borland Together Developer 2005
29 Chapitre 2 2Utilisation de projets dans Together Chapitre Un projet est une structure logique qui contient toutes les ressources nécessaires à votre travail. Together fonctionne avec des projets de deux types : Projets de modélisation Together.tpx Projets standard JBuilder.jpx Le premier type est pris en charge par Together Designer et Together Developer si une licence Together Designer est détectée. Le deuxième type n est pris en charge que par Together Developer. Pour plus d informations sur les projets JBuilder, consultez l aide en ligne et la documentation de JBuilder. Vous trouverez ci-dessous les informations relatives aux projets Together.tpx. Les projets Together utilisent un format compatible sur toute la gamme de produits Together. C est à vous de définir les répertoires, archives et fichiers à inclure dans votre projet. Vous pouvez définir les propriétés d un projet à sa création et les modifier plus tard à l aide de la boîte de dialogue Propriétés du projet. La boîte de dialogue Propriétés du projet par défaut permet de définir les paramètres à appliquer à tous les nouveaux projets. Avec la configuration Personnalité, vous pouvez spécifier aussi quels sont les composants visibles dans les projets. Cette section vous apprend à créer, ouvrir et gérer des projets et en définir les propriétés. Notions fondamentales sur les projets Métamodèle d imbrication Création de projets Ouverture et fermeture de projets Modification des propriétés du projet Gestion des ressources d un projet Utilisation de fichiers Utilisation de favoris Chapitre 2 : Utilisation de projets dans Together 19
30 Notions fondamentales sur les projets Notions fondamentales sur les projets Pour commencer une modélisation avec Together, vous devez créer un projet de modélisation Together (.tpx). Un projet se compose au moins des éléments suivants : Un répertoire racine du projet Un fichier projet Le diagramme <default> Tout élément figurant dans le projet est appelé élément de modélisation. Pour plus de détails, voir Chapitre 4, Modélisation, et Chapitre 3, Utilisation des diagrammes. Répertoire racine du projet Le répertoire racine principal stocke le fichier projet. Tout diagramme initial créé avec le projet est stocké dans le dossier /diagrams (par défaut), sur le chemin racine. Lors de la création d un projet, sélectionnez comme répertoire racine principal un nouveau répertoire ou un répertoire existant. La portée d un projet n est pas limitée à un seul répertoire racine. Vous pouvez spécifier comme chemins du projet plusieurs répertoires et inclure ou exclure des sous-répertoires de n importe quelle racine. Pour en savoir plus sur les chemins de projet, consultez la section Gestion des ressources d un projet, page 29. Fichier projet Un fichier projet de modélisation a l extension.tpx. Le fichier projet contient les paramètres du projet et la liste de tous les fichiers ayant été ajoutés au projet. Together utilise ces informations chaque fois que vous chargez, enregistrez ou modifiez un projet. Le diagramme <default> Lors de la création d un nouveau projet, Together génère un diagramme montrant le contenu physique du projet présent dans le package racine principal. Le diagramme généré prend le nom <default>. Il réside dans le dossier /diagrams de la racine principale. Le nom du fichier diagramme sous-jacent est default.tvxpck. Dans l éditeur de diagramme, le diagramme <default> montre des icônes Package représentant des sous-répertoires du répertoire racine principal et les chemins inclus dans le projet. Les autres packages sont créés en tant que sous-répertoires du répertoire racine principal. Pour chacun d eux, Together génère automatiquement un diagramme de package, qui prend lui aussi le nom default.tvxpck. Comme le stipule le métamodèle d imbrication, tous les diagrammes et éléments appartiennent aux packages dans lesquels ils sont créés. Consultez la section Métamodèle d imbrication, page 21, qui explique la façon dont les éléments sont stockés dans les projets. A voir ensuite Métamodèle d imbrication, page 21 Création de projets, page Guide de l utilisateur de Borland Together Developer 2005
31 Métamodèle d imbrication Métamodèle d imbrication Remarque Avec Together, vous disposez désormais d un métamodèle d imbrication qui stipule la création et le positionnement des éléments de modélisation, ainsi que le comportement des opérations liées au Presse-papiers. Les éléments possibles à créer en packages sont appelés éléments pour packages. Les instances de ces éléments, réellement créées en packages, sont les éléments de niveau supérieur. Les instances d éléments pour packages créées à l exécution dans les autres conteneurs sont les éléments imbriqués. Les éléments de modélisation du niveau supérieur sont créés en tant qu enfants de leurs packages conteneurs. Cela signifie que, chaque fois que vous créez un élément, ce dernier s ajoute au dossier de son package conteneur et s affiche dans le diagramme du package parent, quel que soit le véritable type de l élément. C est pourquoi un diagramme de package peut contenir des éléments appartenant à d autres types de diagramme (cas d utilisation, actions, états etc.). Des éléments peuvent être créés dans des packages alors que les diagrammes respectifs n existent pas du tout. Les éléments du niveau supérieur sont représentés en tant que références sur les diagrammes autres que les diagrammes de packages et les diagrammes n utilisant pas le nouveau métamodèle d imbrication. Ces éléments sont signalés par une flèche dans le coin inférieur gauche de l icône. Toute action de type Presse-papiers sur un tel élément s applique à la référence de ce dernier. Si un élément n est pas signalé comme référence, toute action de type Presse-papiers s applique à l élément lui-même. Le métamodèle d imbrication ne s applique pas aux diagrammes Relations-Entités. Stockage physique des diagrammes et des éléments de modélisation Les diagrammes sont stockés dans leurs packages conteneurs dans des fichiers appelés <nom>.txv<xxx>, où : <nom> est le nom spécifié à la création du diagramme dans la boîte de dialogue Nouveau diagramme. <xxx> est une chaîne de trois caractères qui indique le type de diagramme ( use dans le cas d un diagramme de cas d utilisation, cls dans le cas d un diagramme de classe, int dans le cas d un diagramme de séquence et collaboration, etc.) Les éléments de modélisation sont également stockés dans les dossiers de leurs packages conteneurs. Vous disposez de deux options de stockage des éléments de modélisation : Un fichier par élément de modélisation. Ces éléments de modélisation sont appelés éléments de modélisation autonomes (SDE, Standalone Design Elements). Tous les éléments de modélisation appartenant au même package dans le même fichier. Ces éléments de modélisation sont appelés filemates. L option de stockage est définie à la création du projet, puis reste inchangée tout au long du cycle de vie du projet. Par défaut, les éléments de modélisation sont stockés en tant que filemates. L option de stockage s applique uniquement aux projets.tpx. Pour les projets.jpx, les éléments ne peuvent pas résider dans des fichiers séparés. Chapitre 2 : Utilisation de projets dans Together 21
32 Métamodèle d imbrication Remarque Important Pour définir l option de stockage des projets.tpx, suivez ces étapes : 1 Ouvrez l expert Nouveau projet UML 1.4 ou Dans la page Sélection du nom et du modèle..., cochez l option Créer les éléments de modélisation dans des fichiers distincts. Le stockage physique des éléments de modélisation n affecte pas leur imbrication logique. Lors du choix du type de stockage des éléments de modélisation, gardez à l esprit que l utilisation d éléments de modélisation autonomes permet de séparer complètement les diagrammes du modèle dans le projet ; d un autre côté, les filemates assurent la compatibilité avec les diagrammes TVS et TEC. Eléments de modélisation autonomes Par défaut, les éléments de modélisation sont stockés dans les packages du diagramme. Cependant, cette organisation complique le partage d éléments par les membres d une équipe ou le stockage des éléments dans un système de contrôle de version. Pour gérer ces problèmes, il est possible de stocker les éléments de modélisation dans des fichiers séparés. De tels éléments de modélisation sont appelés éléments de modélisation autonomes ou SDE (Standalone Design Elements). Physiquement, les SDE sont stockés en tant que fichiers portant une extension txa<typeforme>. Ainsi, un objet autonome peut être stocké dans un fichier appelé Objet1.txaObject. L utilisation d éléments de modélisation autonomes en simplifie l analyse visuelle et facilite leur échange entre membres de l équipe dans le système de contrôle de version, les s, etc. Ces fichiers résident dans les packages où sont stockés les diagrammes respectifs. Dans Developer, les éléments de modélisation autonomes sont pris en charge uniquement pour les projets *.tpx, lorsque la licence pour Designer est détectée. Ce faisant, lorsque l option SDE est active dans l expert Nouveau projet, seuls deux types d éléments sont autonomes créés. Ce sont : les notes, dans les diagrammes de séquence et de communication, et les contraintes, dans les diagrammes de classes. Filemates Le stockage d éléments de diagramme en tant que filemates signifie qu un fichier spécial est créé dans le package conteneur, sous le nom default.txapackage. Chaque fois qu un élément de modélisation est créé, il s ajoute aux entrées du fichier default.txapackage. Comportement des opérations liées au Presse-papiers Le comportement des opérations liées au Presse-papiers dépend du type des entités impliquées et du type des conteneurs source et cible. Si les conteneurs source et cible du Presse-papiers ou de la suppression sont des diagrammes, les actions sont effectuées avec les raccourcis aux éléments. Les opérations couper/coller fonctionnent de la façon suivante : quand il est copié, l élément est marqué comme coupé (il devient transparent.) Il est effectivement supprimé quand l opération coller est terminée. Voir aussi Création de diagrammes dans des projets, page 37 Dessin d éléments de modélisation, page 44 Manipulation d éléments de nœuds et de liens, page Guide de l utilisateur de Borland Together Developer 2005
33 Création de projets Création de projets Selon le produit Together que vous utilisez, vous pouvez créer différentes sortes de projets : Type de projet Icône de projet Produit Projet Together UML 1.4 classique Designer Projet Together UML 2.0 classique Designer Projet Together UML 2.0 sur la base d un projet UML 1.4 existant Projet Together sur la base d un modèle MDL importé Designer Designer Projet Together sur la base d un modèle XMI importé Designer Projet JBuilder à partir d un modèle Designer Developer Projet JBuilder avec diagrammes UML 1.4 créé ex-nihilo Developer Tous les types de projets Together Designer deviennent disponibles dans Together Developer si une licence Together Designer est détectée. Together fournit un certain nombre d experts avec lesquels vous pouvez créer les différentes sortes de projets. Vous pouvez appeler l expert voulu à l aide d un des contrôles suivants, que vous trouverez dans le menu principal ou sur la barre d outils : Fichier Nouveau Fichier Nouveau projet Bouton dans la barre d outils principale Boîte liste Pour plus d informations sur l utilisation de ces contrôles, consultez les scénarios des Guides de prise en main avec Borland Together Designer / Developer, au chapitre 2. Création d un projet Together classique C est une fonctionnalité de Together Designer. Pour créer un projet : 1 Dans le menu principal, choisissez Nouveau projet. Cela ouvre l expert Nouveau projet. 2 Sur la première page de l expert, spécifiez les paramètres suivants : Nom et type du projet : Nom et type du fichier projet créé par Together Designer. La valeur par défaut est sans_titre. Le fichier du projet est de type.tpx. Répertoire racine du projet : Répertoire racine du nouveau projet. Vous pouvez utiliser aussi le bouton de sélection pour naviguer jusqu au répertoire que vous prévoyez d utiliser comme répertoire racine du nouveau projet. Si vous aviez préalablement choisi le répertoire cible en tant que répertoire racine d un projet précédent, vous pouvez le choisir dans la liste déroulante. Version UML : Choisissez la version UML à adopter pour votre projet. Chapitre 2 : Utilisation de projets dans Together 23
34 Création d un projet UML 2.0 à partir d un projet UML 1.4 Modèle du projet : Projet à utiliser comme pattern et qui déterminera les répertoires et les chemins par défaut. Sélectionnez le projet que vous voulez utiliser comme modèle pour le projet actuel. Tous les chemins et les noms peuvent être modifiés ultérieurement, soit sur la deuxième page de l expert, soit sur la page Chemins de la boîte de dialogue Propriétés du projet. Cette option définit uniquement le comportement par défaut. Si vous choisissez le template de projet par défaut, le chemin racine mène au sous-répertoire.tgprojects de votre répertoire de base et votre répertoire de diagramme devient un descendant de votre répertoire projet. Créer les éléments de modélisation dans des fichiers distincts : Spécifiez l option de stockage des éléments de modélisation. Si l option est activée, les éléments de modélisation sont stockés dans des fichiers séparés et appelés éléments de modélisation autonomes. Si elle n est pas activée, tous les éléments du niveau supérieur d un package sont stockés dans le même fichier et sont appelés filemates. Cette option, spécifiée à la création du projet, est immuable pendant le cycle de vie du projet. Créer un fichier de remarques du projet : Cocher cette option ajoute un fichier HTML à votre projet. Utilisez-la pour ajouter vos remarques personnelles. Cliquez sur Suivant. 3 Sur la deuxième page de l expert, spécifiez le répertoire de travail. Sous l onglet Diagramme, à l aide des boutons Ajouter/Retirer, définissez si nécessaire les autres chemins d accès du diagramme. Pour plus de détails, consultez la section Gestion des ressources d un projet, page Cliquez sur Terminer. Vous pourriez aussi créer un projet en passant par la galerie d objets. 1 Dans le menu principal, choisissez Fichier Nouveau. 2 Dans la galerie d objets, cliquez sur le nœud Projet. 3 Sur la page Projet, cliquez sur l icône Projet UML 1.4 ou Projet UML 2.0 (selon la version UML que vous souhaitez utiliser), puis cliquez sur OK. Ceci ouvre l expert Nouveau projet, où le champ Version UML est déjà défini. 4 Suivez les étapes de l expert, comme décrit ci-dessus. Création d un projet UML 2.0 à partir d un projet UML 1.4 C est une fonctionnalité de Together Designer. Avec Together, il est possible de convertir un projet créé selon la spécification UML 1.4 en nouveau projet conforme à la spécification UML 2.0. Pour créer un projet UML 2.0 à partir d un projet UML 1.4 : 1 Dans le menu principal, choisissez Fichier Nouveau. 2 Dans la galerie d objets, cliquez sur le nœud Projet. 3 Dans la page Projet, cliquez sur l icône Projet UML 2.0 depuis projet UML 1.4, puis sur OK. Cela ouvre l expert Nouveau projet UML Sur la première page de l expert, spécifiez le chemin du projet UML 1.4 source. Cliquez sur Suivant. 5 Sur la deuxième page de l expert, spécifiez les paramètres suivants : Nom et type : Spécifiez le nom du projet Together à créer. Le fichier du projet est de type.tpx. Répertoire : Spécifiez le répertoire racine dans lequel créer le projet. 24 Guide de l utilisateur de Borland Together Developer 2005
35 Création d un projet UML 2.0 à partir d un projet UML 1.4 Important Template : Projet à utiliser comme pattern et qui déterminera les répertoires et les chemins par défaut. Pour le moment, vous ne pouvez utiliser que le template par défaut du projet. Créer les éléments de modélisation dans des fichiers distincts : Spécifiez l option de stockage des éléments de modélisation. Si l option est activée, les éléments de modélisation sont stockés dans des fichiers séparés et appelés éléments de modélisation autonomes. Si elle n est pas activée, tous les éléments du niveau supérieur d un package sont stockés dans le même fichier et sont appelés filemates. Cette option, spécifiée à la création du projet, est immuable pendant le cycle de vie du projet. Créer un fichier de remarques du projet : Cocher cette option ajoute un fichier HTML à votre projet. Utilisez-la pour ajouter vos remarques personnelles. Cliquez sur Suivant. 6 Sur la troisième page de l expert, spécifiez le répertoire de travail. Sous l onglet Diagramme, à l aide des boutons Ajouter/Retirer, définissez si nécessaire les autres chemins d accès du diagramme. Pour plus de détails, consultez la section Gestion des ressources d un projet, page Cliquez sur Terminer lorsque vous avez terminé. Les jeux d éléments de modélisation diffèrent selon la spécification, UML 1.4 ou UML 2.0. Si vous créez un projet UML 2.0 à partir d un projet UML 1.4, le résultat obtenu dans les diagrammes risque de vous surprendre. Pour plus de détails, consultez la section Conversion de projets UML 1.4 en projets UML 2.0, page 30. Création d un projet à partir d un modèle MDL C est une fonctionnalité de Together Designer. Astuce Together Designer permet de créer des projets Together à partir de fichiers modèles et sous-unités de IBM Rational Rose (.mdl,.ptl,.cat,.sub). Vous pouvez importer tout un jeu de fichiers petal et de sous-unités. Les projets Together basés sur des modèles MDL importés respectent toujours la spécification UML 1.4. Pour créer un projet à partir d un modèle MDL, suivez les étapes ci-dessous : 1 Dans le menu principal, choisissez Fichier Nouveau. 2 Dans la galerie d objets, cliquez sur le nœud Projet. 3 Dans la page Projet, cliquez sur l icône Projet MDL, puis sur OK. 4 Suivez les étapes proposées dans l expert Projet MDL. Evitez d ajouter à la liste d importation un fichier modèle avec sa sous-unité, pour ne pas risquer d obtenir un projet erroné. 5 Si le projet importé contient des alias de chemins d accès, indiquez dans la boîte de dialogue Alias des chemins, le chemin réel de chaque alias reconnu. La spécification des alias se fait selon un processus itératif. Si un fichier ou une sous-unité contient d autres fichiers avec alias, la boîte de dialogue apparaît plusieurs fois, selon le niveau d imbrication des documents importés. Toutes les informations importantes pour les utilisateurs s affichent dans le volet Messages. Chapitre 2 : Utilisation de projets dans Together 25
36 Création d un projet UML 2.0 à partir d un projet UML 1.4 Création d un projet à partir d un modèle XMI C est une fonctionnalité de Together Designer. Important Remarque L utilisation du format XMI pour l échange de modèle permet de fournir une interopérabilité des divers outils de modélisation et modèles d échange sans perte de données. Dans Together Designer, vous pouvez créer des projets Together à partir de modèles XMI. Les projets Together basés sur des modèles XMI importés respectent toujours la spécification UML 1.4. Pour créer un projet à partir d un modèle XMI, suivez les étapes ci-dessous : 1 Dans le menu principal, choisissez Fichier Nouveau. 2 Dans la galerie d objets, cliquez sur le nœud Projet. 3 Dans la page Projet, cliquez sur l icône Projet UML 1.4 basé sur XMI, puis sur OK. 4 Suivez les étapes proposées dans l expert Projet UML 1.4 basé sur XMI. La progression de l importation est présentée dans le moniteur d activité et les messages d information sont affichés dans le volet Messages. Le temps d attente lors du traitement du modèle XMI dépend de la taille du modèle. Lorsque le traitement est terminé, un nouveau diagramme de package est créé et ajouté au modèle. Le navigateur de modèle affiche les packages et le diagramme de packages. Lors de l ouverture des diagrammes et de la sélection des classes, l éditeur affiche le code source. Un fichier journal est créé avec des informations sur les opérations d importation et il se place dans le dossier source du fichier XML importé. Si vous prévoyez d exporter un modèle de Rational Rose vers XMI puis de l importer dans Designer, choisissez l option de jeu de caractères ASCII/MBCS dans la boîte de dialogue d exportation XML Unisys de Rose. Les modèles exportés vers d autres jeux de caractères ne seront pas correctement importés. Projet JBuilder à partir d un modèle Designer C est une fonctionnalité de Together Developer. Cette fonctionnalité importante de Together Developer permet de créer un projet JBuilder à partir d un modèle existant produit par Together Designer. Les diagrammes de classe et de séquence ne viennent que du modèle source. Le projet.jpx qui en résulte est stocké à l emplacement spécifié et n affecte pas le projet.tpx source. Pour avoir des recommandations concernant le partage des dossiers des projets de modélisation et d implémentation, voir Synchronisation des projets de modélisation et d implémentation. Il est important de mentionner que Developer ne prend en charge que la spécification UML 1.4. Si le modèle respecte la spécification UML 2.0, les diagrammes de classe obtenus sont convertis pour être conformes à la spécification UML 1.4. Pour créer un projet à partir d un modèle Designer : 1 Dans le menu principal, choisissez Fichier Nouveau. 2 Dans la galerie d objets, cliquez sur le nœud Projet. 3 Dans la page Projet, cliquez sur l icône Projet basé sur un modèle Designer, puis sur OK. 4 Spécifiez le fichier projet *.tpx source, puis cliquez sur OK. 5 Suivez les étapes proposées par l expert Nouveau projet de JBuilder. 26 Guide de l utilisateur de Borland Together Developer 2005
37 Ouverture, fermeture et sélection de projets Projet JBuilder avec diagrammes UML 1.4 créé ex-nihilo C est une fonctionnalité de Together Developer. Si Together Developer est installé, tous les projets JBuilder que vous créez de manière normale ex-nihilo sont dotés de fonctionnalités UML 1.4. Dans ce cas, utilisez l expert Projet normal de JBuilder. Voir aussi Expert Nouveau projet dans l aide en ligne Expert Projet MDL dans l aide en ligne Expert Projet UML 1.4 basé sur XMI dans l aide en ligne Expert Nouveau projet UML 2.0 dans l aide en ligne Projet basé sur un modèle Designer dans l aide en ligne Utilisation de projets dans Together, page 19 Boîte de dialogue de sélection d un fichier ou d un répertoire dans l aide en ligne Ouverture, fermeture et sélection de projets Together permet de travailler sur plusieurs projets dans une même instance de l application. Le projet affiché et en cours de modification est le projet actif. Vous pouvez afficher la liste des projets ouverts et passer de l un à l autre avec le sélecteur de projet. Un sélecteur de projet est une boîte à options dans laquelle s affichent tous les projets ouverts. Le projet actif y apparaît en gras. Lors de la fermeture de projets, vous avez le choix entre fermer le projet actif, ne fermer que les projets sélectionnés et fermer en une seule fois tous les projets ouverts. Pour ouvrir un projet : 1 Dans le menu principal, choisissez Fichier Ouvrir un projet. 2 Dans la boîte de dialogue Ouverture de projet, repérez dans l arborescence le fichier projet à utiliser. Le nom et le type du projet sélectionné s affichent respectivement dans les champs Nom de fichier et Type de fichier. 3 Cliquez sur OK. Astuces Vous pouvez également utiliser le bouton de la barre d outils principale. Pour obtenir une description détaillée des contrôles, utilisez le bouton Aide de la boîte de dialogue Ouverture de projet. Si le projet sélectionné contient des diagrammes créés dans d anciennes versions de Together, vous êtes invité à mettre les diagrammes en package pour bénéficier du nouveau métamodèle d imbrication. Si vous annulez la conversion, le projet s ouvre tel quel. Pour sélectionner un projet ouvert, effectuez l une des opérations suivantes : Dans la barre d outils du navigateur de modèle, cliquez sur la boîte à options du sélecteur de projets, puis sélectionnez le projet voulu dans la liste déroulante, ou Dans le menu principal, choisissez Fenêtre Sélectionner le projet, puis cochez le projet à utiliser. Chapitre 2 : Utilisation de projets dans Together 27
38 Modification des propriétés du projet Pour fermer un ou plusieurs projets, suivez les étapes ci-dessous : 1 Dans le menu principal, choisissez Fichier Fermer les projets. 2 Dans la boîte de dialogue obtenue, sélectionnez les projets à fermer. 3 Cliquez sur OK. Astuce Pour fermer le projet en cours, cliquez sur le bouton de la barre d outils du navigateur. Voir aussi Boîte de dialogue Ouverture de projet dans l aide en ligne Modification des propriétés du projet Les propriétés du projet comprennent : Les décorations qui permettent de configurer l affichage des icônes de fichier Les chemins du projet qui décrivent les ressources dont un projet dispose La personnalité, qui vous permet d afficher ou de masquer à votre gré des composants de l interface utilisateur pour une session ou un projet donné Les préférences de modélisation qui permettent de personnaliser les apparences et les comportements liés à la modélisation Le menu Projet contient deux commandes : Propriétés du projet. Les paramètres définis dans la boîte de dialogue obtenue ne s appliquent qu au projet actif. Après avoir créé un projet, utilisez cette boîte de dialogue pour en afficher et modifier les propriétés. Propriétés du projet par défaut. Les paramètres définis dans cette boîte de dialogue définissent la configuration par défaut et s appliquent à tous les nouveaux projets créés. Astuce Pour modifier les propriétés d un projet actif : 1 Depuis le menu principal, choisissez Projet Propriétés du projet. Vous pouvez aussi, dans le navigateur de modèle, cliquer avec le bouton droit sur le nom du projet, puis choisir Propriétés dans le menu contextuel. 2 Sélectionnez les pages requises et configurez les options selon vos besoins. 3 Cliquez sur OK pour appliquer les modifications. Pour modifier les propriétés de projet au niveau par défaut : 1 Depuis le menu principal, choisissez Projet Propriétés du projet. 2 Sélectionnez les pages requises et configurez les options selon vos besoins. 3 Cliquez sur OK pour appliquer les modifications. Pour plus de détails, consultez les pages sur les descriptions des propriétés. Voir aussi Boîte de dialogue Propriétés du projet dans l aide en ligne Page Chemins du projet dans l aide en ligne Page Personnalité dans l aide en ligne Annexe B, Préférences de modélisation Gestion des ressources d un projet, page Guide de l utilisateur de Borland Together Developer 2005
39 Gestion des ressources d un projet Gestion des ressources d un projet Il est possible d ajouter, de retirer et de modifier des ressources d un projet en cours de création, ou ultérieurement, dans la page Chemins de la boîte de dialogue Propriétés du projet. L onglet Diagramme affiche la liste de répertoires dont le projet dispose en tant que ressources. Pour ajouter un chemin au projet, suivez les étapes ci-dessous : 1 Dans la page Chemins de la boîte de dialogue Propriétés du projet, sélectionnez l onglet Diagrammes. 2 Cliquez sur le bouton Ajouter pour afficher la boîte de dialogue Sélection d un ou de plusieurs répertoires. 3 Naviguez jusqu au répertoire ou jusqu à l archive que vous souhaitez inclure dans le projet. 4 Cliquez sur OK. Pour supprimer des ressources du projet : 1 Sous l onglet Diagramme, sélectionnez une ou plusieurs ressources à supprimer du projet. 2 Cliquez sur Retirer. Pour modifier un chemin : 1 Dans la liste des ressources disponibles du projet, sélectionnez celle que vous souhaitez modifier. 2 Cliquez sur le bouton Modifier. 3 Dans la boîte de dialogue Sélection de répertoire qui s ouvre, allez jusqu au répertoire ou jusqu à l archive à inclure dans le projet. 4 Cliquez sur OK. Dans la liste de ressources apparaissent le chemin d accès au diagramme par défaut ainsi que les autres chemins d accès. Together recherche dans tous les chemins et inclut dans le projet tous les diagrammes qu il rencontre. Le chemin par défaut est celui dans lequel sont créés les nouveaux diagrammes. Les autres chemins ne sont pas disponibles en écriture. Vous pouvez modifier le chemin du diagramme par défaut selon vos besoins. Pour affecter un chemin de diagramme par défaut : 1 Dans la liste des ressources disponibles du projet, sélectionnez celle qui doit être attribuée par défaut. 2 Dans la colonne Défaut de gauche, cliquez sur le bouton radio. Pour organiser les ressources selon l ordre que vous souhaitez leur donner : 1 Sélectionnez le chemin dans la liste des ressources disponibles. 2 Cliquez sur Vers le haut / Vers le bas pour déplacer le chemin d un rang dans la direction sélectionnée. Voir aussi Boîte de dialogue de sélection d un fichier ou d un répertoire dans l aide en ligne Chapitre 2 : Utilisation de projets dans Together 29
40 Conversion de projets UML 1.4 en projets UML 2.0 Conversion de projets UML 1.4 en projets UML 2.0 Si vous créez un projet UML 2.0 à partir d un projet UML 1.4 existant, vous pouvez être surpris par la façon dont s affichent certains diagrammes UML 1.4 et par la disparition, dans les diagrammes, de certains éléments de modélisation. Cependant, soyez assuré que vous n avez perdu aucune information de modélisation car, outre le nouveau projet UML 2.0, Together conserve le projet UML 1.4 source. Par conséquent, vous pouvez retrouver tous les éléments perdus de l ancien projet. Lors de la conversion de diagrammes entre un projet UML 1.4 et un projet UML 2.0, Together obéit aux règles communes suivantes : 1 Si la notation UML 2.0 ne prend pas en charge un élément de modélisation de type UML 1.4, ou s il n y a aucun intérêt à l utiliser dans des diagrammes UML 2.0, toutes les instances de ce type sont simplement retirées des diagrammes UML 2.0 obtenus. Par exemple, les états disparaissent des diagrammes d activité (voir Conversion d un élément Etat sur un diagramme d activité, page 31) et les composants disparaissent des diagrammes de déploiement (voir Conversion de l élément Composant sur un diagramme de déploiement, page 31). 2 Si l élément de modélisation UML 1.4 est d un type conteneur de composant (c est-à-dire si une instance de ce type peut contenir d autres éléments de modélisation) non pris en charge par UML 2.0, toutes les instances de ce type sont retirées des diagrammes UML 2.0 correspondants avec tous leurs contenus. Par exemple, voir Conversion d un élément Etat sur un diagramme d activité, page Si un élément de modélisation UML 1.4 est d un type non pris en charge par UML 2.0, mais s il a une signification logique et s il est joint d une manière ou d une autre avec d autres éléments de modélisation pris en charge par UML 2.0, toutes les instances de ce type logique sont retirées partout dans les diagrammes UML 2.0, mais tous leurs éléments internes sont enregistrés sur les diagrammes. Par exemple, voir Conversion des éléments de modélisation Périmètre du système et Travée, page Si le même élément de modélisation est utilisé dans UML 1.4 et UML 2.0, mais change de signification entre les deux versions, il est enregistré dans les diagrammes UML 2.0, mais il prend la signification reconnue dans les métaclasses UML 2.0. Par exemple, l élément Activité du diagramme d activité UML 2.0 appartient à une autre métaclasse que le même élément sur le diagramme d activité UML 1.4. Dans le dernier cas, cet élément est associé à une expression d action. 5 UML 1.4 autorise des débranchements et des jointures avec plusieurs entrées et plusieurs sorties à la fois. Une telle situation ne peut pas se produire dans la notation UML 2.0. Si une jointure a plusieurs entrées, elle ne doit avoir qu une sortie. Et vice-versa, si un débranchement a plusieurs sorties, il ne doit avoir qu une entrée. Lors de la conversion d un projet d une version UML 1.4 vers une version UML 2.0, Together remplace les éléments de modélisation à plusieurs entrées et plusieurs sorties par deux éléments de modélisation liés sur le diagramme UML 2.0 correspondant. Selon la spécification UML 2.0, un des éléments a plusieurs entrées et une sortie et l autre a une entrée et plusieurs sorties. Pour plus de détails, consultez la section Conversion de débranchements et de jointures, page 33. Plusieurs exemples illustrent ci-après ces limites de conversion. 30 Guide de l utilisateur de Borland Together Developer 2005
41 Conversion de projets UML 1.4 en projets UML 2.0 Conversion d un élément Etat sur un diagramme d activité UML 1.4 prend en charge l élément Etat dans les diagrammes d activité et d état. Dans UML 2.0, l élément Etat n est défini que pour les diagrammes d état. Vous pouvez voir ci-dessous la façon dont le diagramme d activité UML 1.4, qui contient l instance de l état, est converti en diagramme d activité UML 2.0 : Si l état source contient des sous-états ou des sous-activités (UML 1.4), il disparaît, ainsi que son contenu, du diagramme d activité UML 2.0 obtenu : Conversion de l élément Composant sur un diagramme de déploiement L élément Composant est pris en charge dans UML 1.4, ce qui n est pas le cas dans UML 2.0. Vous pouvez voir ci-dessous la façon dont le diagramme de déploiement UML 1.4, qui contient des composants, est converti en diagramme de déploiement UML 2.0 : Chapitre 2 : Utilisation de projets dans Together 31
42 Conversion de projets UML 1.4 en projets UML 2.0 Conversion des éléments de modélisation Périmètre du système et Travée Dans le cas de projets UML 1.4, la boîte à outils d un diagramme de cas d utilisation contient le bouton Périmètre du système. Avec ce bouton, vous pouvez entourer les cas d utilisation d un rectangle représentant le périmètre du système conteneur ou du classificateur, comme le montre l illustration suivante : L élément périmètre du système n est pas défini dans la spécification UML 2.0. Si vous convertissez le projet source en projet UML 2.0, le diagramme de cas d utilisation source devient, dans sa version UML 2.0 : Remarque Vous pouvez voir que les éléments périmètre du système logiques sont remplacés par les éléments sujet. Toutes les instances de l élément de modélisation UseCase sont placées en sécurité sur le nouveau diagramme. Les travées subissent la même situation. Dans UML 1.4 est défini le conteneur logique spécial Travée pour organiser visuellement les actions et les sous-activités sur le diagramme d activité. Dans UML 2.0, les travées de spécification n existent pas. 32 Guide de l utilisateur de Borland Together Developer 2005
43 Conversion de projets UML 1.4 en projets UML 2.0 Vous pouvez voir ci-dessous un exemple de diagramme d activité UML 1.4 source à deux travées et le résultat de sa conversion : Conversion de débranchements et de jointures Selon la spécification UML 2.0, un élément de modélisation de jointure appartient à un groupe parmi les suivants : Eléments de jointure à plusieurs entrées et une sortie Eléments de jointure à une entrée et plusieurs sorties Les éléments de jointure UML 1.4 comportant plusieurs entrées et plusieurs sorties sont convertis en paires d éléments de jointure UML 2.0. Par exemple, si l élément Débranchement d un diagramme d activité UML 1.4 comporte plusieurs entrées et plusieurs sorties, il est converti en deux débranchements. Le premier des nouveaux éléments Débranchement comporte plusieurs entrées et une sortie et le second une entrée et plusieurs sorties, comme le montre l exemple ci-dessous : Voir aussi Notions fondamentales sur les projets, page 20 Expert Nouveau projet UML 2.0 dans l aide en ligne Chapitre 2 : Utilisation de projets dans Together 33
44 Utilisation de fichiers et de dossiers Utilisation de fichiers et de dossiers Ajout et suppression de fichiers Il est possible d ajouter des fichiers qui ne font pas partie d un projet, mais qui peuvent constituer une précieuse source d information. Les références à ces fichiers s ajoutent au fichier du projet sous la forme : <file path="<nom relatif du fichier>"/> Pour ajouter des fichiers à un projet : 1 Dans le volet Projet, effectuez un clic droit sur le nom du projet, puis choisissez Ajouter des fichiers dans le menu contextuel. Astuce : Vous pourriez aussi cliquer sur le bouton, dans la barre d outils de la vue Projet, ou choisir Projet Ajouter des fichiers dans le menu principal. 2 Dans la boîte de dialogue Ajouter un fichier qui s ouvre, allez jusqu au fichier souhaité, puis cliquez sur OK. Pour retirer un fichier d un projet : 1 Cliquez avec le bouton droit sur le fichier à retirer. Choisissez Supprimer le fichier <nom du fichier> dans le menu contextuel. 2 Cliquez sur Supprimer pour confirmer. Ouverture et fermeture de fichiers Together Designer permet d ouvrir des fichiers de divers types, dans la boîte de dialogue Ouvrir un fichier. Les fichiers ouverts selon cette méthode ne s ajoutent au projet que si vous le demandez explicitement avec le bouton Ajouter au projet, dans la barre d outils de la vue Projet, ou par le menu Projet Ajouter des fichiers, comme le décrit la section Ajout et suppression de fichiers, page 34. Pour ouvrir un fichier : 1 Dans le menu principal, choisissez Fichier Ouvrir un fichier, ou cliquez sur le bouton de la barre d outils principale. 2 Dans la boîte de dialogue Ouverture d un fichier, sélectionnez le type du fichier, allez jusqu au fichier souhaité, puis cliquez sur OK. Résultat : Le comportement ultérieur dépend du type de fichier. Si un fichier projet a été sélectionné, le projet correspondant s ouvre. Les fichiers HTML s ouvrent dans le volet Contenu. Il y a plusieurs manières de fermer les fichiers ouverts : Choisissez Fichier Fermer <fichier actif> dans le menu principal ; Cliquez sur Fichier Fermer dans le menu principal et, dans la boîte de dialogue obtenue, cochez les fichiers à fermer ; Cliquez sur sur la barre d outils principale, ce qui ferme le fichier actif. 34 Guide de l utilisateur de Borland Together Developer 2005
45 Utilisation de favoris Utilisation de favoris Passage d un fichier à l autre Pour basculer entre fichiers ouverts : 1 Dans le menu principal, choisissez Fenêtre Changer. 2 Dans la boîte de dialogue Changement, choisissez le fichier dans la liste de nœuds ouverts, puis cliquez sur OK. Résultat : Le fichier sélectionné devient actif. Utilisation des systèmes de contrôle de version pour les fichiers et les dossiers de Together Comme n importe quel projet JBuilder, vos modèles Together peuvent être placés sous contrôle de version. JBuilder prend en charge plusieurs systèmes de contrôle de version (VCS). Consultez l aide en ligne et la documentation de JBuilder concernant les fonctionnalités de contrôle de version. Dans cette section, seules les informations spécifiques concernant la conservation des modèles Together sous contrôle de version sont fournies. Le contrôle de version peut être configuré pour un projet de modélisation complet ou pour des parties individuelles du modèle situées dans des fichiers distincts. Quand un modèle est contrôlé par un VCS, n oubliez pas d exécuter les actions du VCS sur tous les fichiers concernés : fichiers projet (.jpx ou.tpx), fichiers diagramme, fichiers package (default.txapackage) et fichiers élément (si l option Créer les éléments de modélisation dans des fichiers distincts pour les projets.tpx a été sélectionnée). Par exemple, si vous extrayez le diagramme à jour sans extraire default.txapackage, votre modèle risque de devenir inutilisable. Pour effectuer une configuration générale du VCS pour le projet en cours ou l élément sélectionné, utilisez les commandes du menu Equipe. Pour configurer le contrôle de version du diagramme actuel, cliquez avec le bouton droit sur le fond du diagramme et choisissez VCS puis une commande particulière (Mettre à jour, Ajouter, Retirer, etc.) dans le menu contextuel ou dans le menu Equipe. Pour configurer le contrôle de version d un élément sélectionné, cliquez avec le bouton droit sur les éléments de modélisation, puis choisissez VCS et une commande. Si les commandes du contrôle de version ne sont pas disponibles pour l élément sélectionné, soit le VCS n est pas activé, soit l élément sélectionné ne se trouve pas dans un fichier séparé. Outre les modèles favoris, vous pouvez définir une liste de favoris incluant les dossiers souvent utilisés dans votre projet. Cette liste est utilisée dans de nombreuses boîtes de dialogue de sélection de fichier, telles que la boîte de dialogue d ouverture de fichiers (accessible à partir de plusieurs menus et de la barre d outils principale), la boîte de dialogue d ajout de fichiers au projet ou d autres. Dans ces boîtes de dialogue, les favoris sont représentés par les icônes. La boîte de dialogue Organisation des favoris permet de gérer les favoris : renommer, supprimer le favori ou le déplacer vers le haut ou vers le bas de la liste. Le classement que vous donnez ici détermine l ordre de tri dans la liste des favoris. Chapitre 2 : Utilisation de projets dans Together 35
46 Utilisation de favoris Pour ajouter un lien favori à partir d une boîte de dialogue de sélection de fichiers : 1 Naviguez jusqu au répertoire à ajouter. 2 Cliquez sur le bouton Favoris de la barre d outils. 3 Sélectionnez Ajouter dans les favoris. La boîte de dialogue Ajouter dans les favoris s ouvre. 4 Tapez le nom du lien. 5 Cliquez sur OK ou appuyez sur la touche Entrée. Résultat : Le nouveau favori s ajoute à la liste des favoris. Les favoris que vous ajoutez sont signalés par une icône en forme de cœur. Lorsque nécessaire, la liste des favoris peut défiler. Pour supprimer un fichier ou un dossier de la liste des favoris : 1 Cliquez sur le bouton Favoris. 2 Sélectionnez Organiser les favoris. La boîte de dialogue Organisation des favoris apparaît. 3 Sélectionnez un favori dans la liste. 4 Cliquez sur Retirer. 5 Quand vous avez terminé, cliquez sur OK ou appuyez sur la touche Entrée. Résultat : Le fichier ou le dossier, bien que retiré de la liste des favoris, reste dans le système de fichiers. Pour renommer un fichier ou un dossier de la liste des favoris : 1 Cliquez sur le bouton Favoris. 2 Sélectionnez Organiser les favoris. La boîte de dialogue Organisation des favoris apparaît. 3 Sélectionnez un favori dans la liste. 4 Cliquez sur Renommer. 5 Quand vous avez terminé, cliquez sur OK ou appuyez sur la touche Entrée. Résultat : Le favori a changé de nom dans la liste des favoris mais il reste dans le système de fichiers sous son nom d origine. Pour réorganiser les éléments de la liste des favoris : 1 Cliquez sur le bouton Favoris. 2 Sélectionnez Organiser les favoris. La boîte de dialogue Organisation des favoris apparaît. 3 Sélectionnez un favori dans la liste. 4 Cliquez sur Vers le haut / Vers le bas pour déplacer l élément d un rang dans la direction indiquée. Répétez l opération autant de fois que nécessaire. 5 Quand vous avez terminé, cliquez sur OK ou appuyez sur la touche Entrée. Voir aussi Navigateur de favoris, page 9 36 Guide de l utilisateur de Borland Together Developer 2005
47 Chapitre 3 3Utilisation des diagrammes Chapitre Cette partie présente les techniques de diagrammes communes à tous les types de diagrammes. Vous apprendrez comment créer, ouvrir et fermer des diagrammes, dessiner des éléments, annoter et imprimer des diagrammes, etc. Les diagrammes Together utilisent un format compatible sur toute la gamme des produits Together. Utilisation des diagrammes (création, ouverture et fermeture des diagrammes) Dessin d éléments de diagramme Manipulation des éléments de diagramme Visualisation des diagrammes et gestion de la disposition d un diagramme Dépendances de package Annotation de diagrammes Enregistrement et copie des images des diagrammes Hyperliens et diagrammes Utilisation des fonctions de recherche Création de diagrammes dans des projets Les diagrammes existent dans le contexte d un projet. Il faut créer ou ouvrir un projet avant de pouvoir créer de nouveaux diagrammes. Quand vous commencez un nouveau projet ou ajoutez de nouveaux diagrammes à un projet existant, vous pouvez créer des diagrammes en utilisant : Le menu principal ou la barre d outils. Les fonctions d hyperlien. La commande Cloner. Les diagrammes créés sont stockés dans des fichiers au format xml à l extension *.txv<type_diagramme>. Par exemple, le fichier <nom>.txvcls correspond à un diagramme de classes. Tous les produits de modélisation (Borland Together Edition pour Eclipse, Borland Together Edition pour Microsoft Visual Studio.NET et Borland Together Edition pour Borland JBuilder) partagent le même format de diagramme. Pour modifier un diagramme, le fichier.txapackage et celui du diagramme ne doivent pas être en lecture seule. Chapitre 3 : Utilisation des diagrammes 37
48 Création de diagrammes dans des projets Création de diagramme à l aide du menu principal ou de la barre d outils Astuce Pour créer un diagramme dans un projet : 1 Sélectionnez le répertoire ou le package de destination dans le navigateur de modèle. 2 Choisissez Fichier Nouveau diagramme dans le menu principal pour ouvrir la galerie d objets. 3 Dans le volet des templates, choisissez l icône du type de diagramme et cliquez sur OK pour ouvrir la boîte de dialogue Nouveau diagramme. 4 Dans la boîte de dialogue Nouveau diagramme, entrez le nom du diagramme dans le champ correspondant. 5 Dans le champ Nom de package spécifiez le package de destination du nouveau fichier diagramme. La destination par défaut est le package sélectionné dans le navigateur de modèle. 6 Cliquez sur OK. Le nouveau diagramme s ouvre dans l éditeur de diagramme. Pour créer un nouveau diagramme, vous pouvez aussi effectuer l une des opérations suivantes : Choisissez Diagramme Nouveau dans le menu principal. Cliquez sur le bouton Nouveau diagramme dans la barre d outils du diagramme. Cliquez sur le bouton Nouvel objet dans la barre d outils principale. Cliquez sur la boîte liste et, dans la liste déroulante obtenue, choisissez Diagramme. Dans le navigateur de modèle, cliquez avec le bouton droit sur le nœud du package cible et choisissez Nouveau Diagramme. Dans le menu contextuel d un diagramme ou d un package, choisissez Nouveau Diagramme. Utilisation de la fonction hyperlien pour créer des diagrammes La fonction d hyperlien permet de créer un nouveau diagramme qui est automatiquement lié à un diagramme ou à un élément de modélisation existant. Pour créer un diagramme hyperlié : 1 Ouvrez un diagramme existant depuis lequel créer l hyperlien (ou créez un nouveau diagramme). 2 Sélectionnez l élément ou le groupe d éléments auquel doit être lié le nouveau diagramme. Si vous voulez le lier au diagramme pris comme un tout, cliquez dans l arrière-plan du diagramme. 3 Dans le menu contextuel, choisissez Hyperlien vers Nouveau diagramme. La boîte de dialogue Nouveau diagramme s affiche. 4 Spécifiez le type et l emplacement du nouveau diagramme comme décrit plus haut. Cliquez sur OK. Pour de plus amples informations, voir Hyperliens et diagrammes, page Guide de l utilisateur de Borland Together Developer 2005
49 Ouverture et fermeture de diagrammes Clonage de diagrammes La commande Cloner permet de créer un diagramme de même contenu qu un diagramme existant. Pour cloner un diagramme : 1 Dans le navigateur de modèle, sélectionnez le diagramme à cloner. 2 Choisissez Cloner dans le menu contextuel. Le nouveau diagramme est créé avec un nom par défaut unique dans le même package que le diagramme d origine. Renommer des diagrammes Pour renommer un diagramme avec l inspecteur : 1 Dans le navigateur de modèle, sélectionnez le diagramme à renommer et assurez-vous que l inspecteur est ouvert. 2 Sous l onglet Propriétés de l inspecteur, cliquez sur le champ name pour ouvrir l éditeur in-situ. 3 Modifiez la propriété name selon vos désirs et appliquez vos modifications. Pour renommer un diagramme in-situ : 1 Dans le navigateur de modèle, sélectionnez le nœud du diagramme voulu. 2 Double-cliquez sur le nom du diagramme ou appuyez sur la touche F2 pour activer l éditeur in-situ. 3 Changez le nom puis appuyez sur Entrée. Suppression de diagrammes Vous pouvez supprimer des diagrammes de votre projet. Dans le cas du métamodèle d imbrication où les éléments de modélisation sont stockés dans des packages, la suppression d un diagramme ne signifie pas que les éléments qu il contient sont supprimés du modèle. Pour supprimer des diagrammes, Together fournit deux commandes : Supprimer et Supprimer avec le contenu. La première supprime des diagrammes du projet en laissant les éléments de modélisation dans leurs packages ; la deuxième supprime des diagrammes avec tous leurs éléments. Les deux commandes sont disponibles dans les menus contextuels du navigateur de modèle, du navigateur de diagramme et de l éditeur de diagramme. Ouverture et fermeture de diagrammes Après l ouverture d un projet comportant des diagrammes, vous pouvez ouvrir un ou plusieurs de ces diagrammes pour les modifier. Chaque diagramme s ouvre dans sa propre page à onglets dans l éditeur de diagrammes. Les onglets affichent le nom du diagramme et l icône du type de diagramme. Naviguez entre les diagrammes en cliquant sur les onglets. Les diagrammes s ouvrent depuis le navigateur de modèle à l aide des commandes du menu contextuel. Chapitre 3 : Utilisation des diagrammes 39
50 Affichage et organisation de diagrammes Astuce Pour ouvrir un diagramme : 1 Dans le navigateur de modèle, sélectionnez le diagramme à ouvrir. 2 Dans le menu contextuel du diagramme, choisissez la commande Ouvrir. Vous pouvez aussi double-cliquer sur le nœud du diagramme. Pour ouvrir un diagramme parent à partir du diagramme en cours : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme. 2 Choisissez Ouvrir le diagramme parent dans le menu contextuel. Astuce Vous pouvez aussi effectuer l une des opérations suivantes : Cliquer sur le bouton dans la barre d outils du diagramme Choisir Diagramme Ouvrir le diagramme parent dans le menu principal Utiliser le raccourci clavier Ctrl+Retour arrière. Pour fermer les diagrammes, utilisez les commandes du menu principal, le menu contextuel de l onglet Diagramme ou l icône de l onglet du diagramme. Pour fermer un diagramme, vous avez le choix entre les méthodes suivantes : Dans le menu principal, choisissez Fichier Fermer <nom du diagramme>. Cliquez avec le bouton droit sur l onglet du diagramme et choisissez Fermer dans le menu contextuel. Dans la boîte de dialogue de fermeture qui affiche la liste de tous les diagrammes ouverts, sélectionnez ceux que vous voulez fermer. Cliquez avec le bouton droit sur l onglet du diagramme et choisissez Tout fermer sauf <nom du diagramme en cours> dans le menu contextuel. Utilisez le bouton de l onglet du diagramme. Utilisez le bouton dans la barre d outils principale pour fermer le diagramme en cours. Affichage et organisation de diagrammes Together facilite l affichage et l organisation des diagrammes dans l éditeur de diagramme. Vous pouvez gérer des diagrammes simples ou complexes avec des fonctionnalités de disposition automatiques ou créer vos propres dispositions. Visualisation Vous pouvez faire défiler horizontalement ou verticalement l éditeur de diagrammes à l aide de ses barres de défilement ou cliquer sur l icône Vue globale dans le coin inférieur droit de l éditeur. Redimensionnez le volet verticalement en faisant glisser son bord inférieur vers le haut ou le bas. Redimensionnez le volet horizontalement en faisant glisser le séparateur situé entre la barre d outils et le volet Explorateur ou en redimensionnant la fenêtre. Pour agrandir votre zone de travail dans l éditeur de diagrammes, utilisez le menu Voir (Voir Agrandir le volet Contenu). Utilisez Vue globale, comme le décrit la section suivante. 40 Guide de l utilisateur de Borland Together Developer 2005
51 Affichage et organisation de diagrammes Vue globale Avec la vue globale, vous disposez d un moyen pratique de consulter et faire défiler le diagramme quelle qu en soit la taille. Pour activer la vue globale, vous disposez de plusieurs méthodes : Cliquez sur le bouton Vue globale dans le coin inférieur droit de l éditeur de diagrammes. Choisissez Diagramme Vue globale pour ajouter la vue à celles du navigateur. Utilisez le raccourci clavier Ctrl+Maj+O. Quand le pointeur de la souris passe au-dessus des bords de la vue globale, il prend la forme d une flèche de redimensionnement ou d une main de repositionnement. Redimensionnez et déplacez la zone ombrée pour obtenir la vue souhaitée. La figure ci-dessous illustre le volet Vue globale. Figure 3.1 Volet Vue globale Appuyez sur Echap pour fermer la vue globale. Affichage et masquage d éléments Dans les projets complexes, vos diagrammes peuvent être trop surchargés pour être compréhensibles. Pour clarifier vos diagrammes et les rendre plus significatifs, utilisez les fonctions de gestion d affichage (nœuds Détails d affichage et Filtres d affichage de la boîte de dialogue Préférences de modélisation). Avec les options Détails d affichage et Filtres d affichage, vous pouvez contrôler ce que vous souhaitez faire apparaître dans les diagrammes. Vous pouvez spécifier si les différents types d éléments doivent ou non s afficher dans les diagrammes et, s ils s affichent, de quelle manière. Dans la page Détails d affichage, vous pouvez : Contrôler le niveau général de détail affiché dans les diagrammes Contrôler si les membres des classes apparaissent au format UML ou au format Java. Afficher ou masquer des sous-packages dans les diagrammes. Pour une description détaillée des options, reportez-vous à la Préférences des détails d affichage, page 295. Outre les options générales, vous pouvez afficher ou masquer des éléments qui respectent certains critères. Par exemple, vous pouvez exclure des éléments qui appartiennent à une métaclasse donnée ou ceux dont le nom correspond à l expression de filtrage spécifiée. Pour une description détaillée des options, reportez-vous à la boîte de dialogue des préférences Filtres d affichage. Notez qu il est possible de cacher des éléments individuels dans les diagrammes en utilisant le menu contextuel du diagramme. Si vous ne voyez pas un élément dans un diagramme et si l élément n est pas masqué par les options d affichage des détails, choisissez Afficher les éléments cachés dans le menu contextuel du diagramme et vérifiez la liste des éléments cachés. Chapitre 3 : Utilisation des diagrammes 41
52 Affichage et organisation de diagrammes Pour afficher ou cacher des éléments : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme. 2 Dans le menu contextuel, choisissez Afficher les éléments cachés. Une boîte de dialogue de sélection s ouvre. 3 Dans la boîte de dialogue Afficher les éléments cachés pour : <nom du diagramme>, créez les listes des éléments visibles et cachés en utilisant les boutons Ajouter et Retirer. 4 Cliquez sur OK lorsque vous avez terminé. Zoom Plusieurs moyens permettent d obtenir l agrandissement souhaité dans l éditeur de diagrammes. Utilisez les boutons d agrandissement/réduction dans la barre d outils de l éditeur de diagrammes : pour agrandir, pour réduire, pour afficher la taille véritable ou pour ajuster le diagramme à la fenêtre. Utilisez le bouton Zoom de la barre d outils du diagramme. Le bouton gauche de la souris effectue un zoom avant et le bouton droit un zoom arrière. Choisissez les commandes Diagramme Zoom dans le menu principal. Utilisez les raccourcis clavier suivants : Tableau 3.1 Gestion de la disposition d un diagramme On peut considérer les diagrammes comme des graphiques comportant des sommets et des arêtes, dont la disposition respecte un certain algorithme. A chaque algorithme correspond un ensemble d options spécifiques, définies dans la catégorie Modélisation Disposition de la boîte de dialogue Préférences. Les options suivantes sont disponibles : Action du zoom Raccourcis clavier des commandes Zoom Raccourci clavier Zoom avant + (pavé numérique) Zoom arrière - Ajuster à la fenêtre * Taille véritable / Ctrl+Maj+Espace Active la loupe de zoom tant que la pression est maintenue. Sélection automatique : plusieurs algorithmes sont disponibles par type de diagramme. Cette option analyse les informations internes de chaque algorithme et sélectionne celui qui correspond le mieux au type de diagramme en cours. Hiérarchique : ce type d algorithme convient particulièrement bien aux analyses de structure hiérarchique (pour étudier par exemple les relations d héritage du code source). Together : algorithme qui s applique à tous les types de diagrammes. Arborescence : l algorithme trace un diagramme arborescent. Orthogonal : algorithme structurel simple, utilisé lorsque la hiérarchie n est pas un aspect important. Spring Embedder : algorithmes de disposition, pilotés par des forces, qui modélisent le graphe en tant que système de forces et essaient de trouver la configuration de plus basse énergie. 42 Guide de l utilisateur de Borland Together Developer 2005
53 Affichage et organisation de diagrammes Pour définir la disposition du diagramme : 1 Ouvrez la boîte de dialogue Préférences au niveau souhaité. 2 Sélectionnez la catégorie Modélisation Disposition. 3 Dans la boîte liste Algorithme, sélectionnez l algorithme de disposition. 4 Spécifiez les options spécifiques à cet algorithme, s il y a lieu, et appliquez les modifications. Résultat : Vous pouvez observer les résultats de l harmonisation de la disposition si vous appliquez au diagramme une des commandes Disposition. Pour en savoir plus sur les options spécifiques à chaque algorithme, consultez la description des préférences de disposition dans la boîte de dialogue Préférences. Vous trouverez les commandes de disposition dans le menu principal Diagramme, dans le menu contextuel du diagramme sélectionné ou sur la barre d outils de l éditeur de diagrammes. Le contenu du sous-menu Disposition dépend de la sélection en cours : Si vous cliquez dans l arrière-plan du diagramme : Disposition Disposer tout positionne automatiquement tous les éléments de modélisation en fonction des paramètres des options de disposition. Disposition Disposer tout pour impression positionne automatiquement tous les éléments de modélisation de la manière la plus efficace pour une impression. Si vous sélectionnez un ou plusieurs éléments de modélisation : Disposition Disposer les éléments sélectionnés ne repositionne que les éléments sélectionnés. Disposition Disposer tout à l exception des éléments sélectionnés dispose tous les éléments du diagramme en conservant les positions relatives des éléments sélectionnés. Disposition Disposer la sous-structure inner dispose les éléments internes du nœud sélectionné. Disposition Optimiser la taille de l élément redonne aux dimensions de la sélection leurs valeurs par défaut après un redimensionnement manuel. Création d une disposition personnalisée Pour créer votre propre disposition, sélectionnez et déplacez un ou plusieurs éléments de modélisation. Vous pouvez : Sélectionner un seul élément et le faire glisser jusqu à son nouvel emplacement. Sélectionner plusieurs nœuds et faire glisser le groupe jusqu au nouvel emplacement. Sélectionner plusieurs nœuds, les couper et les coller collectivement à un nouvel emplacement. Ré-orienter manuellement les liens. Conseils Les dispositions manuelles sont enregistrées quand vous fermez un diagramme ou un projet et restaurées quand vous le rouvrez. Les dispositions manuelles ne sont pas conservées quand vous utilisez l une des commandes de disposition automatique. Vous pouvez revenir à votre disposition manuelle après une opération de disposition automatique en utilisant Annuler. Chapitre 3 : Utilisation des diagrammes 43
54 Dessin d éléments de modélisation Alignement des éléments de modélisation Il est possible d aligner des éléments de modélisation les uns par rapport aux autres à l aide d options proposées dans une boîte liste sur la barre d outils du diagramme. Les commandes d alignement s appliquent à une sélection d éléments de modélisation. Action d alignement Icône Description Aligner en haut Aligner en bas Aligner à gauche Aligner à droite Aligner les centres horizontalement Aligner les centres verticalement Egaliser la taille Egaliser la largeur Egaliser la hauteur Répartir équitablement horizontalement Répartir équitablement verticalement Voir aussi Dessin d éléments de modélisation, page 44 Aligne les éléments sélectionnés sur le bord supérieur de l élément le plus haut Aligne les éléments sélectionnés sur le bord inférieur de l élément le plus bas Aligne les éléments sélectionnés sur le bord gauche de l élément le plus à gauche Aligne les éléments sélectionnés sur le bord droit de l élément le plus à droite Aligne les éléments sélectionnés sur la coordonnée Y commune du centre Aligne les éléments sélectionnés sur la coordonnée X commune du centre Donne à tous les éléments la taille du plus grand d entre eux Donne à tous les éléments la largeur du plus large d entre eux Donne à tous les éléments la hauteur du plus haut d entre eux Positionne les éléments sélectionnés à égale distance horizontalement Positionne les éléments sélectionnés à égale distance verticalement Annexe B, Préférences de modélisation Dessin d éléments de modélisation Cette section présente les techniques de base permettant de placer des éléments et des annotations dans des diagrammes et de dessiner des liens pour indiquer les relations existant entre eux. Dessiner des diagrammes avec la fonction de modélisation Together est une activité simple et intuitive. Voici les principaux outils qui permettent de construire des diagrammes : Commandes du menu principal Diagramme. Utilisez ces commandes pour créer des diagrammes, en gérer la disposition, copier des images, agrandir et réduire l affichage, etc. Certaines de ces commandes se retrouvent dans les menus contextuels. Boutons de la boîte à outils Diagramme. Utilisez-les pour placer des icônes représentant les éléments d un nœud et tracer des liens dans l arrière-plan du diagramme. Menu contextuel du diagramme. Un clic avec le bouton droit dans l arrière-plan du diagramme affiche un menu contextuel qui permet de créer les éléments d un nœud, d afficher des objets masqués, de gérer la disposition et de configurer des options, des diagrammes et des hyperliens. 44 Guide de l utilisateur de Borland Together Developer 2005
55 Dessin d éléments de modélisation Menus contextuels des éléments. Cliquez avec le bouton droit sur un élément pour en afficher le menu contextuel. Les fonctions proposées dans un menu contextuel dépendent du nœud ou du lien sélectionné. Vous pouvez, par exemple, ajouter ou supprimer des membres (ou supprimer l élément lui-même), couper-copier-coller, afficher et masquer des éléments, orienter les liens. Explorez les menus contextuels des différents éléments au fur et à mesure que vous les rencontrez pour voir ce que propose chacun d eux. Les inspecteurs. (Menus contextuels Inspecteur). Utilisez les inspecteurs pour modifier les propriétés du diagramme ou d un de ses éléments et pour créer des hyperliens entre diagrammes, entre des éléments d un diagramme et d autres diagrammes, ou entre des diagrammes ou des éléments et des fichiers ou des URL. Vous pouvez également fournir des descriptions des éléments du diagramme. Dessin des éléments d un nœud Pour placer un élément de nœud dans un diagramme : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton de l élément que vous voulez placer dans le diagramme. (Les icônes sont identifiées par des info-bulles.) Le bouton reste enfoncé. 2 Cliquez dans l arrière-plan du diagramme à l endroit où vous voulez créer l élément. Cela crée l élément et active l éditeur in-situ de son nom. Astuces Vous pouvez aussi sélectionner l une des méthodes suivantes : Cliquez avec le bouton droit dans l arrière-plan du diagramme et choisissez Nouveau dans le menu contextuel. Le sous-menu affiche tous les éléments de base pouvant être ajoutés au diagramme. Dans le navigateur de modèle, cliquez avec le bouton droit sur le nœud auquel ajouter un élément, puis choisissez Nouveau dans le menu contextuel. Le sous-menu affiche tous les éléments de base pouvant être ajoutés au diagramme. Pour créer plusieurs éléments : 1 Maintenez enfoncée la touche CTRL, cliquez sur le bouton de la boîte à outils correspondant au nœud que vous voulez créer (le bouton reste enfoncé). Relâchez la touche CTRL. 2 Cliquez à l emplacement voulu dans l arrière-plan du diagramme. Le nouvel élément est placé dans le diagramme là où vous avez cliqué (le bouton reste enfoncé). 3 Pour fermer l éditeur in-situ de l élément créé, appuyez sur Entrée ou cliquez à un autre emplacement. 4 Cliquez à l emplacement suivant dans l arrière-plan du diagramme. Le nouvel élément suivant se place dans le diagramme. Répétez cette étape jusqu à obtenir le nombre souhaité d éléments de ce type, moins un. 5 Après avoir placé le dernier élément de la série, cliquez sur le bouton Sélectionner de la barre d outils ou appuyez sur la touche Echap. Dessin de liens de relation Pour dessiner un lien de relation entre des nœuds : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton correspondant au type de lien que vous voulez dessiner dans le diagramme. Le bouton reste enfoncé. 2 Cliquez sur l élément source. 3 Faites-le glisser vers l élément de destination. 4 Lâchez le bouton de la souris lorsque le deuxième élément se met en surbrillance. Chapitre 3 : Utilisation des diagrammes 45
56 Dessin d éléments de modélisation Si l élément de destination est hors d atteinte, vous avez deux manières de le sélectionner : Faites glisser le pointeur vers le bord de la fenêtre du diagramme afin qu elle défile vers l emplacement souhaité. Déposez le lien dans l arrière-plan pour afficher la boîte de dialogue Choisir la destination, et choisissez l élément destination dans la liste. Cette possibilité doit être activée dans les préférences du diagramme (dans la page Liens, cochez l option Afficher le sélecteur d élément lorsque la cible du lien n est pas valide). Pour ajouter plusieurs liens : 1 Maintenez enfoncée la touche CTRL, cliquez sur le bouton de la boîte à outils correspondant au lien à créer (le bouton reste enfoncé). Relâchez la touche CTRL. 2 Cliquez sur la source désirée, puis faites glisser le lien jusqu au nœud cible. Un nouveau lien se dessine entre les éléments (le bouton reste enfoncé). 3 Répétez l étape précédente autant de fois que nécessaire et appuyez sur Echap pour terminer l opération. Dessin de liens avec des points de courbure Si votre diagramme est très rempli, dessinez des liens incurvés entre les éléments source et cible pour éviter d autres éléments se trouvant sur le chemin. Pour créer un lien avec des points de courbure : 1 Cliquez sur le bouton lien dans la boîte à outils. 2 Cliquez sur l élément source. 3 Dessinez la ligne de lien en cliquant sur l arrière-plan à chaque fois que vous créez une section du lien. 4 Enfin, cliquez sur l élément de destination. Pour configurer les liens avec des coudes à angle droit, choisissez Rectiligne dans les options de liaison (Préférences Modélisation Liens). Pour apprendre à retirer des points de courbure et en ajouter aux liens existants, reportez-vous à la section Réacheminement et classement des liens, page 52. Dessin d un lien réflexif Un lien réflexif utilise le même élément en tant que source et destination. Pour créer un lien réflexif : 1 Dans la boîte à outils du diagramme, choisissez un bouton de lien du type voulu 2 Double-cliquez sur l élément. Résultat : Vous obtenez un lien réflexif en bas à droite de l icône de l élément. Création de raccourcis Outre les éléments des nœuds et les liens, les diagrammes peuvent afficher le contenu d autres diagrammes. Ce contenu est représenté par des raccourcis. Il est également possible de présenter un diagramme ou l un de ses éléments en tant que raccourci dans les autres diagrammes du projet. Un raccourci est représenté par une flèche noire qui apparaît en bas à gauche de l icône d un élément. 46 Guide de l utilisateur de Borland Together Developer 2005
57 Manipulation d éléments de nœuds et de liens Remarque Pour ajouter un raccourci vers un diagramme : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme. 2 Choisissez la commande Nouveau Raccourcis dans le menu contextuel. La boîte de dialogue Ajout de raccourci(s) s ouvre. Elle se compose d un gestionnaire de sélection qui affiche le contenu disponible, dont le modèle et les favoris. 3 Dans le volet Contenu disponible, sélectionnez les éléments désirés, puis appuyez sur le bouton Ajouter. Vous obtenez une liste d éléments à ajouter, créée dans le volet Eléments existants et/ou prêts à être ajoutés. Cliquez sur le bouton Retirer pour supprimer les éléments inutiles de la liste. 4 Cliquez sur OK lorsque vous avez terminé. Les éléments avec le métatype Object ne peuvent pas être ajoutés comme raccourcis aux diagrammes de séquence ou de collaboration. Quand vous modifiez l élément d origine (nom, membres,...), Together met automatiquement à jour tous ses raccourcis. Cependant, les raccourcis ont des propriétés supplémentaires (telles que les couleurs des éléments) qui ne sont pas définies séparément pour chacun d eux. Manipulation d éléments de nœuds et de liens Une fois les éléments placés sur un diagramme, il peut être utile de les manipuler. Avec un peu d expérience, vous verrez que c est assez facile et intuitif. La plupart des manipulations impliquent les techniques suivantes : Glisser-déposer à l aide d une unité de pointage Exécuter des commandes du menu contextuel des éléments sélectionnés. Utilisation de la grille Vous pouvez, facultativement, afficher ou masquer une grille de modélisation dans l arrière-plan du diagramme et aligner sur les coordonnées de la grille les plus proches les éléments que vous placez ou déplacez. Par défaut, l affichage de la grille et l alignement sont activés. Pour contrôler les paramètres de la grille : 1 Ouvrez la boîte de dialogue Préférences au niveau qui vous convient, selon la portée d application à donner aux paramètres. 2 Cliquez sur la page Modélisation. 3 Dans la section Grille, attribuez aux options Afficher la grille et Aligner sur la grille les valeurs qui vous conviennent. 4 Choisissez le type et la couleur de la grille. 5 Spécifiez la granularité de la grille dans les champs Largeur de la grille et Hauteur de la grille, en pixels. Sélection d éléments de nœuds et de liens La sélection d éléments dans des diagrammes est activée si le bouton de sélection est enfoncé dans la boîte à outils Diagramme. Si un élément est sélectionné, il est dans un cadre en pointillés. L élément sélectionné après un redimensionnement manuel est signalé par un trait en pointillés avec coins matérialisés. Si le curseur se trouve dans un élément, ce dernier est dans un cadre en traits pleins. Chapitre 3 : Utilisation des diagrammes 47
58 Manipulation d éléments de nœuds et de liens Cliquez sur un élément du diagramme pour le sélectionner. Pour sélectionner plusieurs éléments, maintenez enfoncée la touche Ctrl et cliquez individuellement sur chacun. Vous pouvez aussi cliquer dans l arrière-plan du diagramme et tracer un lasso autour d une zone pour sélectionner tous les éléments qu elle contient. Pour les éléments contenant des membres, cliquez sur un membre pour le sélectionner. Utilisez les raccourcis clavier. Vous pouvez sélectionner aussi des éléments du même niveau d imbrication dans un élément conteneur. Par exemple, un package peut contenir plusieurs classes. Vous pouvez sélectionner plusieurs classes dans un package à l aide des touches CTRL ou Maj. En outre, vous pouvez sélectionner des éléments internes dans différents éléments conteneurs (par exemple dans différentes classes). Il est également possible de sélectionner des liens entre les éléments, de les déplacer ou d en changer la forme avec la souris ou le clavier. Menus contextuels La plupart des opérations sur les éléments ou sur l ensemble du diagramme peuvent être exécutées depuis divers menus contextuels, que vous obtenez en cliquant avec le bouton droit sur un objet. Cliquez avec le bouton droit sur des éléments de diagramme, y compris les membres de classe, pour accéder aux opérations spécifiques aux éléments dans leur menu contextuel respectif. Cliquez avec le bouton droit dans l arrière-plan pour afficher le menu contextuel du diagramme. Vous pouvez ainsi : Ajouter ou supprimer des éléments, des liens ou des membres Définir le type et la cardinalité d une association Couper, copier et coller des éléments, des membres, des liens ou du texte Masquer des éléments individuels ou afficher des éléments masqués Modification des propriétés Pour modifier les propriétés de diagrammes et de leurs éléments, utilisez leur inspecteur de propriétés ou l éditeur in-situ. Modifications dans l Inspecteur Quand vous sélectionnez un élément d un diagramme ou l arrière-plan du diagramme, les propriétés de cet élément (ou de ce diagramme) sont accessibles dans l inspecteur. Le contenu d un inspecteur dépend de la sélection effectuée. Si rien n est sélectionné, l arrière-plan du diagramme est sélectionné par défaut et les propriétés du diagramme sont affichées. Généralement, un inspecteur propose plusieurs nœuds représentant différentes catégories de propriétés. Pour plus de détails, reportez-vous à Nœuds de l inspecteur, page 14. Pour ouvrir d Inspecteur, effectuez l une des actions suivantes : Choisissez Inspecteur dans le menu contextuel. Utilisez le raccourci clavier Alt+Entrée. Pour modifier la valeur d une propriété, cliquez dessus dans l inspecteur. Certaines propriétés ne sont pas modifiables avec l inspecteur et sont donc désactivées pour l édition. 48 Guide de l utilisateur de Borland Together Developer 2005
59 Manipulation d éléments de nœuds et de liens La modification des champs de propriété est appliquée quand vous : Appuyez sur Entrée (la boîte de dialogue de l inspecteur reste ouverte). Fermez l inspecteur (Alt+F4, Echap, ou un clic sur le bouton de fermeture x). Sortez du champ modifié. Perdez la focalisation dans la boîte de dialogue ouverte de l inspecteur. Si vous cliquez sur le bouton Fermer dans la boîte de dialogue alors qu un champ est en cours de modification, cette modification n est pas enregistrée. Edition in-situ Chaque élément du diagramme est identifié par une chaîne initiale comportant un ensemble donné de propriétés. Certaines de ces propriétés ne sont pas affichées et ne deviennent disponibles que lors de l édition in-situ. Vous pouvez modifier toutes les propriétés ou uniquement certaines d entre elles, en laissant le moteur sous-jacent terminer les modifications. Il y a plusieurs manières d activer l édition in-situ : Double-cliquez sur l élément sélectionné. Appuyez sur F2 pour l élément sélectionné. Cela ouvre une zone de texte mise en surbrillance avec un curseur de modification, sauf si le diagramme est en lecture seule. Pour appliquer les modifications : Cliquez sur un autre élément Appuyez sur Entrée (sauf pour les icônes Note). Lors de la modification de texte dans des icônes Note, n oubliez pas que la touche Entrée crée une ligne et que Ctrl+Entrée applique la saisie et ferme l éditeur in-situ Si vous modifiez des propriétés manuellement, veillez à respecter la syntaxe correcte. Cela s applique en particulier aux diagrammes à génération de code. Des erreurs de syntaxe dans les modificateurs entraînent des messages d erreur. Mais attention, un type d attribut mal orthographié est reproduit tel quel par l ingénierie directe. Dans le cas d une saisie incomplète, les modificateurs de visibilité, les types d attributs ou les types de retour oubliés sont remplacés par les valeurs existantes. Si, par exemple, un attribut était privé et que la visibilité n est pas indiquée, il reste privé. S il n y avait pas de valeur avant, les valeurs par défaut spécifiées dans les propriétés des templates appropriés sont utilisées. Prenons l exemple d un attribut dont la visibilité n est pas spécifiée et dont le type est private int ; si le type de retour d une opération n est pas spécifié, il prend void comme valeur par défaut. La plupart des chaînes peuvent être modifiées à tout moment. Les types forme et les types lien ne sont pas modifiables. Déplacement et copie d éléments par glisser-déposer Vous pouvez déplacer visuellement des éléments vers d autres packages ou des membres vers d autres classes ou interfaces, en les faisant glisser jusqu au dessus de l icône de destination et en les y déposant. Vous pouvez, par exemple, faire glisser des classes vers un package (dans un diagramme de classes) ou des composants vers un nœud (dans un diagramme de déploiement). Utilisez la même technique pour copier des membres vers d autres classes ou interfaces en appuyant sur CTRL avant de commencer le glissement. Quand vous déplacez un élément, il est supprimé du package ou de l élément source et déplacé vers le package ou l élément de destination. Les éléments copiés ne sont pas supprimés de leur source. Chapitre 3 : Utilisation des diagrammes 49
60 Manipulation d éléments de nœuds et de liens Quand vous faites glisser des nœuds ou des membres dans un diagramme de classes, l aspect des autres icônes d éléments change quand l élément déplacé franchit leurs limites. Cela indique que l icône traversée a reçu la focalisation et constitue une cible potentielle de dépôt. Pour des éléments classe, interface ou package, la focalisation de dépôt est représentée par un rectangle entourant l icône. Les membres sont mis en évidence en bleu quand ils ont la focalisation. Si vous faites glisser un élément hors des limites du diagramme, le diagramme défile automatiquement pour suivre le glissement. Prise en charge complète du glisser-déposer L utilisation du glisser-déposer peut s étendre au-delà des limites d un seul diagramme. Vous pouvez déplacer des classes et des membres entre le diagramme et le navigateur de modèle. Il est aussi possible de déplacer des éléments d un nœud à l autre à l intérieur même du navigateur de modèle. Ce faisant, les éléments déplacés sont supprimés dans le composant source et collés dans le composant destination. Cette caractéristique change le comportement du défilement automatique. Le diagramme ne défile pas si le déplacement d un élément entraîne ce dernier hors de l espace de travail, pour ne pas risquer le déplacement vers un autre composant. Si vous voulez faire défiler le diagramme en suivant l élément glissé, vous devez maintenir l élément près du bord intérieur du diagramme. Après un court délai, le diagramme commence à défiler. Par contre, cela n affecte pas le glissement de lien. Copie, clonage et déplacement d éléments et raccourcis Vous pouvez copier et coller les éléments d un nœud à l intérieur d un même diagramme ou entre des diagrammes différents. Il est également possible de copier et coller des membres à l intérieur de la même classe ou dans des classes différentes, et de coller une classe dans une autre pour créer une classe interne. Pour copier un élément : 1 Sélectionnez un élément du diagramme 2 Choisissez Edition Copier dans le menu principal ou Copier dans le menu contextuel. Pour coller un élément : 1 Sélectionnez la destination (élément ou arrière-plan du diagramme). 2 Choisissez Edition Coller dans le menu principal ou Coller dans le menu contextuel de la destination. La commande Couper fonctionne de la même façon que Copier mais l élément source est supprimé une fois l opération de copie effectuée. En fait, l opération Couper se fait en différé : l élément coupé est estompé jusqu à ce qu il soit collé dans le nœud de destination. Un élément qui peut être coupé, copié et collé peut également être cloné avec la commande Cloner du menu contextuel. Le clonage est, fondamentalement, un copier-coller en une seule étape. Vous pouvez effectuer les coupes, copies, collages et clonages depuis les volets navigateur en utilisant, dans le menu contextuel de l élément sélectionné, les commandes appropriées. 50 Guide de l utilisateur de Borland Together Developer 2005
61 Manipulation d éléments de nœuds et de liens Utilisation du presse-papiers et du glisser-déposer sur des raccourcis Vous pouvez utiliser le presse-papiers pour couper, copier et coller des raccourcis dans l éditeur de diagramme ou le navigateur de modèle vers des packages ou des diagrammes cibles. Dans le navigateur de modèle, vous pouvez aussi glisser-déposer des raccourcis entre packages et diagrammes. Si un raccourci existe déjà dans un package ou un diagramme, vous ne pouvez pas mettre le même raccourci dans le même package ou diagramme. Quand vous utilisez le presse-papiers ou le glisser-déposer, l opération est appliquée au raccourci lui-même (et non pas à l élément de diagramme d origine). Pour copier ou déplacer un raccourci vers un autre package ou diagramme : 1 Sélectionnez un ou plusieurs raccourcis sur un diagramme ou dans le navigateur de modèle. 2 Dans le menu contextuel de la sélection, choisissez la commande Copier (ou Couper). 3 Sélectionnez le diagramme ou le package cible et, dans son menu contextuel, choisissez Coller. Si vous utilisez le navigateur de modèle, vous pouvez sélectionner le raccourci, puis effectuer un glisser-déposer de l élément vers le package ou le diagramme cible. Redimensionnement des éléments d un nœud Les dimensions d un nœud sont automatiquement définies à sa création. La taille maximale possible d un élément se définit dans la catégorie Modélisation de la boîte de dialogue Préférences. Pour définir la taille maximum des éléments de diagramme : 1 Ouvrez la boîte de dialogue Préférences au niveau souhaité. 2 Dans la page Modélisation, choisissez le champ Largeur maximum des icônes et entrez une valeur en pixels. 3 Cliquez sur OK pour appliquer la modification et fermer la boîte de dialogue. Si la largeur maximale est trop petite et si certaines icônes sont tronquées, vous pouvez facilement redimensionner le nœud pour voir les icônes en entier. Pour redimensionner manuellement un élément d un nœud : 1 Cliquez sur l élément pour en faire apparaître le cadre en pointillés. 2 Si le pointeur de la souris survole une des puces noires, il se transforme en flèche à deux têtes. 3 Faites glisser le coin de l élément de diagramme sélectionné jusqu à obtenir la taille voulue. Résultat : L élément s agrandit ou rétrécit dans la direction du curseur. Les éléments redimensionnés sont mis en évidence par des coins matérialisés. La taille des icônes des nœuds redimensionnés manuellement ne s adapte pas automatiquement aux contenus pour suivre leur évolution, par exemple quand des membres sont ajoutés ou supprimés. Les nœuds redimensionnés manuellement conservent leur taille jusqu à ce qu elle soit modifiée par l utilisateur ou définie automatiquement en choisissant Diagramme Disposition Optimiser la taille de l élément dans le menu principal. La validation ne s applique pas aux éléments redimensionnés manuellement. Cela signifie que seuls les éléments dont la taille n a pas été modifiée manuellement changent quand vous ajoutez ou supprimez des sous-éléments, tels que des membres Chapitre 3 : Utilisation des diagrammes 51
62 Manipulation d éléments de nœuds et de liens d une classe. Le redimensionnement automatique des éléments est validé et modifié lorsque vous changez le nom ou la fonte des éléments. Vous pouvez à tout moment redimensionner des icônes d éléments ou leur redonner leur taille initiale. Pour revenir à la taille initiale des éléments d un nœud, effectuez l une des opérations suivantes : 1 Sélectionnez dans le diagramme les éléments à restaurer. 2 Dans le menu principal, choisissez Diagramme Disposition Optimiser la taille de l élément. ou 1 Sélectionnez dans le diagramme les éléments à restaurer. 2 Appuyez sur la touche CTRL. Le bouton Optimiser la taille de l élément apparaît sur chaque élément de la sélection. 3 Cliquez sur les boutons des éléments à restaurer. Figure 3.2 Optimisation de la taille des éléments Résultat : Les éléments sélectionnés reprennent leur taille initiale. Réacheminement et classement des liens Une fois les liens créés, vous pouvez changer le nœud client ou fournisseur d un lien, ajouter ou retirer des points de courbure ou inverser la direction du lien. Astuce Pour changer l orientation du lien : 1 Sélectionnez le lien. 2 Placez le curseur de la souris sur le point source ou destination du lien. Quand le curseur de la souris passe au-dessus du point cible, il prend la forme d une croix. Si l extrémité souhaitée du lien est hors de portée, choisissez Atteindre l origine ou Atteindre la destination dans le menu contextuel du lien. 3 Faites glisser l extrémité source ou destination du lien vers un autre élément du nœud. Pour ajouter des points de courbure à un lien : 1 Sélectionnez le lien. 2 Sélectionnez un point du lien. Quand le curseur de la souris passe au-dessus du point cible, il prend la forme d un réticule. 3 Faites glisser le point sélectionné et déposez-le à l emplacement souhaité dans l arrière-plan du diagramme. 4 Ajoutez autant de points de courbure que nécessaire. Résultat : Le lien se courbe aux points spécifiés. Quand un tel lien est sélectionné, les points de courbure sont repérés par des rectangles, comme illustré ci-après. 52 Guide de l utilisateur de Borland Together Developer 2005
63 Manipulation d éléments de nœuds et de liens Figure 3.3 Lien avec points de courbure Chaque segment du lien peut être déplacé. Pour cela, sélectionnez le lien voulu, puis appuyez sur CTRL. Cela ajoute des points actifs, signalés par des losanges, au milieu de chaque segment, comme le montre la figure suivante : Figure 3.4 Lien avec points actifs Placez le curseur de la souris sur le segment de lien à déplacer. Quand le curseur de la souris passe au-dessus du segment voulu, il prend la forme d une croix. Faites glisser le segment et déposez-le à l emplacement cible. Figure 3.5 Déplacement d un segment de lien Si un diagramme devient trop encombré, vous pouvez classer les liens dans l ordre par défaut ou lisser les liens sélectionnés. Vous pouvez de cette façon lisser les liens connectés à un élément particulier. Pour classer les liens : 1 Dans le menu principal, choisissez Diagramme Classer les liens. 2 Dans le sous-menu, choisissez une des options suivantes : Tous : supprime tous les points de courbure Liens sélectionnés : supprime les points de courbure des liens sélectionnés Connecté : supprime tous les points de courbure des liens connectés à l élément sélectionné. Utilisation des liens d association Dans cette section, vous allez apprendre entre autres à gérer des liens d association, à en modifier les propriétés et à définir des qualificateurs. Des propriétés spécifiques aux divers liens sont définies dans l onglet Lien de l inspecteur. Reportez-vous à la section Modification des propriétés, page 48, pour avoir une description détaillée des modifications à l aide de l inspecteur ou in-situ. Définition du type de lien Vous pouvez sélectionner le type spécifique d un lien association en utilisant le menu contextuel du lien ou l inspecteur. Chapitre 3 : Utilisation des diagrammes 53
64 Manipulation d éléments de nœuds et de liens Pour définir le type d un lien d association : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans le champ type de l inspecteur, sélectionnez le type de lien dans la boîte liste. Les options possibles sont : Association, Agrégation et Composition. L apparence du lien change en conséquence, comme le montrent les images suivantes. Figure 3.6 Lien d association Figure 3.7 Lien d agrégation Figure 3.8 Lien de composition Astuce Vous pouvez également cliquer avec le bouton droit sur le lien d association dans le diagramme, choisir Type de lien dans le menu contextuel et sélectionner le type dans le sous-menu Libellés de lien Pour faciliter la compréhension de votre diagramme, ajoutez des libellés aux liens. Pour ajouter un libellé de lien : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans le champ label de l inspecteur, tapez le nouveau nom du libellé. 3 Appuyez sur Entrée. La longueur maximale de la description est spécifiée dans la boîte de dialogue Préférences (Modélisation Liens - Retour à la ligne du lien lorsque la ligne dépasse :... pixels). Si la description est trop longue, le texte est affiché sur plusieurs lignes, mais seulement si cette fonction est activée dans la boîte de dialogue Préférences. Les libellés peuvent être orientés le long des liens. Ce comportement est contrôlé par l option Afficher les libellés orientés avec les liens du nœud Liens de la boîte de dialogue Préférences. Cependant, libellés orientés et libellés multilignes sont mutuellement exclusifs. Si les libellés orientés sont sélectionnés, le passage à la ligne est désactivé. Pour définir le passage à la ligne du texte dans le libellé : 1 Ouvrez la boîte de dialogue Préférences au niveau souhaité. 2 Sélectionnez la page Modélisation Liens. 3 Dans la section Libellés des liens, sélectionnez le bouton radio Afficher les libellés orientés horizontalement. Vous activez ainsi les options de passage à la ligne dans les libellés des liens. 4 Cochez l option Retour à la ligne du lien. 54 Guide de l utilisateur de Borland Together Developer 2005
65 Manipulation d éléments de nœuds et de liens 5 Dans le champ Retour à la ligne du lien lorsque la ligne dépasse :... pixels, spécifiez la longueur du libellé sans passage à la ligne, s il y a lieu. Rôle client et fournisseur Les rôles client et fournisseur sont des propriétés communes à tous les types de liens ; ils s affichent dans l inspecteur de propriétés sous forme de champs en lecture seule. Pour les liens d association vous pouvez définir une description de rôle. Pour ajouter une description de rôle client/fournisseur : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans les champs client role et supplier role, ouvrez l éditeur in-situ du rôle. 3 Entrez la description du rôle et appuyez sur Entrée. Les libellés entrés s affichent dans le diagramme. Les options de longueur maximale et de retour de ligne décrites précédemment s appliquent à ces libellés. Cardinalité client et fournisseur Astuce Pour définir la cardinalité client ou fournisseur : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans les champs client cardinality et supplier cardinality de l inspecteur, sélectionnez l option requise dans la boîte liste. Les options possibles sont : 0...1, 1, 0...*, 1...*. Vous pouvez également cliquer avec le bouton droit sur le lien d association dans le diagramme, choisir Cardinalité du client ou Cardinalité du fournisseur dans le menu contextuel et sélectionner la valeur de la cardinalité dans le sous-menu. Qualificateurs client et fournisseur Les qualificateurs client et fournisseur sont les attributs d une association. Un qualificateur peut avoir une ou plusieurs valeurs. Dans ce dernier cas, les valeurs sont délimitées par des virgules. Un qualificateur s affiche sous la forme d un petit rectangle attaché à l extrémité source ou destination d un lien d association, accompagné de la liste des valeurs connectées. Astuce Pour définir le qualificateur client ou fournisseur : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans les champs client qualifier ou supplier qualifier, cliquez sur le bouton pour ouvrir le dialogue Qualificateur. 3 Dans le dialogue Qualificateur, cliquez sur le bouton Ajouter pour créer une entrée dans le tableau des valeurs et saisissez la valeur de l attribut. Répétez l opération autant de fois que nécessaire et appliquez les modifications lorsque vous avez terminé. Vous pouvez saisir la liste des valeurs des qualificateurs directement dans le champ, en les séparant par des virgules. Ajouts de qualificateurs d attributs Vous pouvez ajouter des attributs de classe en tant que qualificateurs d un lien d association entre deux classes. De cette façon, les attributs d une classe deviennent les qualificateurs de l extrémité opposée de l association considérée. Pour ajouter des qualificateurs d attributs à un lien d association : 1 Créez deux classes avec des attributs. 2 Créez un lien d association entre les classes. Chapitre 3 : Utilisation des diagrammes 55
66 Dépendances de package 3 Cliquez avec le bouton droit sur le lien et sélectionnez la commande Ajouter un nouveau qualificateur dans le menu contextuel. Le sous-menu affiche la liste des attributs du côté opposé de l association. 4 Cliquez sur l attribut voulu. Résultat : Le qualificateur d attribut sélectionné s affiche dans un rectangle attaché à l extrémité respective du lien d association et dans les champs client qualifier et supplier qualifier de l inspecteur. Synchronisation avec le navigateur de modèle A partir de l éditeur de diagramme, vous pouvez naviguer vers la structure du modèle. Pour observer un élément ou un membre dans le navigateur de modèle : 1 Sélectionnez un élément dans l éditeur de diagramme 2 Choisissez la commande Sélectionner dans le navigateur de modèle dans son menu contextuel. Vous pouvez passer du navigateur de modèle à l éditeur de diagramme par la commande Sélectionner sur le diagramme du menu contextuel de l élément. Annuler Rétablir Toutes les actions effectuées dans l éditeur de diagramme sont reversibles. Vous pouvez ignorer les dernières modifications à l aide de la fonction Annuler. Pour annuler une action, vous avez le choix entre : Utiliser le raccourci clavier Ctrl+Z. Utiliser la commande Edition Annuler dans le menu principal. Cliquer sur le bouton dans la barre d outils principale. Pour restaurer une action, vous avez le choix entre : Utiliser le raccourci clavier Ctrl+Maj+Z. Utiliser la commande Edition Rétablir dans le menu principal. Cliquer sur le bouton dans la barre d outils principale. Voir aussi Annexe A, Raccourcis clavier Dépendances de package Together affiche automatiquement les liens entre les classes et interfaces dans un même diagramme (par exemple, si une classe étend une autre classe ou implémente une interface). Cependant si un diagramme contient des packages, les dépendances entre packages ne sont pas dessinées automatiquement. La commande Mettre à jour les dépendances de package du menu des diagrammes construit des liens entre packages. Un lien entre deux packages signifie qu il y a une dépendance, par exemple d implémentation, d héritage ou d utilisation. Seules les dépendances réelles sont prises en compte. Par exemple, une classe importée sans jamais être utilisée n est pas considéré comme une dépendance. 56 Guide de l utilisateur de Borland Together Developer 2005
67 Annotation de diagrammes Pour dessiner des liens de dépendance entre des packages : 1 Sélectionnez un ou plusieurs packages dans le diagramme. 2 Dans le menu principal, choisissez Diagramme Mettre à jour les dépendances de package. 3 Dans le sous-menu, choisissez Tout pour traiter tous les diagrammes du projet ou Diagramme en cours. Voir aussi Annotation de diagrammes Hyperliens et diagrammes, page 59 Cette section explique comment annoter vos diagrammes. La boîte à outils de tous les diagrammes UML affiche des boutons permettant d utiliser des notes et des liens de notes. Utilisez-les pour placer des notes et des liens de notes sur le diagramme. Les notes peuvent être libres et flottantes ou vous pouvez dessiner une annotation liée à un autre élément pour indiquer que la note le concerne spécifiquement. Utilisation des notes Pour créer une note vers un diagramme : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Note. 2 Cliquez sur le diagramme pour créer un élément note. 3 Dans l éditeur in-situ, tapez le texte de la note. 4 Appuyez sur Maj-Entrée pour fermer l éditeur in-situ. Pour lier une note à un élément du diagramme ou à un lien : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Lien de note. 2 Cliquez sur la note à lier à un élément ou à un lien. 3 Faites-la glisser vers l élément ou le lien du nœud de destination. 4 Lâchez le bouton de la souris lorsque la cible se met en surbrillance. Modification des notes et de leurs propriétés Pour modifier le texte ou d autres propriétés d une note, utilisez la vue Inspecteur. Dans l inspecteur, vous pouvez : Masquer ou afficher l icône de la note Choisir la couleur et l aspect Créer un hyperlien entre la note et d autres diagrammes Définir d autres caractéristiques Pour ouvrir l inspecteur : 1 Cliquez avec le bouton droit sur la note ou sur son lien. 2 Dans le menu contextuel, choisissez la commande Inspecteur. Voir aussi Hyperliens et diagrammes, page 59 Chapitre 3 : Utilisation des diagrammes 57
68 Enregistrement et copie des images des diagrammes Enregistrement et copie des images des diagrammes Vous pouvez enregistrer ou copier intégralement des diagrammes ou des parties sélectionnées afin de les réutiliser ultérieurement. Il y a deux comportements possibles : copie de l image au format sélectionné, suivie d un enregistrement de l image. Copie de l image Dans l environnement Windows, vous pouvez copier un diagramme dans le Presse-papiers, puis coller le contenu du Presse-papiers dans une application externe. De cette façon, les images des diagrammes peuvent être copiées dans les deux formats possibles : bitmap (BMP) ou Windows Metafile (WMF). WMF convient aux diagrammes, car c est un format vectoriel. Le format bitmap règle plusieurs problèmes du format WMF comme la distorsion des fontes, la conversion incorrecte des fontes localisées et l absence de gestion des fonctions Java 2D. De plus, certaines applications graphiques ne gèrent pas les métafichiers dans le Presse-papiers alors qu elles reconnaissent les bitmaps. Quand un diagramme est copié au format WMF, les libellés des liens non horizontaux ne sont pas reproduits dans l application cible. Astuce Pour copier dans le presse-papiers l image d un diagramme : 1 Dans le menu principal, choisissez Diagramme Copier une image. 2 Choisissez le format de copie des images : dans le sous-menu Copier une image, choisissez Par défaut ou Métafichier. L image copiée peut être collée dans un éditeur d images ou dans un éditeur de texte prenant les images en charge. Vous pouvez par exemple coller des images dans Microsoft Paint, Microsoft Word ou Microsoft PowerPoint. Le collage d images bitmap dans Microsoft PowerPoint produit des diapos invisibles. Pour éviter cela, utilisez la commande Collage spécial au lieu de la commande Coller. Cependant, si vous copiez un diagramme au format WMF, il peut être reproduit dans PowerPoint en utilisant la commande Coller. Enregistrement d une image Un diagramme peut être enregistré sur le disque pour une réutilisation ultérieure. Vous avez le choix entre les formats WMF, GIF et SVG. Pour enregistrer le diagramme en cours : 1 Dans le menu principal, choisissez Diagramme Enregistrer une image. 2 Dans le sous-menu, sélectionnez le format de la cible : GIF, SVG ou WMF. 3 Dans la boîte dialogue Enregistrement le diagramme correspondant au format sélectionné, spécifiez le nom du fichier cible, l échelle de l image et sa taille en pixels. Cliquez sur le bouton Prévisualiser, si nécessaire. 4 Cliquez sur OK pour terminer l opération. Résultat : L image du diagramme est stockée sur disque et peut être importée dans des applications reconnaissant le format choisi. Voir aussi Boîte de dialogue d enregistrement d un diagramme en tant qu image dans l aide en ligne 58 Guide de l utilisateur de Borland Together Developer 2005
69 Hyperliens et diagrammes Hyperliens et diagrammes Vous pouvez créer des hyperliens entre vos diagrammes ou certains de leurs éléments et d autres artefacts du système et y accéder directement. Par exemple, vous pouvez créer des hyperliens vers : Un nouveau diagramme Un diagramme ou un élément de diagramme existant dans un projet ouvert. Vous pouvez créer, visualiser et supprimer des hyperliens avec la commande Hyperliens du menu contextuel du diagramme. Création d hyperliens Les hyperliens existant dans le contexte des projets, vous devez ouvrir un projet pour les créer et les parcourir. Vous pouvez créer des hyperliens à l intérieur d un simple projet ou entre les projets actuellement ouverts. Les hyperliens entre projets sont appelés liens multi-projet. Vous pouvez créer des diagrammes avec hyperliens à l aide du menu contextuel de la sélection. La structure du projet offre un intéressant défi de navigation dans le contenu du projet tout entier (y compris dans les modèles de conception et d implémentation). L ensemble de fonctionnalités d hyperliens de Together permet de rendre cela simple et facile. Il est possible de créer un hyperlien depuis une classe java sur un diagramme de classes dans le projet d implémentation vers sa classe d analyse de substitution dans le projet de modélisation. Pour ce faire, cliquez avec le bouton droit sur la classe dans Together Developer, choisissez [Hyperlien vers Elément existant...]. Quand la fenêtre de dialogue Sélectionner des éléments s ouvre, choisissez le projet de modélisation dans le sélecteur de projet, au-dessus du volet gauche, puis naviguez jusqu à l élément de conception souhaité. Les hyperliens offrent également une traçabilité inter et intra-modèle. Cela fournit du contexte aux utilisateurs du modèle par le biais de l identification des relations entre les éléments du modèle. Pour créer un hyperlien vers un diagramme ou un élément à l aide du menu contextuel : 1 Ouvrez un diagramme existant à partir duquel créer l hyperlien (ou créez un nouveau diagramme). 2 Sélectionnez l élément à lier à un autre diagramme ou élément. Pour le lier au diagramme pris comme un tout, cliquez dans son arrière-plan, ce qui désélectionne tous les éléments. 3 Dans le menu contextuel, choisissez Hyperlien vers. Le comportement qui en découle dépend de la sélection effectuée dans le sous-menu : Elément existant. Dans la boîte de dialogue Sélectionner des éléments, sélectionnez le projet dans la liste déroulante des projets ouverts ; développez les nœuds du diagramme dans le volet Contenus disponibles, puis cliquez sur le bouton Ajouter pour déplacer les éléments cible vers la liste ciblée. Pour retirer un élément de la liste, choisissez-le, puis cliquez sur Retirer. Cliquez sur OK pour fermer la boîte de dialogue et créer le lien. Fichier/URL. Dans la boîte de dialogue obtenue par Choisir une URL, cliquez sur le bouton de sélection du chemin. Le chemin d accès peut être absolu ou relatif au projet. Cliquez sur OK pour fermer la boîte de dialogue et créer le lien. Nouveau diagramme. Dans la Galerie d objets qui affiche la catégorie Diagrammes, sélectionnez le type de diagramme, puis cliquez sur OK. Dans la boîte de dialogue du type de diagramme sélectionné, spécifiez le nom du diagramme, le nom du paquet, les diagrammes conteneur et, éventuellement, une description. Cliquez sur OK pour fermer la boîte de dialogue et créer le lien. Chapitre 3 : Utilisation des diagrammes 59
70 Hyperliens et diagrammes CaliberRM et RequisitePro. Sélectionnez une exigence. Votre serveur de gestion des exigences doit être connecté. Pour créer un hyperlien avec l inspecteur de propriétés : 1 Dans la vue Diagramme, cliquez avec le bouton droit sur l élément à lier et choisissez Inspecteur dans le menu contextuel. 2 Dans l inspecteur, développez le nœud Hyperliens, qui affiche les nœuds Elément et URL. 3 Cliquez avec le bouton droit sur le nœud requis et suivez la procédure ci-dessus. Visualisation des hyperliens Tous les hyperliens créés apparaissent dans le sous-menu Hyperlien vers : Figure 3.9 Liste des hyperliens créés Pour afficher les hyperliens vers un diagramme ou un élément : 1 Cliquez avec le bouton droit dans l arrière-plan du diagramme ou sur l élément. 2 Choisissez Hyperlien vers dans le menu contextuel. Dans un diagramme, le nom de tous les éléments hyperliés sont affichés avec une fonte bleue. Lorsque vous sélectionnez un lien dans le sous-menu, l élément correspondant apparaît sélectionné dans la vue Diagramme. Navigation dans les hyperliens Une fois que vous défini les hyperliens d un diagramme ou élément sélectionné, utilisez la commande Hyperlien vers des menus contextuels pour naviguer vers les ressources liées. Remarques La navigation vers un diagramme lié l ouvre dans l éditeur de diagramme ou en fait le diagramme en cours s il est déjà ouvert. La navigation vers un élément lié ouvre son diagramme parent, ouvre ou active celui-ci et le fait défiler vers l élément lié, puis le sélectionne. Remarque Suppression d hyperliens Pour supprimer un hyperlien : 1 Ouvrez le diagramme contenant le lien à supprimer. 2 Dans le menu contextuel du diagramme ou de l élément, choisissez Hyperlien vers > Elément existant. La boîte de dialogue Sélectionner des éléments s affiche. 3 Dans la liste sélectionnée à droite de la boîte de dialogue, cliquez sur l hyperlien à retirer. 4 Cliquez sur Retirer. 5 Cliquez sur OK pour fermer la boîte de dialogue. Veillez à sélectionner un élément avant d en supprimer l hyperlien. 60 Guide de l utilisateur de Borland Together Developer 2005
71 Utilisation des fonctions de recherche Hyperliens entre projets Il est possible d insérer un hyperlien vers un élément d un autre projet. Ce projet doit être également ouvert. Pour cela, dans la boîte de dialogue Sélectionner des éléments, utilisez la zone de liste Sélectionner un projet ouvert. Si une licence de Together Designer est détectée, il est possible d insérer des hyperliens entre des projets.tpx et.jpx. Quand un projet Designer est converti en projet Developer (voir Projet basé sur un modèle Designer dans l aide en ligne), tous les éléments de base du nouveau projet sont fournis avec des hyperliens vers les éléments source du projet Designer. Utilisation des fonctions de recherche Pour effectuer des recherches dans le modèle, utilisez les commandes du menu principal Chercher. Ce sont : Chercher Rechercher par requête Outre les commandes du menu, une fonctionnalité de recherche rapide permet de rechercher rapidement dans le diagramme en cours les éléments requis et de rechercher un élément référencé. Recherche sur les diagrammes Astuce Pour rechercher dans un diagramme : 1 Mettez le curseur sur le diagramme dans lequel effectuer la recherche. 2 Choisissez Chercher Chercher dans le menu principal. Utilisez le raccourci clavier Ctrl+F. 3 Dans la fenêtre de dialogue Recherche sur les diagrammes, spécifiez la chaîne de recherche et remplissez les options voulues. Vous pouvez choisir de chercher uniquement dans le diagramme en cours ou dans tous les diagrammes du projet actuel. 4 Cliquez sur Rechercher ou Rechercher tout. Résultat : Si vous avez cliqué sur Rechercher, la première correspondance trouvée est mise en évidence dans le diagramme. Si vous avez cliqué sur Rechercher tout, les résultats de la recherche sont affichés dans une vue spéciale. Pour répéter la recherche de la même chaîne, choisissez Chercher Occurence suivante dans le menu principal. Recherche par requête Cette fonction avancée permet de rechercher des éléments du projet (packages, classes, variables et autres éléments de types arbitraires) sur la base de filtres ou de requêtes. Les filtres sont créés à l aide d expressions logiques. La fenêtre de dialogue Recherche par requête fournit des fonctionnalités de base pour la construction de requêtes. Une requête, également appelée filtre, est une expression logique composée d un ensemble de conditions. Dans la fenêtre de dialogue, la section Requête inclut la liste des Propriétés et un champ Conditions. Chapitre 3 : Utilisation des diagrammes 61
72 Utilisation des fonctions de recherche Pour chaque élément sélectionné, la liste de propriétés contient des paramètres spécifiques. Vous pouvez faire votre choix parmi ces paramètres pour construire un ensemble de conditions qui se présenteront sous une des formes suivantes : ou <propriété> <opération> <valeur>, hasproperty<propriété>, où <propriété> est le nom de la propriété de l élément et <opération> est =,!=,. Si les conditions s appliquent à des chaînes, il est possible d utiliser des caractères génériques dans la recherche. Ces caractères génériques sont l astérisque (*), qui représente un nombre quelconque de caractères, et le point d interrogation (?), qui représente n importe quel caractère unique. Les conditions peuvent comporter des parenthèses et des opérations binaires logiques (AND, OR, NOT). Cette fenêtre de dialogue comporte des boutons appropriés à chaque opération logique. Lorsque vous créez des requêtes, suivez les règles habituelles des opérations logiques : la négation logique (NOT) a la priorité la plus élevée, la multiplication logique (AND) vient en seconde position et l ajout logique (OR) a la priorité la plus faible. Par exemple, dans l expression : Name = "Class1" OR "Class2" AND "Class3" l opération AND est effectuée en premier car elle est prioritaire sur toutes les autres. Une telle expression renvoie la valeur Class1. Pour modifier la priorité des opérations, créez des expressions entre parenthèses. Un ensemble de propriétés est fourni pour chaque type de cible de recherche. Par exemple, pour exclure de la recherche une classe spécifique, vous pouvez la désigner par son nom, son chemin d accès complet, les modificateurs de visibilité, une description et un état de compilation. Pour créer une requête demandant des éléments de types de formes arbitraires, utilisez la cible de recherche Eléments quelconques, et les propriétés Name et Metaclass. Par exemple, pour trouver un acteur portant un nom particulier, vous pouvez créer la requête suivante : Name= Cashier AND Metaclass= Actor Pour exclure un élément : 1 Dans le menu principal, choisissez Chercher Rechercher par requête pour ouvrir la fenêtre de dialogue Recherche par requête. 2 Dans la liste Recherche de, choisissez l élément à rechercher. Les options possibles sont : Packages Classes Interfaces Classificateurs Opérations Attributs Eléments quelconques (pour des éléments de types de formes arbitraires) 3 Dans la liste Portée, indiquez où rechercher l élément. Les options possibles sont : Modèle Sélection Ensemble de résultats Par exemple, choisissez Modèle si la recherche doit concerner une classe ou une interface dans le projet, Importer pour effectuer une recherche selon un chemin d accès aux classes, Projet entier pour effectuer une recherche dans le projet et par chemin d accès aux classes, etc. 62 Guide de l utilisateur de Borland Together Developer 2005
73 Utilisation des fonctions de recherche 4 Créez une requête qui vous aidera à trouver l élément requis : Dans la liste Propriétés, choisissez la propriété à ajouter au filtre. Cliquez sur le bouton Ajouter une condition pour ouvrir la fenêtre de dialogue Condition. La forme de cette boîte de dialogue dépend du type de propriété sélectionnée. Utilisez And, Or, Not et les parenthèses pour créer une expression logique. 5 Cliquez sur Rechercher. Résultat de la recherche Les résultats de recherche des deux commandes sont affichés dans la vue Résultats de recherche. Les résultats de chaque recherche sont affichés dans un nœud séparé. La vue Résultats de recherche propose une barre de menus et un menu contextuel qui permettent d effectuer les actions suivantes : Copie dans le Presse-papiers Exportation des résultats dans un fichier html Suppression de nœuds du rapport des résultats Affichage ou masquage de packages Développement ou réduction de nœuds Pour copier un nœud dans le presse-papiers : 1 Cliquez avec le bouton droit sur le nœud voulu dans les Résultats de recherche. 2 Choisissez Copier dans le menu contextuel de la sélection. Résultat : Le nœud sélectionné, ainsi que ses sous-nœuds, est copié dans le presse-papiers et peut être collé. Pour exporter des résultats de recherche dans un fichier html : 1 Cliquez avec le bouton droit sur le nœud voulu dans les Résultats de recherche. 2 Choisissez Exporter dans le menu contextuel de la sélection ou cliquez simplement sur le bouton de la barre d outils de la vue. 3 Dans la fenêtre de dialogue Exporter, spécifiez le nom du fichier cible. Utilisez le bouton pour sélectionner le chemin voulu. 4 Dans le champ Description, tapez une description facultative. 5 Cochez l option Ouvrir dans le navigateur pour afficher les résultats exportés dans la fenêtre du navigateur par défaut. 6 Cliquez sur OK. Chapitre 3 : Utilisation des diagrammes 63
74 Utilisation des fonctions de recherche Résultat : Le nœud sélectionné, avec ses sous-nœuds, est enregistré dans le fichier spécifié. Recherche rapide Pour rechercher rapidement un élément dans le diagramme en cours, il suffit de commencer à en taper le nom lorsque le curseur se trouve dans l éditeur de diagramme. Dès que vous commencez à taper, la fenêtre des résultats de la recherche rapide s ouvre dans l éditeur de diagramme et affiche tous les noms des éléments, membres et liens d nœud qui correspondent à votre saisie : Figure 3.10 Résultats d une recherche rapide Si vous sélectionnez une entrée dans la liste affichée, l élément correspondant se met en évidence dans le diagramme. Même si l élément recherché se trouve en dehors de la zone affichée, le diagramme défile automatiquement vers l emplacement voulu. Pour confirmer la sélection, appuyez sur Entrée. Pour annuler la sélection, appuyez sur Echap. Vous disposez de la même fonction dans les vues du navigateur (navigateur de modèle, navigateur de diagramme et favoris) Le curseur étant dans la vue navigateur, tapez le nom requis. A mesure que vous tapez, le nœud correspondant est mis en évidence dans la vue arborescente : Figure 3.11 Utilisation de la recherche rapide dans le navigateur de modèle Pour limiter la recherche à un nœud particulier, tapez un point après la chaîne de recherche. De cette manière, le nom du nœud rencontré se met en italiques et vous pouvez commencer à taper la chaîne de recherche suivante d éléments imbriqués : Figure 3.12 Utilisation de la recherche rapide sur un nœud spécifique Toutes les recherches suivantes s effectuent dans le nœud sélectionné. 64 Guide de l utilisateur de Borland Together Developer 2005
75 Utilisation des fonctions de recherche Recherche d un élément référencé Si un élément est représenté dans le diagramme sous forme de raccourci, vous pouvez atteindre directement l élément référencé. Pour cela, utilisez la commande Trouver l élément qui figure dans le menu contextuel d un raccourci. Pour trouver un élément référencé : 1 Cliquez avec le bouton droit sur un raccourci. 2 Dans le menu contextuel, choisissez Trouver l élément. Résultat : Le diagramme qui contient l élément référencé s ouvre. L élément référencé est mis en évidence. Chapitre 3 : Utilisation des diagrammes 65
76 66 Guide de l utilisateur de Borland Together Developer 2005
77 Chapitre 4 Chapitre 4Modélisation Le principal objectif de la modélisation est d organiser et de visualiser la structure et les composants des systèmes informatiques compacts. Un modèle représente visuellement les exigences, les sous-systèmes, les composants physiques et logiques et les patterns structuraux et comportementaux. Cette partie contient les sujets suivants : Types de diagramme pris en charge Prise en charge OCL Diagrammes UML 1.4 Diagrammes UML 2.0 Important Diagrammes (relations-entités) de modélisation de données Comparaison de modèles Profilage UML Together gère les diagrammes et les notations les plus couramment utilisés définis par UML (Unified Modeling Language). Pour des informations détaillées sur UML, voir le site Object Management Group à l adresse Types de diagramme pris en charge Together prend en charge les spécifications UML 1.4 et 2.0. Vous pouvez créer des diagrammes respectant l une ou l autre des deux spécifications. Chapitre 4 : Modélisation 67
78 Prise en charge OCL (Object Constraint Language) Les diagrammes UML 2.0 sont pris en charge uniquement dans les projets de modélisation (tpx). Les projets de modélisation sont pris en charge dans Together Developer uniquement si une licence Together Designer est détectée. Outre UML, vous pouvez effectuer une modélisation ER (Relations-entités). Le tableau suivant montre les types de diagrammes pris en charge : UML 1.4 UML 2.0 ER Classe Classe ER logique Cas d utilisation Cas d utilisation Séquence et collaboration Séquence et communication Etats Etats Activités Activité Composant Composant Déploiement Déploiement Structure composite Pour choisir un type de diagramme : 1 Ouvrez la galerie d objets pour créer un diagramme (Fichier Nouveau diagramme ou ) 2 Sous le nœud Diagramme, choisissez la catégorie UML 2.0, UML 1.4 ou ER. 3 Sélectionnez un template de diagramme et cliquez sur OK. Les diagrammes UML affichés en packages sont signalés par des symboles indiquant leur type et sont accompagnés d une liste des éléments qu ils contiennent : Prise en charge OCL (Object Constraint Language) La création de contraintes d objets est prise en charge dans les diagrammes de classe/ package qui respectent les spécifications UML 2.0 et UML 1.4. La prise en charge OCL de ces contraintes assure le contrôle et la mise en évidence de la syntaxe. Dans la boîte à outils du diagramme, deux boutons permettent de créer sur des diagrammes des contraintes d objets en tant qu éléments de modélisation et de lier ces contraintes au contexte voulu : Bouton Description Contrainte Lien de contrainte En outre, il est possible de créer des expressions OCL pour certaines propriétés des diagrammes UML 2.0 suivants, avec le volet Inspecteur : Diagrammes de séquence et communication : Les pré et post-conditions d interactions, les contraintes d invariant d état pour les lignes de vie et les contraintes d interaction pour les opérandes sont prises en charge. Pour ces contraintes, le contexte correct peut être défini et donc la validation des expressions OCL est fournie (vérification de la syntaxe) Diagramme d activité : Pré- et post-conditions d activités ; pré- et post-conditions locales d actions Diagramme d états : Parties invariantes des états ; conditions de garde des transitions 68 Guide de l utilisateur de Borland Together Developer 2005
79 Prise en charge OCL (Object Constraint Language) Remarque Diagramme de classe/package : Les contraintes OCL pour les opérations peuvent être définies en utilisant des éléments de contrainte sur des diagrammes liés à l opération ou dans l onglet de la règle détenue. Les contraintes pré et post-condition sont deux types de contraintes possibles. La propriété de règle détenue dans l inspecteur peut être utilisée pour entrer les expressions OCL correctes avec le contexte de cette opération Diagramme de cas d utilisation : Les contraintes pré et post-condition sont fournies pour le comportement associé aux cas d utilisation, c est-à-dire pour l interaction choisie comme comportement Pour les éléments des diagrammes autres que classe ou package (c est-à-dire états, transitions, activités, actions, comportements des cas d utilisation) les onglets OCL du volet Inspecteur et la mise en évidence de la syntaxe sont fournis, mais aucune validation n est possible car aucun contexte OCL correct ne peut être défini pour ces éléments. Pour en savoir plus sur la syntaxe OCL, consultez la spécification OCL 2.0. Pour créer une contrainte d objet et la lier au contexte : 1 Dans la section OCL de la boîte à outils du diagramme de classe/package, choisissez le bouton Contrainte, puis cliquez sur l arrière-plan du diagramme. L élément note apparaît et l éditeur in-situ est activé. 2 Tapez l expression de contrainte. 3 Appuyez sur Ctrl+Entrée pour fermer l éditeur in-situ. 4 Dans la section OCL de la boîte à outils du diagramme, choisissez le bouton, puis liez le nœud de la contrainte à son élément de modélisation. Vous pouvez aussi utiliser les menus contextuels du navigateur de modèle ou l éditeur de diagramme. 1 Sélectionnez un diagramme du navigateur de modèle ou cliquez avec le bouton droit sur l arrière-plan du diagramme dans l éditeur de diagramme. 2 Choisissez Nouveau Contrainte dans le menu contextuel. 3 Cliquez avec le bouton droit sur la contrainte sélectionnée dans le navigateur de modèle ou dans l éditeur de diagramme. 4 Choisissez Nouveau Lien de contrainte dans le menu contextuel de la sélection. 5 Dans la boîte de dialogue Choisir la destination qui s ouvre, sélectionnez le contexte voulu dans le modèle ou les favoris, puis cliquez sur OK. Notez que le bouton OK reste désactivé tant qu une destination reconnue n a pas été sélectionnée. Remarque Les éléments de modélisation suivants sont des contextes de contraintes reconnus : classe, interface (UML 1.4), attribut, opération. Interface (UML 2.0) et association ne peuvent pas être des contextes de contraintes. Editeur OCL Le volet Editeur OCL de l inspecteur sert à entrer et à modifier des expressions OCL. Les noms des composants de vos modèles (classes, opérations, attributs, etc.) utilisés dans ces expressions sont automatiquement mis à jour par Together lors des modifications. Vous avez ainsi l assurance que vos contraintes OCL restent à jour. Il est possible de faire passer l éditeur OCL du mode OCL au mode texte et vice-versa, dans la boîte liste Langage. Chapitre 4 : Modélisation 69
80 Diagrammes UML 1.4 Astuce Pour modifier une expression OCL, vous avez le choix entre : Sélectionner un élément de contrainte dans le diagramme et appuyer sur F2 pour activer l éditeur in-situ. Choisir Inspecteur dans le menu contextuel de la contrainte, cliquer sur l onglet Contraintes OCL et modifier le texte. L éditeur OCL de l onglet Contraintes OCL assure les fonctions suivantes : Numérotation de ligne : lorsque vous appuyez sur Entrée, la nouvelle ligne prend le numéro suivant. Mise en évidence de la syntaxe : lorsque vous tapez le texte de la contrainte, les mots clés sont mis en évidence en gras, les commentaires s affichent en vert et les valeurs numériques en bleu. Mise en évidence des erreurs : les erreurs de syntaxe sont soulignées et les lignes contenant des erreurs sont signalées par l icône. Le texte entré dans l éditeur OCL du volet Inspecteur s affiche dans le nœud de la contrainte correspondante dans le diagramme lorsque l inspecteur est fermé ou lorsqu il perd la focalisation. Le contexte n est pas spécifié dans le texte de la contrainte. Il n est défini que par liaison. L utilisation du mot-clé context dans l éditeur OCL entraîne une erreur de syntaxe. Des parties de ce produit comprennent la bibliothèque OCL, fournie gracieusement par l Université de Kent, Royaume-Uni, Diagrammes UML 1.4 Utilisation des diagrammes UML 1.4 de packages et de classes Diagramme de classes Un diagramme de classes présente une vue globale d un système en affichant ses classes et les relations entre elles. Les diagrammes de classes sont statiques : ils affichent ce qui interagit mais pas ce qui se passe pendant l interaction. Dans les projets, les diagrammes de classes sont signalés par l icône. Le diagramme de classes ci-après modélise la commande d un client à partir d un catalogue de détail. La classe centrale est la commande (Order). Customer, qui lui est associée, effectue l achat et le paiement. Il existe trois types de paiements : en espèces, par chèque ou à crédit. La commande contient des OrderDetails (les lignes), chacun avec son article associé. 70 Guide de l utilisateur de Borland Together Developer 2005
81 Diagrammes UML 1.4 Figure 4.1 Exemple de diagramme de classes UML 1.4 La notation de classe UML est un rectangle divisé en trois parties : le nom de la classe, les attributs et les opérations. Les noms des classes abstraites, comme Payment, apparaissent en italique. Les relations entre les classes sont les liens de connexion. Le diagramme de classes utilisé dans cet exemple comprend trois types de relations. Association : Une relation entre les instances des deux classes. Il y a association entre deux classes si une instance d une classe doit connaître l autre afin d effectuer son travail. Dans un diagramme, une association est un lien connectant deux classes. Agrégation : Une association dans laquelle une classe appartient à une collection. Une agrégation a une extrémité en forme de losange qui pointe sur la partie contenant l ensemble. Dans ce diagramme, Order a une collection de OrderDetails. Généralisation : Un lien d héritage indique qu une classe est une superclasse de l autre. Une généralisation a un triangle qui pointe sur la superclasse. Payment est une superclasse de Cash, Check et Credit. Une association a deux extrémités. Une extrémité peut comprendre un nom de rôle pour clarifier la nature de l association. Par exemple, un OrderDetail est une ligne d enregistrement de chaque Order. Une flèche de navigation sur une association montre par quelle direction l association peut être traversée ou interrogée. Un OrderDetail peut être interrogé à propos de ses articles, mais pas le contraire. La flèche vous permet également de savoir qui possède l implémentation de l association ; dans ce cas, OrderDetail a un Item. Les associations sans flèche de navigation sont bidirectionnelles. La cardinalité d une extrémité d association est le nombre d instances possibles de la classe associée à une instance unique de l autre extrémité. Les cardinalités sont des nombres uniques ou des intervalles de nombres. Dans notre exemple, il ne peut y avoir qu un seul client par commande, mais un client peut avoir plusieurs commandes. Pour développer la notation dont vous disposez sur les diagrammes de classes, utilisez des profils UML. Diagramme de packages Un diagramme de packages est un diagramme de classes d un type particulier, généré automatiquement chaque fois que vous créez un package. Le fichier diagramme sous-jacent est default.txvpck. Un tel diagramme est indiqué avec l icône. Selon le métamodèle d imbrication de Together, un package est un conteneur dans lequel résident les diagrammes et les éléments. Chapitre 4 : Modélisation 71
82 Diagrammes UML 1.4 Dans tout projet figurent un package par défaut et un diagramme par défaut. Dans Together Developer, le diagramme de packages <default> est situé dans le package <Source du projet>. Tous les packages que vous créez incluent des diagrammes de packages portant ces mêmes noms. Quand vous cliquez sur le nœud du package dans le navigateur de projet ou dans un autre navigateur, la vue JBuilder normale s affiche avec les pages Package et Doc. Quand vous cliquez sur le nœud du diagramme du package, le diagramme s ouvre. Le diagramme du package montre le contenu du package et propose les mêmes fonctionnalités que les diagrammes de classes. Outre les éléments de modélisation appartenant aux diagrammes de classes, vous pouvez placer dans les diagrammes de packages n importe quels autres éléments, y compris des diagrammes d un autre type. Les diagrammes apparaissent sous forme de nœuds signalés par un rectangle spécial contenant leur nom, le nom de leurs éléments internes de base et une icône indiquant le type de diagramme. Pour placer un élément dans le diagramme de packages : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme de packages ou sur un nœud de package. 2 Dans le menu contextuel, choisissez Nouveau. 3 Dans la section inférieure du menu contextuel, sélectionnez le type de diagramme à utiliser. 4 Dans le sous-menu qui s ouvre, sélectionnez l élément à créer. Résultat : Un élément du type sélectionné est créé dans le package conteneur. Selon l option de stockage spécifiée lors de la création du projet, les éléments sont stockés, dans le dossier du package, soit dans des fichiers séparés, soit en tant qu entrées dans le fichier default.txapackage. 72 Guide de l utilisateur de Borland Together Developer 2005
83 Diagrammes UML 1.4 Vous pouvez aussi sélectionner le diagramme dans le package et lui ajouter des éléments internes sans l ouvrir : Les éléments ne peuvent pas résider dans des fichiers séparés pour les projets.jpx de Together Developer. Il est important de noter que tous les éléments pour packages sont affichés en tant qu éléments normaux dans leur diagramme de packages. Dans les autres diagrammes, ils apparaissent en tant que références (sauf dans les diagrammes de modélisation des données). Eléments des diagrammes de classes et de packages Tableau 4.1 Eléments des diagrammes de classes UML 1.4 Icônes Eléments de modélisation Package Classe Interface Classe d association Pattern Objet Lien de généralisation Lien d association Fin d association Lien de dépendance Contrainte Lien de contrainte Nœud par pattern Lien par pattern OCL Contrainte Lien de contrainte Annotation Note Lien de note Chapitre 4 : Modélisation 73
84 Diagrammes UML 1.4 Si vous avez sélectionné un des profils UML, une boîte à outils supplémentaire s affiche dans l éditeur de diagramme. Vous pouvez choisir plusieurs profils UML. Dans ce cas, toutes les boîtes à outils qui leur sont spécifiques sont disponibles. Définition de classes internes (classes inner) Les classes internes des diagrammes affichent leur propre champ compartiment au sein de l élément classe parent sur la vue Diagramme. Pour créer une classe interne, utilisez l une des procédures suivantes : 1 Cliquez avec le bouton droit sur la classe parent. 2 Choisissez Nouveau Classe dans le menu contextuel. ou 1 Cliquez sur l icône Classe dans la boîte à outils. 2 Cliquez sur la classe parent. Création des liens d implémentation Une généralisation est un lien d héritage qui indique qu une classe est une superclasse de l autre. Une généralisation est signalée par un triangle blanc qui pointe vers la superclasse. Utilisez le bouton lien de généralisation/ implémentation de la boîte à outils du diagramme de classes UML pour dessiner les liens de généralisation et d implémentation entre les classes et les interfaces. Pour créer un lien de généralisation / implémentation : 1 Cliquez sur le bouton. 2 Cliquez sur la classe client, puis déplacez le lien (par glisser-déposer) vers la classe fournisseur. La classe client est marquée avec le nom de la classe étendue ou de l interface implémentée. Création d associations, d agrégations et de compositions Utilisez le bouton lien d association de la boîte à outils du diagramme de classes UML pour dessiner des liens d association entre des éléments du diagramme. Lorsque vous créez un lien d association, un champ est défini dans la classe client (le début du lien). Les associations peuvent être automatiques, dirigées ou non dirigées. Un lien dirigé pointe vers la classe fournisseur (la cible). Dans l inspecteur, vous pouvez afficher et définir les propriétés suivantes : Client et supplier : Champs en lecture seule qui affichent le client et le fournisseur du lien de la relation sélectionnée. Roles : Une association comprend deux extrémités, client et fournisseur. A chacune de ces extrémités peut être affecté un nom de rôle qui clarifie la nature de l association. Label : Chaîne de texte à utiliser pour rendre un diagramme plus explicite. Stereotype : Définit une variante du type de lien de l association existante. Cardinality : La cardinalité d une extrémité d association est le nombre d instances possibles de la classe associées à une instance unique de l autre extrémité. 74 Guide de l utilisateur de Borland Together Developer 2005
85 Diagrammes UML 1.4 Les cardinalités sont des nombres uniques ou des intervalles de nombres. Ce tableau répertorie les cardinalités les plus courantes : Cardinalités Signification zéro ou une instance. La notation n.. m indique de n à m instances. 0...* ou * pas de limite sur le nombre d instances (y compris aucune). 1 exactement une instance 1...* au moins une instance Qualifier : Un qualificateur d association est un attribut ou une liste d attributs d une association. Comme une association lie un objet à un jeu d objets reliés, un qualificateur permet de sélectionner un objet spécifique dans le jeu. Type : Un lien d association peut appartenir à l un des types suivants : Association : Une relation entre les instances des deux classes. Agrégation : Une association dans laquelle une classe appartient à une collection. Une agrégation est signalée par une extrémité blanche en forme de losange qui pointe sur la partie contenant l ensemble. Composition : Une composition est signalée par un losange noir pointant sur la partie contenant l ensemble. Pour définir le type d un lien d association : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans l inspecteur, sélectionnez le champ Type, puis sélectionnez la propriété voulue. Ou choisissez Type de lien dans le menu contextuel du lien. Résultat : Le lien change d apparence en conséquence. Directed : Une flèche de navigation sur une association montre dans quelle direction l association peut être traversée ou interrogée. La flèche vous informe aussi sur le propriétaire de l implémentation de l association. Pour définir la propriété Directed d un lien d association : 1 Sélectionnez le lien dans le diagramme. 2 Choisissez Inspecteur dans le menu contextuel du lien. 3 Dans l inspecteur de propriétés, sélectionnez le champ Directed. 4 Définissez la case à cocher selon les besoins. Si la case est cochée, le lien est affiché dirigé. Classes d associations et associations n-aire La classe d association apparaît dans le diagramme sous la forme de trois éléments associés : la classe d association elle-même (représentée par une icône de classe), le lien de classe d association n-aire (représenté par un losange) et le connecteur d association, représenté par un lien entre les deux. La classe d association peut se connecter à autant de classes d extrémité d association (participants) que nécessaire. Pour créer une classe d association : 1 Dans la barre d outils du diagramme, sélectionnez le bouton de classe d association et cliquez sur l arrière-plan du diagramme. Cette opération ajoute l icône classe standard pour la classe d association, connectée à l icône losange. 2 Créez des classes participantes à l aide du bouton de la barre d outils. 3 A l aide du bouton d extrémité d association, connectez l association n-aire aux classes participantes. Chapitre 4 : Modélisation 75
86 Diagrammes UML 1.4 Les inspecteurs de propriétés d une classe d association, d un lien d association et d un connecteur contiennent l onglet Association supplémentaire. Cet onglet contient la seule propriété label, sa valeur étant synchronisée avec le nom de la classe d association. Vous pouvez supprimer chacun des liens d extrémité d association ou chacune des classes participantes sans détruire l association n-aire entière. Néanmoins, la suppression de la classe d association aboutit à la suppression de tous les composants de l association n-aire. Pour supprimer une classe d association : 1 Cliquez avec le bouton droit sur un lien d extrémité d association, une classe d association ou un connecteur. 2 Choisissez la commande Supprimer toute la classe d association dans le menu contextuel. La construction de la classe d association entière est supprimée du diagramme. Création de membres Pour ajouter un membre à une classe ou à une interface : 1 Cliquez avec le bouton droit sur la classe ou sur l interface. 2 Choisissez Nouveau dans le menu contextuel et sélectionnez le membre requis dans le sous-menu. 3 Modifiez le nom du membre avec l éditeur in-situ ou utilisez son inspecteur. Le nouveau membre est inséré dans le diagramme à la fin de son compartiment dans l élément classe. Si une classe contient déjà des attributs ou des opérations, vous pouvez cliquer dessus avec le bouton droit pour créer des membres supplémentaires en utilisant le menu contextuel. Le nouveau membre est inséré avant le membre sélectionné. Astuces Utilisez les méthodes alternatives suivantes pour créer de nouveaux membres : Les nœuds classe et interface du navigateur de modèle ont des menus contextuels qui permettent d ajouter de nouveaux membres. Sélectionnez un membre dans l icône classe et appuyez sur INSER. Le membre de même type et de nom incrémenté est créé. Modification des propriétés des éléments de diagramme et des membres Utilisez l inspecteur pour modifier les propriétés des liens, des membres et des éléments du nœud diagramme. Toutes les modifications que vous apportez aux champs Inspecteur se reflètent automatiquement dans le diagramme. Reportez-vous à la section Inspecteur pour plus de détails. Dans l onglet Propriétés de l inspecteur, vous pouvez modifier le nom de l élément, spécifier ses stéréotype et nom d alias, définir les modificateurs de visibilité et autres paramètres. Ce faisant, les modifications suivantes sont reflétées dans le diagramme : Si l indicateur booléen abstract est activé, le nom de la classe apparaît en italique dans le diagramme. Le nom de stéréotype est spécifié au-dessus du nom de l élément entre crochets angulaires (<<>>) Le nom d alias est affiché en gras à la place du nom du nœud. Si l indicateur booléen directed est activé pour un lien, le lien est affiché avec une flèche. Les libellés de liens, les cardinalités et les rôles spécifiés dans l inspecteur sont affichés ensemble avec le lien. 76 Guide de l utilisateur de Borland Together Developer 2005
87 Diagrammes UML 1.4 Outre l inspecteur, vous pouvez utiliser l éditeur in-situ pour définir et modifier des propriétés des membres des classes. Les champs correspondants dans l inspecteur changent en conséquence. Pour activer l éditeur in-situ dans le diagramme, effectuez une des opérations suivantes : Double-cliquez sur le nom de l élément Cliquez sur le nom de l élément, puis appuyez sur F2. Il est possible de définir les propriétés de membre suivantes in-situ : name : tapez le nouveau nom du membre et appuyez sur Entrée pour appliquer les modifications. type, return type : saisissez le nouveau type après le signe deux-points qui suit le nom du membre. Les attributs ont par défaut le type int. multiplicity : saisissez le nombre de valeurs qu une instance peut détenir pour l élément. Par exemple : 1..1 signifie que l attribut n a qu une valeur. visibility : saisissez le symbole définissant le modificateur de visibilité qui précède le nom du membre ( + pour public, - pour privé, # pour protégé et aucun pour package local). initial value : en regard du type du membre, saisissez le signe =, puis spécifiez la valeur initiale. S il y a plusieurs valeurs, elles sont délimitées par des virgules. Les mêmes valeurs s affichent dans l inspecteur. derived : tapez le symbole / en regard du modificateur de visibilité. Ceci coche l indicateur booléen dans le champ derived de l inspecteur. unique, ordered, union : pour définir ces propriétés, tapez les mots clés Set, ordered ou union entre { à côté du type d attribut (et de la valeur initiale s il y a lieu). S il y a plusieurs mots clés, ils sont délimités par des virgules. Cette action coche les indicateurs booléens correspondants dans l inspecteur. Configuration des contrôles du compartiment Vous pouvez afficher un contrôle de développement/réduction dans les compartiments attributs et opérations des éléments classe et interface, et dans les compartiments classes, interfaces et diagrammes des éléments package. La sélection du package, de la classe ou de l interface active le contrôle qui vous permet d activer ou de désactiver l affichage des membres dans le compartiment. C est particulièrement pratique pour les gros éléments conteneur dont le contenu n a pas toujours besoin d être visible. Pour afficher les contrôles de compartiment : 1 Ouvrez la boîte de dialogue Préférences au niveau souhaité. 2 Sélectionnez la catégorie Modélisation. 3 Dans la section Graphiques, cochez l option Afficher des contrôles pour les compartiments. Vous pouvez également cliquer sur l icône de la barre d outils du diagramme. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes UML 1.4 de packages et de classes, page 70 Prise en charge OCL (Object Constraint Language), page 68 Chapitre 4 : Modélisation 77
88 Diagrammes UML 1.4 Prise en charge de Java 5.0 dans les diagrammes de classes UML 1.4 Pendant que vous travaillez avec des diagrammes de classes dans Together Developer, vous pouvez bénéficier des fonctionnalités du nouveau langage fournies par le JDK 5.0 pour les projets *.jpx. Quand la prise en charge de la version 5.0 du SDK Java 2 est activée dans les Propriétés du projet, certaines constructions de langage de Java 5.0 sont reconnues dans le code source et apparaissent dans les diagrammes de classes : Classes et interfaces génériques Enumérations Types d annotation Vous pouvez aussi créer des éléments de modélisation pour ces constructions en utilisant des patterns prédéfinis. Quand la prise en charge de Java 5.0 est activée, le Gestionnaire de patterns complète l ensemble de patterns par le nœud Default Patterns. Selon le type d élément, le Gestionnaire de patterns affiche Classifiers, Members ou Links. Pour activer la prise en charge de Java 5.0 : 1 Dans le menu principal, choisissez Projet Propriétés du projet Construction Java. 2 Dans l option fonctionnalités du langage, choisissez Java 2 SDK, v 5.0 (Génériques activés). Génériques La classe (interface) générique est reconnue dans le code source et représentée sur les diagrammes comme une classe template. Pour créer une classe (interface) générique : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Nœud par pattern. 2 Cliquez dans l arrière-plan du diagramme. La boîte de dialogue Choix d un pattern s affiche. 3 Dans la vue arborescente des Patterns, développez Default patterns Classifiers et choisissez Default Template Class. 4 Modifiez le nom du nouvel élément et le nom du template selon vos besoins. 5 Cliquez sur Terminer. 78 Guide de l utilisateur de Borland Together Developer 2005
89 Diagrammes UML 1.4 Vous pouvez créer des opérations génériques dans les classes et les interfaces. Dans le menu contextuel, choisissez Nouveau Elément par pattern et, dans le dialogue Choix d un pattern, sélectionnez Default patterns Members Default generic operation. Enumérations L énumération est reconnue et représentée sur les diagrammes de classes en tant que classificateur enum. Pour créer une énumération : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Nœud par pattern. 2 Cliquez dans l arrière-plan du diagramme. La boîte de dialogue Choix d un pattern s affiche. 3 Dans la vue arborescente des Patterns, développez Default patterns Classifiers et choisissez Default Enum. 4 Modifiez le nom du nouvel élément selon vos besoins. 5 Cliquez sur Terminer. Une fois l énumération créée, vous pouvez lui ajouter des constantes. Il existe deux moyens possibles d ajouter des constantes à une énumération, à l aide des commandes du menu contextuel : Choisissez Nouveau Constante Enum. Choisissez Nouveau Elément par pattern et, dans le dialogue Choix d un pattern, sélectionnez Default patterns Members Default constant. Chapitre 4 : Modélisation 79
90 Diagrammes UML 1.4 Type d annotation Le type d annotation est reconnu dans le code source et représenté sur les diagrammes comme une interface. Pour créer un type d annotation : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Nœud par pattern. 2 Cliquez dans l arrière-plan du diagramme. La boîte de dialogue Choix d un pattern s affiche. 3 Dans la vue arborescente des Patterns, développez Default patterns Classifiers et choisissez Default Annotation Type. 4 Modifiez le nom du nouvel élément selon vos besoins. 5 Cliquez sur Terminer. Une fois que l interface du type d annotation est créée, vous pouvez lui ajouter des méthodes par défaut. Dans le menu contextuel, choisissez Nouveau Elément par pattern et, dans le dialogue Choix d un pattern, sélectionnez Default patterns Members Default Method in Annotation Type. Voir aussi Chapitre 3, Utilisation des diagrammes Application des patterns, page 185 Utilisation des diagrammes de séquence et de collaboration (interaction) UML 1.4 Important Les diagrammes de séquence et de collaboration modélisent les aspects dynamiques d un système. Tout deux représentent les interactions décrites par un ensemble d objets, leurs relations et les messages qu il échangent. Les diagrammes de collaboration insistent sur l organisation structurelle des objets. Par contre, les diagrammes de séquence insistent sur l ordre temporel des messages. Notez que le stockage des éléments d un diagramme de façon autonome n est pas pris en charge dans les diagrammes d interaction. Si l option Créer les éléments de modélisation dans des fichiers distincts est activée dans le projet, seules les notes sont réellement stockées sous forme d éléments de modélisation autonomes. Les éléments ne peuvent pas résider dans des fichiers séparés pour les projets d implémentation (.jpx) de Together Developer. Diagramme de séquence Un diagramme de séquence est un diagramme d interaction qui expose en détail la façon dont les opérations sont effectuées : quels messages sont envoyés et quand ils le sont. Les diagrammes de séquence sont organisés en fonction du temps. Le temps s écoule au fur et à mesure que vous parcourez la page. Les objets impliqués dans l opération sont répertoriés de gauche à droite en fonction du moment où ils prennent part dans la séquence de messages. L exemple suivant représente un diagramme de séquence effectuant une réservation d hôtel. L objet mettant en place la séquence de messages est une fenêtre de réservation (UserInterface). 80 Guide de l utilisateur de Borland Together Developer 2005
91 Diagrammes UML 1.4 Figure 4.2 Exemple de diagramme de séquence UML 1.4 L objet fenêtre de réservation envoie un message makereservation() à une chaîne d hôtels. La chaîne d hôtels envoie alors un message makereservation() à un hôtel. Si l hôtel a des chambres disponibles, il effectue alors une réservation et une confirmation. Chaque ligne verticale en pointillés est une ligne de vie, représentant la durée de vie d un objet. Chaque flèche est un appel de message. Une flèche part de l expéditeur vers le haut de la barre d activation du message sur la ligne de vie du destinataire. La barre d activation représente la durée d exécution du message. Dans ce diagramme, l hôtel émet un appel réflexif pour déterminer la disponibilité d une chambre. Dans ce cas, l hôtel crée alors une réservation et une confirmation. L astérisque situé sur l appel réflexif indique la présence d une itération (pour s assurer de la disponibilité d une chambre pour chaque jour du séjour à l hôtel). L expression entre crochets ([ ]) est une condition. Le diagramme comprend une note d explication, représentée par un texte à l intérieur d un rectangle écorné. Les notes peuvent être incluses dans n importe quel type de diagramme UML. Diagrammes de collaboration Comme les diagrammes de séquence, les diagrammes de collaboration sont également des diagrammes d interaction. Les diagrammes de collaboration véhiculent les mêmes informations que les diagrammes de séquence, mais ils se concentrent sur les rôles des objets plutôt que sur les moments où les messages sont envoyés. Dans un diagramme de séquence, les rôles d objets sont les sommets et les messages sont les liens de connexion. Dans un diagramme de collaboration (voir ci-après), les rectangles rôle d objet sont libellés avec les noms de classe ou d objet (ou les deux). Le symbole deux-points (:) précède les noms de classe. Chapitre 4 : Modélisation 81
92 Diagrammes UML 1.4 Figure 4.3 Exemple de diagramme de collaboration UML 1.4 Chaque message d un diagramme de collaboration comprend un numéro de séquence. Le message de niveau supérieur a le numéro 1. Les messages de même niveau (envoyés pendant le même appel) ont le même préfixe décimal mais des suffixes 1, 2, etc. en fonction du moment où ils se produisent. Eléments du diagramme Tableau 4.2 Eléments des diagrammes de séquence UML 1.4 Icône Elément Acteur Objet Bloc d instruction Message Message avec délai de propagation Message réflexif Tableau 4.3 Icône Eléments du diagramme de collaboration Elément Acteur Objet Message Message avec délai de propagation Message réflexif Association Agrégation Remarque Les diagrammes d interaction peuvent contenir des raccourcis vers des éléments appartenant à d autres diagrammes d un projet. Cependant, l ajout d objets en tant que raccourcis n est pas autorisé. Conversion entre diagrammes de séquence et de collaboration Vous pouvez convertir des diagrammes de séquence en diagrammes de collaboration et réciproquement. Cependant, quand vous créez un nouveau diagramme, vous devez spécifier si c est un diagramme de séquence ou un diagramme de collaboration. 82 Guide de l utilisateur de Borland Together Developer 2005
93 Diagrammes UML 1.4 Remarque Pour convertir des diagrammes de séquence en diagrammes de collaboration et réciproquement : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme. 2 Si le diagramme est un diagramme de séquence, choisissez Voir sous forme de collaboration. Si le diagramme est un diagramme de collaboration, choisissez Voir sous forme de séquence. Vous pouvez également effectuer la conversion depuis les menus contextuels des nœuds des diagrammes de séquence et de collaboration dans le navigateur de modèle. Options du diagramme de séquence La boîte de dialogue Préférences permet de définir les options d affichage du diagramme de séquence (options Afficher). Pour de plus amples informations sur les options du diagramme de séquence, reportez-vous aux descriptions des options de la boîte de dialogue Préférences et à la section Préférences de diagrammes de séquence 1.4, page 298. Pour accéder aux options des diagrammes de séquence : 1 Ouvrez la boîte de dialogue Préférences au niveau souhaité. 2 Choisissez Modélisation Diagramme de séquence. 3 Cochez les options de votre choix et cliquez sur OK pour appliquer les modifications. Instanciation des classes Pour associer un objet à une classe : 1 Sélectionnez un objet sur le diagramme et choisissez Inspecteur dans son menu contextuel. 2 Cliquez sur l onglet Propriétés de l inspecteur. 3 Dans le champ instantiates, entrez une valeur ou cliquez sur le bouton sélecteur pour choisir la classe dans une boîte de dialogue listant toutes les ressources disponibles dans le projet. Vous pouvez également utiliser la procédure suivante : 1 Sélectionnez un objet sur le diagramme. 2 Cliquez sur la commande Choisir une classe du menu contextuel. 3 Dans le sous-menu, sélectionnez la classe à instancier. Si la classe voulue ne figure pas dans la liste, choisissez Suite et sélectionnez la classe dans une boîte de dialogue qui propose toutes les ressources disponibles dans le projet. Pour supprimer une association d objet avec une classe : 1 Dans le diagramme, sélectionnez l objet qui instancie la classe. 2 Dans le menu contextuel de l objet, choisissez Supprimer le lien de la classe. Importation de classes Une fois instanciée par un objet, vous pouvez afficher un raccourci vers la classe dans le diagramme d interaction. Cette action porte le nom d importation et améliore la visualisation du modèle. Chapitre 4 : Modélisation 83
94 Diagrammes UML 1.4 Pour importer une classe dans un diagramme d interaction : 1 Dans le diagramme, sélectionnez l objet qui instancie la classe. 2 Choisissez Importer une classe dans le menu contextuel de l objet. Résultat : Un raccourci vers la classe instanciée est affiché dans le diagramme ; un lien de dépendance connecte ce raccourci à l objet en question. Figure 4.4 Importation d une classe instanciée dans un diagramme de séquence Utilisation des messages Cette section décrit les techniques d utilisation des messages dans les diagrammes de séquence et de collaboration. Même si les deux types de diagrammes sont équivalents, les techniques d utilisation des messages diffèrent. Messages dans les diagrammes de collaboration : Quand vous dessinez un message entre des objets, une ligne de lien générique apparaît et une liste de messages est créée au-dessus. La ligne de lien est présente tant qu il y a au moins un message entre les objets. Les propriétés de ce lien générique sont présentées dans l onglet Lien de l inspecteur de liens. Ce sont les propriétés client et supplier du lien message. Les messages s affichent en séquence chronologique de bas en haut dans la liste des messages. Vous pouvez modifier les propriétés des messages en utilisant leur inspecteur. Outre les liens message, vous pouvez ajouter des liens aux diagrammes de collaboration indiquant des relations d association ou d agrégation. Ces liens ne s affichent pas si vous visualisez le diagramme sous forme de diagramme de séquence. Messages dans les diagrammes de séquence : Les messages des diagrammes de séquence ont les mêmes options que ceux des diagrammes de collaboration. Vous pouvez visualiser et modifier ces options sur l onglet Lien de l inspecteur des liens message. En plus des propriétés client et supplier, les liens message des diagrammes d interaction disposent des propriétés suivantes : operation : utilisez ce champ pour associer une opération à un lien message. label : utilisez ce champ pour spécifier le libellé du lien sequence number : affiche le numéro de séquence d un message. Le champ est modifiable. creation et destruction : utilisez ces options booléennes pour spécifier si le lien message crée ou détruit l objet fournisseur. arguments : affiche les arguments d une opération associée à un lien message. Le champ est modifiable. return : affiche la valeur de retour d une opération associée à un lien message. Le champ est modifiable. show return arrow : utilisez cette option booléenne pour définir si une flèche de retour en pointillés doit être dessinée. condition : utilisez ce champ pour spécifier la condition du lien message, présentée entre crochets dans le diagramme, à côté du numéro de message. 84 Guide de l utilisateur de Borland Together Developer 2005
95 Diagrammes UML 1.4 iteration : utilisez ce champ pour spécifier le numéro d itération dans le cas d une génération itérative. Le numéro d itération est affiché à côté du numéro de message entre crochets et il est marqué par un astérisque. constraint : utilisez ce champ pour spécifier une contrainte d opération. La valeur spécifiée est affichée sous le lien message entre accolades. synchronization : choisissez le type de synchronisation dans la boîte liste. Les valeurs possibles sont : call, synchronous, asynchronous, wait, nowait. Le lien message change d aspect en fonction de la synchronisation choisie. send time et receive time : utilisez ces champs pour spécifier les heures d envoi et de réception du message. Les valeurs spécifiées sont affichées respectivement aux extrémités client et fournisseur du message. non-atomic delivery : si cette option est cochée, le lien message est orienté vers le bas. Création d un message réflexif Pour créer un message d un objet à lui-même : 1 Choisissez le bouton Message réflexif dans la boîte à outils du diagramme. 2 Pour un diagramme de séquence, cliquez sur la ligne de vie de l objet à l endroit où le message doit apparaître. Pour créer un message réflexif dans un diagramme de collaboration, cliquez sur l objet. Astuce Vous pouvez aussi choisir le bouton message dans la boîte à outils du diagramme et cliquer deux fois sur l objet cible. Création d un lien message correspondant à l appel d une opération Pour créer un lien message correspondant à l appel d une opération : 1 Créez un lien message entre deux objets. L objet destinataire doit instancier une classe. 2 Ouvrez l onglet Lien de l inspecteur des liens message. 3 Dans le champ operation, cliquez sur le bouton sélecteur. 4 Sélectionnez l opération et cliquez sur OK. Si l opération n est pas un membre de la classe destinataire, vous devez confirmer s il faut créer une nouvelle opération ou en renommer une existante. Vous pouvez également utiliser la procédure suivante : 1 Sélectionnez un lien message entre deux objets du diagramme. 2 Cliquez sur la commande Choisir une opération du menu contextuel. 3 Sélectionnez l opération à associer au lien message. Le lien message est nommé en fonction du nom de l opération. Modification de la direction d un lien Inverser un lien revient à intervertir les objets client et fournisseur. Pour inverser un lien message : 1 Sélectionnez le lien. 2 Choisissez Inverser la direction du lien dans le menu contextuel. Notez bien que, si l objet fournisseur a instancié une classe et si le lien a été associé à un appel d opération, changer la direction du lien provoque la perte de l appel d opération. Un message vous demande de choisir entre délier l opération et enregistrer l appel sous forme de texte brut. Chapitre 4 : Modélisation 85
96 Diagrammes UML 1.4 Modification des durées d activation Together restitue automatiquement l activation des messages en affichant la période de temps durant laquelle le message est actif. Quand vous dessinez un lien message vers l objet de destination, la barre d activation est automatiquement créée. Vous pouvez étendre ou réduire la période d activation d un message en faisant glisser verticalement la ligne supérieure ou inférieure de la barre d activation de manière appropriée. Une barre d activation plus grande signifie une période d activation du message plus longue. Ordre des liens message Pour ordonner les messages, faites glisser les liens message vers le haut ou vers le bas dans la ligne de vie de l objet. Changer l ordre actualise automatiquement le numéro des liens message. Vous pouvez ordonner les liens message en conservant leur ordre de succession et en libérant de l espace pour de nouveaux liens. Pour ce faire, sélectionnez la ligne d un lien message, appuyez sur CTRL et faites-la glisser. Cela décale en conséquence tous les liens successifs. Si vous sélectionnez plusieurs liens message en appuyant sur la touche CTRL, les liens sélectionnés sont déplacés en conservant leur incrément. Branchement des messages Pour brancher des messages : 1 Cliquez avec le bouton droit sur un lien message. 2 Choisissez la commande Branchement Avec le message précédent dans le menu contextuel du message. Pour retirer le branchement, cliquez avec le bouton droit sur le message branché et choisissez Branchement Aucun. Annotation des liens message Vous pouvez commenter des liens en utilisant le bouton Note de la barre d outils de diagramme. Cependant, quand le diagramme change, ces annotations ne sont pas déplacées avec le message auquel elles sont attachées. Pour éviter l apparition de ce problème, commentez les liens. Pour activer l annotation de lien : 1 Ouvrez la boîte de dialogue Préférences au niveau souhaité. 2 Sélectionnez la page Modélisation - Diagramme de séquence. 3 Dans les options Afficher, cochez Description du message. Pour annoter un lien message : 1 Choisissez Inspecteur dans le menu contextuel du lien. 2 Dans l inspecteur, sélectionnez l onglet Description et tapez le texte. Imbrication de messages Vous pouvez imbriquer des messages en faisant partir des liens message depuis la barre d activation. Le message imbriqué hérite sa numérotation du numéro du message parent. Si, par exemple, le message parent a le numéro 1, son premier message imbriqué est 1.1. Il est également possible de créer des liens message allant vers les barres d activation parent. 86 Guide de l utilisateur de Borland Together Developer 2005
97 Diagrammes UML 1.4 Création de blocs d instructions Les blocs d instructions vous permettent de créer des constructions de code compliquées dans le diagramme de séquence. Actuellement, les instructions suivantes sont prises en charge : if else-if else for while do-while try catch finally switch case default Pour ajouter un bloc d instructions à la barre d activation : 1 Dans la boîte à options diagramme, cliquez sur le bouton. 2 Cliquez sur la barre d activation cible. 3 Dans la boîte de dialogue Choisir un type d instruction, cliquez sur le bouton radio correspondant au contrôle à représenter par la barre d activation. 4 Cliquez sur OK. 5 Si la structure de contrôle nécessite une condition, vous pouvez saisir la condition avec l éditeur in-situ. Utilisation des objets et des lignes de vie Les objets s affichent avec une ligne de vie par défaut quand vous les placez dans un diagramme de séquence. Les sommets s alignent verticalement. Si vous dessinez un message vers un objet puis cochez la propriété creation du message, l objet créé se déplace vers le bas pour matérialiser qu il existe après son créateur. Vous pouvez allonger ou réduire la ligne de vie des objets si nécessaire en faisant glisser vers le haut ou vers le bas la ligne horizontale du lien message le plus bas. Vous pouvez également changer aussi la position des autres messages qui interviennent. Pour chaque objet du diagramme, un en-tête vous permet de modifier l ordre et la taille des objets. Les en-têtes sont affichés sur le panneau en-tête situé sous la barre d outils du diagramme, comme illustré ci-après. Le panneau en-tête vous permet de déplacer et de redimensionner des objets même s ils ne sont pas visibles. Quand le curseur de la souris passe au-dessus de la cible, il change sa forme en (déplacement) ou (redimensionnement). Figure 4.5 Déplacement d un objet La barre d en-tête est développable. En cliquant sur l icône +/- dans le coin supérieur droit du diagramme, vous pouvez afficher ou cacher les noms des objets. Chapitre 4 : Modélisation 87
98 Diagrammes UML 1.4 Remarque Utilisation des raccourcis vers des objets Il est possible de placer des raccourcis qui font référence au même objet sur plusieurs diagrammes d interaction, pas plus d un raccourci par diagramme. Quand vous modifiez les propriétés d un raccourci, les autres raccourcis qui font référence au même objet sont également mis à jour. Quand vous supprimez le raccourci et l objet auquel il fait référence, tous les raccourcis et tous les messages associés sont supprimés. Il peut y avoir d autres messages qui en dépendent. Il seront également supprimés. Quand vous supprimez le raccourci sans supprimer l objet, tous les messages associés sont supprimés sur ce diagramme, mais les autres raccourcis ne sont pas supprimés. Il n est pas permis de cacher des objets et des messages sur les diagrammes de séquence, mais il est possible de le faire sur les diagrammes de collaboration. Si vous le faites, puis affichez le diagramme de collaboration en tant que diagramme de séquence, tous les objets et tous les messages cachés redeviennent visibles. Création et destruction des objets Les propriétés de message creation et destruction contrôlent le comportement des objets destinataires. Pour définir un objet créé : 1 Cliquez avec le bouton droit sur le lien message et choisissez Inspecteur dans le menu contextuel. 2 Dans l onglet Lien de l inspecteur, cochez l indicateur creation. Résultat : L objet créé se déplace vers le bas pour matérialiser qu il existe après son créateur. Le lien message pointe sur l icône de l objet plutôt que sur la ligne de vie. Pour définir un objet détruit : 1 Cliquez avec le bouton droit sur le lien message et choisissez Inspecteur dans le menu contextuel. 2 Dans l onglet Lien de l inspecteur, cochez l indicateur destruction. Résultat : Un X en gras est affiché sur la barre d activation, indiquant la destruction d un objet créé. La ligne de vie de l objet est retirée. Voir aussi Chapitre 3, Utilisation des diagrammes C est une fonctionnalité de Together Developer uniquement. Astuce Utilisation du code d implémentation dans un diagramme de séquence Les diagrammes de séquence prennent en charge la synchronisation modèle-code Together vous permet de générer un diagramme de séquence à partir du code source, afin de vous aider à analyser les opérations. Par ailleurs, vous pouvez générer du code source à partir des messages ou des barres d activation des diagrammes de séquence, pourvu que chaque message de la séquence d appels corresponde à une opération réelle. Génération de diagrammes de séquence à partir d opérations Pour générer un diagramme de séquence à partir d une opération : 1 Ouvrez le diagramme de classes contenant l opération à modéliser. 2 Localisez la classe souhaitée et choisissez l opération voulue. Remarquez que vous pouvez générer un diagramme de séquence pour plusieurs opérations sélectionnées. 88 Guide de l utilisateur de Borland Together Developer 2005
99 Diagrammes UML 1.4 Astuce 3 Cliquez avec le bouton droit de la souris et choisissez Générer un diagramme de séquence. Cela ouvre une boîte de dialogue qui liste les packages et les classes impliqués dans l opération. Vous pouvez également appeler la commande Générer un diagramme de séquence dans le Navigateur de modèle. 4 Dans la liste package/classe, cochez les packages et les classes à afficher dans le diagramme généré. Par défaut, tous les packages et classes sont sélectionnés. Cependant, certaines classes Java comme java.lang.integer peuvent ne pas être pertinentes. Pour accroître la pertinence du diagramme généré, supprimez tout ce qui est inutile dans l explication de la séquence d opérations. 5 Pour les éléments que vous décidez d afficher dans le diagramme, indiquez en cochant s il faut ou non afficher les détails de l implémentation dans le diagramme généré. 6 Cliquez sur OK pour générer le diagramme. Résultat : Together génère un nouveau diagramme de séquence dans le même paquet que la classe source, portant le même nom que l opération source et l ouvre dans l éditeur de diagramme. Substitution pour l implémentation dans un diagramme de séquence Supposons que vous ayez un morceau de code source contenant des interfaces ou des classes abstraites. Si vous essayez de générer un diagramme de séquence à partir de l appel d une opération utilisant une interface ou une classe abstraite, le diagramme généré s arrêtera à cette classe ou à cette interface. Afin de produire un diagramme significatif, vous devez spécifier la classe réelle qui implémente l interface ou étend la classe abstraite en question. Voici comment procéder : 1 Générez un diagramme de séquence depuis l appel d une opération. 2 Dans le diagramme résultant, sélectionnez l objet qui correspond à une interface ou à une classe abstraite. 3 Dans le menu contextuel, choisissez Substituer pour la génération. 4 Dans le dialogue Sélectionner une implémentation qui s affiche, choisissez la classe voulue dans la liste. 5 Cliquez sur OK. Paramétrage des options de contrôle de la génération des diagrammes de séquence Le dialogue Préférences vous permet de définir des options pour les diagrammes générés. Pour accéder aux options de génération d un diagramme de séquence au niveau du projet : 1 Depuis le menu principal, choisissez Projet Propriétés du projet. Cela ouvre le dialogue Propriétés du projet. 2 Sélectionnez le nœud Modélisation Diagramme de séquence. 3 Définissez les valeurs des options voulues dans la section Options de génération. Il est possible de générer des diagrammes de séquence pour plusieurs méthodes. Vous pouvez afficher un diagramme de séquence pour chaque méthode dans un onglet séparé ou afficher la séquence des appels de toutes les méthodes sélectionnées dans un même diagramme de séquence. Pour contrôler ce comportement, utilisez les options Création de diagrammes multiples et Affichage de diagrammes multiples. Chapitre 4 : Modélisation 89
100 Diagrammes UML 1.4 Si l option Création de diagrammes multiples est cochée, un diagramme distinct est généré pour chaque méthode sélectionnée. Sinon, les séquences d appels de toutes les méthodes sélectionnées sont générées dans un seul diagramme. Si l option Affichage de diagrammes multiples est cochée, tous les diagrammes sont ouverts automatiquement après leur génération. Si cette option n est pas cochée, vous pouvez néanmoins ouvrir n importe quel diagramme généré à partir du navigateur de modèle. Il est également possible de contrôler le niveau d imbrication. L option Profondeur d imbrication d appel vous permet de modifier les valeurs d imbrication selon le degré souhaité de complexité. Génération de code source à partir d un diagramme de séquence Pour générer le code source pour un message ou pour la barre d activation : 1 Cliquez avec le bouton droit sur le message ou sur la barre d activation. 2 Choisissez Générer l implémentation. Une fois le processus terminé, les libellés des messages pour lesquels du code d implémentation a été généré sont affichés en gras dans le diagramme. Par défaut, Together ne génère pas de code source pour les opérations dont le corps n est pas vide. Vous pouvez changer ce comportement par défaut via les options du diagramme de séquence. Voir aussi Utilisation des diagrammes de séquence et de collaboration (interaction) UML 1.4, page 80 Utilisation des diagrammes de cas d utilisation UML 1.4 Les diagrammes de cas d utilisation décrivent ce qu un système fait du point de vue d un observateur externe. L accent est mis sur ce qu un système fait, plutôt que sur la façon dont il le fait. Les diagrammes de cas d utilisation sont étroitement connectés aux scénarios. Un scénario est un exemple de ce qui arrive quand quelqu un interagit avec le système. Voici un scénario pour une clinique médicale : Un patient appelle la clinique pour prendre un rendez-vous pour un bilan de santé annuel. La secrétaire recherche le créneau horaire libre le plus proche dans son carnet de rendez-vous et prend un rendez-vous pour ce créneau horaire. Un cas d utilisation est un résumé des scénarios pour un but ou une tâche unique. Un acteur est la personne ou l objet qui engage les événements impliqués dans cette tâche. Les acteurs sont simplement des rôles que les gens ou les objets jouent. L image qui suit est le cas d utilisation Rendez-vous pour la clinique médicale. L acteur est un patient. La connexion entre l acteur et le cas d utilisation est une association de communication (ou communication, en raccourci). Figure 4.6 Exemple d un acteur, d une communication et d un cas d utilisation Un diagramme de cas d utilisation est une collection d acteurs, de cas d utilisation et leurs communications. Voici un exemple du cas d utilisation Rendez-vous en tant que partie d un diagramme avec quatre acteurs et quatre cas d utilisation. Notez qu un seul cas d utilisation peut avoir plusieurs acteurs. 90 Guide de l utilisateur de Borland Together Developer 2005
101 Diagrammes UML 1.4 Figure 4.7 Exemple d un diagramme de cas d utilisation UML 1.4 Les diagrammes de cas d utilisation sont utiles dans trois domaines : Détermination des caractéristiques (exigences) : Les nouveaux cas d utilisation génèrent souvent de nouvelles exigences au fur et à mesure que le système est analysé et que la modélisation prend forme. Communication avec les clients : Les diagrammes de cas d utilisation, par leur simplicité de notation, représentent pour les développeurs une bonne méthode pour communiquer avec les clients. Génération de cas de test : La collection de scénarios pour un cas d utilisation peut suggérer une suite de cas de test pour ces scénarios. Eléments du diagramme Tableau 4.4 Eléments des diagrammes cas d utilisation UML 1.4 Icônes Eléments Acteur Cas d utilisation Périmètre du système Généralisation Communication Extension Inclusion Création de séquences de navigation dans les diagrammes de cas d utilisation Les diagrammes de cas d utilisation représentent généralement le contexte d un système et les exigences du système. En principe, vous commencez à un niveau élevé et spécifiez les principaux cas d utilisation du système. Vous déterminez ensuite les cas d utilisation du système principal à un niveau plus granulaire. Par exemple, un cas d utilisation Gérer les affaires peut avoir un autre niveau de détail qui contient des cas d utilisation comme Saisir des clients et Saisir des ventes. Lorsque vous avez atteint le niveau désiré de granularité, il est utile d avoir une méthode pratique de développement ou de réduction des cas d utilisation pour comprendre la portée des vues des cas d utilisation du système et leurs relations. La fonction d hyperliens vous permet de créer des séquences de navigation constituées de n importe quel nombre de diagrammes de cas d utilisation ou d un autre type. Vous pouvez lier des diagrammes entiers à un certain niveau de détail vers le diagramme suivant, vers le haut ou le bas, dans une séquence de granularité croissante, ou lier les cas d utilisation ou les acteurs principaux au diagramme suivant. En parcourant la séquence d hyperliens, vous pouvez suivre les relations entre les diagrammes de cas d utilisation. Chapitre 4 : Modélisation 91
102 Diagrammes UML 1.4 Vous pouvez également utiliser les hyperliens pour lier des diagrammes et des éléments en fonction de vos exigences. Vous pouvez, par exemple, créer une séquence de navigation hiérarchique entre les diagrammes de cas d utilisation, en ajoutant des hyperliens entre les diagrammes qui suivent un acteur donné à travers tous les cas d utilisation faisant référence à cet acteur. Voir aussi Chapitre 3, Utilisation des diagrammes Hyperliens et diagrammes, page 59 Utilisation des diagrammes d états UML 1.4 Les objets ont des comportements et des états. L état d un objet dépend de sa condition ou activité en cours. Un diagramme d états affiche les états possibles de l objet et les transitions qui provoquent un changement d état. Le diagramme suivant modélise la partie connexion d un système bancaire en ligne. La demande de connexion consiste à entrer un numéro d identification personnel et un numéro de sécurité sociale corrects, puis à soumettre les informations pour validation. La demande de connexion peut être décomposée en quatre états sans chevauchement : l obtention du numéro de sécurité sociale, l obtention du numéro d identification, la validation et la phase de rejet. Chaque état fournit un ensemble complet de transitions qui détermine l état suivant. Figure 4.8 Exemple de diagramme d états UML 1.4 Les états sont représentés par des rectangles arrondis. Les transitions sont les flèches reliant un état à un autre état. Les événements ou les conditions qui déclenchent des transitions sont écrits à côté des flèches. Ce diagramme a deux transitions réflexives : l obtention du numéro de sécurité sociale et l obtention du numéro d identification. L état initial (présenté sous la forme d un cercle noir) est un état factice qui démarre l action. Les états finals sont également des états factices qui terminent l action. L action qui survient en tant que résultat d un événement ou d une condition est exprimée dans la fiche/action. Dans son état de validation, l objet n attend pas un événement extérieur pour déclencher une transition. Au lieu de cela, il effectue une activité. Le résultat de cette activité détermine son état suivant. 92 Guide de l utilisateur de Borland Together Developer 2005
103 Diagrammes UML 1.4 Eléments du diagramme Le tableau ci-après fait la liste des éléments des diagrammes d états disponibles dans la boîte à outils et via la commande Nouveau du menu contextuel du diagramme. Les éléments de transition interne et de transition différée ne sont disponibles que dans le menu contextuel d un état. Tableau 4.5 Eléments des diagrammes d états UML 1.4 Icône Elément Etat Etat initial Etat final Historique Objet Débranchement/Jointure horizontal Débranchement/Jointure vertical Transition Evénement différé Transition interne Dessin de transitions réflexives Dans une transition réflexive, le flot sort de l état, distribuant une ou plusieurs actions de sortie puis entre à nouveau dans l état, en distribuant une ou plusieurs actions d entrée. Pour créer une transition réflexive : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Transition. 2 Double-cliquez sur l icône d état cible. Création de transitions internes Une transition interne est un raccourci pour gérer des événements sans quitter l état et distribuer ses actions d entrée/sortie. Pour créer une transition interne : 1 Sélectionnez l état voulu dans le diagramme. 2 Dans le menu contextuel de l état, choisissez Nouveau Transition interne. Vous pouvez modifier in-situ le nom de l événement. Spécification des actions d entrée et de sortie Les actions d entrée et de sortie sont exécutées respectivement lors de l entrée et de la sortie d un état. Vous pouvez créer des actions d entrée et de sortie dans les diagrammes d états sous la forme de transitions internes stéréotypées. Utilisez l une des méthodes suivantes pour spécifier les actions d entrée/sortie pour un état. En utilisant l éditeur in-situ : 1 Créez une transition interne dans l état souhaité. 2 Double-cliquez sur la transition interne pour activer l édition in-situ. 3 Renommez en utilisant la syntaxe suivante : nom_événement (liste de paramètres)[condition de garde]/<expression d action>^<clause d envoi>. Chapitre 4 : Modélisation 93
104 Diagrammes UML 1.4 En utilisant l inspecteur de propriétés : 1 Créez une transition interne dans l état souhaité. 2 Choisissez Inspecteur dans le menu contextuel de la transition interne. 3 Dans l onglet Propriétés de l inspecteur, spécifiez les arguments d événements, la condition de garde, l expression d action et la clause d envoi. Création d éléments différés Un événement différé peut être considéré comme une transition interne qui gère l événement et le place dans une file d attente interne jusqu à son utilisation ou son abandon. Vous pouvez ajouter un événement différé à un état ou à un élément d activité. Pour créer un événement différé : 1 Sélectionnez l activité ou l état voulu sur le diagramme. 2 Cliquez avec le bouton droit sur l élément et sélectionnez Nouveau Evénement différé dans le menu contextuel. Création de sous-états imbriqués Vous pouvez créer un état composite en imbriquant un ou plusieurs niveaux d états (c est-à-dire des sous-états) à l intérieur d un état. Vous pouvez également placer des états initial/final et historique dans un état et dessiner des transitions entre les sous-états contenus. Pour créer un sous-état imbriqué, utilisez l une des procédures suivantes : Placez un élément état sur l arrière-plan du diagramme, puis faites-le glisser et déposez-le sur un autre état, ou Choisissez Nouveau Etat dans le menu contextuel de l état cible. Affichage de plusieurs sources de transition Une transition peut avoir plusieurs sources, ce qui signifie que c est la jointure de plusieurs états concurrents ou elle peut avoir plusieurs cibles, ce qui signifie que c est un débranchement vers plusieurs états concurrents. Vous pouvez afficher plusieurs états de transitions dans les diagrammes d états avec une orientation verticale ou horizontale. La barre d outils des diagrammes d états propose des boutons débranchement/jointure distincts pour chaque orientation. Les deux orientations sont identiques sémantiquement. Pour créer plusieurs transitions : 1 Identifiez les états impliqués. Si nécessaire, commencez par placer tous les états dans le diagramme et disposez-les comme vous le souhaitez. 2 Placez un débranchement/jointure horizontal ou vertical dans le diagramme et redimensionnez-le comme souhaité. 3 S il décrit plusieurs sources, dessinez des transitions depuis chaque état source vers le débranchement/jointure, puis dessinez une transition vers l état cible. 4 S il décrit plusieurs cibles, dessinez une transition entre l état et le débranchement/ jointure, puis dessinez les transitions depuis le débranchement/jointure vers les états cible. 94 Guide de l utilisateur de Borland Together Developer 2005
105 Diagrammes UML 1.4 Création d un historique Pour ajouter un historique à un état : 1 Sur un diagramme d états, sélectionnez l état cible où ajouter l historique. 2 Choisissez l icône dans la barre d outils du diagramme, puis cliquez sur l état cible. IMPORTANT : Un état ne peut recevoir qu un seul historique. Pour spécifier un historique détaillé : 1 Dans un état, cliquez avec le bouton droit sur l élément historique. 2 Dans le menu contextuel, choisissez Inspecteur. 3 Dans l onglet Propriétés de l inspecteur, cochez l option deep. Modélisation d états complexes Les techniques listées ci-dessous correspondent à des modèles d états et de sous-états composites complexes. Redimensionnez l état principal. Vous pouvez redimensionner l état principal. Vous pouvez même dessiner dedans un autre diagramme d états, le compléter avec des états initial/final/historique et des transitions de toutes sortes pour créer un diagramme de sous-état. Utilisez des hyperliens pour indiquer des sous-états imbriqués. Vous pouvez imbriquer plusieurs niveaux de sous-états dans un état. Pour les modèles de sous-états particulièrement complexes, il peut être cependant plus pratique de créer différents diagrammes, de modéliser individuellement chaque niveau de sous-états puis de faire des hyperliens séquentiels entre les diagrammes. Appliquez un contenu existant à un nouveau diagramme. Vous pouvez créer un nouveau diagramme ayant le même contenu qu un diagramme existant en utilisant la commande Cloner dans le menu contextuel d un nœud diagramme dans l explorateur. Le nouveau diagramme a un nom unique et il est créé dans le même package que l original. Réutilisez des éléments de diagrammes existants.vous pouvez réutiliser des éléments existants d autres diagrammes d états en employant la commande Nouveau Raccourci dans le menu contextuel du diagramme. Cela ouvre la boîte de dialogue Ajouter un raccourci dans laquelle vous pouvez atteindre un diagramme d état existant et sélectionner des éléments, états, historiques et/ou des débranchements/jointures. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes d activité UML 1.4 Un diagramme d activité est semblable à un organigramme. Les diagrammes d activité et les diagrammes d états sont associés. Tandis qu un diagramme d états concentre l attention sur le processus en cours d un objet (ou sur un processus pris comme objet), un diagramme d activité se focalise sur le flot des activités impliquées dans un processus unique. Le diagramme d activité montre la façon dont ces activités dépendent les unes des autres. Le diagramme d activité présenté utilise le processus Retrait d argent d un compte bancaire à partir d un distributeur. Chapitre 4 : Modélisation 95
106 Diagrammes UML 1.4 Figure 4.9 Exemple de diagramme d activité UML 1.4 Les trois classes impliquées de l activité sont Client, Distributeur et Banque. Le processus commence au niveau du cercle de départ noir en haut et se termine au niveau des cercles d arrêt blanc/noir en bas. Les activités sont présentées sous la forme de rectangles arrondis. Les diagrammes d activité peuvent être divisés en travées d objets qui déterminent l objet responsable d une activité. Une transition unique sort de chaque activité, la connectant à l activité suivante. Une transition peut se ramifier en deux ou plusieurs transitions mutuellement exclusives. Les expressions de garde (figurant à l intérieur des [ ]) nomment les transitions sortant d une branche. Une branche et son confluent immédiat marquant la fin d une branche apparaissent dans le diagramme sous la forme de losanges creux. Une transition peut se ramifier en deux ou plusieurs activités parallèles. Le débranchement et la jointure subséquente des threads sortant du débranchement apparaissent dans le diagramme sous la forme de barres pleines. Eléments des diagrammes d activité UML 1.4 Le tableau ci-après répertorie les éléments des diagrammes d activité disponibles àäl aide de la boîte à outils. Les éléments des diagrammes sont également disponibles en utilisant la commande Nouveau du menu contextuel du diagramme, ou sur les menus contextuels des éléments. 96 Guide de l utilisateur de Borland Together Developer 2005
107 Diagrammes UML 1.4 Tableau 4.6 Icônes Eléments du diagramme d activité Eléments Activité Branchement conditionnel Réception de signal Envoi de signal Etat Etat initial Etat final Historique Objet Débranchement/Jointure horizontal Débranchement/Jointure vertical Travée Transition Flot d objets Transition interne Evénement différé Astuce Lors de l utilisation des diagrammes d activité, considérez les recommandations suivantes : Vous pouvez réutiliser les éléments existants dans d autres diagrammes d activité en utilisant la commande Raccourcis. Pour une navigation plus pratique, modélisez d abord le flot principal. Traitez ensuite les branchements, les flots concurrents et les flots d objets. Utilisez des diagrammes distincts selon vos besoins, puis établissez des hyperliens entre eux. Création de transitions internes Une transition interne est un raccourci pour gérer des événements sans quitter un état (ou activité) et distribuer ses actions de sortie et d entrée. Vous pouvez ajouter une transition interne à un état ou à un élément d activité. Pour créer une transition interne : 1 Sélectionnez l élément d activité ou l état voulu sur le diagramme. 2 Cliquez avec le bouton droit sur l élément et sélectionnez Nouveau Transition interne dans le menu contextuel. Création d éléments différés Un événement différé peut être considéré comme une transition interne qui gère l événement et le place dans une file d attente interne jusqu à son utilisation ou son abandon. Vous pouvez ajouter un événement différé à un état ou à un élément d activité. Pour créer un événement différé : 1 Sélectionnez l activité ou l état voulu sur le diagramme. 2 Cliquez avec le bouton droit sur l élément et sélectionnez Nouveau Evénement différé dans le menu contextuel. Chapitre 4 : Modélisation 97
108 Diagrammes UML 1.4 Spécification des actions d entrée/sortie pour un état Les actions d entrée et de sortie sont exécutées respectivement lors de l entrée et de la sortie d un état. Vous pouvez créer des actions d entrée et de sortie comme les transitions internes stéréotypées. Utilisez l une des méthodes suivantes pour spécifier les actions d entrée/sortie pour un état. En utilisant l éditeur in-situ : 1 Créez une transition interne dans l état souhaité. 2 Double-cliquez sur la transition interne pour activer l édition in-situ. 3 Renommez en utilisant la syntaxe suivante : nom_événement (liste de paramètres)[condition de garde]/<expression d action>^<clause d envoi> Par exemple : exit/setstate(idle) En utilisant l inspecteur de propriétés: 1 Créez une transition interne dans l état souhaité. 2 Cliquez avec le bouton droit sur la transition interne pour ouvrir le menu contextuel. 3 Choisissez Inspecteur. 4 Dans l inspecteur, modifiez les champs event arguments, guard condition, action expression et send clause. Création de sous-états imbriqués Le diagramme d activité peut contenir des états composites, c est-à-dire des sous-états imbriqués. Vous pouvez également placer des états début/fin et des états historique dans un état et dessiner des transitions entre les sous-états contenus. En utilisant la fonction glisser-déposer pour créer un sous-état imbriqué : 1 Placez un élément état sur l arrière-plan du diagramme. 2 Déplacez le nouvel état en haut d un état existant. 3 Déposez le nouvel état. Ou En utilisant le menu contextuel de l élément état : 1 Cliquez avec le bouton droit sur l état qui sera le conteneur. 2 Sélectionnez Nouveau Etat dans le menu contextuel. Création de transitions à sources et cibles multiples Une transition peut avoir plusieurs sources, ce qui signifie que c est la jointure de plusieurs états concurrents ou elle peut avoir plusieurs cibles, ce qui signifie que c est un débranchement vers plusieurs états concurrents. Vous pouvez afficher plusieurs transitions, avec une orientation verticale ou horizontale, dans les diagrammes d états et d activité. La barre d état des diagrammes d états et d activité contient des boutons de débranchement/jointure horizontal et vertical distincts pour chaque orientation. Les deux orientations sont identiques sémantiquement. Pour créer plusieurs transitions : 1 Identifiez les états impliqués. Si nécessaire, commencez par placer tous les états dans le diagramme et disposez-les comme vous le souhaitez. 2 Placez un débranchement/jointure horizontal ou vertical dans le diagramme. Redimensionnez selon les besoins. 98 Guide de l utilisateur de Borland Together Developer 2005
109 Diagrammes UML S il décrit plusieurs sources, dessinez des transitions depuis chaque état source vers le débranchement/jointure. S il décrit plusieurs cibles, dessinez des transitions depuis la source vers le débranchement et depuis le débranchement vers chacun des états cible. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes de composants UML 1.4 Les diagrammes de composants et de déploiement représentent l architecture physique d un système informatique. Les diagrammes de composants présentent les dépendances et les interactions entre les composants logiciels. Un composant est un conteneur d éléments logiques et représente des choses qui participent à l exécution d un système. Les composants utilisent également les services d autres composants via certaines de leurs interfaces. En principe, les composants sont utilisés pour visualiser les packages logiques de code source (composants produit de travail), le code binaire (composants de déploiement) ou les fichiers exécutables (composants d exécution). Voici un diagramme de composants présentant les dépendances et les interactions entre les composants logiciels d un programme de caisse enregistreuse. Figure 4.10 Exemple de diagramme de composants UML 1.4 Eléments du diagramme Tableau 4.7 Eléments des diagrammes de composants UML 1.4 Icônes Eléments Sous-système Composant Interface Support Dépendance Chapitre 4 : Modélisation 99
110 Diagrammes UML 1.4 Remarque Modélisation des diagrammes de composants Voici quelques astuces et techniques que vous pouvez utiliser pour créer des diagrammes de composants : Réutilisez des éléments de diagrammes existants. Vous pouvez réutiliser les éléments existants d autres diagrammes de composants en utilisant la commande Raccourcis. Invoquez la commande Raccourcis dans le menu contextuel du diagramme (Nouveau Raccourcis). Les éléments importés ainsi sont des copies indépendantes des éléments déjà existants. Représentez la réalisation. Vous pouvez représenter la réalisation au moyen du lien support. Le lien support est un lien de dépendance avec le champ stéréotype défini à supports. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes de déploiement UML 1.4 Les diagrammes de composants et de déploiement représentent l architecture physique d un système informatique. Les diagrammes de déploiement sont constitués d un graphe de nœuds connectés par des associations de communication présentant la configuration physique du matériel et du logiciel. Les composants sont des unités physiques d empaquetage logiciel, comprenant : Les bibliothèques externes Les systèmes d exploitation Les machines virtuelles Voici un diagramme de déploiement présentant les relations des composants logiciels et matériels d une transaction immobilière. Figure 4.11 Exemple de diagramme de déploiement 100 Guide de l utilisateur de Borland Together Developer 2005
111 Diagrammes UML 2.0 Eléments du diagramme Tableau 4.8 Eléments des diagrammes de déploiement UML 1.4 Icônes Eléments Nœud Composant Interface Objet Support Association Agrégation Dépendance Remarque Modélisation des diagrammes de déploiement Voici quelques astuces et techniques que vous pouvez utiliser pour créer des diagrammes de déploiement : Réutilisez des éléments de diagrammes existants. Vous pouvez réutiliser les éléments existants d autres diagrammes de déploiement en utilisant la commande Raccourcis. Invoquez la commande Raccourcis dans le menu contextuel du diagramme (Nouveau Raccourcis). Les éléments importés ainsi sont des copies indépendantes des éléments déjà existants. Organisez les composants en spécifiant les relations entre eux. Indiquez une relation temporaire entre un composant et un nœud. Les objets et composants peuvent migrer d une instance de composant à une autre et, respectivement, d un nœud d instance à un autre. Dans ce cas, l objet (composant) n est que temporairement sur son composant (nœud). Pour indiquer cela, utilisez la relation de dépendance avec le stéréotype <<becomes>>. Pour de plus amples informations sur l ajout de stéréotypes, voir Notation et stéréotypes. Représentez comment un composant se trouve dans un nœud. Un composant peut se situer sur un nœud. Vous pouvez représenter cela de deux manières : Utilisez un lien Support entre le composant et le nœud. Le lien Support est un lien de dépendance avec le champ stéréotype défini à supports. Imbriquez graphiquement le symbole composant à l intérieur du symbole nœud. Diagrammes UML 2.0 Dans Together Developer, UML 2.0 est pris en charge (pour les projets.tpx) uniquement si une licence Together Designer est détectée. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes UML 2.0 de packages et de classes Dans les diagrammes de classes UML 2.0 se trouvent de nouveaux éléments, tels que des ports, des emplacements et des interfaces (fournies et requises). La figure ci-dessous illustre un diagramme de classes intégrant quelques-uns des nouveaux éléments UML 2.0. Chapitre 4 : Modélisation 101
112 Diagrammes UML 2.0 Figure 4.12 Exemple de diagramme de classes UML 2.0 Les nouveaux diagrammes offrent toujours les mêmes fonctionnalités que les diagrammes UML 1.4, à l exception près que, si vous ajoutez des membres aux éléments de diagramme dans l interface 2.0, vous pouvez utiliser les diagrammes de classes UML 2.0 de la même manière que les diagrammes de classes UML 1.4. Pour plus de détails sur les actions, éléments et propriétés communs aux deux types de diagramme, consultez la section Utilisation des diagrammes UML 1.4 de packages et de classes, page 70. Les aspects spécifiques à la version UML 2.0 sont décrits ci-dessous. Eléments des diagrammes de classes UML 2.0 Table 4.9 Eléments des diagrammes de classes UML 2.0 Icônes Eléments Classe Interface Classe d association Port Spécification d instance Lien de généralisation 102 Guide de l utilisateur de Borland Together Developer 2005
113 Diagrammes UML 2.0 Table 4.9 Icônes Eléments des diagrammes de classes UML 2.0 (suite) Eléments Interface fournie Interface requise Pattern Lien d association Lien de dépendance Fin d association Nœud par pattern Lien par pattern OCL Contrainte Lien de contrainte Utilisation d interfaces Une classe implémente une interface via le même lien de généralisation/ implémentation que dans le diagramme de classes UML 1.4. Le diagramme de classes UML 2.0 prend également en charge la notation ball-and-socket (style bilboquet) des interfaces fournies et requises. Le manche (lollipop) est créé entre un port de la classe client et l interface du fournisseur. Astuce Pour créer une interface fournie : 1 Créez une classe et les éléments du nœud d interface à l aide des boutons et de la boîte à outils. 2 Créez un port sur la classe client à l aide du bouton. 3 Dans la boîte à outils du diagramme, cliquez sur le bouton de l interface fournie. 4 Cliquez sur le port de la classe client et faites glisser le curseur de la souris jusqu au nœud d interface. Appliquer un lien d interface fournie entre une classe et une interface crée le lien normal de généralisation/implémentation. Pour créer une interface requise : 1 Créez une classe et les éléments du nœud d interface à l aide des boutons et de la boîte à outils. 2 Dans la boîte à outils du diagramme, cliquez sur le bouton de l interface fournie. 3 Cliquez sur la classe client et faites glisser le curseur de la souris jusqu au nœud d interface. Figure 4.13 Interfaces fournie et requise Vous pouvez masquer ou afficher les interfaces sur le diagramme, selon vos besoins. Il y a deux moyens de le faire : utiliser la commande Cacher du menu contextuel de l interface ou l option invisible de l inspecteur. Chapitre 4 : Modélisation 103
114 Diagrammes UML 2.0 Astuce Pour masquer une interface : 1 Dans le diagramme, cliquez avec le bouton droit sur l interface. 2 Choisissez Cacher dans le menu contextuel. Résultat : L interface se retire du diagramme, ainsi que tous ses liens, mais elle existe toujours dans le projet et reste visible dans les vues du navigateur. Si vous utilisez des classes qui implémentent cette interface, le nom de cette dernière apparaît en italiques dans les icônes de la classe. Pour rendre visible l interface cachée, utilisez la commande Afficher les éléments cachés du menu contextuel du diagramme. Pour rendre une interface invisible : 1 Sélectionnez l interface, puis choisissez Inspecteur dans son menu contextuel. 2 Développez le nœud Affichage. 3 Cochez l option invisible. Si vous avez masqué l interface de cette façon, bien qu elle soit invisible, vous pouvez toujours l utiliser, par exemple la sélectionner ou la déplacer. Ajout de membres aux interfaces Dans le menu contextuel, il est possible d ajouter aux interfaces des opérations et des attributs. Ces membres ne s affichent pas dans l icône de l interface dans le diagramme, mais ils sont visibles dans le navigateur de modèle. Pour ajouter des membres à une interface : 1 Sélectionnez l interface, puis choisissez Nouveau dans son menu contextuel. 2 Dans le sous-menu, choisissez Opération ou Attribut. Une interface peut déléguer ses obligations à une autre interface via le connecteur de délégation. Pour créer un connecteur de délégation : 1 Sélectionnez une interface, puis choisissez Nouveau Connecteur de délégation dans le menu contextuel. 2 Dans la boîte de dialogue Choisir la destination qui s ouvre, sélectionnez l interface cible dans le modèle ou dans les favoris. 3 Cliquez sur OK. Utilisation d éléments de spécification d instance et d emplacement Selon la spécification UML 2.0, une spécification d instance peut instancier un ou plusieurs classificateurs. Un classificateur peut utiliser des classes, des interfaces ou des composants. Il est possible d instancier un classificateur dans l inspecteur ou dans l éditeur in-situ. Pour instancier un classificateur dans l inspecteur : 1 Cliquez avec le bouton droit sur la spécification d une instance, puis choisissez Inspecteur dans le menu contextuel. 2 Dans le nœud Propriétés de l inspecteur, sélectionnez le champ instantiates. 3 Cliquez sur le bouton sélecteur. 4 Dans la boîte de dialogue Choisir une classe ou une interface pour le type, à l aide des boutons Ajouter/Retirer, sélectionnez les classificateurs dans la liste des éléments disponibles. 5 Cliquez sur OK lorsque vous avez terminé. 104 Guide de l utilisateur de Borland Together Developer 2005
115 Diagrammes UML 2.0 Astuce Pour instancier un classificateur avec l éditeur in-situ : 1 Dans le diagramme, sélectionnez la spécification d une instance. 2 Appuyez sur F2 pour ouvrir l éditeur in-situ. Ou double-cliquez sur le nom de la spécification d instance. 3 En regard du nom de la spécification d instance, tapez le nom d un classificateur existant, délimité par le symbole deux points, par exemple, InstanceSpecification1:Class1 4 Appuyez sur Entrée Il est important de noter que plusieurs classificateurs ne peuvent être définis que dans l inspecteur. L éditeur in-situ ne prend pas en charge l héritage multiple. Pour définir les fonctionnalités d une spécification d instance, vous pouvez insérer des emplacements dans un élément de spécification d instance, associer les emplacements aux attributs des classificateurs instanciés, attribuer une valeur et définir le stéréotype d emplacement. Pour ajouter un emplacement à un élément de spécification d instance : 1 Ajoutez un élément de spécification d instance à votre diagramme. 2 Dans votre diagramme, cliquez avec le bouton droit sur l élément de spécification d instance puis, dans le menu contextuel, choisissez Nouveau Emplacement. Pour associer un emplacement à une fonctionnalité structurelle : 1 Sélectionnez un emplacement dans l élément de spécification d instance, puis choisissez Inspecteur dans le menu contextuel. 2 Développez le nœud Propriétés de l inspecteur. 3 Dans le champ defining feature, cliquez sur le bouton sélecteur. 4 Dans la boîte de dialogue Choisir un attribut pour définir la fonction, sélectionnez l attribut souhaité, puis cliquez sur OK. Pour définir la valeur de l emplacement, effectuez l une des opérations suivantes : Dans l inspecteur de l emplacement, tapez la chaîne voulue dans le champ value. Appelez l éditeur in-situ de l emplacement, puis tapez la valeur en regard du nom de l emplacement, en utilisant comme séparateur le signe égal. Pour définir le stéréotype de l emplacement : 1 Dans l inspecteur de l emplacement, sélectionnez l onglet Personnalisation. 2 Cliquez sur le bouton Ajouter. 3 Donnez à la propriété le nom stereotype. 4 Entrez la valeur du stéréotype. Résultat : Le stéréotype spécifié s affiche au-dessus du nom de l emplacement. Figure 4.14 Spécification d instance pour instancier une classe Chapitre 4 : Modélisation 105
116 Diagrammes UML 2.0 Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes UML 1.4 de packages et de classes, page 70 Prise en charge OCL (Object Constraint Language), page 68 Utilisation des diagrammes d interaction (séquence et communication) UML 2.0 Avec Together, vous pouvez créer des interactions qui décrivent et analysent en détail les communications entre processus. Pour représenter visuellement ces interactions dans vos projets Together, utilisez les deux diagrammes d interaction les plus courants : Séquence et Communication. Dans les projets, il se peut que des interactions existent sans représentation visuelle. Utilisation d interactions La création d un diagramme d interaction entraîne l ajout de l interaction correspondante dans le projet. Dans le navigateur de modèle, les interactions sont représentées sous forme de nœuds. Figure 4.15 Interactions et diagrammes d interaction dans le navigateur de modèle Il existe deux façons de visualiser une interaction : comme un diagramme de séquence ou comme un diagramme de communication. Quelle que soit la vue dans laquelle elles sont effectuées, les actions se reflètent automatiquement dans les autres vues. Un ajout ou une suppression d un élément dans une interaction entraîne la modification du diagramme d interaction correspondant, et vice versa. Un diagramme d interaction contient une référence à l interaction sous-jacente. A la différence d UML 1.4, il n est pas possible de faire basculer un diagramme existant du type séquence au type communication et vice versa. Cependant, il est possible de créer un diagramme de séquence et un diagramme de communication sur la base de la même interaction. Pour créer une interaction : 1 Dans le navigateur de modèle, cliquez avec le bouton droit sur le nœud cible, sur lequel l interaction doit être créée. 2 Dans le menu contextuel du nœud sélectionné, choisissez Nouveau Diagramme de séquence. 3 Choisissez Interaction dans le sous-menu. 106 Guide de l utilisateur de Borland Together Developer 2005
117 Diagrammes UML 2.0 Résultat : La nouvelle interaction est créée dans le package spécifié. Pour ouvrir le diagramme d une interaction : 1 Dans le navigateur de modèle, sélectionnez l interaction souhaitée. 2 Dans le menu contextuel de l interaction, choisissez Ouvrir le diagramme de communication ou Ouvrir le diagramme de séquence. Résultat : Dans le projet, les diagrammes d interaction faisant référence à l interaction en question sont recherchés. Si un diagramme correspondant existe, il s ouvre dans l éditeur de diagramme. Sinon, le diagramme est créé. Pour atteindre le diagramme de communication d un diagramme de séquence existant : 1 Sur le diagramme de séquence ouvert, cliquez avec le bouton droit sur l arrière-plan du diagramme 2 Choisissez Sélectionner Interaction dans le navigateur de modèle. 3 Cliquez avec le bouton droit sur l interaction et choisissez Ouvrir le diagramme de communication dans le menu contextuel. Résultat : Dans le projet, les diagrammes de communication faisant référence à l interaction en question sont recherchés. Si un diagramme correspondant existe, il s ouvre dans l éditeur de diagramme. Sinon, le diagramme est créé. Pour atteindre un diagramme de séquence à partir d un diagramme de communication existant, suivez la même procédure, en utilisant la commande Ouvrir le diagramme de séquence. Si une interaction est supprimée du navigateur de modèle, le diagramme d interaction correspondant n est plus valide : tous les éléments du diagramme sont supprimés et les boutons de la boîte à outils désactivés. Vous pouvez y remédier par une autre interaction que vous fournissez à l aide de la commande Correction du menu contextuel du diagramme. Astuce Pour recréer une interaction lorsqu un diagramme d interaction a été invalidé : 1 Dans le navigateur de modèle, sélectionnez le nœud du diagramme d interaction voulu. Vous pouvez aussi cliquer avec le bouton droit dans l arrière-plan du diagramme. 2 Dans le menu contextuel, choisissez Correction : création d une nouvelle interaction. Résultat : Il y a création d une interaction vide. Définition des propriétés d une interaction L onglet (nœud) Interaction de l inspecteur présente les propriétés d une interaction associée à un diagramme de séquence. Si vous cliquez sur l arrière-plan du diagramme, l inspecteur de diagramme affiche les propriétés du diagramme sous l onglet Propriétés et les propriétés de l interaction sous-jacente sous l onglet Interaction. Si, dans le navigateur de modèle, vous avez sélectionné une interaction en tant qu entité, ses propriétés sont définies sous l onglet (nœud) Propriétés de l inspecteur. Dans l inspecteur, vous pouvez, entre autres, spécifier une classe qui, dans l objet, représentera le contexte de l interaction, définir des pré-conditions et des post-conditions ou modifier le nom de l interaction. Pour définir le contexte d une interaction : 1 Sélectionnez l interaction voulue dans le navigateur de modèle. 2 Dans le menu contextuel, choisissez Inspecteur. 3 Sous l onglet Propriétés de l inspecteur, sélectionnez le champ context. Chapitre 4 : Modélisation 107
118 Diagrammes UML Cliquez sur le bouton sélecteur. 5 Dans la boîte de dialogue Choisir un classificateur référencé, sélectionnez la classe souhaitée dans le projet ou les favoris, puis cliquez sur OK. Figure 4.16 Définition du contexte d une interaction dans l Inspecteur Pour définir la spécification d une interaction : 1 Sélectionnez l interaction voulue dans le navigateur de modèle. 2 Dans le menu contextuel, choisissez Inspecteur. 3 Sous l onglet Propriétés de l inspecteur, sélectionnez le champ specification. 4 Cliquez sur le bouton sélecteur. 5 Dans la boîte de dialogue Choisir une opération, sélectionnez l opération souhaitée dans le projet ou les favoris, puis cliquez sur OK. Astuces Pour définir les propriétés d une interaction, il vous suffit de cliquer dans l arrière-plan du diagramme, puis d utiliser l onglet Interaction de l inspecteur. Pour définir ces propriétés manuellement, tapez simplement la spécification et le contexte dans les champs correspondants de l inspecteur. Dans ce cas, les valeurs spécifiées n ont aucune corrélation avec des éléments réels. Dans l inspecteur, elles sont affichées entre apostrophes. Une fois que le contexte et la spécification de l interaction ont été définis et qu ils se réfèrent à des éléments réels de votre projet, il vous est facile de localiser ces derniers dans le projet. Pour ce faire, utilisez le menu Sélectionner, qui devient disponible dans le menu contextuel d une interaction dans le navigateur de modèle et dans le menu contextuel du diagramme. Eléments du diagramme Tableau 4.10 Eléments des diagrammes de séquence UML 2.0 Icône Elément Ligne de vie Spécification de l exécution Message Invariant d état Utilisation de l interaction Fragment combiné Lier le cadre. Outil permettant de lier un cadre (fragment combiné ou spécification d interaction) à une ligne de vie. Important Un diagramme de séquence peut contenir des raccourcis vers d autres éléments du diagramme. Cependant, ne sont pas pris en charge les raccourcis vers les éléments qui résident dans les autres diagrammes d interaction. En particulier, les lignes de vie 108 Guide de l utilisateur de Borland Together Developer 2005
119 Diagrammes UML 2.0 présentent quelques restrictions. Si une ligne de vie a été ajoutée en tant que raccourci alors qu elle appartient à un autre diagramme de séquence, elle ne peut pas être une source ou une destination reconnue, quelle que soit la relation à établir. Une telle ligne de vie est invalide et est désignée dans le diagramme par un rectangle rouge. Les diagrammes d interaction, représentés dans le navigateur de modèle, affichent un certain nombre d éléments auxiliaires non visibles dans l éditeur de diagramme. Ces éléments jouent un rôle supplémentaire dans la représentation de la structure du diagramme. Ils peuvent être modifiés, mais il n est pas recommandé de le faire pour ne pas risquer de mettre en péril l intégrité des diagrammes d interaction. Lignes de vie Une ligne de vie définit un participant individuel de l interaction. Dans le diagramme, elle est représentée par un rectangle suivi d un trait vertical discontinu représentant la durée de vie de ce participant. A chaque ligne de vie du diagramme correspond un en-tête dans lequel vous pouvez modifier l ordre et la taille des objets. Les en-têtes sont affichés sur le panneau en-tête situé sous la barre d outils du diagramme, comme illustré ci-après. Le panneau en-tête vous permet de déplacer et de redimensionner des objets même s ils ne sont pas visibles. Quand le curseur de la souris passe au-dessus de l en-tête de l objet, il prend la forme (déplacement). L en-tête montre l identificateur de la ligne de vie et le nom de la pièce connectée. Figure 4.17 En-têtes de ligne de vie développés Remarque Les lignes de vie d une interaction peuvent faire référence aux pièces définies dans les diagrammes de classe ou de structure composite. Si l élément référencé a plusieurs valeurs, la ligne de vie doit s accompagner d un sélecteur permettant de spécifier quelle pièce particulière elle représente. Si une ligne de vie représente un élément connectable, si son type est spécifié ou si elle se réfère à une autre interaction, le menu Sélectionner devient actif dans le menu contextuel de cette ligne de vie. Dans ce menu, vous pouvez naviguer jusqu à la pièce, jusqu au type ou jusqu à la décomposition associés à la ligne de vie. Ces propriétés sont définies dans l inspecteur de la ligne de vie. Les champs typeet represents de l inspecteur apparaissent en alternance (si le champ represents ou decomposition est défini, le champ type est désactivé). Comme mentionné plus haut, vous pouvez définir ces propriétés manuellement, en tapant les valeurs dans les champs correspondants de l inspecteur. Dans ce cas, les valeurs sont entre apostrophes. Cependant, ces références ne sont pas reliées à des éléments réels et ne disposent pas du menu Sélectionner. Pour associer une ligne de vie à un élément référencé : 1 Vérifiez que votre projet contient les éléments référencés à représenter par les lignes de vie. 2 Dans le navigateur de modèle, le navigateur de diagrammes ou l éditeur de diagramme, sélectionnez la ligne de vie voulue. 3 Dans le menu contextuel, choisissez Inspecteur. 4 Sous l onglet Propriétés de l inspecteur, sélectionnez le champ represents. 5 Cliquez sur le bouton sélecteur. 6 Dans la boîte de dialogue Choisir un élément connectable représenté, sélectionnez la pièce souhaitée dans le projet ou les favoris, puis cliquez sur OK. Chapitre 4 : Modélisation 109
120 Diagrammes UML 2.0 Pour associer une ligne de vie à un type : 1 Dans le navigateur de modèle, le navigateur de diagrammes ou l éditeur de diagramme, sélectionnez la ligne de vie voulue. 2 Dans le menu contextuel, choisissez Inspecteur. 3 Sous l onglet Propriétés de l inspecteur, sélectionnez le champ type. 4 Cliquez sur le bouton sélecteur. 5 Dans la boîte de dialogue Choisir le type de l élément connectable représenté, sélectionnez dans le projet ou les favoris la classe qui définissait le type, puis cliquez sur OK. Astuce Pour définir la décomposition d une ligne de vie : 1 Dans le navigateur de modèle, le navigateur de diagrammes ou l éditeur de diagramme, sélectionnez la ligne de vie voulue. 2 Dans le menu contextuel, choisissez Inspecteur. 3 Sous l onglet Propriétés de l inspecteur, sélectionnez le champ decomposition. 4 Cliquez sur le bouton sélecteur. 5 Dans la boîte de dialogue Choisir une interaction référencée, sélectionnez l interaction souhaitée dans le projet ou les favoris, puis cliquez sur OK. Les propriétés decomposition, type, stereotype et referenced element se reflètent également dans le diagramme Communication correspondant. Pour naviguer jusqu à un élément référencé dans une ligne de vie : 1 Dans le navigateur de modèle, le navigateur de diagrammes ou l éditeur de diagramme, sélectionnez la ligne de vie voulue. 2 Dans le menu contextuel, choisissez Sélectionner. 3 Dans le sous-menu, choisissez Pièce, Décomposition ou Type. Figure 4.18 Navigation jusqu à un élément référencé Opérations liées au Presse-papiers relatives aux lignes de vie Les opérations liées au Presse-papiers ont certaines fonctions spécifiques lorsqu elles concernent les lignes de vie. Ainsi, si une ligne de vie est copiée ou clonée, un sélecteur s ajoute au nom de la pièce. Chaque nouvel exemplaire prend une valeur de sélecteur unique. Lors de la copie d une ligne de vie, les cadres (utilisations d interactions et fragments combinés) restent liés à la ligne et à sa copie. Tous les messages, toutes les spécifications d exécution et toutes les spécifications d invocations sont ignorés. Figure 4.19 Copies d une ligne de vie 110 Guide de l utilisateur de Borland Together Developer 2005
121 Diagrammes UML 2.0 Astuces Pour cloner une ligne de vie, choisissez simplement, dans son menu contextuel, la commande Cloner. La ligne de vie clonée apparaît près de la ligne d origine ; les lignes de vie suivantes sont décalées vers la droite. Pour copier une ligne de vie, choisissez, dans son menu contextuel, la commande Copier. Dans l arrière-plan du diagramme, cliquez avec le bouton droit à l emplacement auquel placer la copie, puis choisissez Coller dans le menu contextuel. Notez que vous n êtes pas autorisé à utiliser la commande Couper dans le cas de lignes de vie. Messages Cette section décrit les techniques d utilisation des messages dans les diagrammes de séquence et de communication. Même si les deux types de diagrammes sont équivalents, les techniques d utilisation des messages diffèrent. Messages dans les diagrammes de communication : Quand vous dessinez un message entre des lignes de vie, une ligne de lien générique apparaît entre elles et une liste de messages est créée en dessous. La ligne de lien est présente tant qu il y a au moins un message entre les lignes de vie. Messages dans les diagrammes de séquence : Les messages ont les mêmes propriétés dans les diagrammes de séquence et dans les diagrammes de communication, mais permettent davantage d actions dans les diagrammes de séquence. Les lignes qui suivent concernent principalement les messages liés aux diagrammes de séquence. Les propriétés des messages des deux types de diagrammes d interaction peuvent être modifiées sous l onglet Lien de l inspecteur du lien message. Messages d appel et de réponse Together fournit deux types principaux de liens messages : messages d appel et messages de réponse. En fait, la spécification UML 2.0 ne prévoit aucune disposition en ce qui concerne les messages de réponse. Néanmoins, les deux types de messages sont disponibles dans Together. Dans les diagrammes, le messages d appel sont toujours visibles alors que, normalement, les messages de réponse ne le sont pas. Cependant, vous pouvez demander à afficher le message de réponse. Pour afficher ou masquer un message de réponse : 1 Dans le diagramme d interaction, sélectionnez un message d appel. 2 Dans le menu contextuel du message, choisissez Inspecteur. 3 Sous l onglet Lien de l inspecteur, activez ou désactivez l option show reply message. Dans un diagramme, les réponses sont des entités distinctes, avec leur propre jeu de propriétés, même si ces dernières sont moins nombreuses que les propriétés d appel. Sur le diagramme, vous pouvez sélectionner des messages de réponse, les annoter et en spécifier les valeurs de retour. Spécification d exécution et spécification d invocation Dans un diagramme de séquence, Together renvoie automatiquement la spécification d exécution d un message montrant la période pendant laquelle le message est actif. La barre de spécification d exécution se crée automatiquement lorsque vous dessinez un lien message vers la ligne de vie de destination. Pour étendre ou réduire la durée d un message, faites glisser verticalement la ligne supérieure ou inférieure de spécification d exécution. Il est également possible de créer une spécification d exécution sur une ligne de vie sans créer de lien message entrant. Chapitre 4 : Modélisation 111
122 Diagrammes UML 2.0 Pour créer une spécification d exécution : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton. 2 Cliquez à l emplacement voulu d une ligne de vie. Résultat : Une barre de spécification d exécution se crée dans la ligne de vie cible. Ceci entraîne la restitution automatique d un lien message trouvé. Pour masquer ou afficher les messages trouvés, utilisez l inspecteur. Les messages des diagrammes de séquence ont leur origine dans une spécification d invocation. Il s agit d une zone dans une spécification d exécution. La notion de spécification d invocation est nouvelle dans l implémentation Together du diagramme de séquence UML 2.0. Bien que cet élément ne soit pas défini dans la spécification UML 2.0, c est un outil précieux pour la modélisation d invocations synchrones avec les messages de réponse. En particulier, une spécification d invocation marque l emplacement auquel les messages de réponse (même s ils sont invisibles) entrent dans le contexte d exécution d une ligne de vie et celui auquel les sous-messages peuvent entrer à nouveau dans la ligne de vie. Figure 4.20 Appel et réponse connectés via la spécification d invocation Les zones active et passive de la spécification d exécution se distinguent par leur différence de couleur. Les barres de spécification d exécution blanches indiquent les zones actives, dans lesquelles vous pouvez créer des liens messages. Les barres grises indiquent les zones passives, qui ne sont pas une source ou une cible valide des liens messages. Propriétés des messages d appel et de réponse Figure 4.21 Inspecteurs des messages d appel et de réponse dans un diagramme d interaction Dans les diagrammes de séquence, les messages d appel ont les propriétés suivantes : sequence number : utilisez ce champ pour afficher et modifier le numéro séquentiel d un message. Lorsque le numéro du message change, l appel du message change en conséquence. Vous ne pouvez pas modifier les numéros des messages trouvés. name : affiche le nom du lien. Ce champ est modifiable. qualified name : champ en lecture seule affichant le nom complet du message. visibility : dans la liste déroulante, choisissez la visibilité du message. 112 Guide de l utilisateur de Borland Together Developer 2005
123 Diagrammes UML 2.0 stereotype : utilisez ce champ pour définir le stéréotype du message. Le nom du stéréotype s affiche au-dessus du lien. Les stéréotypes création et destruction sont prédéfinis. signature : utilisez ce champ pour spécifier le nom d une opération ou d un signal associé au message. Si vous changez la signature d un message, vous changez aussi la signature de la réponse correspondante. arguments : affiche les véritables arguments d une opération associée à un appel. Le champ est modifiable. sort : utilisez ce champ pour sélectionner dans la liste déroulante le type de synchronisation. Les valeurs possibles sont : asynchcall, synchcall, asynchsignal. Le lien message change d aspect en fonction de la synchronisation choisie. Les appels asynchrones sont sujets à certaines limites : Il est quelquefois impossible de créer ou de coller un appel asynchrone en raison des limites du cadre. La spécification d exécution d un appel asynchrone doit toujours se trouver sur une ligne de vie. Les messages de réponse ne sont pas pris en charge en cas d appels asynchrones. show reply message : utilisez cette option booléenne pour définir si une flèche de retour en pointillés doit être dessinée. commentary : saisissez dans ce champ de texte vos commentaires concernant un lien message. Dans les diagrammes de séquence, les messages de réponse ont les propriétés suivantes : stereotype : utilisez ce champ pour définir le stéréotype du message. Together fournit un stéréotype exception prédéfini. attribute : utilisez ce champ pour définir un attribut auquel sera affectée la valeur de retour du message. Ce champ est modifiable. signature : utilisez ce champ pour spécifier le nom d une opération ou d un signal associé au message. Si vous changez la signature de la réponse, vous changez aussi la signature de l appel correspondant. arguments : affiche les arguments d une opération associés à un appel. Le champ est modifiable. Si vous changez la liste d arguments d un message de réponse, vous changez aussi l appel correspondant. return value : affiche la valeur de retour d une opération associée à un lien message. Ce champ est modifiable. sort : utilisez ce champ pour sélectionner dans la liste déroulante le type de synchronisation. Les valeurs possibles sont : asynchcall, synchcall, asynchsignal. Le lien message change d aspect en fonction de la synchronisation choisie. commentary : saisissez dans ce champ de texte vos commentaires sur le lien. Opérations liées au Presse-papiers et relatives aux spécifications d exécution et d invocation Les spécifications d exécution et d invocation prennent en charge les opérations liées au Presse-papiers. Le menu contextuel d une spécification d exécution ou d invocation donne accès aux commandes Couper, Copier, Cloner et Coller. Il est possible de copier ou de déplacer ces éléments dans le même diagramme ou vers un autre diagramme. Chapitre 4 : Modélisation 113
124 Diagrammes UML 2.0 Lorsqu une spécification d exécution ou d invocation est copiée, la branche entière des messages l est aussi. Si vous collez le contenu du Presse-papiers vers une ligne de vie cible, vous modifiez la numérotation des messages, qui suit alors celle des messages de la ligne de vie cible. Si vous collez une spécification d invocation ou d exécution vers un autre diagramme, tous les messages sortants le sont aussi, ainsi que toutes leurs lignes de vie. Si le diagramme cible ne contient pas de lignes de vie pour cette spécification d exécution, elles sont automatiquement créées. Il est également possible de déplacer et de copier des branches de messages par un glisser-déposer. Pour déplacer une spécification d exécution ou d invocation, il vous suffit de la glisser-déposer à l emplacement cible. Pour créer une copie, accompagnez le glisser-déposer de la touche CTRL, à maintenir enfoncée. Imbrication de messages Vous pouvez imbriquer des messages en faisant partir des liens messages depuis une spécification d exécution. Le message imbriqué hérite sa numérotation du numéro du message parent. Si, par exemple, le message parent a le numéro 1, son premier message imbriqué est 1.1. Il est également possible de créer des liens de message allant vers les spécifications d exécution parent. Création d un message réflexif Pour créer un message réflexif à partir d une ligne de vie : 1 Cliquez sur le bouton Message dans la boîte à outils du diagramme. 2 Dans un diagramme de séquence, cliquez deux fois sur la ligne de vie, à l emplacement où le message devra apparaître. Dans un diagramme de communication, il vous suffit de cliquer deux fois sur la ligne de vie. Figure 4.22 Message réflexif Création d un lien message correspondant à l appel d une opération Pour créer un lien message correspondant à l appel d une opération : 1 Créez une interaction. 2 Créez un lien message entre deux lignes de vie de l interaction. 3 Ouvrez l onglet Lien de l inspecteur des liens message. 4 Dans le champ signature, cliquez sur le bouton sélecteur. 5 Dans le Navigateur de modèle ou de favoris, sélectionnez l opération voulue, puis cliquez sur OK. Le lien message est nommé en fonction du nom de l opération. Invariants d état Un invariant d état est une contrainte placée sur une ligne de vie. Cette contrainte est évaluée moment de l exécution, avant l exécution de la spécification d exécution suivante. Les invariants d état sont représentés de deux manières dans les diagrammes d interaction : en tant qu expressions OCL ou en tant que références aux diagrammes d état. Vous pouvez les utiliser pour apporter des commentaires à vos diagrammes d interaction et pour connecter des interactions à des états. 114 Guide de l utilisateur de Borland Together Developer 2005
125 Diagrammes UML 2.0 Astuce Pour créer un invariant d état en tant que commentaire OCL : 1 Dans la boîte à outils du diagramme, choisissez le bouton correspondant. 2 Cliquez sur la ligne de vie ou la spécification d exécution cible. Vous pouvez aussi utiliser la commande Nouveau Invariant d état du menu contextuel d une ligne de vie ou d une spécification d exécution. 1 Dans l inspecteur de l invariant d état, sélectionnez l onglet Propriétés. 2 Dans le champ invariant kind, choisissez Expression OCL dans la liste déroulante. L élément invariant d état dans le diagramme est maintenant représenté par des accolades. 3 Sous l onglet Invariant OCL qui s ajoute à l inspecteur, sélectionnez le langage du commentaire dans la liste déroulante Langage. Les options possibles sont OCL et texte brut. 4 Tapez le texte et appliquez les modifications. Pour connecter un invariant d état à un état : 1 Dans la boîte à outils du diagramme, choisissez le bouton correspondant. 2 Cliquez sur la ligne de vie ou la spécification d exécution cible. 3 Dans l inspecteur de l invariant d état, sélectionnez l onglet Propriétés. 4 Dans le champ invariant kind, choisissez States/Regions dans la liste déroulante. 5 Dans le champ States/Regions, cliquez sur le bouton sélecteur. 6 Dans la boîte de dialogue Choisir des états et/ou des régions, sélectionnez les états et/ou les régions dans le projet ou les favoris, à l aide du bouton Ajouter. Cliquez sur OK lorsque vous avez terminé. Si un invariant d état se réfère explicitement à un état ou à une région qui existe dans le projet, il est possible de naviguer du diagramme de séquence en cours vers la région ou l état référencé dans le navigateur de modèle ou dans le diagramme d états. Voici comment procéder : a b c Cliquez avec le bouton droit sur un invariant d état faisant référence à un état ou à une région. Dans le menu contextuel, choisissez Sélectionner. Dans le sous-menu, choisissez la destination souhaitée. Si un invariant d état fait référence à un état ou à une région qui n existe pas dans votre projet, le menu Sélectionner n est pas disponible. Chapitre 4 : Modélisation 115
126 Diagrammes UML 2.0 Fragments combinés Un fragment combiné se compose d un ou de plusieurs opérateurs d interaction et des opérandes d interaction correspondants. Pour créer ces éléments, utilisez la boîte à outils ou les menus contextuels. Les opérateurs suivants sont disponibles : seq, alt, opt, break, par, strict, loop, critical, neg, assert, ignore, consider, region. Le type d opérateur apparaît dans le descripteur en haut à gauche de l élément de modélisation. Vous pouvez définir plusieurs opérateurs dans un même fragment combiné. Dans ce cas, le descripteur contient la liste de tous les opérateurs, qui joue le rôle de raccourci vers les opérateurs imbriqués. Ajoutez les opérandes autorisés lorsque vous créez l opérateur, à l aide du menu contextuel du fragment combiné. Pour créer un fragment combiné : 1 Dans le diagramme de séquence, sélectionnez la ligne de vie ou la spécification d exécution souhaitée. 2 Dans la boîte à outils du diagramme, choisissez le bouton fragment combiné, puis cliquez sur la ligne de vie cible. La boîte de dialogue Nouveau fragment combiné - Propriétés du pattern s ouvre et affiche la liste des opérateurs disponibles. 3 Dans la section des options du fragment combiné, sélectionnez l opérateur voulu. 4 Spécifiez les arguments quand il y a lieu. Par exemple, spécifiez les noms des méthodes des opérateurs ignore et consider ou les noms d index de l opérateur loop. Dans le cas d un opérateur personnalisé, vous devez aussi en spécifier le nom. Pour annuler une restriction UML, cochez l option Ignorer les restrictions UML. 5 Cliquez sur Terminer. Figure 4.23 Boîte de dialogue du choix d un pattern pour des fragments combinés 116 Guide de l utilisateur de Borland Together Developer 2005
127 Diagrammes UML 2.0 Pour créer un fragment combiné, vous pourriez aussi utiliser le menu contextuel des vues du navigateur ou l éditeur de diagramme. Par défaut, alt est sélectionné. 1 Choisissez la ligne de vie ou la spécification d exécution dans le navigateur de modèle ou dans l éditeur de diagramme. 2 Dans le menu contextuel de la sélection, choisissez Nouveau Fragment combiné. Vous ajoutez ainsi un fragment combiné alt à l emplacement cible. 3 Sous l onglet Opérateurs d interaction de l inspecteur, dans la liste déroulante des opérateurs, choisissez le type d opérateur souhaité. Résultat : Le fragment combiné s ajoute à la ligne de vie cible ou à la spécification d exécution. La couleur change à chaque nouveau fragment combiné pour que vous distinguiez les différents fragments combinés d un même cluster de cadres imbriqués. Un fragment combiné peut s étendre sur plusieurs lignes de vie, ou encore être détaché et rattaché à des lignes de vie. Chaque fragment combiné est rattaché à sa ligne de vie par un point noir. Ce point est un élément individuel du diagramme et il peut être sélectionné ou supprimé. Si un point est supprimé, le fragment combiné correspondant se détache et reste sur le diagramme. Les fragments détachés peuvent encore être modifiés : vous pouvez ajouter et retirer des opérateurs, dissocier et fusionner des cadres, créer, supprimer et déplacer des opérandes. Vous pouvez rattacher un fragment détaché, à l aide de l outil Lier le cadre. Opérateurs A la création d un cadre combiné, l opérateur s affiche dans un descripteur pentagonal dans le coin supérieur gauche du cadre. Pour changer le type de l opérateur, utilisez l onglet Opérateurs d interaction de l inspecteur. La modification se reflète immédiatement dans le descripteur. Le descripteur peut contenir plusieurs opérateurs. La spécification UML 2.0 prévoit une notation des fragments combinés imbriqués. Dans Together, vous pouvez soit utiliser cette notation, soit créer des nœuds de fragments combinés imbriqués. Pour créer des opérateurs imbriqués : 1 Sélectionnez le fragment combiné souhaité dans le navigateur de modèle ou dans l éditeur de diagramme. 2 Dans l inspecteur, sélectionnez l onglet Opérateurs d interaction. L onglet montre le premier opérateur associé au fragment combiné. 3 Cliquez sur le bouton Ajouter. Une nouvelle ligne s affiche sous l entrée existante dans l inspecteur et dans le descripteur du fragment combiné. Par défaut, l opérateur alt est créé. 4 Dans la liste déroulante, choisissez le type d opérateur imbriqué. 5 Avec les boutons Ajouter et Retirer, composez la liste d opérateurs imbriqués que vous souhaitez. Avec les boutons Haut et Bas, spécifiez l ordre correct des opérateurs imbriqués. 6 Appliquez les modifications. Résultat : La liste des opérateurs imbriqués, dans le descripteur du fragment combiné, suit l ordre spécifié. Chapitre 4 : Modélisation 117
128 Diagrammes UML 2.0 Figure 4.24 Définition d opérateurs dans un fragment combiné Dissociation et fusion de cadres Si la liste du descripteur comporte plusieurs opérateurs imbriqués, il est possible de dissocier ces derniers en clusters plus petits, avec la commande Dissocier les opérateurs entre du menu contextuel d un fragment combiné. Cette commande sépare la séquence entre deux opérateurs adjacents. Voici comment procéder : 1 Dans le menu contextuel d un fragment combiné contenant plusieurs opérateurs, choisissez Dissocier les opérateurs entre. 2 Dans le sous-menu, sélectionnez les deux opérateurs adjacents à séparer. Résultat : Les opérateurs internes s affichent dans un fragment imbriqué. Figure 4.25 Dissociation d opérateurs imbriqués Pour imbriquer des fragments combinés, placez le nœud du nouveau fragment combiné dans un nœud existant. Chaque nouveau nœud s affiche dans une couleur différente. Les couleurs sont choisies au hasard. Vous pouvez utiliser les cadres internes de la même façon que les cadres externes : les déplacer le long d une ligne de vie, les étendre sur plusieurs ligns de vie, les détacher et les lier. Si vous dessinez un lien message à partir d un cadre, vous l étendez automatiquement, ainsi que ses cadres externes. Together permet de revenir sur cette action puisque vous pouvez fusionner des opérateurs dissociés et les afficher dans un descripteur. Pour cela, cliquez avec le bouton droit sur un fragment combiné interne, puis choisissez, dans le menu contextuel, Combiner avec fragment externe. Il devrait y avoir d autres éléments dans un fragment combiné externe, sauf pour l élément interne. Sinon, la commande Combiner avec fragment externe n est pas disponible. Opérandes Dans un fragment combiné, les opérandes sont représentés par des zones rectangulaires séparées par des traits discontinus. A la création d un fragment combiné, le nombre d opérandes est défini par les valeurs de pattern par défaut. Ensuite, vous pouvez ajouter ou retirer des opérandes. 118 Guide de l utilisateur de Borland Together Developer 2005
129 Diagrammes UML 2.0 Figure 4.26 Fragment combiné avec opérandes La zone supérieure de l opérateur est vide et elle ne contient pas d opérande. Elle est réservée au descripteur. Si vous cliquez dans cette zone, vous sélectionnez l opérateur en entier. Si vous cliquez sur l un des rectangles en pointillés, vous sélectionnez l opérande correspondant. Si un fragment combiné ne contient qu un opérande, il est possible de sélectionner le fragment combiné entier ou le seul opérande existant. Pour ajouter un opérande : 1 Sélectionnez le fragment combiné souhaité dans le navigateur de modèle ou dans l éditeur de diagramme. 2 Dans le menu contextuel du fragment combiné, choisissez Nouveau Opérande d interaction. 3 Sous l onglet Contrainte d interaction, dans la liste déroulante Langage, sélectionnez le langage à utiliser pour décrire l opérateur. Les options possibles sont : OCL et texte brut. 4 Tapez l expression de contrainte. 5 Ajoutez autant d opérandes que nécessaire. 6 Appliquez les modifications. Résultat : Un nouvel opérande se crée au-dessus de l opérande qui détient la focalisation. Si le fragment combiné en entier détient la focalisation, le nouvel opérande s ajoute tout en bas du fragment. Le texte de contrainte s affiche dans la section opérande du fragment combiné. Vous pouvez déplacer des opérandes vers le haut ou le bas d un fragment combiné. Pour cela, utilisez les commandes du menu contextuel Opérande au niveau supérieur et Opérande au niveau inférieur. Les opérandes ne peuvent pas être glissés-déposés. Voici les raccourcis clavier disponibles lorsque vous utilisez les opérandes d interaction : Le fragment combiné ou l opérande étant sélectionné, utilisez Alt+Inser pour appeler le menu contextuel. Choisissez la commande Nouveau Opérande d interaction pour ajouter un opérande. Pour retirer un opérande d un fragment combiné, utilisez le bouton Supprimer. Pour faire défiler les opérandes existants, utilisez les touches à flèche vers le haut et vers le bas. Références aux interactions. Utilisation de l interaction Dans une interaction, vous pouvez faire référence aux autres interactions décrites dans votre projet. L utilisation de l interaction a été créée dans ce but. L interaction référencée peut être explicitement définie à partir du modèle ou simplement spécifiée en tant que chaîne de texte. Chapitre 4 : Modélisation 119
130 Diagrammes UML 2.0 Astuce Astuce Pour créer l utilisation d une interaction : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton correspondant. 2 Cliquez sur la ligne de vie cible. Vous pouvez aussi utiliser la commande Nouveau du menu contextuel de la ligne de vie dans l éditeur de diagramme, le navigateur de modèle ou le navigateur de diagramme. 3 Dans l inspecteur de l utilisation de l interaction, choisissez l onglet Propriétés. 4 Dans le champ interaction name, cliquez sur le bouton sélecteur. Ou tapez simplement le nom de l interaction. 5 Dans la boîte de dialogue Choisir une interaction référencée, sélectionnez l interaction souhaitée dans le projet ou les favoris, puis cliquez sur OK. A sa création, l utilisation d une interaction est attachée à une ligne de vie. Vous pourrez par la suite l étendre sur plusieurs lignes de vie, la détacher ou la rattacher à des lignes de vie. Chaque utilisation d interaction est rattachée à sa ligne de vie par un point noir. Ce point est un élément individuel du diagramme et il peut être sélectionné ou supprimé. Si un point est supprimé, l utilisation d interaction correspondante se détache et reste sur le diagramme. Les cadres d utilisation d interaction détachés peuvent encore être modifiés : vous pouvez définir le nom de l interaction référencée ou modifier des attributs et des arguments de l utilisation d interaction. Vous pouvez rattacher une utilisation d interaction que vous auriez détachée, à l aide de l outil Lier le cadre. Si l utilisation d une interaction fait explicitement référence à une interaction qui existe dans le projet, il est possible de naviguer du diagramme de séquence en cours jusqu à l interaction référencée dans le navigateur de modèle ou dans les diagrammes de séquence et de communication correspondants. Voici comment procéder : 1 Cliquez avec le bouton droit sur l utilisation d une interaction faisant référence à une autre interaction. 2 Dans le menu contextuel, choisissez Sélectionner. 3 Dans le sous-menu, choisissez la destination souhaitée. Figure 4.27 Menu Sélectionner d une utilisation d interaction Si l utilisation fait référence à une interaction qui n existe pas dans votre projet, le menu Sélectionner n est pas disponible. Lier le cadre Avec Together, il est possible de répartir des fragments combinés et des utilisations d interaction sur plusieurs lignes de vie. Pour ce faire, utilisez le bouton Lier le cadre de la boîte à outils du diagramme. Pour étendre un cadre sur plusieurs lignes de vie : 1 Dans la boîte à outils du diagramme, cliquez sur le bouton Lier le cadre. 2 Cliquez sur l utilisation de l interaction ou le fragment combiné souhaité. 3 Faites glisser le curseur de la souris jusqu à la ligne de vie cible. Résultat : Le cadre s étend jusqu à la ligne de vie cible, à laquelle il est rattaché par un point. 120 Guide de l utilisateur de Borland Together Developer 2005
131 Diagrammes UML 2.0 Un cadre peut être attaché aux différents points de la ligne de vie cible. A vous de choisir l emplacement à utiliser sur la ligne de vie cible parmi tous les éléments et cadres lui appartenant. Le cadre se déplace en conséquence le long de la ligne de vie source. Il est important de comprendre que seules les lignes de vie accompagnées de points sont véritablement attachées à l interaction ou au fragment combiné référencé. Les ligne de vie qui ne sont que traversées par le cadre ne sont pas impliquées, comme le montre l illustration suivante. Figure 4.28 Action de liaison de cadre Si vous utilisez des cadres imbriqués, vous pouvez étendre les cadres internes et les attacher aux autres lignes de vie. Le jeu tout entier de cadres externes s étend et s attache à la ligne de vie cible. Figure 4.29 Cadre interne développé Astuce Lorsque vous liez un cadre à une ligne de vie, ne traversez ni liens messages ni réponses masquées. Pour vous assurer qu il n y a pas d obstacle et qu il est possible d attacher un cadre, choisissez l option show reply message de l inspecteur. Sur le diagramme, le point d attache est un élément distinct que vous pouvez sélectionner et supprimer. Même si tous les points d attache sont supprimés d un cadre, ce dernier n est pas supprimé du diagramme. Il reste dans l arrière-plan du diagramme. Vous pourrez ensuite, avec le bouton Lier le cadre, le rattacher à une ligne de vie. Figure 4.30 Cadres détachés Vérificateur d intégrité Lorsque vous remplissez d éléments un diagramme de séquence, il peut arriver qu involontairement, vous ne respectiez pas les règles et les limites de la spécification UML 2.0. Together garde un oeil sur l exactitude de votre diagramme et met en évidence les éléments erronés lorsqu ils apparaissent. Si votre diagramme de séquence comporte des parties mises en évidence en rouge, l un des éléments suivants est considéré comme erroné : Un message, qui devrait être horizontal, mais qui ne peut pas être présenté de cette façon. Un fragment combiné dont la structure interne a été endommagée. Chapitre 4 : Modélisation 121
132 Diagrammes UML 2.0 Important Un point d attache, lorsque la structure horizontale des cadres attachés est incorrecte. N essayez pas de changer la couleur manuellement! Utilisez plutôt Annuler. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes de cas d utilisation UML 2.0 Les diagrammes de cas d utilisation décrivent ce qu un système fait du point de vue d un observateur externe. L accent est mis sur ce qu un système fait, plutôt que sur la façon dont il le fait. Les diagrammes de cas d utilisation sont étroitement connectés aux scénarios. Un scénario est un exemple de ce qui arrive quand quelqu un interagit avec le système. Voici un scénario pour une clinique médicale : Un patient appelle la clinique pour prendre un rendez-vous pour un bilan de santé annuel. La secrétaire recherche le créneau horaire libre le plus proche dans son carnet de rendez-vous et prend un rendez-vous pour ce créneau horaire. Un cas d utilisation est un résumé des scénarios pour un but ou une tâche unique. Un acteur est la personne ou l objet qui engage les événements impliqués dans cette tâche. Les acteurs sont simplement des rôles que les gens ou les objets jouent. L image qui suit est le cas d utilisation Rendez-vous pour la clinique médicale. L acteur est un patient. La connexion entre l acteur et le cas d utilisation est une association de communication (ou communication, en raccourci). Figure 4.31 Exemple d un acteur, d une communication et d un cas d utilisation Un diagramme de cas d utilisation est une collection d acteurs, de cas d utilisation et leurs communications. Voici un exemple du cas d utilisation Rendez-vous en tant que partie d un diagramme avec quatre acteurs et quatre cas d utilisation. Notez qu un seul cas d utilisation peut avoir plusieurs acteurs. Figure 4.32 Exemple d un diagramme de cas d utilisation UML 2.0 Les diagrammes de cas d utilisation sont utiles dans trois domaines : Détermination des caractéristiques (exigences) : Les nouveaux cas d utilisation génèrent souvent de nouvelles exigences au fur et à mesure que le système est analysé et que la modélisation prend forme. Communication avec les clients : Les diagrammes de cas d utilisation, par leur simplicité de notation, représentent pour les développeurs une bonne méthode pour communiquer avec les clients. 122 Guide de l utilisateur de Borland Together Developer 2005
133 Diagrammes UML 2.0 Génération de cas de test : La collection de scénarios pour un cas d utilisation peut suggérer une suite de cas de test pour ces scénarios. Eléments du diagramme Tableau 4.11 Eléments des diagrammes cas d utilisation UML 2.0 Icônes Eléments Acteur Sujet Cas d utilisation Généralisation Communication Extension Inclusion Utilisation des cas d utilisation Les cas d utilisation décrivent des actions exécutées par le système. Chaque cas spécifie un comportement particulier de son sujet en utilisant des pré-conditions et des post-conditions. Vous pouvez préciser des pré-et des post-conditions en format OCL ou texte brut. Dans le premier cas, le contrôle de syntaxe est fourni. Pour définir une pré-condition ou une post-condition d un cas d utilisation : 1 Sélectionnez un cas d utilisation dans le diagramme. 2 Dans l inspecteur du cas, sélectionnez l onglet Pré-condition ou Post-condition. 3 Dans la liste d options Langage, sélectionnez OCL ou texte brut. 4 Tapez le texte de la condition et appliquez les modifications. Figure 4.33 Inspecteur de propriétés d un cas d utilisation Un cas d utilisation peut être stéréotypé. Il est possible de définir plusieurs stéréotypes. Dans ce cas, seule la première valeur de la liste est affichée dans l icône du cas d utilisation dans le diagramme. Pour définir les stéréotypes d un cas d utilisation : 1 Sélectionnez un cas d utilisation dans le diagramme. 2 Dans l inspecteur du cas, sélectionnez l onglet Propriétés. 3 Dans le champ du stéréotype, cliquez sur le bouton sélecteur. 4 Dans le dialogue Valeurs pour le stéréotype, appuyez sur le bouton Ajouter et sélectionnez un des stéréotypes pré-définis dans liste déroulante ou tapez le stéréotype personnalisé. 5 Ajoutez autant de stéréotypes que nécessaire, puis appuyez sur OK lorsque vous avez terminé. Chapitre 4 : Modélisation 123
134 Diagrammes UML 2.0 Astuce Vous pouvez aussi taper les valeurs du stéréotype dans le champ de texte en les séparant par des virgules. Pour ajouter un point d extension à un cas d utilisation : 1 Sélectionnez un cas d utilisation dans le diagramme. 2 Dans le menu contextuel, choisissez Nouveau Point d extension. 3 Modifiez le nom du point d extension en utilisant l éditeur in-situ ou l inspecteur. Création de séquences de navigation dans les diagrammes de cas d utilisation Les diagrammes de cas d utilisation représentent généralement le contexte d un système et les exigences du système. En principe, vous commencez à un niveau élevé et spécifiez les principaux cas d utilisation du système. Vous déterminez ensuite les cas d utilisation du système principal à un niveau plus granulaire. Par exemple, un cas d utilisation Gérer les affaires peut avoir un autre niveau de détail qui contient des cas d utilisation comme Saisir des clients et Saisir des ventes. Lorsque vous avez atteint le niveau désiré de granularité, il est utile d avoir une méthode pratique de développement ou de réduction des cas d utilisation pour comprendre la portée des vues des cas d utilisation du système et leurs relations. La fonction d hyperliens vous permet de créer des séquences de navigation constituées de n importe quel nombre de diagrammes de cas d utilisation ou d un autre type. Vous pouvez lier des diagrammes entiers à un certain niveau de détail vers le diagramme suivant, vers le haut ou le bas, dans une séquence de granularité croissante, ou lier les cas d utilisation ou les acteurs principaux au diagramme suivant. En parcourant la séquence d hyperliens, vous pouvez suivre les relations entre les diagrammes de cas d utilisation. Vous pouvez également utiliser les hyperliens pour lier des diagrammes et des éléments en fonction de vos exigences. Vous pouvez, par exemple, créer une séquence de navigation hiérarchique entre les diagrammes de cas d utilisation, en ajoutant des hyperliens entre les diagrammes qui suivent un acteur donné à travers tous les cas d utilisation faisant référence à cet acteur. Voir aussi Chapitre 3, Utilisation des diagrammes Hyperliens et diagrammes, page 59 Utilisation des diagrammes d états UML 2.0 Les diagrammes d états décrivent le comportement logique du système ou d une partie du système ou le protocole d utilisation de celui-ci. Ces diagrammes affichent les états possibles des objets et les transitions qui provoquent un changement d état. Les diagrammes d états UML 2.0 diffèrent des diagrammes d état UML 1.4 par de nombreux aspects. 124 Guide de l utilisateur de Borland Together Developer 2005
135 Diagrammes UML 2.0 Figure 4.34 Exemple de diagramme d états UML 2.0 Diagramme fourni à titre gracieux par UML (Unified Modeling Language) : Superstructure version 2.0. Août p Eléments du diagramme Le tableau ci-après fait la liste des éléments des diagrammes d états disponibles dans la boîte à outils et via la commande Nouveau du menu contextuel du diagramme. Les éléments de transitions internes ne sont disponibles que dans le menu contextuel des états. Tableau 4.12 Eléments des diagrammes d états UML 2.0 Icône Elément Etat Point d entrée Point de sortie Initial Final Historique détaillé Historique succinct Terminaison Débranchement Jointure Choix Jonction Transition Chapitre 4 : Modélisation 125
136 Diagrammes UML 2.0 Les états constituent les unités de base des machines d états. Les états UML 2.0 peuvent avoir des sous-états. L exécution du diagramme commence par le nœud Initial et se termine par le ou les nœuds Final ou Terminaison. Pour plus d information sur ces éléments, reportez-vous à la spécification UML 2.0. Création d états Pour créer un état : En utilisant les boutons de la boîte à outils : Dans la boîte à outils du diagramme, choisissez En utilisant le menu contextuel du diagramme : pour créer un nœud d état. a Cliquez avec le bouton droit sur l arrière-plan du diagramme. b Sélectionnez Nouveau Etat dans le menu contextuel. Vous pouvez mettre un état à l intérieur d un état existant. Vous pouvez masquer des états individuels, ce qui permet, par exemple, de masquer le contenu d états composites pour mieux comprendre le diagramme dans son ensemble. Modification d états Lorsque vous placez un nouvel état sur un diagramme, vous pouvez en ajuster les propriétés avec l Inspecteur, par exemple : Sous les onglets Propriétés, Affichage, Description et Personnalisation, configurez les propriétés standard de l élément Dans la page Propriétés, configurez le comportement de l état en définissant ou en affichant les propriétés supplémentaires suivantes : La case composite est cochée si cet état contient une ou plusieurs régions (non modifiable). La case orthogonal est cochée si cet état contient deux régions ou plus (non modifiable). La case simple est cochée si cet état ne contient pas de région (non modifiable). Dans le champ do activity, spécifiez l activité à effectuer pendant l exécution de l état en cours. Cette activité peut être sélectionnée dans un des diagrammes d activité du projet Dans le champ entry, spécifiez l activité à effectuer quand l état en cours commence. Cette activité peut être sélectionnée dans un des diagrammes d activité du projet Dans le champ exit, spécifiez l activité à effectuer quand l exécution de l état en cours se termine. Cette activité peut être sélectionnée dans un des diagrammes d activité du projet Sous l onglet Invariant d état, sélectionnez le langage de l expression dans la boîte liste Langage. Les options possibles sont OCL et texte brut. Dans le champ de saisie situé sous la boîte liste, entrez l expression OCL de cet état. 126 Guide de l utilisateur de Borland Together Developer 2005
137 Diagrammes UML 2.0 Création de membres d états et de régions Pour ajouter un membre à un état existant, cliquez sur l état avec le bouton droit et choisissez Nouveau <membre> dans le menu contextuel. Les membres suivants sont disponibles : Icône Nom Description Transition interne Point d entrée (également disponible dans la boîte à outils) Point de sortie (également disponible dans la boîte à outils) Région Transition Raccourci permettant de gérer des événements sans quitter un état et de distribuer ses activités d entrée et de sortie. L exécution de l état commence à ce point. Un état peut recevoir plusieurs points d entrée, ce qui a une signification en cas de sous-états. L exécution de l état se termine à ce point. Un état peut recevoir plusieurs points de sortie, ce qui a une signification en cas de sous-états. Dans les états, utilisez des régions pour regrouper les sous-états. Les régions peuvent avoir différents paramètres de visibilité et éléments historiques. Après sa création, chaque état dispose immédiatement d une région (qui peut être supprimée). Crée une transition vers un état à l intérieur du projet en cours. Astuce Dans les régions, vous pouvez créer tous les éléments disponibles pour le diagramme d états. Utilisez la touche Inser pour appeler le menu contextuel du conteneur et ajouter de nouveaux membres. Création de transitions pour connecter des états Pour connecter les états avec des liens de transition, effectuez l une des opérations suivantes : En utilisant les boutons de la boîte à outils : a Dans la boîte à outils du diagramme, choisissez. b Tracez un lien entre le point de sortie de l état source (ou l état sans point de sortie) et le point d entrée de la destination (ou l état sans point). En utilisant le menu contextuel des états : a b Cliquez avec le bouton droit sur l état source. Sélectionnez Nouveau Transition dans le menu contextuel. La boîte de dialogue Choisir la destination s affiche. c Dans cette boîte de dialogue, choisissez l état de destination et cliquez sur OK. Utilisez des éléments Débranchement, Jointure, Choix et Jonction pour rassembler ou diviser des liens de transition. Pour plus d information sur ces éléments, reportez-vous à la spécification UML 2.0. Modification des transitions Toutes les transitions, y compris les transitions internes, disposent de conditions (expressions logiques) qui définissent si cette transition doit être exécutée. Les conditions sont mises entre crochets (par exemple [false] ) et affichées à côté du lien de transition sur un diagramme. Pour modifier une transition avec l éditeur in-situ, sélectionnez la transition et appuyez sur F2. Chapitre 4 : Modélisation 127
138 Diagrammes UML 2.0 Lorsque vous placez une transition interne ou générale sur un diagramme, vous pouvez en ajuster les propriétés avec l Inspecteur, par exemple : Sous l onglet Lien, définissez les propriétés de base suivantes : Modifiez le name, la visibility et le stereotype de la transition Dans le champ effect, spécifiez l activité facultative à effectuer à l exécution de la transition. Cette activité peut être sélectionnée dans un des diagrammes d activité du projet Dans le champ trigger, spécifiez le(s) déclencheur(s) de la transition. Ils sont affichés sur le lien de transition à côté de l expression de la condition. Sous l onglet Garde, sélectionnez le langage de l expression dans la zone de liste Langage. Les options possibles sont OCL et texte brut. Dans la zone de saisie située sous la boîte liste, entrez l expression OCL de cette action. Sous les onglets Hyperliens, Description et Personnalisation, configurez les propriétés standard de l élément Création d un historique Les éléments Historique succinct et Historique détaillé sont placés dans des régions des états. Pour plus d information sur ces éléments, reportez-vous à la spécification UML 2.0. Dans chaque région, il peut y avoir un Historique détaillé ou aucun et un Historique succinct ou aucun. Si une région n a qu un seul élément historique, celui-ci peut passer du type Détaillé au type Succinct en modifiant sa propriété kind. Pour ajouter un historique à un état : 1 Sur un diagramme d états, sélectionnez dans l état cible la région cible où ajouter l historique. 2 Sélectionnez l icône ou dans la boîte à outils du diagramme, puis cliquez sur la région cible. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes d états UML 1.4, page 92 Utilisation des diagrammes d activité UML 2.0 Un diagramme d activité permet de modéliser le comportement du système, dont la séquence des actions et leurs conditions d exécution. Les actions sont les unités de base du comportement du système. Dans UML 2.0, les activités se composent d actions. Les actions ne sont pas des états (si on les compare à UML 1.x) et elles peuvent avoir des sous-actions. Les flots de données et de contrôle ont changé. 128 Guide de l utilisateur de Borland Together Developer 2005
139 Diagrammes UML 2.0 Figure 4.35 Exemples de diagramme d activité UML 2.0 Eléments des diagrammes d activité UML 2.0 Le tableau ci-après répertorie les éléments des diagrammes d activité disponibles à l aide de la boîte à outils. Les éléments des diagrammes sont également disponibles en utilisant la commande Nouveau du menu contextuel du diagramme, ou sur les menus contextuels des éléments. Dans la boîte à outils, les éléments des diagrammes d activité s organisent selon les groupes suivants : De base, Contrôle, Données et Actions spécifiques. Table 4.13 Eléments du diagramme d activité UML 2.0 Icônes De base Eléments Activité Paramètre d activité Action Contrôle Initial Fin d activité Branchement conditionnel Fusion Débranchement Chapitre 4 : Modélisation 129
140 Diagrammes UML 2.0 Table 4.13 Icônes Eléments du diagramme d activité UML 2.0 (suite) Eléments Jointure Fin de flot Flot de contrôle Données Connecteur d entrée Création, regroupement et décomposition d actions et d activités Un diagramme d activité permet de grouper et de décomposer des actions. Si une action peut être décomposée en plusieurs actions en séquence, vous pouvez créer une activité qui représente cette séquence. Il y a plusieurs façons de créer et de grouper des actions : En utilisant les boutons de la boîte à outils : a Dans la boîte à outils du diagramme, choisissez pour créer un nœud d activités. b Choisissez le bouton d action, puis cliquez sur l activité cible. En utilisant le glisser-déposer : a b Placez un élément action sur l arrière-plan du diagramme. Faites glisser la nouvelle action et déposez-la au-dessus d une activité existante. En utilisant le menu contextuel de l élément d activité : a Cliquez avec le bouton droit sur l activité cible. b Sélectionnez Nouveau Action dans le menu contextuel. Lorsque vous placez une nouvelle action sur un diagramme, vous pouvez en ajuster les propriétés avec l Inspecteur, par exemple : Connecteur de sortie Connecteur de valeur Tampon central Stockage de données Objet Flot d objets Actions spécifiques Acceptation d événement Acceptation d événement temporel Envoi de signal Sous les onglets Propriétés, Affichage, Description et Personnalisation, configurez les propriétés standard de l élément Sous les onglets Pré-condition locale et Post-condition locale, sélectionnez le langage de l expression de contrainte dans la boîte liste Langage. Les options possibles sont OCL et texte brut. Dans la zone de saisie située sous la boîte liste, entrez l expression de contrainte de cette action. 130 Guide de l utilisateur de Borland Together Developer 2005
141 Diagrammes UML 2.0 Remarque Création de paramètres d activités Pour ajouter un paramètre d activité à une activité : 1 Dans la boîte à outils, appuyez sur le bouton Paramètre d activité. 2 Cliquez sur l activité cible. ou Choisissez Nouveau Paramètre d activité dans le menu contextuel de l activité. Résultat : Le nœud du paramètre s ajoute à l activité sous forme de rectangle. Le nœud du paramètre est attaché à son activité. Vous ne pouvez déplacer le nœud que le long des bordures de l activité. Les paramètres d activités ne peuvent pas être connectés par des liens de flot de contrôle. Création de connecteurs d entrée, de sortie et de valeur Certaines actions demandent des données en entrée et produisent des données en sortie. Ces entrées et sorties sont définies par des connecteurs d entrée et de sortie. Pour ajouter un connecteur d entrée, de sortie ou de valeur, utilisez une des méthodes suivantes : Cliquez avec le bouton droit sur une action puis, dans son menu contextuel, choisissez Nouveau Connecteur d entrée, Connecteur de sortie ou Connecteur de valeur. Dans la boîte à outils du diagramme, choisissez le bouton, ou, puis cliquez sur l action cible. Résultat : Le connecteur créé s ajoute à l action cible sous forme de carré. Notez que les connecteurs sont attachés à leurs actions et qu ils ne peuvent être déplacés que par glissement le long des bordures de l action. Création de liens pour les flots de contrôle et les flots d objets Un flot de contrôle ou un flot d objets peut être un lien ordinaire entre deux éléments d un nœud. Les nœuds valides sont en surbrillance. Les spécifications UML 2.0 apportent quelques restrictions : Un lien de flot d objets doit avoir au moins un objet à l une de ses extrémités. Il est impossible de connecter deux actions par un flot d objets autrement que par un connecteur de sortie sur l action source. Un lien de flot de contrôle ne peut pas connecter des objets et/ou des paramètres d activités. Vous devez défiler jusqu à l élément cible s il est hors de portée directe. Pour éviter ce défilement, utilisez la commande du menu contextuel. Pour créer un flot en utilisant le menu contextuel : 1 Cliquez avec le bouton droit sur l élément source du flot. 2 Dans le menu contextuel, choisissez Nouveau Flot de contrôle ou Nouveau Flot d objets. La boîte de dialogue Choisir la destination s ouvre. 3 Dans la boîte de dialogue Choisir la destination, sélectionnez la cible, puis cliquez sur OK. Notez que le bouton OK n est activé que si une cible valide a été sélectionnée. Chapitre 4 : Modélisation 131
142 Diagrammes UML 2.0 Création de flots de contrôle à plusieurs sources ou cibles Un flot de contrôle peut avoir plusieurs sources, ce qui signifie que c est la jointure de plusieurs actions simultanées, ou plusieurs cibles, ce qui signifie que c est un débranchement vers plusieurs actions simultanées. Pour créer un débranchement ou une jointure : 1 Identifiez les actions impliquées. Si nécessaire, commencez par placer toutes les actions dans le diagramme et disposez-les comme vous le souhaitez. 2 Placez un débranchement ou une jointure dans le diagramme. Redimensionnez selon les besoins. 3 Si elle décrit plusieurs sources, tracez le flot de contrôle depuis chacune des actions source jusqu à la jointure et depuis la jointure jusqu à l action cible. S il décrit plusieurs cibles, tracez le flot de contrôle depuis l action source jusqu au débranchement puis jusqu à chacune des actions cible. Chaque flot à l intérieur de l activité peut avoir sa propre terminaison, indiqué par un nœud de fin de flot. Le nœud de fin de flot signifie que le flot, dans une activité, est terminé. Aucun lien sortant ne peut être ajouté à la fin du flot. Création de branchements conditionnels et de fusions Les branchements conditionnels et les fusions aident à la gestion de plusieurs flots de contrôle entrants et sortants. Pour créer un branchement conditionnel ou une fusion : 1 Identifiez les actions impliquées. Si nécessaire, commencez par placer toutes les actions dans le diagramme et disposez-les comme vous le souhaitez. 2 Placez un branchement conditionnel ou une fusion dans le diagramme. Redimensionnez selon les besoins. 3 Dans le cas d une fusion d actions, tracez le flot de contrôle depuis chacune des actions source jusqu à la fusion et depuis la fusion jusqu à l action cible. Pour un branchement conditionnel, tracez le flot de contrôle depuis l action source jusqu à au branchement conditionnel puis jusqu à chacune des actions cible. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes d activité UML 1.4, page 95 Utilisation des diagrammes de composants UML 2.0 Le diagramme de composants spécifie un ensemble de constructions qui peut être utilisé pour définir des systèmes logiciels de taille et de complexité quelconques. 132 Guide de l utilisateur de Borland Together Developer 2005
143 Diagrammes UML 2.0 Figure 4.36 Exemple de diagramme de composants UML 2.0 Eléments du diagramme Tableau 4.14 Eléments des diagrammes de composants UML 2.0 Icônes Eléments Composant Classe Port Artefact Interface Spécification d instance Connecteur de délégation Interface fournie Interface requise Association Agrégation Dépendance Réalisation Notation Pour représenter un composant, vous avez le choix entre deux options : Tracer un rectangle associé au mot-clé composant et afficher une icône de composant dans le coin à droite Utiliser une icône de composant associée au mot-clé composant Chapitre 4 : Modélisation 133
144 Diagrammes UML 2.0 Pour choisir la notation du composant : 1 Dans la barre d outils du diagramme, cliquez sur le bouton. 2 Dans la boîte de dialogue Propriétés qui s ouvre, cliquez sur le nœud Notations UML. 3 Cochez l option Redéfinir les valeurs par défaut du projet. 4 Dans la section Composant, cliquez sur l icône souhaitée. 5 Cliquez sur OK pour appliquer les modifications et fermer la boîte de dialogue. Utilisation des spécifications d instances Selon la spécification UML 2.0, une spécification d instance peut être définie par un ou plusieurs classificateurs. Un classificateur peut utiliser des classes, des interfaces ou des composants. Il est possible d instancier un classificateur dans l inspecteur ou dans l éditeur in-situ. Pour instancier un classificateur dans l inspecteur : 1 Cliquez avec le bouton droit sur la spécification d une instance, puis choisissez Inspecteur dans le menu contextuel. 2 Dans le nœud Propriétés de l inspecteur, sélectionnez le champ instantiates. 3 Cliquez sur le bouton sélecteur. 4 Dans la boîte de dialogue Choisir une classe ou une interface pour le type, à l aide des boutons Ajouter/Retirer, sélectionnez les classificateurs dans la liste des éléments disponibles. 5 Cliquez sur OK lorsque vous avez terminé. Astuce Pour instancier un classificateur avec l éditeur in-situ : 1 Dans le diagramme, sélectionnez la spécification d une instance. 2 Appuyez sur F2 pour ouvrir l éditeur in-situ. Ou cliquez deux fois sur le nom de la spécification d instance. 3 En regard du nom de la spécification d instance, tapez le nom d un classificateur existant, délimité par le symbole deux points, par exemple, InstanceSpecification1:Class1 4 Appuyez sur Entrée. Il est important de noter que plusieurs classificateurs ne peuvent être définis que dans l inspecteur. L éditeur in-situ ne prend pas en charge l héritage multiple. Pour définir les fonctionnalités d une spécification d instance, vous pouvez insérer des emplacements dans un élément de spécification d instance, associer les emplacements aux attributs des classificateurs instanciés, attribuer une valeur et définir le stéréotype d emplacement. Pour ajouter un emplacement à un élément de spécification d instance : 1 Ajoutez un élément de spécification d instance à votre diagramme. 2 Dans votre diagramme, cliquez avec le bouton droit sur l élément de spécification d instance puis, dans le menu contextuel, choisissez Nouveau Emplacement. Pour associer un emplacement à une fonctionnalité structurelle : 1 Sélectionnez un emplacement dans l élément de spécification d instance, puis choisissez Inspecteur dans le menu contextuel. 2 Développez le nœud Propriétés de l inspecteur. 3 Dans le champ defining feature, cliquez sur le bouton sélecteur. 134 Guide de l utilisateur de Borland Together Developer 2005
145 Diagrammes UML Dans la boîte de dialogue Choisir un attribut pour définir la fonction, sélectionnez l attribut souhaité, puis cliquez sur OK. Pour définir la valeur de l emplacement, effectuez l une des opérations suivantes : Dans l inspecteur de l emplacement, tapez la chaîne voulue dans le champ value. Appelez l éditeur in-situ de l emplacement, puis tapez la valeur en regard du nom de l emplacement, en utilisant comme séparateur le signe égal. Pour définir le stéréotype de l emplacement : 1 Dans l inspecteur de l emplacement, sélectionnez l onglet Personnalisation. 2 Cliquez sur le bouton Ajouter. 3 Donnez à la propriété le nom stereotype. 4 Entrez la valeur du stéréotype. Résultat : Le stéréotype spécifié s affiche au-dessus du nom de l emplacement. Figure 4.37 Spécification d instance pour instancier une classe Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes de composants UML 1.4, page 99 Utilisation des diagrammes de déploiement UML 2.0 Le diagramme de déploiement spécifie un ensemble de constructions qui peut être utilisé pour définir l architecture d exécution de systèmes qui représentent l affectation d artefacts logiciels à des nœuds. Les nœuds sont connectés via des chemins de communication pour créer des systèmes de réseau d une complexité quelconque. Les nœuds sont en général définis d une manière imbriquée et représentent soit des périphériques matériels, soit des environnements d exécution de logiciels. Les artefacts représentent des éléments concrets du monde physique qui sont le résultat d un processus de développement. Chapitre 4 : Modélisation 135
146 Diagrammes UML 2.0 Figure 4.38 Exemple de diagramme de déploiement UML 2.0 Diagramme fourni à titre gracieux par UML (Unified Modeling Language) : Superstructure version 2.0. Août pp. 207, 212. Eléments du diagramme Tableau 4.15 Eléments des diagrammes de déploiement UML 2.0 Icônes Eléments Nœud Périphérique Environnement d exécution Artefact Spécification de déploiement Déploiement Généralisation Association Dépendance Manifestation Chemin de communication Nœuds Un nœud est une ressource de calcul sur laquelle peuvent être déployés des artefacts pour exécution. Les nœuds peuvent être interconnectés via des chemins de communication, pour définir des structures de réseau. Un nœud est représenté sous forme de cube vu en 3D. Les nœuds peuvent être connectés à d autres nœuds par des associations. Un lien entre instances de nœuds indique un chemin de communication entre les nœuds. Des flèches discontinues, comportant le mot-clé deploy montrent les nœuds servant de cibles de déploiement. Avec des nœuds imbriqués, vous pouvez créer des structures complexes. 136 Guide de l utilisateur de Borland Together Developer 2005
147 Diagrammes UML 2.0 Artefacts Un artefact est la spécification d une information utilisée ou produite par un processus de développement logiciel ou par le déploiement et le fonctionnement d un système. Un artefact est représenté par un rectangle de classificateur dont le stéréotype est <<artefact>>. Parmi les exemples d artefacts, citons les fichiers de modèles, les fichiers source, les scripts, les fichiers exécutables binaires, une table dans un système de bases de données, un élément de développement fourni, un document de traitement de texte ou un message électronique. Un artefact déployé l est vers une cible de déploiement. Il est connecté au nœud cible par un lien de déploiement. Il est possible d imbriquer des icônes d artefacts pour créer des artefacts complexes. Déploiement Le déploiement alloue un artefact à une cible de déploiement. Il peut éventuellement être défini par une spécification de déploiement. Le lien de déploiement commence à l artefact et se termine sur le nœud d une cible de déploiement. Le déploiement est représenté par une flèche discontinue pointant vers le nœud de la cible de déploiement. Association Une association ne peut être définie qu entre des nœuds. Elle modélise l échange de signaux et de messages entre ces nœuds. Spécification de déploiement Une spécification de déploiement décrit un ensemble de propriétés qui déterminent les paramètres d exécution d un artefact de composant déployé sur un nœud. Sa représentation graphique est un rectangle de classificateur dont le stéréotype est <<deployment spec>>. Elle peut être connectée à l artefact adéquat par un lien de dépendance. Modélisation des diagrammes de déploiement Voici quelques astuces et techniques que vous pouvez utiliser pour créer des diagrammes de déploiement : Réutilisez des éléments de diagrammes existants. Vous pouvez réutiliser les éléments existants d autres diagrammes de déploiement en utilisant la commande Raccourcis. Invoquez la commande Raccourcis dans le menu contextuel du diagramme (Nouveau Raccourcis). Représentez un composant. Pour ajouter un composant au diagramme de déploiement, créez un raccourci vers un élément de composant d un diagramme de composants existant. Organisez les composants en spécifiant les relations entre eux. Voir aussi Chapitre 3, Utilisation des diagrammes Utilisation des diagrammes de structures composites UML 2.0 Le diagramme de structure composite décrit la structure interne d un classificateur, y compris ses points d interaction avec les autres parties du système. Il montre la configuration des différentes pièces qui, associées, assurent le comportement du classificateur conteneur. Chapitre 4 : Modélisation 137
148 Diagrammes UML 2.0 Figure 4.39 Exemple de diagramme de structure composite UML 2.0 Diagramme fourni à titre gracieux par UML (Unified Modeling Language) : Superstructure version 2.0. Août p Eléments du diagramme Tableau 4.16 Eléments des diagrammes de structure composite UML 2.0 Icônes Eléments Classe Interface Collaboration Occurrence de collaboration Pièce Pièce référencée Port Interface fournie Interface requise Connecteur Rôle de collaboration Liaison de rôle Création d une structure interne et de ports Dans le diagramme d une structure composite, les classes et les collaborations peuvent avoir une structure interne et des ports. La structure interne est représentée par un ensemble de pièces (rôles) interconnectées dans la classe ou la collaboration conteneur. Les participants à une collaboration ou à une classe sont liés par les connecteurs. Un port peut apparaître soit sur une pièce contenue, soit sur la limite de la classe. 138 Guide de l utilisateur de Borland Together Developer 2005
149 Diagrammes UML 2.0 Pour définir une structure interne, suivez cette procédure générale : 1 Dans la boîte à outils du diagramme, choisissez l icône Pièce. 2 Cliquez sur le conteneur valide (classe ou collaboration). 3 Répétez ces étapes pour créer autant de participants que vous le souhaitez. Astuce Choisissez l icône Pièce dans la boîte à outils du diagramme, en maintenant la touche CTRL enfoncée. Chaque clic sur le conteneur valide produit une nouvelle pièce. 4 Reliez les pièces collaboratrices par des connecteurs. 5 Avec l inspecteur, définissez les propriétés des différentes pièces. Les pièces contenues peuvent être incluses par référence. Les pièces référencées sont représentées par des rectangles en pointillés. Pour créer une pièce référencée, utilisez l une des procédures suivantes : Utilisez le bouton adéquat dans la boîte à outils du diagramme ; Cliquez avec le bouton droit sur un conteneur cible puis, dans le menu contextuel, choisissez Nouveau Pièce référencée ; Sélectionnez une pièce, choisissez Inspecteur dans son menu contextuel, puis cochez l option aggregated by reference. Pour créer un port, choisissez l icône correspondante dans la boîte à outils, puis cliquez sur la classe ou la pièce cible. Vous pouvez créer autant de ports que nécessaire. Définition d instances de collaboration Une collaboration décrit une structure composée de pièces (rôles) collaboratrices. Elle est liée à une opération ou à un classificateur via une occurrence de collaboration. Pour créer une instance de collaboration : 1 Dans la boîte à outils du diagramme, choisissez le bouton Occurrence de collaboration, puis cliquez sur le conteneur cible. 2 Spécifiez le nom de l occurrence de collaboration. 3 Si nécessaire, spécifiez le type d occurrence de collaboration à l aide d une des méthodes suivantes : Dans le menu contextuel de l occurrence de collaboration, cliquez sur Choisir une collaboration puis, dans le sous-menu obtenu, sélectionnez le type souhaité. Si vous ne trouvez pas dans le sous-menu le type que vous souhaitez, choisissez Suite, puis sélectionnez le type dans la boîte de dialogue Choisir une collaboration. Dans le champ type de l inspecteur Occurrence de collaboration, cliquez sur puis, dans le modèle ou les favoris, sélectionnez la collaboration instanciée par l occurrence de collaboration. En regard du nom de l occurrence de collaboration, tapez deux points (:), puis le nom de la collaboration instanciée par l occurrence de collaboration. Résultat : Le nom de l occurrence de collaboration est accompagné du type de collaboration. Pour dissocier une collaboration : 1 Cliquez avec le bouton droit sur l occurrence de collaboration dont le type a été défini. 2 Dans le menu contextuel, choisissez Supprimer le lien de la collaboration. Chapitre 4 : Modélisation 139
150 Diagrammes UML 2.0 Liaison de rôle Pour lier une occurrence de collaboration à un rôle (une pièce) : 1 Dans la boîte à outils du diagramme, choisissez le bouton de liaison de rôle. 2 Faites passer le curseur de la souris sur l occurrence de collaboration du client. Le client valide est mis en évidence par une ellipse noire. 3 Faites glisser le lien et déposez-le sur la pièce fournisseur. La cible valide se met en évidence. 4 Tapez le nom du rôle, puis appuyez sur Entrée pour fermer l éditeur in-situ. Si une occurrence de collaboration est associée à une collaboration contenant des pièces (rôles), vous pouvez lier ces dernières aux pièces (rôles) d un autre classificateur. Voici comment procéder... Supposons que vous ayez plusieurs classificateurs (collaborations ou classes) contenant des pièces. Astuce Pour relier les pièces (rôles) des différents classificateurs via l occurrence de collaboration : 1 Créez une occurrence de collaboration et définissez-en le type, comme décrit plus haut. 2 Créez une ou plusieurs pièces dans la collaboration représentant le type. 3 Cliquez avec le bouton droit sur l occurrence de collaboration en question puis, dans son menu contextuel, choisissez Lier le nouveau rôle. 4 Dans la boîte de dialogue de sélection de la destination qui s ouvre, choisissez le rôle à lier dans le classificateur cible. Résultat : Un lien de rôle se crée entre l occurrence de collaboration et le rôle, dans le classificateur cible. Ce lien porte le nom du rôle sélectionné dans la collaboration. Un rôle ne peut être utilisé pour une liaison qu une fois. A l appel suivant de la commande de liaison d un nouveau rôle, le nombre de rôles disponibles dans la liste est réduit de 1, celui que vous avez déjà utilisé. Pour définir le propriétaire d une occurrence de collaboration : 1 Cliquez avec le bouton droit sur une occurrence de collaboration et choisissez Inspecteur dans son menu contextuel. 2 Dans le champ owning classifier de l inspecteur, cliquez sur. 3 Dans la boîte de dialogue Choisir un classificateur de propriété, allez jusqu à la classe ou collaboration propriétaire, puis cliquez sur OK. Résultat : Un lien se crée entre le propriétaire en tant que fournisseur et l occurrence de collaboration en tant que client. Une étiquette <<represents>> accompagne le lien. Utilisation d interfaces Les diagrammes de structure composite prennent en charge la notation ball-and socket pour les interfaces fournies et requises. Vous pouvez masquer ou afficher les interfaces sur le diagramme, selon vos besoins. Pour créer une interface fournie : 1 Créez une classe et les éléments du nœud d interface à l aide des boutons et de la boîte à outils. 2 Dans la boîte à outils du diagramme, cliquez sur le bouton de l interface fournie. 3 Cliquez sur la classe client et faites glisser le curseur de la souris jusqu au nœud d interface. 140 Guide de l utilisateur de Borland Together Developer 2005
151 Diagrammes (relations-entités) de modélisation de données Pour créer une interface requise : 1 Créez une classe et les éléments du nœud d interface à l aide des boutons de la boîte à outils. 2 Dans la boîte à outils du diagramme, cliquez sur le bouton de l interface fournie. 3 Cliquez sur la classe client et faites glisser le curseur de la souris jusqu au nœud d interface. Pour masquer une interface : 1 Sélectionnez l interface, puis choisissez Inspecteur dans son menu contextuel. 2 Développez le nœud Affichage. 3 Cochez l option invisible. Une interface peut déléguer ses obligations à une autre interface via le connecteur de délégation. Pour créer un connecteur de délégation : 1 Cliquez avec le bouton droit sur une interface puis, dans le menu contextuel, choisissez Nouveau Connecteur de délégation. 2 Dans la boîte de dialogue Choisir la destination qui s ouvre, sélectionnez l interface cible dans le modèle ou dans les favoris. 3 Cliquez sur OK. Voir aussi Chapitre 3, Utilisation des diagrammes Diagrammes (relations-entités) de modélisation de données Utilisation des diagrammes relations-entités (ERD) Le diagramme relations-entités (Entity Relationship Diagram, ERD) est un modèle de données de haut niveau qui visualise les données métier en termes d entités et de relations. Il représente visuellement les objets de données, en fournissant une vue des informations métier requises pour développer un système d informations. Figure 4.40 Exemple de diagramme relations-entités Chapitre 4 : Modélisation 141
152 Diagrammes (relations-entités) de modélisation de données Modèles de données logique et physique Le modèle de données, représentant les données métier, est constitué de la modélisation physique et logique. Le modèle logique est développé avant le modèle physique et il permet de définir l organisation des informations à stocker dans la base de données. Ainsi, un modèle logique peut être considéré comme un blueprint, définissant clairement les structures de données et les relations établies entre elles. La modélisation physique concerne l implémentation technique du modèle de données logique et présente la façon dont les informations sont stockées dans une base de données particulière. Un outil Together permet de créer les modèles de données logiques qui serviront au développement de modèles spécifiques d un serveur. Création de diagrammes relations-entités Dans cette version de Together, seuls les diagrammes logiques relations-entités sont pris en charge. Pour créer un diagramme logique relations-entités : 1 Dans la galerie d objets, choisissez la catégorie Diagramme ER et cliquez sur le bouton (ER logique) pour ouvrir la fenêtre de dialogue Nouveau diagramme. 2 Dans la fenêtre de dialogue Nouveau diagramme, spécifiez le nom du diagramme, le package et la description, puis cliquez sur OK. Notation Il y a deux manières de représenter des objets de données dans un diagramme relations-entités. Together offre le choix entre les notations IDEF1X et IE (Crow Feet). Astuce Pour basculer entre les notations : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme et choisissez Inspecteur dans le menu contextuel. 2 Dans l onglet Propriétés de l inspecteur, sélectionnez la notation désirée dans la liste déroulante. Vous pouvez également cliquer avec le bouton droit sur l arrière-plan du diagramme, choisir Notation dans le menu contextuel et sélectionner la notation dans le sous-menu. Lorsque vous changez de notation, le diagramme réaffiche automatiquement son contenu. Niveaux d affichage Niveau d affichage entité Sur les diagrammes ER logiques, les niveaux de détail auxquels les entités sont affichées dépendent de la complexité du modèle. Pour choisir le niveau d affichage des entités : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme et choisissez Inspecteur dans le menu contextuel. 2 Dans l onglet Propriétés de l inspecteur, sélectionnez le entity level désiré dans la liste déroulante : Toutes Clé primaire Clé étrangère Attribut Entité Commentaire 142 Guide de l utilisateur de Borland Together Developer 2005
153 Diagrammes (relations-entités) de modélisation de données Astuce Vous pouvez également cliquer avec le bouton droit sur l arrière-plan du diagramme, choisir Niveau d affichage de l entité dans le menu contextuel et sélectionner l option voulue dans le sous-menu. Le niveau d affichage proposé par défaut est Tous. Pour les diagrammes extrêmement remplis, il est conseillé de se limiter au niveau commentaire, qui présente les entités avec leurs noms et descriptions, spécifié par la valeur Commentaire sur la page Propriétés de l inspecteur. Niveau d affichage des vues Dans des diagrammes ER logiques, les vues, comme les entités, peuvent être affichées avec plus ou moins de détails. Astuce Pour choisir le niveau d affichage d une vue : 1 Cliquez avec le bouton droit sur l arrière-plan du diagramme et choisissez Inspecteur dans le menu contextuel 2 Dans l onglet Propriétés de l inspecteur, sélectionnez le view level désiré dans la liste déroulante : Attribut Affichage Commentaire Vous pouvez également cliquer avec le bouton droit sur l arrière-plan du diagramme, choisir Niveau d affichage de la vue dans le menu contextuel et sélectionner l option voulue dans le sous-menu. Le niveau de visualisation Attribut est défini par défaut. Eléments du diagramme Cette section passe brièvement en revue le contenu des diagrammes relations-entités. Tableau 4.17 Eléments de diagrammes relations-entités IDEF1X IE Elément Entité Affichage Cluster de sous-types Relation d identification Relation de non identification Relation plusieurs-à-plusieurs Relation de la vue Dépendance Domaines Un domaine représente un ensemble nommé et défini de valeurs à partir duquel un ou plusieurs attributs dessinent leurs valeurs. Cela permet le maintien d une définition d attribut cohérente. Les domaines sont définis séparément des entités et des vues afin de permettre leur réutilisation et standardisation à travers l entreprise. Dès leur création, les domaines peuvent être appliqués aux attributs entité. L utilisation des domaines vous permet d éviter le travail fastidieux de définition des paramètres Chapitre 4 : Modélisation 143
154 Diagrammes (relations-entités) de modélisation de données d attributs individuels à travers le modèle. En outre, toutes les modifications apportées aux propriétés de domaine se propagent automatiquement sur tous les attributs et tables qui référencent le domaine en question. Lorsqu un diagramme est créé, il contient l élément Domaines surtout destiné aux domaines définis par l utilisateur. Notez que l élément Domaines ne peut pas être supprimé. Astuce Pour créer un domaine : 1 Cliquez avec le bouton droit sur le rectangle Domaines. 2 Dans le menu contextuel, choisissez Nouveau Domaine. 3 A l aide de l éditeur in-situ, spécifiez le nom du domaine. Vous pouvez utiliser l inspecteur de propriétés du domaine pour modifier le nom du domaine et les autres propriétés. Entités Les entités sont représentées par des rectangles libellés, divisés en sections. Le nombre de sections dépend du niveau de visualisation sélectionné. Le nombre maximum de sections est de quatre : clés primaires, attributs, groupes de clés et vérifications. Les entités client avec des relations d identification sont affichées sous la forme de rectangles avec des coins arrondis. Les noms des entités doivent être des noms singuliers. Les éléments entité sont ajoutés au diagramme à l aide de l icône de la barre d outils ou de la commande Nouveau du menu contextuel du diagramme. Vues et liens vers les vues Les vues ne contiennent pas d informations qui leur sont propres. Elles ne font qu emprunter leur contenu à des entités associées. A sa création, une vue est vide. Pour lui donner un contenu, vous devez la connecter à l entité correspondante (table) par un lien de type relation de vue. Tous les attributs de l entité associée s affichent dans la vue. Vous pouvez aussi inclure des attributs provenant des autres tables et vues du même diagramme ER logique. Voici comment procéder... Pour ajouter un nouvel attribut à une vue : 1 Cliquez avec le bouton droit sur une vue et, dans le menu contextuel, sélectionnez Nouveau Attribut. 2 Dans le dialogue gestionnaire de sélection qui s ouvre, sélectionnez les attributs voulus dans les entités et vues disponibles, puis cliquez sur le bouton Ajouter. 3 Cliquez sur OK lorsque vous avez terminé. Résultat : Une liste des attributs sélectionnés apparaît dans la vue cible, où le nom de chacun est précédé du nom de l entité ou de la vue source. Des liens de type relation de vue se créent automatiquement entre la vue cible et les entités et vues source. Les vues peuvent également contenir des attributs calculables, représentés par des expressions SQL. Pour ajouter une expression : 1 Cliquez avec le bouton droit sur une vue et, dans le menu contextuel, sélectionnez Nouveau Expression. La nouvelle expression s ajoute à la vue et l éditeur in-situ est activé. 2 Tapez le nom de l alias et le texte de l expression. 3 Appuyez sur Entrée. 144 Guide de l utilisateur de Borland Together Developer 2005
155 Diagrammes (relations-entités) de modélisation de données Ultérieurement, vous pouvez modifier des expressions dans l inspecteur ou à l aide de l éditeur in-situ. Attributs Les attributs sont affichés dans la section inférieure et les attributs de clé primaire sont affichés dans la section supérieure de l icône entité. Les noms des attributs doivent être des noms singuliers. Un attribut peut être défini en tant que clé primaire et clé étrangère. Pour créer un attribut : 1 Sélectionnez une entité sur le diagramme. 2 Dans le menu contextuel de la sélection, choisissez Nouveau Attribut. Résultat : Le nouvel attribut s ajoute à la section Attributs de l entité. Pour créer un attribut de clé primaire : 1 Sélectionnez une entité sur le diagramme. 2 Dans le menu contextuel de la sélection, choisissez Nouveau Attribut de clé primaire. Résultat : Le nouvel attribut de clé primaire (PK) s ajoute à la section des attributs de clés primaires de l entité ; en même temps, un nouveau groupe de clés primaires se crée, dans lequel est inclus le nouvel attribut. Astuce Remarque Pour définir un attribut existant en tant que clé primaire : 1 Dans le menu contextuel de l attribut sélectionné, choisissez Inspecteur. 2 Dans l onglet Propriétés de l inspecteur, cochez l indicateur primary key. Notez que la clé primaire ne peut être à null. Par conséquent, l option not null est automatiquement activée lorsque l option clé primaire est sélectionnée. Vous pouvez également cliquer avec le bouton droit sur l attribut et choisir Clé primaire dans son menu contextuel. Le fait qu un attribut de clé primaire s ajoute automatiquement à un groupe de clés primaires permet de définir d autres attributs en tant que clés primaires, en utilisant le groupe de clés correspondant. Voici comment procéder... Pour définir un attribut existant en tant que clé primaire, à la condition qu au moins une clé primaire ait déjà été créée : 1 Dans une entité, sélectionnez un groupe de clés primaires. 2 Dans le menu contextuel du groupe de clés, choisissez Inspecteur. 3 Sous l onglet Attributs de l inspecteur, cochez l attribut à définir en tant que clé primaire. Résultat : Le nouvel attribut de clé primaire va dans la section attribut de clé primaire de l entité. Le paramètre Size utilisé pour les variables de type chaîne spécifie le nombre maximum de caractères (le champ scale est désactivé). Si le type d attribut est numérique, la propriété size spécifie la longueur totale du nombre. La signification du champ scale dépend du serveur de base de données sélectionné. En général, il définit le nombre de chiffres après la virgule décimale. Clusters de sous-types Le cluster de sous-types établit la relation de catégorisation entre les entités. Ce faisant, l entité de base est considérée comme générique, tandis que les autres entités qui lui sont associées sont ses catégories. Vous pouvez créer un cluster d autant de catégories que nécessaire. Un cluster de sous-types ne peut pas être créé Chapitre 4 : Modélisation 145
156 Diagrammes (relations-entités) de modélisation de données comme élément séparé, il ne peut que connecter deux entités, définissant entre elles une relation de catégorisation. Cet élément ne s applique qu aux diagrammes logiques relations-entités. Pour créer un cluster de sous-types : 1 Créez une entité générique sur le diagramme logique relations-entités. 2 Créez une ou plusieurs entités catégorie, selon vos besoins. 3 Sur la boîte à outils du diagramme, cliquez sur l icône cluster de sous-types. 4 Cliquez sur l entité source, déplacez le curseur et déposez-le sur l entité cible. Ce faisant, l entité source devient l entité de catégorisation et la cible devient l entité générique. 5 Ajoutez d autres entités au cluster de sous-types. Pour cela, cliquez sur le bouton et faites glisser le lien de l entité sur l élément cluster de sous-types du diagramme. Dans un cluster de sous-types, les éléments clé primaire de l entité générique sont hérités dans les entités de catégorisation. Les propriétés du cluster de sous-types sont affichées dans l inspecteur. Figure 4.41 Propriétés du cluster de sous-types La propriété complete définit qu un cluster est logiquement achevé et contient toutes les catégories nécessaires. Lorsque cette propriété est activée, l élément cluster est spécifié avec un double soulignement dans un diagramme. La propriété discriminator vous permet de définir l attribut utilisé pour introduire une discrimination entre les entités de catégorisation. Le nom de l attribut sélectionné est affiché sur l icône cluster de sous-types : Figure 4.42 Cluster de sous-types Liens de relations Les liens de relations sont affichés en fonction de la cardinalité sélectionnée, avec les noms écrits au-dessus de la ligne. Il est conseillé d utiliser des verbes pour les noms des liens. Vous pouvez créer des relations d identification ou de non identification en utilisant les icônes de barre d outils appropriées. Les relations d identification sont affichées en lignes continues et les relations de non-identification en lignes pointillées. 146 Guide de l utilisateur de Borland Together Developer 2005
157 Diagrammes (relations-entités) de modélisation de données Dès sa création, un lien de relation peut être modifié par l intermédiaire de son inspecteur de propriétés. L onglet Lien de l inspecteur affiche les noms du fournisseur et du client pour le lien de relation sélectionné, et il fournit des champs texte pour les syntagmes verbaux enfant et parent, où vous pouvez modifier le nom de la relation. L affichage de la cardinalité dépend également de la notation sélectionnée. Les types de cardinalité suivants sont possibles : Tableau 4.18 Cardinalité pour les diagrammes relations-entités Cardinalité IDEF1X IE Zéro ou plus Une ou plusieurs Zéro ou une Exact (valeur entière arbitraire) Facultatif Groupe de clés Les groupes de clés sont uniquement créés dans les diagrammes logiques relations-entités. Lorsque le diagramme physique relations-entités est généré, les groupes de clés sont convertis en index. Pour créer un groupe de clés : 1 Dans le menu contextuel de l entité, choisissez Nouveau. 2 Sélectionnez Groupe de clés dans le sous-menu. 3 Cliquez avec le bouton droit sur le groupe de clés et choisissez Inspecteur dans son menu contextuel. 4 Dans l onglet Attributs de l inspecteur, cochez les attributs à inclure dans le groupe de clés. 5 Dans l onglet Propriétés de l inspecteur, cochez l option alternate, si nécessaire. Vérification Une vérification est une restriction spécifiée pour une table. Cette restriction est introduite dans le script DDL lorsque la DDL est générée pour un diagramme physique relations-entités. Pour créer une vérification : 1 Dans le menu contextuel de l entité, choisissez Nouveau. 2 Sélectionnez Vérificateur dans le sous-menu. 3 Dans l onglet Propriétés de l inspecteur de la vérification, cliquez sur le champ text et entrez la condition requise. Chapitre 4 : Modélisation 147
158 Comparaison de modèles Comparaison de modèles Vérification du modèle logique Pour vérifier le modèle logique : 1 Sur le diagramme logique relations-entités, cliquez avec le bouton droit sur l arrière-plan du diagramme. 2 Dans le menu contextuel du diagramme, choisissez Vérifier modèle ER logique. 3 Dans l expert de vérification du modèle logique relations-entités, sélectionnez les entités et les vues à inclure dans la vérification. Cliquez sur Suivant>. 4 Sur la seconde page de l expert, spécifiez les options de vérification et cliquez sur Terminer lorsque vous avez terminé. Les résultats de la vérification sont affichés dans l onglet Diagramme ER du volet Messages. Pour de plus amples informations sur les contrôles de l expert, reportez-vous à la rubrique d aide des dialogues. Voir aussi Chapitre 3, Utilisation des diagrammes Dans Together Developer, cette fonctionnalité n est prise en charge que si une licence Together Designer est détectée. Together vous permet de comparer les différents diagrammes et packages d un projet. Ce faisant, il est possible de comparer deux modèles (double comparaison) ou trois modèles (triple comparaison). Cette rubrique se compose des sections suivantes : Notions de base de la comparaison Utilisation de configurations multiples Comparaison d entités avec les propriétés personnalisées Analyse des résultats de la comparaison Schéma de couleur Notions de base de la comparaison Remarque Les entités sont comparées en utilisant le métamodèle, qui définit les métaclasses et leurs propriétés à prendre en considération au cours de la comparaison. Toute entité non couverte par le métamodèle est ignorée. Le métamodèle est composé de descriptions de métaclasses fournies dans le fichier de configuration <modules>/com.togethersoft.modules.impl.modeldiff/diffconfig.xml. Une métaclasse est spécifiée par son nom et un identificateur facultatif, qui définit si les éléments appartenant à différents modèles sont identiques. Les identificateurs sont composés d expressions régulières attachées aux propriétés du modèle. Ainsi, les entités appartenant aux différents modèles sont identiques une fois qu elles ont la même métaclasse et identification. Une métaclasse comprend un certain nombre de propriétés, enfants, liens et raccourcis qui s appliquent à toutes les entités appartenant à la même métaclasse. Toutes ces caractéristiques suivent le même format : un nom significatif, un indicateur d état booléen qui définit si la caractéristique est incluse ou ignorée lors de la comparaison, et une expression régulière qui définit la portée des entités applicables. Le métamodèle fourni est configurable. L utilisateur peut créer les propriétés et les métaclasses les mieux adaptées aux exigences spécifiques de l entreprise. 148 Guide de l utilisateur de Borland Together Developer 2005
159 Comparaison de modèles Configuration des types d éléments de modèle Un outil Together permet de configurer les options de comparaison de modèle sur le niveau par défaut. C est la boîte de dialogue Comparaison de modèles, accessible à partir des préférences (Comparaison de modèles) ou immédiatement depuis la boîte de dialogue Comparaison (bouton Paramètres). Dans la section Paramètres de la boîte de dialogue, vous pouvez spécifier les propriétés de type d élément, ajouter et supprimer des propriétés et des types d éléments. Figure 4.43 Paramètres de la comparaison de modèles Pour ajouter un type d élément : 1 Cliquez sur le bouton Ajouter. Le type par défaut est ajouté à la fin de la liste. 2 Modifiez le nom du nouveau type. Effectuez un double-clic ou appuyez sur F2 pour activer l éditeur in-situ. Pour supprimer un type d élément : 1 Sélectionnez un type d élément à supprimer. 2 Cliquez sur le bouton Retirer. Astuce Pour modifier des propriétés, des enfants, des liens et des raccourcis d un type d élément : 1 Sélectionnez un type d élément dans la table Types d élément de modèle. 2 Cliquez sur l onglet voulu (Propriétés, Enfants, Liens ou Raccourcis). 3 Utilisez les boutons Ajouter/Retirer pour créer et supprimer des entrées. 4 Utilisez l éditeur in-situ pour modifier les noms et les expressions régulières. 5 Cochez l option Inclus pour inclure l entrée sélectionnée dans la comparaison. 6 Cochez l option Id pour ajouter la propriété sélectionnée à l identificateur facultatif. Vous pouvez toujours revenir aux paramètres initiaux. La sélection du bouton Réinitialiser rétablit les valeurs par défaut de la configuration en cours. Utilisation de configurations multiples Il est possible d utiliser plusieurs configurations de comparaison. La boîte à options Nom de configuration présente la liste des configurations disponibles. La configuration par défaut est nommée diffconfig. Chapitre 4 : Modélisation 149
160 Comparaison de modèles Pour créer une configuration personnalisée : 1 Spécifiez les options selon les besoins. 2 Cliquez sur le bouton Enregistrer sous. 3 Dans la fenêtre de la boîte de dialogue qui s ouvre, tapez le nom de la nouvelle configuration et cliquez sur OK. Les configurations personnalisées peuvent être retirées à l aide du bouton Supprimer. Néanmoins, cette opération est interdite pour la configuration par défaut. Utilisation de la comparaison de modèles Remarque Pour comparer des modèles : 1 Dans le menu principal, choisissez Outils Modèle Comparaison de modèles bidirectionnels (pour une comparaison triple, choisissez Comparaison de modèles tridirectionnels). Cela ouvre la boîte de dialogue Comparaison. Par défaut, les modèles ne sont pas sélectionnés. 2 Dans la boîte de dialogue Comparaison, spécifiez les racines à comparer. Pour cela, cliquez sur les boutons de sélection des fichiers en haut de chaque page de modèle. Vous ne pouvez comparer que les entités qui appartiennent au même type. La comparaison de packages avec des diagrammes n est pas autorisée. 3 Cliquez sur le bouton Paramètres, si nécessaire. Dans la boîte de dialogue des paramètres de comparaison, configurez les options selon les besoins et cliquez sur OK pour fermer la boîte de dialogue. 4 Dans la boîte de dialogue Comparaison, cliquez sur le bouton Comparer. Lorsque la comparaison est terminée, le bouton reste désactivé, à moins que vous ne spécifiiez de nouvelles racines. 5 Lorsque vous le souhaitez, sélectionnez de nouvelles racines et répétez le processus ou cliquez sur le bouton Fermer pour quitter la boîte de dialogue. Figure 4.44 Résultats d une comparaison de modèles bidirectionnels La comparaison de modèles est un processus gourmand en temps. Vous pouvez l interrompre en appuyant sur le bouton Annuler. Vous pouvez alors sélectionner une autre racine et recommencer l opération. 150 Guide de l utilisateur de Borland Together Developer 2005
161 Comparaison de modèles Comparaison d entités avec les propriétés personnalisées La liste des propriétés des entités comparées peut inclure des propriétés standard et personnalisées. Pour inclure dans une comparaison des propriétés personnalisées, ajoutez explicitement ces dernières au métamodèle. Pour ajouter des propriétés personnalisées à un élément de modèle sélectionné, procédez d une des manières suivantes : Sous l onglet Personnalisation de l inspecteur, cliquez sur le bouton Ajouter et spécifiez le nom et la valeur de la propriété. Cette propriété ne s applique qu à l élément de modèle sélectionné. Dans le menu principal, choisissez Outils Modèle Constructeur de propriétés de l inspecteur, puis créez des propriétés personnalisées s appliquant à tous les éléments du même type. Pour inclure ces propriétés dans la comparaison, assurez-vous qu elles sont présentes dans le métamodèle. Utilisez le bouton Paramètre de la boîte de dialogue Comparaison (ou la page des paramètres de comparaison de la boîte de dialogue Préférences) pour ajouter les propriétés voulues au métamodèle, comme le décrit la section Configuration des types d éléments de modèle, page 149. Les résultats de la comparaison affichent une liste des propriétés, avec leurs noms et leurs valeurs, de chaque élément du modèle faisant l objet de la comparaison. Si une propriété d une des entités comparées n est pas spécifiée, l entrée correspondante dans la table affiche le message <non défini>. Analyse des résultats de la comparaison Les modèles peuvent différer en termes de contenu et de propriétés. Les différences de contenu sont affichées dans les arborescences de modèles et marquées conformément au schéma de couleur. Notez que les nœuds développables vous permettent d explorer en profondeur la structure du modèle et de visualiser les différences sur les divers niveaux. Les propriétés des entités comparées sont affichées dans l inspecteur. A partir de l arborescence de modèle, vous pouvez naviguer sur n importe quel nœud du diagramme approprié. Pour ce faire, cliquez avec le bouton droit sur un nœud pour afficher son menu contextuel et choisissez Sélectionner sur le diagramme. Le diagramme contenant l élément sélectionné est affiché dans la vue Diagramme. Notez que cette opération peut être gourmande en temps. Schéma de couleur Remarque Un schéma de couleur spécial est utilisé pour désigner les types de modifications : blanc : pas de modification vert : modifications mineures jaune : modifications n entraînant pas de conflit rouge : modifications conflictuelles La comparaison à deux voies est un cas spécial de la comparaison à trois voies, où les conflits sont impossibles. Ainsi, les arborescences doubles ne contiennent que les cas blanc et vert. Chapitre 4 : Modélisation 151
162 Profilage UML Le tableau suivant décrit le schéma de couleur pour la comparaison triple, avec les conditions suivantes : Chaque ligne du tableau correspond à une ligne dans l arborescence de comparaison triple Version de base est la version dans la page centrale de l arborescence de comparaison triple Les versions à Gauche et à Droite sont respectivement les arborescences gauche et droite X - entité originale X, X - entité avec les propriétés et/ou le contenu modifiés une cellule vide correspond à des entités retirées Tableau 4.19 Schéma de couleur pour la comparaison triple Gauche Version de base Droite Cas Pas de modification [schéma de couleur blanc] Voir aussi Boîte de dialogue Comparaison de modèles dans l aide en ligne X X X Etat inchangé Pas de synchronisation [schéma de couleur vert] X X X Même modification X Supprimé des deux côtés X X Ajouté sur les deux côtés Synchronisation simple [schéma de couleur jaune] X X X Modification d un côté X X X Modification d un côté X X Supprimé d un côté X X Supprimé d un côté X Ajouté sur un côté X Ajouté sur un côté Synchronisation conflictuelle [schéma de couleur rouge] X X X Modifications conflictuelles des deux côtés X X Ajouts conflictuels des deux côtés X X Modifié d un côté, supprimé de l autre côté X X Supprimé d un côté, modifié de l autre côté Boîte de dialogue Comparaison dans l aide en ligne Profilage UML Les profils UML étendent les possibilités de notation et les fonctionnalités de Together, qui prend ainsi mieux en charge certains problèmes ou styles de modélisation particuliers. Les concepts généraux de modélisation d UML conviennent à la majorité des développeurs. Cependant, il est des cas où il est utile de pousser plus avant ces concepts pour une meilleure adhésion à des concepts et à des techniques spécifiques d un domaine. Les mécanismes d extension UML permettent de définir une sémantique supplémentaire pour des éléments de modélisation impossibles à exprimer directement avec des constructions UML. Cette technique est connue sous le nom de profilage UML. 152 Guide de l utilisateur de Borland Together Developer 2005
163 Profilage UML Les mécanismes fournis par la norme UML affinent la création de profils, en ajoutant des stéréotypes, des valeurs avec balise, des contraintes et des icônes de notation qui permettent de spécialiser l UML pour mieux l adapter à un domaine ou à un processus spécifique. Ces éléments adaptent la sémantique UML sans modifier le métamodèle UML. Ceci signifie que vous pouvez interpréter la sémantique d un profil dans le contexte de la spécification UML. Rôle des profils UML : par exemple, il mettent de nouvelles actions à la disposition de l utilisateur dans le menu, ils ajoutent de nouveaux boutons à une boîte à outils ou ils modifient la disposition des éléments. Profils disponibles Les profils suivants sont livrés avec Together Developer : Together 6.0 UML en couleur Processus métier Processus de développement logiciel Il est possible d adhérer à un profil unique ou d utiliser une combinaison de profils. Quand vous activez un profil, il se peut qu une boîte à outils supplémentaire apparaisse sur les diagrammes, que le comportement des outils existants change ou que d autres changements dans la modélisation se produisent. Dans certaines situations, il peut y avoir interférence entre profils. Si vous appliquez un stéréotype à l un des éléments du diagramme, la vue de l élément associé sur le diagramme change également. Dans la plupart des cas, le stéréotype s affiche directement au-dessus du nom de l élément. Cependant, si vous appliquez un stéréotype à un élément de classe, une icône d identification s affiche également, en plus du stéréotype, au-dessus du nom de l élément. Activation et désactivation de profils Vous pouvez activer ou désactiver des profils à différents niveaux : global, projet par défaut, projet ou diagramme. Par défaut, tous les profils sont désactivés à tous les niveaux. Pour activer ou désactiver des profils : 1 Ouvrez la boîte de dialogue Préférences sur le niveau requis : Au niveau global : choisissez Outils Préférences..., Projet Propriétés du projet... ou Projet Propriétés du projet par défaut..., page Global Au niveau projet par défaut : choisissez Projet Propriétés du projet par défaut..., page Projet par défaut Au niveau projet : choisissez Outils Préférences... ou Projet Propriétés du projet..., page Projet Au niveau diagramme : choisissez Diagramme Propriétés... ou Propriétés dans le menu contextuel du diagramme ou encore sur la barre d outils 2 Sous le nœud Modélisation, cliquez sur Profils. 3 Cochez les profils requis et cliquez sur OK. Astuce Vous pouvez également utiliser le bouton de la barre d outils du diagramme. Voir aussi Préférences des profils, page 305 Chapitre 4 : Modélisation 153
164 Profilage UML Profil Together 6.0 Ce profil n ajoute pas de nouveaux éléments de modélisation. Il modifie la notation des éléments existants. Ce profil est fourni pour assurer la compatibilité ascendante avec les anciennes versions (6.x) de la gamme des produits Together (par exemple, TCC 6.2) qui incluaient cette notation. Il est possible de modifier la notation des éléments suivants : Projets UML 1.4 : Classe Objet Projets UML 2.0 : Classe Spécification d instance La notation change si l un des stéréotypes suivants est appliqué : entity actor boundary control worker case worker Si vous appliquez un stéréotype à l un des éléments de diagramme cités, la vue de l élément associé sur le diagramme change également. Le stéréotype s affiche directement au-dessus du nom de l élément. Profil UML en couleur Ce profil n ajoute pas de nouveaux éléments de modélisation et ne modifie pas la notation. Il peint les éléments existants à l aide de stéréotypes particuliers affectés dans différentes couleurs. Le profil UML de modélisation en couleur met à votre disposition plusieurs nouvelles options de stéréotypes pour les éléments de diagramme suivants : Elément de diagramme Classe Classe Classe Classe Classe Classe Classe Classe Interface Interface Interface Interface Interface Interface Interface Interface Stéréotype role moment-interval mi-detail party place thing description container role moment-interval mi-detail party place thing description container 154 Guide de l utilisateur de Borland Together Developer 2005
165 Profilage UML Si vous appliquez un stéréotype à l un des éléments de diagramme cités, la vue de l élément associé sur le diagramme change également. Le stéréotype s affiche directement au-dessus du nom de l élément et la couleur de l élément dépend du stéréotype choisi. Ce profil inclut quatre archétypes interconnectés : moment-interval role description semblable à une entrée de catalogue party, place ou thing Pour plus de détails sur la modélisation en couleur, consultez Java Modeling in Color with UML: Enterprise Components and Process par Peter Coad, Jeff De Luca et Eric Lefebvre. Profil UML de processus métier Ce profil illustre l exemple de la spécification UML 1.4, voir chapitre 4. Ce profil ajoute des outils qui permettent à l utilisateur de décrire leurs applications en termes de communications de processus métier. Par exemple, c est la tâche spécialement demandée pour la modélisation des systèmes ERP (Enterprise Resource Planning). Quand ce profil est activé, la nouvelle boîte à outils Processus métier apparaît sur les diagrammes de classes et de packages. Les nouveaux éléments de modélisation de cette boîte à outils sont des éléments lien, classe ou package auxquels des stéréotypes spéciaux ont été affectés : Icônes Système de cas d utilisation Package de cas d utilisation Système d objet Unité d organisation Unité de travail Worker (travailleur) Travailleur chargé des relations avec l extérieur Travailleur interne Entité Chapitre 4 : Modélisation 155
166 Profilage UML Icônes Communiquer S abonner Profil UML de processus de développement de logiciel Ce profil illustre l exemple de la spécification UML 1.4, voir chapitre 4. Quand ce profil est activé, la nouvelle boîte à outils Processus de développement apparaît sur les diagrammes de classes et de packages. Les nouveaux éléments de modélisation de cette boîte à outils sont des éléments lien, classe ou package auxquels des stéréotypes spéciaux ont été affectés : Icônes Système de cas d utilisation Package de cas d utilisation Système d analyse Package d analyse Package de services d analyse Système de modélisation Sous-système de modélisation Sous-système de services de modélisation Système d implémentation Sous-système d implémentation Entité Contrôle Boundary (périmètre) Communiquer S abonner 156 Guide de l utilisateur de Borland Together Developer 2005
167 Chapitre 5 5Génération du code source Chapitre C est une fonctionnalité de Together Designer. Elle est également disponible dans Together Developer pour les projets *.tpx lorsqu une licence pour Designer est détectée. Remarque La fonctionnalité de Génération du code source Java crée les fichiers de code source Java correspondant au modèle en cours. Together analyse tous les packages du projet en cours et construit la structure de dossiers qui leur est appropriée dans le dossier racine que vous sélectionnez. Ensuite, Together détecte toutes les classes et toutes les interfaces de ces packages. Pour chaque classe, un fichier.java est créé. Tous les membres des classes définis dans votre modèle sont ajoutés à ces fichiers.java. Respectez les limites suivantes dans les modèles utilisés pour générer le code source Java, afin de construire un code compilable : Utilisez uniquement des types de variables Java N utilisez pas l héritage multiple pour les classes (cette fonctionnalité n est prise en charge que pour les interfaces) Tous les noms de packages, classes et membres de classes non conformes aux spécifications Java seront automatiquement convertis pour s y conformer. Expert Génération de code source Astuce L expert Génération de code source permet de configurer la façon dont sera généré le code source Java correspondant au modèle en cours. Choisissez Outils Générer le code source Java... pour accéder à cette fonction. L expert n a qu une seule étape. Dans le champ Répertoire, entrez le répertoire racine dans lequel stocker vos fichiers de code source Java, ou utilisez le sélecteur. Pour cela, il est recommandé de créer un sous-répertoire source à la racine de votre projet. Appuyez sur Terminer pour démarrer la génération. Quand elle est terminée, le volet Messages affiche les erreurs et les avertissements survenus au cours de la génération. Chapitre 5 : Génération du code source 157
168 158 Guide de l utilisateur de Borland Together Developer 2005
169 Chapitre 6 6Génération de la documentation Chapitre Génération de la documentation des projets Together peut créer une documentation externe pour vos projets. Ce chapitre décrit comment utiliser le générateur de documentation pour créer des rapports de projets à partir de Together et à partir de la ligne de commande. Ce chapitre se compose des rubriques suivantes : Génération de la documentation d un projet ouvert Automatisation de la génération de documentation Génération de la documentation d un projet ouvert Vous pouvez démarrer le générateur de documentation à partir d un projet ouvert. Sélectionnez l une des commandes suivantes dans le menu principal : Projet Documentation Générer HTML : génère la documentation HTML en utilisant un template de documentation fourni par Together. Projet Documentation Générer à l aide d un template : génère la documentation HTML, RTF ou texte en utilisant un template prédéfini. Génération de la documentation HTML La commande génère la documentation HTML en utilisant un template de documentation fourni par Together. La figure ci-dessous illustre la boîte de dialogue Génération HTML. Pour obtenir la boîte de dialogue Génération HTML, choisissez Projet Documentation Générer HTML dans le menu principal. Chapitre 6 : Génération de la documentation 159
170 Génération de la documentation des projets Figure 6.1 Boîte de dialogue Génération HTML Important Remarque Remarque Paramètres de la boîte de dialogue Dans cette boîte de dialogue, vous pouvez configurer les paramètres qui déterminent le rapport résultant. Pour indiquer l emplacement de la sortie générée, utilisez l option Dossier ou cliquez sur le bouton de sélection de fichier. Sauf si vous spécifiez un autre emplacement, chaque nouvelle documentation générée remplace les fichiers de documentation déjà générés. Le volet Portée comporte des boutons radio qui vous permettent d indiquer les parties du projet devant être analysées et incluses dans la sortie générée. Tous : La sortie générée couvre la totalité du projet. Sélection : La sortie générée inclut le package qui contient le diagramme sélectionné dans le Navigateur de modèle ou dans l éditeur de diagramme. Les cases à cocher de la boîte de dialogue Génération HTML proposent les actions facultatives suivantes : Cases à cocher : Images des diagrammes : Cochez cette option pour inclure des images de diagrammes dans la sortie. Arborescence de navigation : Cochez cette option pour inclure une arborescence de navigation dans la sortie. Exécuter le visualiseur : Cochez cette option pour charger la documentation dans le navigateur Web par défaut du système d exploitation. Cela démarre l application si nécessaire. Le navigateur interne est utilisé si l option suivante est cochée : Préférences Modélisation, Ouvrir les fichiers HTML à l aide d un navigateur interne. Bouton Options : Cliquez sur le bouton Options pour définir plus précisément les paramètres de génération de la documentation HTML. Pour de plus amples informations, voir Préférences de génération du HTML, page 303. Certaines propriétés internes peuvent être reconnues et figurer dans la documentation HTML. Par exemple, des liens de message dans un diagramme de séquence affichent un nom_unique_diagramme. Le menu contextuel de l éditeur de diagrammes vous permet de générer la documentation HTML pour l élément sélectionné ou pour le diagramme. Cliquez avec le bouton droit dans l arrière-plan du diagramme et choisissez Afficher la documentation HTML. Génération de la documentation à l aide d un template Le générateur de documentation (ou DocGen) est le module Together qui produit les rapports de projets. Pour cela, il applique des templates de documentation à vos projets. Les templates contiennent des commandes du moteur DocGen ; les projets fournissent la source des données spécifiques aux projets. 160 Guide de l utilisateur de Borland Together Developer 2005
171 Génération de la documentation des projets Les templates de documentation sont des fichiers texte *.tpl contenant des instructions de formatage et des balises pour les commandes. Pour obtenir la boîte de dialogue Génération de documentation à l aide d un template, choisissez Projet Documentation Générer à l aide d un template dans le menu principal. La commande Générer à l aide d un template de documentation génère la documentation au format HTML, RTF ou texte en utilisant un template de documentation personnalisé ou un template fourni avec Together. La figure ci-dessous illustre la boîte de dialogue Génération de documentation à l aide d un template. Figure 6.2 Boîte de dialogue Génération de documentation à l aide d un template Important Paramètres de la boîte de dialogue La boîte de dialogue permet de spécifier le type de template qui servira à la génération de la documentation, la portée, le format et la destination de la sortie et propose un certain nombre d options facultatives. Chemin : Indiquez l emplacement de la sortie générée ou sélectionnez-le en cliquant sur le bouton à droite de cette option. Le répertoire /out situé sous la racine de l installation est utilisé par défaut. Utilisez le bouton pour sélectionner l emplacement souhaité. Template : Indiquez le template que le générateur de documentation doit utiliser. Sélectionnez-le dans la liste des trois templates fournis par Together. ProjectReportUni est un template commun et les deux autres servent aux intégrations de gestion des exigences. Utilisez le bouton pour sélectionner le template voulu. La section Portée comporte des boutons radio qui vous permettent d indiquer les parties du projet devant être analysées et incluses dans la sortie générée. Tous : La sortie générée couvre la totalité du projet. Package en cours : La sortie générée ne contient que le package en cours sélectionné dans l onglet Modèle de l explorateur. Package en cours avec sous-packages : La sortie générée contient le package en cours sélectionné dans l onglet Modèle de l explorateur et tous les sous-packages situés sous ce package. Diagramme en cours : La sortie est générée pour le diagramme en cours qui détient la focalisation dans le volet Modélisation. La section Format comporte des boutons radio qui permettent de sélectionner le format de la sortie générée. Les options possibles sont : HTML RTF TXT Toute nouvelle documentation générée remplace les fichiers de documentation déjà générés. Chapitre 6 : Génération de la documentation 161
172 Génération de la documentation des projets La section Importations permet de spécifier quelles informations supplémentaires doivent être incluses dans la sortie générée : Diagrammes Cochez cette option pour inclure des images de diagrammes dans la sortie (conformément aux instructions du template). Chemin des classes Cochez cette option pour développer la documentation générée afin d inclure des éléments du chemin des classes. Hyperliens en tant que texte Inclut en tant que texte les fichiers avec hyperliens. Laissez cette case non cochée pour intégrer sous forme d URL tous les hyperliens menant à une documentation externe. En revanche, cochez-la pour intégrer la documentation hyperliée dans le document généré. Dans la documentation RTF, la documentation hyperliée se présente ainsi : INCLUDE TEXT:<URL> Pour mettre à jour le champ, sélectionnez-le et appuyez sur F9, ou appuyez sur Ctrl-A, F9 pour mettre à jour tous les champs. Remarque Options supplémentaires : Exécuter le visualiseur Cochez cette option pour charger la documentation dans l application appropriée dès que la documentation est générée. Cela démarre l application si nécessaire. La documentation HTML s ouvre dans le navigateur Web par défaut du système d exploitation, la documentation RTF dans le visualiseur RTF par défaut du système d exploitation et la documentation texte dans l éditeur. Options Générer la documentation Si vous avez indiqué RTF ou HTML comme format de sortie, vous pouvez cliquer sur le bouton Options pour définir plus précisément les paramètres de génération de la documentation. Les options sont réparties en deux groupes : Options de format RTF Template de formatage : Indiquez le nom complet d un template de formatage (par exemple un fichier Microsoft Word *.dot) ou sélectionnez un template en cliquant sur le bouton à droite de cette option. Format de l image du diagramme : Sélectionnez le format WMF ou GIF. Représentation des couleurs : Sélectionnez RVB ou 16 bits. Format du texte inclus : Choisissez entre la conservation du format d origine et l application d un template de formatage, spécifié dans la première option. Interpréter les balises HTML Cochez cette case pour convertir les balises HTML en texte correctement formaté dans la documentation imprimée. Les balises suivantes sont prises en charge : <b>,<i>,<u>,<h1>,...,<h6>, <code>, <tt>, <em>, <font color>, <pre>, <p>, <br>, <ol>, <ul>, <li>. Les descriptions des éléments de modélisation peuvent contenir des balises HTML. Ce paramètre est donc utile pour les templates de documentation qui traitent ces descriptions. Stocker les graphiques dans le RTF : Cochez cette case pour intégrer tous les graphiques dans un même document RTF. RTF assure une meilleure prise en charge du format des images au format PNG qu au format GIF. Par conséquent, le stockage des images GIF peut poser problème avec certains visualiseurs RTF. 162 Guide de l utilisateur de Borland Together Developer 2005
173 Automatisation de la génération de documentation Vous pouvez enregistrer la documentation générée au format Word car Microsoft Word 2000 gère les images GIF en les convertissant au format PNG. Sachez toutefois que vous devrez peut-être apporter des modifications minimes au fichier (par exemple, supprimer un espace) afin que le document soit correctement formaté. Options de format HTML Traiter les sauts de ligne : Cochez cette case pour conserver les ruptures de ligne même si vous avez sélectionné l option Interpréter les balises HTML. Les options des formats de sortie RTF et HTML sont illustrées dans la figure ci-dessous : Figure 6.3 Options Générer la documentation Automatisation de la génération de documentation Vous pouvez mettre à jour la documentation du projet dans le cadre d un processus de construction automatisé périodique en faisant en sorte que le script du processus appelle le générateur de documentation via l interface de la ligne de commande. Pour générer de la documentation à partir de la ligne de commande sans lancer Together, utilisez les lanceurs suivants situés dans le dossier d installation : /bin/togetherumlgendoc.exe (Windows) pour générer une documentation RTF, HTML ou en texte brut avec des templates ou /bin/togetherumlgenhtml.exe (Windows) pour générer une documentation HTML. Lancement du générateur de documentation à partir de la ligne de commande Pour génerer une documentation HTML à partir de la ligne de commande sans lancer Together, utilisez la commande suivante : <lanceur> <nom fichier projet> [options] où : <lanceur> est TogetherUMLGenDoc.exe ou TogetherUMLGenHTML.exe. [options] sont celles du module GenerateHTML. Les options sont répertoriées dans le Tableau 6.2, Options en ligne de commande de génération de la documentation HTML. <projet> représente le chemin absolu d accès au projet Chapitre 6 : Génération de la documentation 163
174 Automatisation de la génération de documentation La commande nécessaire au lancement du module GenerateHTML avec le lanceur TogetherUMLGenHTML.exe doit comporter au minimum les éléments suivants : <lanceur> <nom fichier projet> -d <répertoire de sortie> où répertoire de sortie représente le chemin absolu menant au répertoire de sortie. Consultez le Tableau 6.2, Options en ligne de commande de génération de la documentation HTML, qui répertorie les options en ligne de commande permettant de générer une documentation HTML normale. Options de génération de la documentation La génération de documentation HTML normale peut se faire à l aide d options en ligne de commande spécifiques. Utilisez les options décrites dans cette section lorsque vous générez de la documentation à partir de la ligne de commande. Option de génération de documentation à l aide d un template Les options décrites dans cette section concernent la documentation RTF, HTML ou texte par TogetherUMLGenDoc.exe (Windows) en utilisant un fichier template modifiable comme ProjectReportUni.tpl. La génération de ce type de documentation revient à la générer dans Together en utilisant la commande Projet Documentation Générer à l aide d un template de documentation. Chaque option de la documentation est une option à bascule ou une option à paramètres. Les options à bascule se présentent ainsi : -nom_option Les options à paramètres sont suivies de valeurs de paramètres : -nom_option valeur_paramètre Tableau 6.1 Commande -template <chemin> -metamodel <chemin> ou -m <chemin> Options en ligne de commande de génération de la documentation à l aide d un template -config <nom du fichier de configuration> ou -c <nom du fichier de configuration> -package <nom des éléments racine du package> ou -p <nom des éléments racine du package> -showdiagrams (true ou false) ou -sd (true ou false) -format <RTF HTML TXT> ou -f <RTF HTML TXT> -styletemplate <chemin> Description Fichier du template. Si ce paramètre est omis, le template ProjectReportUni.tpl par défaut est utilisé :..modules.tpl Fichier métamodèle. Si ce paramètre est omis, le fichier métamodèle par défaut est utilisé :..modules.mm Spécifie le fichier contenant les paramètres par défaut. Le package pour lequel générer la documentation. Cette option précise si les images de diagrammes doivent être incluses Format de la sortie ; RTF est le format par défaut. Fichier template des styles (dépend du format de sortie ; par exemple *.dot pour une sortie RTF) 164 Guide de l utilisateur de Borland Together Developer 2005
175 Automatisation de la génération de documentation Tableau 6.1 Commande Options en ligne de commande de génération de la documentation à l aide d un template -outputdirectory <répertoire> ou -od <répertoire> -recurse -includeclasspath <true ou false> ou -ic <true ou false> -includehlinkfiles <true ou false> ou -ih <true ou false> Paramètres de format spécifiques : Description Répertoire de destination de la sortie (obligatoire) Créer une sortie pour les packages spécifiés dans [noms_packages] et leurs sous-packages. Voir aussi -package Inclure le chemin d accès aux classes. Inclure le corps des fichiers hyperliés sous forme de texte brut dans la documentation et non des références vers eux. -styletemplate <nom du fichier contenant le template de style> ou -st <nom du fichier contenant le template de style> -rtfdiagramimageformat <GIF ou WMF> ou -dif <GIF ou WMF> -includetextcharformat <true ou false> ou -itcf <true ou false> -rtfcolorrepresentation <true ou false> ou -cr <true ou false> -storegraphicswithdocument <true ou false> ou -sg <true ou false> -processlinebreaks <true ou false> ou -plb <true ou false> Template (.dot) pour les documents RTF. Format de l image du diagramme pour les documents RTF. Conserver le formatage du texte initial pour les documents RTF. Couleur RVB ou 16 bits pour les documents RTF. Si spécifié, les images.png sont générées au lieu des images vectorielles pour les documents RTF. Voir aussi -dif Conserver les sauts de ligne pour les documents HTML. Option de génération de la documentation HTML Les options décrites dans cette section concernent la documentation HTML normale. La génération de ce type de documentation à partir de la ligne de commande revient à la générer dans Together en utilisant la commande Projet Documentation Générer HTML. Les options présentées dans le Tableau 6.2, Options en ligne de commande de génération de la documentation HTML, s appliquent au lanceur TogetherUMLGenHTML.exe. Chapitre 6 : Génération de la documentation 165
176 Automatisation de la génération de documentation Tableau 6.2 Options en ligne de commande de génération de la documentation HTML Commande -overview <fichier> -public -protected Description Lire la documentation de présentation à partir du fichier HTML. Afficher uniquement les classes et membres publics. Afficher les classes et membres protégés et publics (option par défaut). -package Afficher les classes et membres package/protégés/publics. -private Afficher tous les classes et membres. -help Afficher les options en ligne de commande. -d <répertoire> Répertoire de destination des fichiers de sortie. -use Créer des pages d utilisation des classes et packages. -version Inclure les -author Inclure les -splitindex Diviser l index en créant un fichier par lettre. -windowtitle <texte> Titre de la fenêtre du navigateur pour la documentation. -doctitle <code html> Inclure le titre de la (première) page de l index des packages. -header <code html> Inclure le texte d en-tête de chaque page. -footer <code html> Inclure le texte de pied de page de chaque page. -bottom <code html> Inclure le texte en bas de chaque page. -nodeprecated Ne pas inclure les -nodeprecatedlist Ne pas générer de liste désapprouvée. -notree Ne pas générer de hiérarchie de classe. -noindex Ne pas générer d index. -nohelp Ne pas générer de lien d aide. -nonavbar Ne pas générer de barre de navigation. -javadoc Créer la même sortie que javadoc.exe. -browser Lancer le navigateur HTML. -diagrams Inclure les images de diagrammes. -navtree Générer l arborescence de navigation. 166 Guide de l utilisateur de Borland Together Developer 2005
177 Chapitre 7 Chapitre 7Patterns Les patterns fournissent aux développeurs de logiciels un ensemble puissant de fonctionnalités de réutilisation. Plutôt que d aborder chaque problème de modélisation depuis le tout début, vous pouvez utiliser les patterns prédéfinis livrés avec Together. En outre, vous pouvez créer vos propres patterns pour satisfaire les exigences spécifiques de votre entreprise. Notions de base sur les patterns Important Pattern est un terme générique qui définit les outils de réutilisation de Together. Bien que différents de nature et de destination, tous les patterns sont gérés et appliqués de la même façon. Avec les patterns, vous pouvez créer de nouveaux éléments et effectuer le refactoring des éléments existants. En fonction de leur destination, les patterns sont divisés en deux catégories : Les patterns de code source permettent de générer le code source initial et les valeurs par défaut des propriétés des nouveaux éléments de modélisation que vous avez créés dans Together. Les patterns de code, fichiers textuels dotés d extensions spécifiques au langage cible, utilisent des macros qui sont substituées par les valeurs réelles lorsque les patterns sont appliqués. Ils peuvent être considérés comme des formulaires prêts à remplir pour une instance spécifique. Les patterns de modélisation permettent de créer des éléments de diagramme ne générant pas de code source. Ce faisant, les patterns de modélisation peuvent créer des éléments et fournir des informations sur le rôle de chaque participant. Les patterns de modélisation sont des templates xml conçus pour la création d éléments de modélisation dans les diagrammes sans génération de code source. La disponibilité des patterns dépend de votre licence Together. Dans Together Designer, les seuls patterns disponibles sont des patterns de modélisation. Des patterns de code source sont disponibles dans Together Developer. Cependant, si vous disposez des deux licences, Designer et Developer, vous pouvez utiliser les patterns de modélisation dans les projets UML 1.4 et 2.0, créés dans JBuilder. Les patterns résident à divers emplacements. Néanmoins, vous pouvez gérer les patterns quel que soit leur emplacement physique sur le disque dur. Le fichier Pattern Registry définit la présentation hiérarchique virtuelle des patterns. Toutes les actions relatives aux patterns sont effectuées avec l aide du Gestionnaire de patterns. Chapitre 7 : Patterns 167
178 Registre de patterns et gestionnaire de patterns Voir aussi Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes Registre de patterns et gestionnaire de patterns Important Le registre de patterns (fichier Pattern Registry) définit la présentation hiérarchique virtuelle des patterns. Together fournit un outil qui permet l exécution de toutes les opérations impliquant les patterns et le registre de patterns. C est le Gestionnaire de patterns. Toutes les opérations relatives aux patterns (déplacement, changement de nom, suppression) ne peuvent s effectuer que par l intermédiaire du gestionnaire de patterns. Les fichiers réels sur le disque ne sont pas modifiés par ces opérations. Toutes les modifications ne s appliquent qu au registre de patterns. Figure 7.1 Boîte de dialogue Gestionnaire de patterns Pour ouvrir la boîte de dialogue Gestionnaire de patterns, choisissez Outils Pattern Gestionnaire de patterns dans le menu principal. Avec le gestionnaire de patterns, vous pouvez : Analyser les catalogues afin de synchroniser le contenu du registre de patterns avec les patterns existants Filtrer les patterns par langage et catégorie Afficher le contenu du registre de patterns Afficher les champs et la description du pattern sélectionné Organiser logiquement les patterns en utilisant les raccourcis et les dossiers virtuels Trier les entrées par ordre alphabétique sous le nœud sélectionné Couper, copier, coller et supprimer des patterns et des dossiers Enregistrer les patterns et les dossiers modifiés Ces opérations sont détaillées dans les sections suivantes. 168 Guide de l utilisateur de Borland Together Developer 2005
179 Registre de patterns et gestionnaire de patterns Synchronisation des patterns Lorsque vous invoquez le gestionnaire de patterns pour la première fois durant la session, des patterns existants sont recherchés dans la structure du disque. Ce faisant, les patterns supprimés le sont définitivement dans le registre de patterns, les nouveaux patterns sont ajoutés et les propriétés des patterns existants sont mises à jour. Filtrage et tri des patterns Pour filtrer les patterns par langage : 1 Dans la section Filtres du gestionnaire de patterns, cliquez sur la boîte liste Langage. 2 Choisissez le langage requis dans la liste déroulante. Résultat : La vue arborescente affiche les patterns correspondant au langage sélectionné. Pour filtrer les patterns par catégorie : 1 Dans la section Filtres du gestionnaire de patterns, cliquez sur la boîte liste Catégorie. 2 Choisissez la catégorie requise dans la liste déroulante. Résultat : La vue arborescente affiche les patterns qui appartiennent à la catégorie sélectionnée. Pour trier les nœuds par ordre alphabétique : 1 Dans la vue arborescente du gestionnaire de patterns, sélectionnez le dossier dont vous souhaitez trier le contenu. 2 Dans le menu contextuel de ce dossier, choisissez la commande Trier les branches dans l ordre alphabétique. Résultat : Tous les nœuds situés sous le nœud sélectionné sont affichés par ordre alphabétique croissant. Modification des noms Vous pouvez changer les noms des patterns, raccourcis et dossiers. Cette opération est effectuée dans la section Propriétés du gestionnaire de patterns qui propose des champs modifiables Pattern Name et Shortcut Name pour les patterns, et Folder Name pour les dossiers. Les autres propriétés sont affichées dans les champs en lecture seule. Pour modifier les propriétés des patterns : 1 Dans la vue arborescente du gestionnaire de patterns, sélectionnez le nœud à modifier. 2 Dans la section Propriétés, modifiez les champs requis. Résultat : Les modifications sont appliquées lorsque le champ modifié perd la focalisation ou lorsque vous appuyez sur la touche Entrée. Le nom du nœud dans l arborescence change en conséquence. Chapitre 7 : Patterns 169
180 Patterns de code source Patterns de code source Création de groupes logiques de patterns Comme mentionné plus tôt, le registre de patterns permet la gestion des patterns quel que soit leur emplacement réel. Vous pouvez créer des dossiers virtuels et regrouper les patterns logiquement pour satisfaire à vos exigences spécifiques. Ce faisant, vous ne manipulerez pas les patterns réels, mais leurs raccourcis. Ainsi, les raccourcis au même pattern peuvent être inclus dans plusieurs dossiers. Les informations sur les dossiers et les raccourcis sont stockées dans le fichier modules/com.togethersoft.modules.impl.pattern.manager/registry/ shortcut_registry.xml sous le répertoire d installation. Chaque fois que vous créez un dossier ou un raccourci dans le gestionnaire de patterns, une nouvelle entrée est ajoutée dans le registre des raccourcis. Pour créer un nouveau dossier : 1 Ouvrez le gestionnaire de patterns (Outils Pattern Gestionnaire de patterns). 2 Dans la vue arborescente des patterns, sélectionnez le conteneur dans lequel vous souhaitez ajouter un nouveau dossier. 3 Dans le menu contextuel, choisissez la commande Nouveau Dossier. Résultat : Un nouveau dossier est ajouté en bas du conteneur sélectionné. Pour créer un nouveau raccourci : 1 Ouvrez le gestionnaire de patterns (Outils Pattern Gestionnaire de patterns). 2 Dans la vue arborescente des patterns, sélectionnez le conteneur dans lequel vous souhaitez ajouter un nouveau raccourci. 3 Dans le menu contextuel, choisissez la commande Nouveau Raccourci. La boîte de dialogue Sélecteur de pattern s ouvre. 4 Dans cette boîte de dialogue, sélectionnez le pattern requis et cliquez sur OK. Résultat : Un nouveau raccourci est ajouté en bas du conteneur sélectionné. Voir aussi Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes Un pattern de code source peut être considéré comme un formulaire prêt à être rempli pour une instance spécifique. Prenons un exemple simple : le template par défaut d une classe. Lorsque vous créez une nouvelle classe Java, son nom par défaut est Sans_titre1 et le code par défaut généré pour cette classe se présente sous la forme : public class Sans_titre1 { En modifiant le pattern approprié, vous pouvez changer ce nom (par exemple, New1 ). Plus important, vous pouvez également modifier le code par défaut, en ajoutant des attributs ou opérations par défaut. Vous pouvez par exemple modifier le code par défaut d une classe Java de sorte qu une opération addnew() par défaut soit toujours générée lorsque vous créez des nouvelles classes dans les diagrammes : public class Sans_titre1 { public void addnew() { 170 Guide de l utilisateur de Borland Together Developer 2005
181 Patterns de code source Avertissement Cette fonction peut de prime abord vous sembler sans importance, mais imaginez ses implications pour des éléments comme les Enterprise JavaBeans (EJB). Lorsque vous utilisez la fonctionnalité d EJB en un clic, vous obtenez le code source par défaut d un EJB entité ou session. En modifiant les patterns de code appropriés, vous pouvez personnaliser le code par défaut des classes EJB, interfaces home et remote, etc., en ajoutant des champs, propriétés, méthodes métier ou ce que vous voulez au source par défaut généré pour les nouvelles instances d un élément particulier des diagrammes. Les patterns de code prennent en charge les spécifications des SDK Java 1.4 et 5.0. Les patterns Java sont fournis par le module /modules/com.togethersoft.modules. impl.patterns.java dans votre installation JBuilder. Le répertoire racine du module contient la structure suivante : templatesjava/java/<catégorie>/<nom_pattern>, où la <catégorie> est CLASS, LINK ou MEMBER. Chaque dossier <nom_pattern> contient les fichiers suivants : %Name%.java facultatif <nom_pattern>.properties. Certains noms de patterns commencent par le préfixe Default_. Ce sont les patterns par défaut utilisés à chaque création d un nouvel élément de diagramme. Ces patterns ne sont pas visibles dans la boîte de dialogue Choix d un pattern. Les patterns par défaut sont modifiables, mais vous devez les traiter avec une attention particulière. Les modifications inappropriées peuvent empêcher le fonctionnement correct de Together et la création d éléments de diagrammes. Néanmoins, vous pouvez toujours rétablir le code par défaut en utilisant l expert Pattern de code. Toutes les actions relatives aux patterns de code sont effectuées en utilisant l expert Pattern de code. Vous pouvez créer de nouveaux patterns, modifier le code source comme les valeurs des propriétés, ou supprimer des patterns. Catégories de patterns de code source Les patterns de code source vous permettent de créer et/ou de modifier les éléments qui appartiennent aux catégories suivantes : classes liens membres Propriétés du pattern Les propriétés des patterns de code source sont définies dans un fichier facultatif <nom_pattern>properties enregistré dans le même sous-dossier. Ce fichier comporte des valeurs qui seront remplacées par des macros lors de la génération d un nouvel objet, un indicateur qui spécifie si ce template sera affiché dans la boîte de dialogue Choix d un pattern, ainsi que d autres informations. Chapitre 7 : Patterns 171
182 Patterns de code source Le tableau ci-après présente les propriétés disponibles. Tableau 7.1 Propriétés des patterns disponibles Propriété defaultname defaulttype hideinchooselist generateprologueepilogue pasteclassestoonefile singleoccurrenceperclass donotkeeptag Description Nom de l objet créé ; sert de valeur de départ. Par exemple, Class1 pour la première classe générée, Class2 pour la suivante, etc. Définit le type des attributs et renvoie le type des opérations. Si cette propriété est présente dans le fichier *Properties, le pattern est ignoré par le panneau Sélecteur de pattern. Si cette propriété a la valeur true, un prologue et un épilogue prédéfinis seront générés. Certains patterns de classe et d interface stipulent la génération de deux classes. Si cet indicateur a la valeur true, les deux objets sont générés dans un même fichier. Contient une brève description de ce pattern au format HTML. Cette propriété se réfère aux liens et elle contient le nom de la balise qui ne doit pas être conservée lorsqu un objet est remplacé par un autre. Par exemple, donotkeeptag=link signifie que la doit être omise dans un nouveau lien. Astuce Pour obtenir une description détaillée des contrôles de l expert Pattern de code, cliquez sur le bouton Aide dans la fenêtre de boîte de dialogue. Utilisation des macros de patterns Vous remarquerez que le code par défaut livré avec Together utilise plusieurs macros de patterns. Par exemple, le code de la classe par défaut utilise la macro %Name% : public class %Name% { Cette macro développe le nom de la classe par défaut spécifié dans les propriétés (Sans_titre1 par défaut). Vous pouvez utiliser toutes les macros disponibles dans le code. Chaque catégorie de pattern gère certaines macros prédéfinies. Les catégories de patterns et les macros correspondantes sont présentées dans le tableau ci-après. Tableau 7.2 Catégories de patterns et macros correspondantes Catégorie de pattern Classe Membre Lien Macros gérées %Name%,%Class_Name% %Name%,%Type%,%Class_Name% %Name%,%Type%,%Dst% Les macros qui ne sont pas prises en charge par une certaine catégorie de patterns sont ignorées par l analyseur ; un pattern contenant des macros non gérées ne pourra pas être utilisé. Il existe une dépendance rigide entre la catégorie du pattern et le contenu de l inspecteur. Pour les classes et les interfaces, un seul contrôle lié au pattern avec le nom de la classe apparaît dans l inspecteur. La valeur du nom de la classe remplace la macro %Name% dans le pattern. Pour les liens, le champ Nom fait référence à la macro %Name% et le champ Destination du lien à la macro %DST%. Pour les membres (attributs ou opérations), le champ Nom fait référence à la macro %Name% et le champ Type à la macro %Type%. 172 Guide de l utilisateur de Borland Together Developer 2005
183 Patterns de code source Macros définies par l utilisateur Outre les macros standard, chaque type de pattern peut gérer un nombre illimité de macros définies par l utilisateur. Le nom des macros définies par l utilisateur suit les mêmes règles de syntaxe que celui des dossiers de patterns (les espaces sont interdits). L inspecteur fournit un contrôle spécial pour chaque macro avec le nom de cette macro, et les caractères de soulignement sont remplacés par des espaces. Exemple : Le contrôle Nom d attribut personnalisé correspond à la macro $Nom_attribut_personnalisé$. Il est possible d attribuer des valeurs par défaut aux macros définies par l utilisateur. Ces valeurs initialisent les contrôles appropriés dans la boîte de dialogue Sélecteur de pattern. Pour attribuer une valeur par défaut à une macro définie par l utilisateur : 1 Dans le navigateur de fichiers, naviguez jusqu au dossier de pattern désiré. 2 Ouvrez le fichier des propriétés du pattern pour le modifier. 3 Dans l éditeur, ajoutez la ligne default.$nom_attribut_personnalisé$=<valeurdéfaut>. 4 Enregistrez les modifications. Les macros sans valeur par défaut prédéfinie sont initialisées avec une chaîne vide. Création de patterns de code Avertissement Utilisez l expert Pattern de code pour créer de nouveaux patterns. Vous ne créez pas seulement les nouveaux patterns, mais également les raccourcis aux patterns existants. Si vous spécifiez un nom qui existe déjà, un raccourci sera créé. Le nombre de raccourcis n est pas limité. Les modifications effectuées à n importe quel raccourci se propagent au pattern original. Les patterns qui viennent d être créés sont enregistrés dans le répertoire home de l utilisateur de l application, sous le dossier patterns\template. Par exemple, pour les systèmes Windows, ce sera C:\Documents and Settings\<nom_utilisateur>\.jbuilder2005\patterns\template. Pour créer un nouveau pattern de code : 1 Dans le menu principal, choisissez Outils Pattern Créer un pattern de code. L expert Pattern de code s ouvre. 2 Sur la première page de l expert (Choix d un scénario de création de pattern), vous pouvez opter pour la création du pattern à partir de zéro ou utiliser le code existant pour créer le pattern. Chapitre 7 : Patterns 173
184 Patterns de code source Figure 7.2 Expert Pattern de code Etape 1 Pour créer un pattern à partir de code existant, cliquez sur le bouton radio Utilisation du code de l élément. Par défaut, l élément actuellement sélectionné est affiché. Cliquez sur le bouton pour ouvrir le dialogue Sélection d un élément, et choisissez un autre source dans Modèle, Bibliothèques ou Favoris. Vous pouvez également ajouter du code source à partir des autres participants. Dans le champ Et des autres participants, entrez les noms, séparés par des virgules, ou cliquez sur le bouton pour ouvrir le gestionnaire de sélection et constituer la liste des participants voulue. Pour créer un pattern à partir de zéro, cliquez sur le bouton radio Ecriture d un nouveau code et choisissez le langage et la catégorie du pattern dans les boîtes à options respectives. Cliquez sur Suivant pour continuer. 3 Sur la seconde page de l expert (Création d un nouveau pattern ou sélection d un pattern existant), cliquez sur le bouton Nouveau pattern et spécifiez le nom du pattern. Un pattern vide est créé. Cliquez sur Suivant. Figure 7.3 Expert Pattern de code Etape 2 Remarque Pour créer un groupe de patterns, utilisez le bouton Nouveau dossier. Sur la deuxième page de l expert, vous pouvez supprimer les patterns ou les dossiers inutiles en utilisant le bouton Supprimer. Vous pouvez également rétablir le code source original des patterns par défaut s ils ont été modifiés préalablement. Appuyez sur le bouton Réinitialiser aux valeurs par défaut pour copier le code source original du pattern sélectionné dans l archive modules/com.togethersoft. modules.impl.patterns.java/default.zip. 174 Guide de l utilisateur de Borland Together Developer 2005
185 Patterns de code source 4 Sur la troisième page de l expert (Configuration des macros de patterns), spécifiez les propriétés et les macros de patterns. Spécifiez le nom par défaut et définissez les options suivantes : Figure 7.4 Expert Pattern de code Etape 3 Générer prologue et épilogue Cacher dans la liste de sélection Coller toutes les classes créées dans un fichier Ces champs correspondent aux macros et aux propriétés disponibles pour la catégorie sélectionnée du pattern. Cliquez sur Suivant pour continuer. 5 Sur la quatrième page de l expert (Modification du texte du pattern), écrivez ou modifiez le code source du pattern. Utilisez les boutons de macros pour insérer des macros dans le code source. Si le pattern est créé sur la base d un code existant, utilisez le bouton Insérer code pour copier le code source du prototype sélectionné dans la zone d édition. Ce faisant, la macro %Name% est automatiquement insérée dans le texte du pattern et les noms des autres participants sont automatiquement paramétrés en tant que macros définies par l utilisateur, ce qui produit un code source prêt à l emploi, où il vous reste à faire quelques modifications et du formatage. Figure 7.5 Expert Pattern de code Etape 4 En plus des macros normales, vous pouvez insérer autant de macros définies par l utilisateur que nécessaire, au moyen du bouton $UserDefined$. Le comportement suivant de l expert dépend de la présence de macros définies par l utilisateur dans le code source du pattern. Chapitre 7 : Patterns 175
186 Patterns de code source Formatez le code source résultant si nécessaire, en utilisant le bouton Formater le source. Cliquez sur Suivant. Si des macros définies par l utilisateur ont été utilisées, allez à l étape 6 ; sinon, ignorez l étape 6 et allez à l étape 7. 6 Si des macros définies par l utilisateur ont été introduites à l étape précédente, l expert présente la page 5 (Configuration des macros de l utilisateur) qui affiche la liste de toutes les macros définies par l utilisateur et disponibles, avec leurs noms affichés et leurs valeurs par défaut. Figure 7.6 Expert Pattern de code Etape 5 7 Dans la dernière page de l expert (Spécification de la description du pattern), écrivez ou modifiez la description du pattern qui sera visible dans le gestionnaire de patterns et dans la boîte de dialogue Choix d un pattern. Un aperçu de la description est immédiatement affiché. Cliquez sur Terminer lorsque vous avez terminé. Figure 7.7 Expert Pattern de code Etape 6 Résultat : Les patterns qui viennent d être créés sont placés dans le répertoire home de l utilisateur de l application, sous le dossier patterns\template. Ce faisant, la structure de répertoires habituelle est créée : templates\java\<catégorie>\ <nom_pattern>. Si vous le souhaitez, vous pouvez créer les patterns de code manuellement. Dans ce cas, vous devez vous assurer que les patterns ainsi créés sont corrects. Pour créer manuellement un pattern de code personnalisé : 1 Selon le langage et le type de pattern souhaité (classe, lien ou membre), créez un dossier dans l emplacement approprié. Le nom de ce dossier doit être identique au nom du pattern créé. Les noms de dossiers ne doivent pas comporter d espaces ; remplacez-les par des caractères de soulignement. En revanche, dans le panneau 176 Guide de l utilisateur de Borland Together Developer 2005
187 Patterns de code source Choix d un pattern, les caractères de soulignement sont remplacés par des espaces. Par exemple : patterns\template\java\class\my_pattern. 2 Dans ce dossier, créez le fichier %Name%Java et les fichiers de propriétés facultatifs portant le même nom que le dossier du pattern. Ecrivez le code source du fichier pattern. 3 Ecrivez le contenu du fichier de propriétés. 4 Redémarrez Together afin que les nouveaux patterns soient disponibles. Résultat : Les nouveaux patterns créés sont affichés dans le gestionnaire de patterns et dans la boîte de dialogue Choix d un pattern. Vous pouvez maintenant utiliser les nouveaux patterns pour créer des classes et des liens par patterns. Modification des patterns de code Astuce Pour modifier un pattern de code : 1 Dans le menu principal, choisissez Outils Pattern Créer un pattern de code. 2 Sur la première page de l expert, choisissez le langage et la catégorie du pattern. 3 Sur la deuxième page, choisissez le pattern requis et cliquez sur Suivant. 4 Sur la troisième page, faites les modifications nécessaires : configurez les macros de patterns et sélectionnez ou désélectionnez les cases à cocher de propriétés. Cliquez sur Suivant. 5 Sur la page 4 de l expert, qui affiche la code source du pattern sélectionné, modifiez le texte ou entrez un nouveau texte. Si vous voulez que votre pattern apparaisse dans le panneau Sélecteur de pattern, n incluez pas la propriété hideinchooselist=true dans le fichier de propriétés. Même si vous attribuez la valeur false à cette propriété, le panneau Sélecteur de pattern ignore le pattern. Cette ligne doit donc être omise. Utilisez les boutons de macros pour insérer des macros dans le code. Notez que l ensemble des boutons de macros activés dépend de la catégorie du pattern. Par exemple, le bouton de macro %DST% n est activé que pour les liens. Cliquez sur le bouton Formater le source pour appliquer le formatage au code source si nécessaire. Cliquez sur Suivant. 6 Sur la cinquième page de l expert, modifiez les macros définies par l utilisateur le cas échéant, et cliquez sur Suivant. 7 Sur la dernière page, modifiez la description du pattern et cliquez sur Terminer. Suppression des patterns de code et des dossiers Dans l expert Pattern de code, vous pouvez supprimer des patterns de codes individuellement, ainsi que des dossiers de patterns entiers. Pour supprimer un pattern de code ou un dossier : 1 Dans le menu principal, choisissez Outils Pattern Créer un pattern de code. 2 Sur la première page de l expert Pattern de code, choisissez le langage et la catégorie du pattern à supprimer et cliquez sur Suivant pour continuer. 3 Sur la deuxième page de l expert, qui affiche le contenu filtré, sélectionnez le pattern ou le dossier voulu et cliquez sur Supprimer. Chapitre 7 : Patterns 177
188 Patterns binaires Avertissement 4 Confirmez la suppression, puis passez aux autres éléments ou fermez l expert. L expert Pattern de code protège l intégrité de Together. Les patterns par défaut utilisés pour créer des éléments de diagrammes en un clic dont le nom commence par Default ne peuvent absolument pas être supprimés. Ainsi, si vous sélectionnez un pattern par défaut dans l arborescence de l expert, le bouton Retirer est désactivé. En revanche, vous pouvez modifier les patterns par défaut. Patterns binaires Voir aussi Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes Les patterns binaires sont des classes Java publiques qui implémentent l interface com.togethersoft.openapi.sci.pattern.scipattern. Comportement des patterns Le comportement d un pattern est défini par ses propriétés. L interface SciPattern définit les méthodes que vous devez implémenter dans votre pattern. Tableau 7.3 Méthode apply canapply prepare getproperties Création de patterns binaires en utilisant l API ouverte Les utilisateurs peuvent créer leurs propres patterns binaires personnalisés, en utilisant l API ouverte Pattern, située dans <JBH>\lib\ext\sci-api.jar\com\togethersoft\ openapi\sci\pattern. Pour créer un pattern personnalisé : 1 Créez une classe java qui implémente l interface com.tgethersoft.openapi.sci.pattern.scipattern. 2 Placez cette classe dans le sous-package approprié : com.togethersoft.modules.patterns.<langage>.<catégorie>. 3 Compilez la classe. Méthodes de l interface SciPattern Description Indique au pattern les actions appropriées à effectuer. Vérifie si le pattern peut être appliqué à l objet cible ou aux objets avec les valeurs en cours des propriétés de pattern. Vérifie si ce pattern peut être appliqué à l objet cible ou à tous les objets, et effectue certaines préparations de démarrage pour le pattern. Renvoie true si tout est OK et false si le pattern ne peut pas être appliqué à l objet cible ou à tous les objets. Renvoie une instance de PropertyMap qui contient toutes les propriétés du pattern. 4 Placez la classe compilée et toutes les ressources nécessaires dans le sous-dossier patterns\sci_code du répertoire utilisateur de l application (C:\Documents and Settings\<nom_utilisateur>\.jbuilder2005\patterns\sci_code) 5 Démarrez l application et appelez le gestionnaire de patterns. Cela se fait une seule fois, pour placer le pattern dans le cache. 178 Guide de l utilisateur de Borland Together Developer 2005
189 Patterns binaires Création de descriptions de patterns Pour créer une description pour votre pattern, vous devez placer un fichier Description.html dans le répertoire de votre pattern. Le contenu de ce fichier apparaît dans la section Description de la boîte de dialogue Choix d un pattern. Création d un exemple de pattern personnalisé Considérez le pattern exemple suivant, qui produit une classe java dans un package. La classe java possède une seule méthode main() qui affiche Hello world! sur la console. Le nom de la classe à créer est spécifié via l interface utilisateur. 1 Créez la classe Java package com.togethersoft.modules.patterns.java.class.user_pattern; import javax.swing.*; import java.awt.*; import com.togethersoft.openapi.sci.*; import com.togethersoft.openapi.sci.pattern.scipattern; import com.togethersoft.openapi.sci.pattern.scipatternproperty; import com.togethersoft.openapi.sci.pattern.singlepagepatternui; import com.togethersoft.openapi.util.propertymap.propertymap; import com.togethersoft.openapi.util.propertymap.defaultpropertymap; public class Pattern implements SciPattern { private PropertyMap myproperties; private SinglePagePatternUI myui; private JTextField myclassname; public Pattern() { myproperties = new DefaultPropertyMap(); myproperties.setpropertyvalue(scipatternproperty.pattern_name,"sample of User Pattern"); public PropertyMap getproperties(){ return myproperties; public boolean prepare(){ JPanel panel = new JPanel(); myclassname = new JTextField("Sample"); panel.setlayout(new GridBagLayout()); panel.add(new JLabel("Class Name"), new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 5, 5), 0, 0)); panel.add(myclassname, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 5, 5), 0, 0)); myui = new SinglePagePatternUI(panel); myproperties.setpropertyvalue(scipatternproperty.pattern_ui,myui); return true; public boolean canapply(){ Object o = myproperties.getpropertyvalue(scipatternproperty.container); if (o instanceof SciPackage) { return true; return false; Chapitre 7 : Patterns 179
190 Patterns binaires public void apply(){ SciPackage container = (SciPackage)myProperties.getPropertyValue(SciPatternProperty.CONTAINER); SciFactory factory = SciModelAccess.getModel().getFactory(SciLanguage.JAVA); SciClass cls = factory.newclass(); cls.setname(myclassname.gettext()); SciObject obj = container.paste(cls,null,true); if (obj instanceof SciClass){ cls = (SciClass)obj; else { return; SciOperation main = factory.newoperation(); main.setname("main"); main.getparameterlist().settext("string[] argv"); main.setproperty(sciproperty.static,true); main.setproperty(sciproperty.public,true); SciGenericFactory genericfactory = SciModelAccess.getModel().getGenericFactory(SciLanguage.JAVA); SciCodeBlock body = null; try { body = genericfactory.newcodeblock("system.out.println(\"hello world!\");"); main.setbody(body); catch (SciGenericFactoryException ex) { cls.paste(main,null,true); 2 Compilez la classe. Compilez la classe créée à l étape précédente dans le dossier cible C:\Documents and Settings\<utilisateur>\.jbuilder2005\patterns\sci_code. Pour que la compilation de cette classe se déroule correctement, vous avez besoin des bibliothèques suivantes : <JBH>\lib\ext\sci-api.jar <JBH>\lib\ext\util.jar 3 Fournissez des ressources Copiez les ressources nécessaires. Finalement, le dossier C:\Documents and Settings\<nom_utilisateur>\.jbuilder2005\patterns\sci_code\com\togethersoft\ modules\patterns\java\class\user_pattern\ contient les fichiers suivants : Pattern.class Description.html Voir aussi Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes 180 Guide de l utilisateur de Borland Together Developer 2005
191 Patterns de modélisation Patterns de modélisation Cette fonctionnalité est prise en charge dans Together Developer uniquement si une licence Together Designer est détectée. Un pattern de modélisation est une séquence d instructions, ou actions, servant à créer des entités et des liens et à définir leurs propriétés. Chaque instruction crée un élément de modélisation ou un lien entre les éléments de modélisation. Non seulement les patterns de modélisation permettent de créer des éléments, mais ils peuvent être utilisés pour modifier les entités de modélisation déjà existantes. Dans ce cas, une entité portant le nom spécifié est recherchée dans le modèle. Si une telle entité n existe pas, le nouvel élément est créé par pattern. Sinon, les patterns sont appliqués à l entité existante. Les patterns de modélisation permettent la création d éléments de tout type supporté. Un élément peut être créé dans n importe quel diagramme qui supporte ce type d élément particulier. Les patterns de modélisation sont stockés sous la forme de fichiers XML dans le dossier modules/com.togethersoft.modules.impl.patterns/design_templates. Création de patterns de modélisation Il est possible de baser un nouveau pattern de modélisation sur un ou plusieurs éléments de modélisation existants, sélectionnés dans un diagramme. En procédant de cette façon, les nœuds du diagramme et les patterns ne peuvent pas être utilisés pour créer de nouveaux patterns. Ces éléments ne sont pas reconnus par l expert Pattern de modélisation. Pour créer un pattern de modélisation à partir d un ou de plusieurs éléments de modélisation existants : 1 Sélectionnez les éléments de modélisation requis dans l éditeur de diagramme ou dans le navigateur de modèle. 2 Dans le menu principal, choisissez Outils Pattern Créer un pattern de modélisation. L expert Pattern de modélisation s ouvre. Figure 7.8 Expert Pattern de modélisation Etape 1 3 Sélectionnez le dossier dans lequel créer le pattern de modélisation ou appuyez sur le bouton Nouveau dossier pour en créer un. Chapitre 7 : Patterns 181
192 Patterns de modélisation 4 Appuyez sur le bouton Nouveau pattern. Ce bouton n est activé que si des éléments ont été sélectionnés. La boîte de dialogue suivante s ouvre : Figure 7.9 Spécification du nom du nouveau pattern de modélisation et de ses contrôles 5 La boîte de dialogue Création d un nouveau pattern de modélisation affiche la liste des éléments sélectionnés et pour lesquels des contrôles seront créés dans la boîte de dialogue Choix d un pattern. Spécifiez les paramètres suivants : Nom du pattern de modélisation Désactivez la case en regard des éléments qui n ont pas besoin de contrôles. Cliquez sur OK et revenez à l expert Pattern de modélisation. 6 Cliquez sur Suivant. 7 Sur la deuxième page (Modifier la description du pattern), effectuez les modifications nécessaires et cliquez sur Terminer. Figure 7.10 Expert Pattern de modélisation Etape 2 Voir aussi Gestionnaire de patterns dans l aide en ligne Expert Pattern de modélisation dans l aide en ligne Chapitre 3, Utilisation des diagrammes Migration de patterns utilisateur, page Guide de l utilisateur de Borland Together Developer 2005
193 Patterns de première classe Patterns de première classe Le pattern de première classe est un type spécifique de pattern qui contient des informations sur le nom du pattern et le rôle de chaque participant. Lorsqu il s applique à un diagramme, un tel pattern crée ses entités et est présenté sur le diagramme lui-même, avec les liens aux entités créées. De tels patterns permettent des modifications ultérieures par l ajout de nouveaux participants. Visuellement, un pattern est présenté sur un diagramme comme un ovale avec le nom du pattern et la liste de participants extensible. Chaque participant est connecté à l ovale du pattern par un lien, libellé avec le rôle du participant. Figure 7.11 Le pattern Facade Voir aussi Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes Reconnaissance des patterns Important Together fournit la capacité d analyser le code source existant et de reconnaître les patterns utilisés. Cette fonctionnalité est destinée à la reconnaissance des patterns GOF. Pour reconnaître les patterns : 1 Ouvrez une package contenant le code source souhaité. 2 Dans le menu principal, choisissez Outils Patterns Reconnaissance des patterns de code. Le dialogue Reconnaissance de patterns s affiche avec la liste des patterns qu il est possible de rechercher. Figure 7.12 Dialogue Reconnaissance de patterns avec la liste des patterns qu il est possible de reconnaître 3 Désélectionnez les patterns inutiles et cliquez sur OK pour lancer le processus de reconnaissance de Together. Résultat : Les patterns reconnus apparaissent dans le volet Résultat de la reconnaissance. Chapitre 7 : Patterns 183
194 Reconnaissance des patterns Figure 7.13 Volet Résultat de la reconnaissance Une fois que vous avez reconnu des patterns dans le code source, vous pouvez créer les objets correspondants dans les diagrammes ou, si de tels objets existent déjà, naviguer jusqu à eux dans leurs diagrammes respectifs. Pour restaurer l objet du pattern correspondant : 1 Dans le volet Résultat de la reconnaissance, mettez la focalisation sur le pattern reconnu et choisissez Créer un objet Pattern dans le menu contextuel. Le dialogue Créer un objet Pattern s ouvre. Figure 7.14 Dialogue Créer un objet Pattern Astuce 2 Dans la fenêtre de dialogue, cliquez sur le bouton radio Créer dans un diagramme, si vous voulez créer l objet pattern dans un diagramme existant. Sinon, cliquez sur le bouton radio Créer un diagramme de classe. 3 Sélectionnez l emplacement du diagramme de destination et cliquez sur OK. Résultat : L objet pattern correspondant apparaît dans le diagramme spécifié. Si l emplacement du diagramme diffère de l emplacement du package source, il s affiche des raccourcis vers les classes source. Il est également possible de restaurer plusieurs objets pattern. Pour ce faire, sélectionnez les nœuds des objets pattern que vous voulez dans la vue arborescente Résultat de la reconnaissance (cliquez sur le nœud en maintenant la touche CTRL enfoncée), et choisissez la commande Créer les objets Pattern sélectionnés dans le menu contextuel de la sélection. Depuis la vue arborescente Résultat de la reconnaissance, vous pouvez naviguer vers les éléments des patterns dans les diagrammes et modifier le code source sous-jacent. Pour trouver un élément dans un diagramme, il suffit de mettre la focalisation sur le pattern reconnu ou sur un des éléments qu il contient, dans le volet Résultat de la reconnaissance, et de choisir Sélectionner sur le diagramme dans le menu contextuel. Pour ouvrir le code source afin de le modifier, mettez la focalisation sur le pattern reconnu ou sur un des éléments qu il contient, dans le volet Résultat de la reconnaissance, et choisissez Ouvrir le source dans l éditeur dans le menu contextuel. Voir aussi Patterns de première classe, page 183 Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes 184 Guide de l utilisateur de Borland Together Developer 2005
195 Application des patterns Application des patterns L utilisateur peut appliquer les patterns explicitement (en utilisant des commandes de menus) ou implicitement (par les boutons de la barre d outils). Lorsque vous créez un élément sur un diagramme en utilisant l un des boutons de la barre d outils, vous appliquez en fait un pattern par défaut qui est connecté au bouton sélectionné. Dans le cas d une invocation explicite, les patterns sont appliqués en utilisant la commande Créer par pattern (Modifier par pattern) disponible dans les menus contextuels du navigateur de modèle et du modeleur de diagramme. Ces commandes invoquent la boîte de dialogue Choix d un pattern. Important Remarque Pour créer un élément par pattern : 1 Choisissez le conteneur dans lequel vous voulez ajouter un élément créé par pattern. Il peut s agir d un nœud sur le navigateur de modèle, de l arrière-plan d un diagramme ou d un élément de diagramme. 2 Dans le menu contextuel du conteneur, choisissez la commande Nouveau Elément par pattern qui ouvre la boîte de dialogue Choix d un pattern. 3 Dans cette boîte de dialogue, sélectionnez le pattern désiré. L ensemble des patterns disponibles dépend du conteneur cible sélectionné. Les patterns qui n appartiennent pas au conteneur sélectionné ne sont pas affichés dans la boîte de dialogue Choix d un pattern. Par exemple, si vous cliquez sur une classe définie comme conteneur cible, vous pouvez alors choisir un pattern à partir d une opération, d un attribut ou d une classe interne ; les autres patterns ne sont pas affichés. 4 Dans la section Paramètres de la boîte de dialogue, spécifiez les valeurs nécessaires. Pour les différents types de patterns, la vue de la page et l ensemble des paramètres sont différents. En particulier : Le volet de prévisualisation n est disponible que pour les patterns de code textuels. Si vous souhaitez appliquer l un des patterns GoF en tant que pattern de première classe, n oubliez pas de cocher l option Create pattern object. Sinon, seules les classes participantes sont créées. 5 Cliquez sur Terminer pour appliquer le pattern. Si les nouveaux éléments sont ajoutés en utilisant les templates de code, ils sont réellement créés avec les noms incrémentés. Lorsque vous appliquez des patterns de modélisation, souvenez-vous qu un nouvel élément n est PAS créé s il existe dans le conteneur cible un élément de même nom et métatype. Ainsi, si vous avez besoin d un nouvel élément, pensez à modifier le nom de l élément dans la boîte de dialogue Choix d un pattern. Les patterns de première classe créent l objet pattern et réutilisent les éléments existants de même nom, comme le montre l illustration suivante : Figure 7.15 Réutilisation d éléments Chapitre 7 : Patterns 185
196 Migration de patterns utilisateur Vous pouvez également effectuer le refactoring des classes et liens existants en remplaçant un pattern existant par un pattern plus approprié. Vous pouvez réaliser cette opération au cas par cas ou sur plusieurs éléments sélectionnés. Remarque Pour effectuer le refactoring de classes ou liens : 1 Sélectionnez les éléments dans le modeleur de diagramme. 2 Cliquez sur Modifier par pattern dans le menu contextuel des éléments sélectionnés pour afficher la boîte de dialogue Choix d un pattern. Les patterns qui peuvent être appliqués à l élément sélectionné sont signalés par une icône de pattern normal. Les autres sont signalés par l icône. 3 Comme dans la procédure précédente, sélectionnez le pattern souhaité, configurez-en les propriétés ou paramètres et cliquez sur Terminer. Certains patterns sont seulement utilisés pour créer des éléments. Ils ne peuvent pas être utilisés pour la modification des éléments existants. Ainsi, la liste des patterns disponibles dans les commandes Créer par pattern et Modifier par pattern peut être différente. Voir aussi Gestionnaire de patterns dans l aide en ligne Chapitre 3, Utilisation des diagrammes Migration de patterns utilisateur Vous avez probablement constitué une solide bibliothèque de patterns personnalisés à l aide des versions 6.x de Together. Il est toujours possible de les utiliser, à condition qu ils soient correctement migrés vers le nouveau produit. Il existe plusieurs façons d utiliser les patterns existants. Copiez les patterns existants dans le dossier template Le dossier template sert à stocker les nouveaux patterns créés, comme décrit dans la section Création de patterns de code, page Créez le dossier des patterns de code personnalisé dans le dossier home de l utilisateur de l application : \<home_utilisateur_application>\.jbuilder2005\ patterns\template\java\class, par exemple : C:\Documents and Settings\<nom_utilisateur>\.jbuilder2005\patterns\template\ JAVA\CLASS. 2 Copiez le pattern de code défini par l utilisateur résidant dans l ancien dossier %TGH%\ templates\java\class\<nom_template> dans le nouveau dossier spécifié ci-dessus. 3 Pour activer le pattern défini par l utilisateur, vous devez démarrer Java Studio et choisir Outils Gestionnaire de patterns dans le menu principal. Résultat : Le pattern s ajoute dans l arborescence des patterns sous son nom initial. Ce faisant, l emplacement physique du pattern ne change pas. Le pattern devient alors disponible dans la boîte de dialogue Choix d un pattern. Utilisation des anciens patterns binaires 1 Créez un dossier <home_utilisateur_application>\.jbuilder2005\patterns\sci_code. 2 Compilez les patterns. Utilisez les bibliothèques Open API, disponibles dans %JB%\ lib\ext. 186 Guide de l utilisateur de Borland Together Developer 2005
197 Migration de patterns utilisateur Les patterns compilés doivent avoir comme destination <home_utilisateur_application>\.jbuilder2005\patterns\sci_code. Par exemple : C:\Documents and Settings\<nom_utilisateur>\.jbuilder2005\ patterns\sci_code\com\togethersoft\modules\patterns\java\class\user_pattern\ Pattern.class. 3 Pour activer les patterns, vous devez démarrer JBuilder et choisir Outils Gestionnaire de patterns dans le menu principal. Résultat : Les patterns binaires sont ajoutés à l arborescence des patterns. Ce faisant, l emplacement physique des patterns ne change pas. Les patterns deviennent alors disponibles dans la boîte de dialogue Choix d un pattern. Voir aussi Notions de base sur les patterns, page 167 Gestionnaire de patterns dans l aide en ligne Chapitre 7 : Patterns 187
198 188 Guide de l utilisateur de Borland Together Developer 2005
199 Chapitre 8 8Exécution des audits et métriques Chapitre La fonctionnalité Contrôle qualité se compose de métriques et d audits, exécutés séparément. Pour accéder à ces fonctions, utilisez les commandes de Contrôle qualité dans le menu Projet. Cette section traite des sujets suivants : Audits Métriques Définitions des audits Définitions des métriques Audits Les audits vous aident à respecter et à appliquer les conventions de votre société tout en améliorant vos activités. Lorsque vous exécutez des audits, vous sélectionnez des règles spécifiques auxquelles votre code source doit se conformer. Vous obtenez en résultat les violations de ces règles, ce qui vous permet d examiner chaque problème et de décider si le code source est correct ou non. Together propose une large gamme d audits permettant de tout vérifier de la modélisation aux conventions d appellation. Une description en ligne vous indique ce que chaque audit recherche et des solutions vous sont suggérées pour corriger les violations décelées. Vous pouvez créer, enregistrer et réutiliser des ensembles d audits à exécuter. Together Developer est livré avec un ensemble prédéfini d audits correspondant aux conventions de Sun sur le code Java. Vous pouvez les charger et les utiliser à la place de l ensemble d audits par défaut ou des ensembles personnalisés que vous créez. Exécution des audits Les audits vérifient automatiquement le respect des règles standard ou définies par l utilisateur en matière de style, de maintenance et de robustesse. Avant d exécuter des audits, assurez-vous que le code qui va être audité est compilable. Si votre code source contient des erreurs ou si certaines bibliothèques ou certains chemins ne sont pas spécifiés, les audits risquent de produire des résultats inexacts. Chapitre 8 : Exécution des audits et métriques 189
200 Audits Pour exécuter des audits : 1 Choisissez Projet Contrôle qualité Audits dans le menu principal. La boîte de dialogue Audits s ouvre. 2 Dans la liste d options Portée, choisissez sur quoi exécuter les audits. Modèle traite le projet en entier. Sélection ne traite que les classes, packages ou diagrammes spécifiques sélectionnés dans le diagramme ou le navigateur. 3 Choisissez les audits à exécuter. Chaque audit affiche une description dans le panneau inférieur de la boîte de dialogue Audits. 4 Pour chaque audit, le niveau de gravité (parfois accompagné d options spécifiques aux audits) apparaît dans le volet de droite. Modifiez ces paramètres si nécessaire. 5 Lorsque vous avez sélectionné votre ensemble d audits, cliquez sur Démarrer. Le moniteur des activités montre la progression en pourcentage, jusqu à la fin du processus. Les audits s exécutant dans le thread des commandes, vous ne pouvez pas modifier le projet pendant ce temps. Les résultats s affichent automatiquement dans la vue Audits de la fenêtre Messages. Dans le tableau des résultats, cliquez avec le bouton droit sur une ligne quelconque pour ouvrir le menu contextuel puis, avec les commandes de ce dernier, effectuez les opérations nécessaires. Affichage du résultat des audits Les résultats de l audit sont affichés sous forme de tableau dans le volet Messages : Figure 8.1 Rapport des résultats des audits Seules les violations d audit sont affichées dans le tableau des résultats. De ce fait, le tableau n affiche pas nécessairement tous les audits exécutés ou tous les packages ou classes traités. Ce tableau contient les colonnes suivantes : Correction : Cette colonne affiche une icône pour les violations qui peuvent être corrigées automatiquement et une coche verte pour les violations déjà corrigées. Le symbole apparaît lorsqu une violation ne peut pas être corrigée. Sévérité : Indique à quel point, en général, les violations de l audit doivent être prises au sérieux. Cela vous aide à trier les résultats et à choisir les violations qui sont graves et celles qui ne le sont pas. Haute est affichée en rouge et Basse en bleu. Abréviation : Abréviation du nom de l audit. Le nom complet est affiché dans la description (choisissez Afficher une description dans le menu contextuel de la violation). Explication : Explique pourquoi l audit a marqué l élément. Elément : L élément du diagramme où le problème a été rencontré. Elément de code : L élément du code source qui a été marqué par l audit. Fichier : Le fichier contenant le code problématique. Ligne : Numéro, dans le fichier, de la ligne où se trouve le problème de code. Les résultats d audits sont étroitement liés au code source. Vous pouvez, à partir de n importe quelle ligne du rapport des résultats, accéder à l emplacement approprié dans le diagramme et le code source. Pour cela, sélectionnez dans le tableau la ligne 190 Guide de l utilisateur de Borland Together Developer 2005
201 Audits Astuce qui vous intéresse et double-cliquez dessus ou choisissez Ouvrir dans le menu contextuel. Si vous n avez encore rien sélectionné dans le diagramme ou le navigateur, la portée Sélection n est pas disponible. Si vous souhaitez exécuter des audits sur des classes, packages ou diagrammes spécifiques, veillez à les sélectionner correctement avant d ouvrir la boîte de dialogue Audits. Utilisation du rapport des résultats Dans le rapport des résultats de l audit, le menu contextuel contient les commandes suivantes : Afficher la description : Affiche une fenêtre avec le nom complet et une description de l audit sélectionné. Retirer Lignes sélectionnées : Retire du tableau les lignes sélectionnées. Types sélectionnés : Retire du tableau les audits sélectionnés (supprime toutes les lignes qui contiennent des violations de l audit ou des audits dans les lignes sélectionnées). Copier : Copie les lignes sélectionnées dans le Presse-papiers. Tout sélectionner : Sélectionne toutes les lignes pour que vous puissiez appliquer une autre commande (telle que Copier). Exporter Tableau entier : Enregistre le rapport dans un fichier distinct. Lignes sélectionnées : Enregistre les lignes sélectionnées dans un fichier distinct. Ces deux commandes ouvrent la boîte de dialogue Exportation des résultats dans un fichier, dans laquelle vous pouvez spécifier l emplacement et le format du fichier. Correction automatique : Modifie le code source pour corriger les violations sélectionnées. Cette option ouvre la boîte de dialogue Correction automatique. Pour de plus amples informations, voir Correction automatique des violations d audit, page 194. Ouvrir : Ouvre l élément sélectionné dans le diagramme et met en surbrillance le code approprié dans le volet Editeur. Voir Navigation jusqu au code source, page 192 Désactiver les règles sélectionnées : Retire du tableau les règles d audit sélectionnées quand vous actualisez les résultats. Cela exclut de l ensemble en cours les audits sélectionnés, de sorte que ces règles sont ignorées lorsque vous utilisez Actualiser ou Actualiser les résultats. Il suffit de sélectionner une des violations d un audit pour désactiver la règle. Pour de plus amples informations, voir Mise à jour des résultats, page 192. Actualiser : Recalcule les résultats (synchronise le rapport avec les mises à jour apportées au code source). Rafraîchir les violations : Recalcule les résultats mais uniquement sur les classes pour lesquelles le tableau des résultats affiche des violations. Redémarrer : Ouvre la boîte de dialogue Audit avec la même configuration que celle sélectionnée pour exécuter ces résultats. Chapitre 8 : Exécution des audits et métriques 191
202 Audits Grouper sur : Regroupe les éléments selon la colonne sélectionnée. Trier : Tri complexe. La boîte de dialogue qui apparaît vous permet de sélectionner jusqu à trois colonnes à utiliser pour trier les éléments. Pour de plus amples informations, voir Tri des résultats, page 192. Tri ascendant : Trie les lignes du rapport dans l ordre ascendant, en fonction des valeurs figurant dans la colonne sélectionnée. Tri descendant : Trie les lignes du rapport dans l ordre descendant, en fonction des valeurs figurant dans la colonne sélectionnée. Pour exécuter ces commandes, vous pouvez utiliser les boutons de la barre d outils proposée avec le rapport des résultats de l audit. Vous trouverez ultérieurement dans cette section plus de détails sur les commandes du menu contextuel. Navigation jusqu au code source Le rapport des résultats est étroitement lié aux éléments du diagramme et au code source. A l aide de ce rapport, vous pouvez aller jusqu à l endroit précis de la violation. 1 Séléctionnez un élément dans le rapport des résultats 2 Choisissez Ouvrir dans le menu contextuel (ou double-cliquez) pour arriver directement au code source. Tri des résultats Lors de la visualisation des résultats des audits, il peut s avérer utile de comparer et d organiser les éléments du tableau obtenu. Vous disposez de plusieurs méthodes de tri. Tri selon une colonne : Pour trier tous les éléments en fonction des valeurs d une colonne spécifique, cliquez avec le bouton droit n importe où dans cette colonne puis choisissez Tri ascendant ou Tri descendant. Raccourci : Vous pouvez aussi cliquer sur l en-tête de la colonne. La flèche située dans l en-tête indique l ordre de tri ; cliquez à nouveau pour inverser cet ordre Tri complexe : Pour désigner plusieurs colonnes selon lesquelles effectuer le tri, cliquez avec le bouton droit n importe où dans le tableau puis choisissez Trier, ou cliquez simplement sur le bouton. Dans la boîte de dialogue qui apparaît, vous pouvez sélectionner jusqu à trois colonnes à utiliser pour trier les éléments. Raccourci : Vous pouvez aussi maintenir la touche Maj enfoncée et cliquer sur l en-tête d une colonne pour l ajouter à la liste de tri. Les colonnes sélectionnées sont accompagnées de l ordre de tri (1, 2, 3, etc.). Maintenez la touche Maj enfoncée et cliquez à nouveau pour changer cet ordre. Un clic sur un en-tête de colonne (sans appuyer sur la touche Maj) annule le tri complexe et définit le tri sur cette colonne uniquement. Regroupement des résultats d audits : Pour regrouper des éléments selon la colonne en cours, cliquez avec le bouton droit dans le tableau Audit puis choisissez Grouper sur. Cette fonction permet d organiser les résultats en changeant la relation des lignes et colonnes. Mise à jour des résultats Vous pouvez mettre à jour ou rafraîchir le tableau des résultats à partir du menu contextuel du tableau. Cliquez sur Actualiser pour recalculer les résultats actuellement affichés. Cliquez sur Redémarrer pour ouvrir la boîte de dialogue Audits, dans laquelle vous pouvez modifier les paramètres selon vos besoins et exécuter à nouveau les audits. Les nouveaux résultats remplacent les résultats affichés. 192 Guide de l utilisateur de Borland Together Developer 2005
203 Audits Cliquez sur Rafraîchir les violations pour ne vérifier que les classes affichées dans le tableau des résultats. Les classes qui n ont généré aucune violation n étant pas réexécutées, les performances sont meilleures. Cette option est utile pour effectuer une comparaison après avoir apporté des modifications ; elle est en outre beaucoup plus rapide que l exécution d audits sur toutes les classes. Choisissez Désactiver les règles sélectionnées dans le menu contextuel pour supprimer du tableau de résultats les règles d audit sélectionnées après avoir réactualisé les résultats. Les audits sélectionnés sont ainsi exclus des audits à exécuter et ces règles sont ignorées lorsque vous rafraîchissez les résultats. Impression des résultats des audits Vous pouvez imprimer le tableau entier de violations d audit ou sélectionner des lignes et des colonnes spécifiques à imprimer. Pour imprimer la liste des violations d audit : 1 Sélectionnez les lignes du tableau à imprimer, puis cliquez avec le bouton droit. Pour imprimer la liste en entier, ne sélectionnez rien. 2 Choisissez Imprimer dans le menu contextuel ou cliquez sur dans la barre d outils. La boîte de dialogue d impression apparaît alors. 3 Sous Sélectionner les colonnes à imprimer, cochez les cases correspondant aux colonnes à imprimer. Toutes les colonnes sont cochées par défaut ; enlevez la coche en regard de celles dont vous n avez pas besoin. 4 Sous Portée, choisissez Toutes les lignes pour imprimer la liste en entier ou Lignes sélectionnées pour n imprimer que les lignes que vous avez sélectionnées. 5 Si nécessaire, visualisez l aperçu avant impression et modifiez l échelle d impression. 6 Cliquez sur Imprimer pour ouvrir la boîte de dialogue d impression et envoyer le fichier à l imprimante. Exportation des résultats d audits Exportez les résultats de l audit vers un fichier texte ou HTML pour les partager avec d autres membres de votre équipe ou les étudier plus tard. Pour enregistrer les résultats des audits dans un fichier distinct : 1 Sélectionnez les lignes du tableau à enregistrer, puis cliquez avec le bouton droit. Pour enregistrer la liste en entier, inutile de faire une sélection. 2 Dans le menu contextuel du tableau de résultats, pointez sur Exporter ou, dans la barre d outils, cliquez sur. 3 Dans la boîte de dialogue Exportation des résultats dans un fichier obtenue, choisissez la portée des résultats à exporter (Tableau entier ou Lignes sélectionnées), puis spécifiez l emplacement et le nom du fichier cible. 4 Dans la liste déroulante Type de sortie, sélectionnez le format du fichier exporté. Séparé par des tabulations Le tableau des résultats est enregistré dans un fichier texte avec des tabulations entre les colonnes. Aligné avec des espaces Le tableau des résultats est enregistré dans un fichier texte avec les colonnes alignées par des espaces. Générer un fichier HTML Le tableau des résultats est enregistré sous forme de tableau dans un fichier HTML. Les descriptions de l audit sont enregistrées dans un dossier distinct, avec des hyperliens vers les descriptions du fichier de résultats. 5 Cliquez sur OK pour enregistrer les résultats dans l emplacement spécifié. Chapitre 8 : Exécution des audits et métriques 193
204 Audits Correction automatique des violations d audit Certaines règles d audit permettent la correction automatique des violations. Vous pouvez ainsi apporter une solution rapide à certains problèmes lorsque vous exécutez des audits pour vérifier votre code. Le tableau ci-dessous répertorie les audits qui disposent dans leurs fonctionnalités de la correction automatique. Tableau 8.1 Liste des audits avec prise en charge de la correction automatique Groupe d audits Abréviation Abréviation Style de déclaration CPASBF Constant Private Attributes Should Be Final (les attributs privés constants doivent être finals) Documentation DCBA Detect Collection-Based Associations (détecter les associations basées sur des collections) Erreurs possibles CSF Call super.finalize() from finalize() (appeler Call super.finalize() à partir de finalize()) Erreurs possibles UL Use L Instead of l at the End of Integer Constants (utiliser L au lieu de l à la fin des constantes entières) Contenu superflu ILC Import List Construction (importer construction de liste) Contenu superflu OIM Obsolete Interface Modifiers (modificateurs d interface obsolètes) Contenu superflu UIMM Unnecessary Interface Member Modifiers (modificateurs de membres d interface inutiles) Contenu superflu UPCM Unused Private Class Members (membres de classes privés non utilisés) Dans le tableau des résultats, les violations qui peuvent être automatiquement corrigées sont marquées par un feu vert dans la colonne Correction. Si une violation ne peut pas être corrigée automatiquement, elle est marquée par un feu rouge. Un symbole de verrou indique qu une violation ne peut pas être corrigée car elle se trouve dans un fichier en lecture seule. Pour corriger automatiquement les violations : 1 Dans le tableau des résultats, sélectionnez les lignes comportant des violations à corriger. 2 Cliquez avec le bouton droit, puis choisissez Correction automatique dans le menu contextuel ou, dans la barre d outils, cliquez sur. 3 Pour chaque violation, le système vous demande de confirmer la correction. Dans la boîte de dialogue Correction automatique, cliquez sur Oui pour corriger la violation affichée ou sur Non pour l ignorer. Vous avez la possibilité de définir la portée de votre confirmation sous Assumer cette réponse pour. Vous avez ainsi le choix entre, d une part, gérer individuellement chaque violation et, d autre part, corriger immédiatement ou ignorer un groupe de violations. 4 Les violations qui ont été corrigées sont marquées avec une coche verte dans la colonne Correction. Le code source corrigé apparaît en surbrillance dans le volet de l éditeur. Enregistrement d ensembles d audits à exécuter La boîte de dialogue Audits affiche l ensemble de tous les audits disponibles et dont les fonctionnalités correspondent à celles des propriétés du projet. Lorsque vous ouvrez un projet, un sous-ensemble par défaut de tous les audits disponibles est activé. Les audits actifs sont indiqués par une coche. Si vous ouvrez la boîte de dialogue et cliquez sur Démarrer, tous les audits actifs sont traités. 194 Guide de l utilisateur de Borland Together Developer 2005
205 Audits Comme il n est pas toujours utile d exécuter tous les audits de l ensemble, vous avez la possibilité de choisir un sous-ensemble des audits disponibles. Java Studio permet de créer et d enregistrer des ensembles d audits actifs, que vous chargerez et traiterez à votre gré. Pour cela, sur la barre d outils de la boîte de dialogue Audits, utilisez les boutons Charger l ensemble et Enregistrer l ensemble. Vous pouvez toujours rétablir l ensemble actif par défaut en cliquant sur le bouton Valeurs par défaut dans la boîte de dialogue Audits. Le tableau suivant montre les boutons de la barre d outils proposée par la boîte de dialogue Audits, ainsi que leurs raccourcis clavier. Tableau 8.2 Boutons de la barre d outils et leurs raccourcis clavier dans la boîte de dialogue Audits Bouton Description Raccourci Charger l ensemble. Ouvre un sélecteur de fichiers dans lequel vous pouvez choisir un fichier.adt et charger un ensemble personnalisé d audits. Enregistrer l ensemble sous. Ouvre une boîte de dialogue dans laquelle vous spécifiez l emplacement et le nom de l ensemble d audits sélectionné à enregistrer dans un fichier.adt. Tout sélectionner. Coche les cases de tous les audits de la boîte de dialogue. Tout désélectionner. Désactive les cases de tous les audits de la boîte de dialogue. Valeurs par défaut. Réattribue aux audits sélectionnés leur ensemble par défaut (enregistré dans le fichier default.adt). Utilisez l ensemble des audits actifs par défaut ou tout autre ensemble enregistré comme base de création d un nouvel ensemble enregistré. Par exemple, vous pouvez charger l ensemble d audits enregistré SunCodeConventionsforJava.adt pour créer un autre ensemble à partir de lui. L emplacement par défaut des ensembles d audits enregistrés est modules/com.togethersoft.modules.impl.qa/, dans le dossier d installation de Java Studio. Pour créer un ensemble enregistré d audits actifs : 1 Dans le menu principal, choisissez Projet Contrôle qualité Audits pour ouvrir la boîte de dialogue Audits. Dans la boîte de dialogue Audits, les boutons de la barre d outils fournissent des commandes d utilisation des ensembles d audits. 2 Si vous voulez baser votre nouvel ensemble enregistré sur l ensemble par défaut, cliquez sur le bouton Valeurs par défaut. Si vous souhaitez le baser sur un ensemble personnalisé déjà créé, cliquez sur le bouton Charger l ensemble, puis choisissez le fichier *.adt enregistré à utiliser. 3 Parcourez les différents audits et cochez ceux que vous voulez ajouter à l ensemble ou désactivez ceux que vous voulez exclure. Pour sélectionner tous les éléments d un groupe, cochez le nom de ce groupe. 4 Une fois votre sélection terminée, cliquez sur le bouton Enregistrer l ensemble sous, puis indiquez l emplacement et le nom du fichier *.adt enregistré. Pour utiliser un ensemble enregistré d audits actifs : 1 Dans le menu principal, choisissez Projet Contrôle qualité Audits pour ouvrir la boîte de dialogue Audits. 2 Cliquez sur Charger l ensemble et choisissez le fichier *.adt à utiliser. 3 Cliquez sur Démarrer. Alt+L Alt+A Alt+S Alt+U Alt+D Astuce Vous pouvez inclure les fichiers.adt dans votre routine de sauvegarde. Chapitre 8 : Exécution des audits et métriques 195
206 Métriques Voir aussi Définitions des audits, page 208 Boîte de dialogue Audit dans l aide en ligne Boîte de dialogue Exportation des résultats dans un fichier dans l aide en ligne Métriques Les métriques évaluent la complexité des modèles d objets et quantifient votre code. Il vous incombe ensuite d étudier leurs résultats et de décider s ils sont acceptables. Ces résultats peuvent mettre en évidence des parties de code devant être modifiées ou permettre de créer des rapports et de comparer l impact global des changements sur un projet. Les métriques sont accompagnées d astuces en ligne sur l utilisation de leur analyse et sur l interprétation des résultats. Comment utiliser les métriques? Les recommandations suivantes sont issues de l ouvrage Object-Oriented Metrics: Measures of Complexity de Brian Henderson-Sellers. Vous trouverez d autres titres dans Sources d information supplémentaires, page 207. L utilisation des métriques dépend de la maturité de l entreprise et par conséquent du niveau d organisation et de contrôle du processus de développement. Les métriques utilisées peuvent être juxtaposées au niveau organisationnel, comme le montre le tableau suivant : Tableau 8.3 Identification du niveau organisationnel dans le modèle de maturité CMM et utilisation des métriques Niveau Caractéristiques Métriques à utiliser Initial Ad hoc De base Reproductible Processus dépendant des individus Produit Défini Processus défini et institutionnalisé Produit Géré Processus mesuré (gestion quantitative) Commentaires de contrôle du processus Optimisé Amélioration continue du processus Commentaires visant à la modification du processus Métriques de base aucun ordre d utilisation. Métriques produit estiment et mesurent la taille. Métriques processus estiment le travail nécessaire (en fonction de la taille et de la productivité de l équipe) En revanche, la répartition des métriques en deux groupes (produit et processus) est relative car la même métrique peut représenter la taille du produit et son impact sur la productivité. Les métriques peuvent avoir divers objectifs comme l estimation des coûts, la gestion des projets, l évaluation de la qualité, le calcul de la productivité, la détection des problèmes ou la maintenance des programmes. 196 Guide de l utilisateur de Borland Together Developer 2005
207 Métriques Pour appliquer correctement les métriques, les responsables et développeurs doivent observer plusieurs règles résumées ci-dessous : Tableau 8.4 Niveau de gestion Gestion fonctionnelle Gestion de projets Equipe du projet Together Developer fournit en ligne des conseils d utilisation des résultats de certaines métriques. Pour consulter ces conseils, cliquez sur l onglet Conseil du graphe de distribution. Lorsque vous interprétez les résultats, n appliquez pas les limites suggérées de façon trop rigide car chaque limite peut tout à fait être dépassée pour de bonnes raisons. En fait, considérez chaque cas comme une exception plutôt que comme la règle. Exécution des métriques Le langage Java prend en charge une large gamme de métriques. Pour obtenir une liste des métriques disponibles, consultez Définitions des métriques, page 246. Vous pouvez définir, enregistrer et réutiliser des ensembles de métriques à exécuter. Pour de plus amples informations, voir Enregistrement d ensembles d audits à exécuter, page 194. Avant d exécuter des métriques, assurez-vous que le code à analyser peut être compilé. Si votre code source comporte des erreurs, ou si certains chemins et bibliothèques ne sont pas inclus, les métriques peuvent générer des résultats imprécis. Pour analyser les métriques : 1 Assurez-vous que la fonctionnalité de contrôle qualité est activée (que votre rôle vous y donne accès). 2 Ouvrez un projet. Règles d application des métriques logicielles Règles 1. Ne laissez personne dans votre organisation appliquer des métriques aux individus. 2. Définissez des objectifs clairs et impliquez votre personnel dans la définition des métriques. 3. Etudiez les données dont vos employés sont fiers ; ne les utilisez pas contre eux ; ne laissez pas entendre que vous pourriez le faire. 4. N insistez pas sur une métrique en particulier au détriment d une autre. 5. Encouragez vos salariés lorsque leurs rapports comportent des données utiles pour l organisation. 6. N essayez pas d appliquer les métriques à des individus. 7. Etablissez les métriques que vous allez suivre avec les membres de votre équipe et définissez-les dans un plan. 8. Informez régulièrement les membres de l équipe des données recueillies à l aide de ces métriques. 9. Renseignez-vous sur l objectif stratégique de votre organisation et mettez en avant les métriques qui correspondent à cette stratégie dans vos rapports. 10. Faites de votre mieux pour recueillir des données précises et pertinentes. 11. Aidez vos responsables à axer les données du projet sur l amélioration de votre processus. 12. N utilisez pas les métriques pour vous vanter de vos bons résultats car vous encourageriez l attitude inverse. 3 Choisissez Projet Contrôle qualité Métriques dans le menu principal. La boîte de dialogue Métriques s ouvre. 4 Dans Portée, choisissez sur quoi exécuter les métriques : Modèle traite le projet en entier. Sélection ne traite que les classes, packages ou diagrammes spécifiques sélectionnés dans le diagramme ou le navigateur. Chapitre 8 : Exécution des audits et métriques 197
208 Métriques Astuce 5 Choisissez les métriques à analyser. Pour chaque métrique, une description s affiche dans le volet inférieur de la boîte de dialogue Métriques. Si vous n avez encore rien sélectionné dans le diagramme ou le navigateur, la portée Sélection n est pas disponible. Si vous souhaitez exécuter des métriques sur des classes, packages ou diagrammes spécifiques, veillez à les sélectionner correctement avant d ouvrir la boîte de dialogue Métriques. 6 Pour chaque métrique existent des paramètres d options telles que les limites et la granularité, qui apparaissent dans le volet de droite de la boîte de dialogue Métriques. Modifiez ces paramètres si nécessaire. 7 Lorsque vous avez sélectionné votre ensemble de métriques, cliquez sur Démarrer. Les métriques s exécutant dans le thread des commandes, vous ne pouvez pas modifier le projet pendant ce temps. Les résultats s affichent automatiquement dans la vue Métriques de la fenêtre Messages. Dans le tableau des résultats, sélectionnez un élément et choisissez Ouvrir dans le menu contextuel pour y accéder directement dans le diagramme ou le code source. Résultats des métriques Un rapport des résultats des métriques s affiche en tant que tableau dans la vue Métriques du volet Messages. Les lignes indiquent les classes, packages ou diagrammes qui ont été analysés, et les colonnes contiennent les valeurs des métriques sélectionnées. Figure 8.2 Rapport contenant les résultats des métriques Il est également possible d afficher les résultats des métriques sous forme de graphiques, comme le décrit la section Affichage du résultat des audits, page 190. Les résultats sont étroitement liés au code source. Vous pouvez, à partir de n importe quelle ligne du tableau, accéder à l emplacement approprié dans le diagramme et le code source. Pour cela, sélectionnez une ligne dans le tableau, double-cliquez sur cette ligne ou choisissez Ouvrir dans le menu contextuel. La même fonctionnalité est disponible sur l histogramme (voir Histogramme, page 199). Tri des résultats dans le tableau Lors de la visualisation des résultats des métriques, il peut s avérer utile de comparer et d organiser les éléments du tableau obtenu. Vous disposez de plusieurs méthodes de tri. Tri selon une colonne : Pour trier tous les éléments en fonction des valeurs d une colonne spécifique, cliquez avec le bouton droit n importe où dans cette colonne puis choisissez Tri ascendant ou Tri descendant. Raccourci : Vous pouvez aussi cliquer sur l en-tête de la colonne. La flèche située dans l en-tête indique l ordre de tri ; cliquez à nouveau pour changer cet ordre. 198 Guide de l utilisateur de Borland Together Developer 2005
209 Métriques Tri complexe : Pour désigner plusieurs colonnes selon lesquelles effectuer le tri, cliquez avec le bouton droit n importe où dans le tableau puis choisissez Trier, ou cliquez sur le bouton de la barre d outils. Dans la boîte de dialogue qui apparaît, vous pouvez sélectionner jusqu à trois colonnes à utiliser pour trier les éléments. Raccourci : Vous pouvez aussi maintenir la touche Maj enfoncée et cliquer sur l en-tête d une colonne pour l ajouter à la liste de tri. Les colonnes sélectionnées sont accompagnées de l ordre de tri (1, 2, 3, etc.). Maintenez la touche Maj enfoncée et cliquez à nouveau pour changer cet ordre. Un clic sur un en-tête de colonne (sans appuyer sur la touche Maj) annule le tri complexe et définit le tri sur cette colonne uniquement. Mise à jour des résultats : Vous pouvez mettre à jour ou réactualiser le tableau des résultats à partir du menu contextuel de ce tableau. Choisissez Actualiser dans le menu contextuel ou cliquez sur le bouton de la barre d outils pour recalculer les résultats affichés. Cliquez sur Redémarrer ou cliquez sur le bouton de la boîte à outils pour ouvrir la boîte de dialogue Métriques, dans laquelle vous pouvez sélectionner l ensemble à exécuter et modifier des options si nécessaire. Filtrage des résultats Vous pouvez filtrer les résultats affichés pour obtenir un rapport de résultats plus clair. Utilisez les commandes de visualisation du menu contextuel ou les boutons de la barre d outils. Vue Packages et classes ou le bouton de la barre d outils pour afficher les nœuds des packages avec classes et pouvant être développés. Vue Classes seulement ou le bouton de la barre d outils pour afficher la liste des classes. Vue Violations de classes seulement ou le bouton de la barre d outils pour afficher les classes contenant des violations. Vue Packages seulement ou le bouton de la barre d outils pour afficher la liste des packages. Affichage des graphiques de résultats Trois vues graphiques permettent de récapituler les résultats des métriques : histogrammes, graphes de distribution et graphes de Kiviat. Pour un affichage graphique des résultats des métriques : 1 Dans le tableau, cliquez avec le bouton droit dans une cellule contenant les résultats d une métrique. 2 Dans le menu contextuel, choisissez le type de graphique à afficher (histogramme, distribution ou Kiviat). Vous trouverez plus de détails sur ces graphiques dans les sections suivantes. Histogramme L histogramme affiche les résultats d une métrique sélectionnée pour tous les packages, classes et/ou opérations. La couleur des barres reflète la conformité aux valeurs limites de la métrique de référence. Le vert représente des valeurs situées dans la limite autorisée. Le rouge représente les valeurs dépassant la limite supérieure. Le bleu représente les valeurs inférieures à la valeur minimale autorisée. Une mince ligne rouge verticale représente la limite supérieure et une mince ligne bleue verticale représente la limite inférieure. Chapitre 8 : Exécution des audits et métriques 199
210 Métriques Astuce Pour afficher les résultats d une autre métrique, sélectionnez la métrique voulue dans la liste déroulante de la boîte de dialogue. Vous pouvez consulter l explication de la métrique en cours dans l onglet Description. Pour définir la portée des résultats à afficher, choisissez Package, Classe ou Opération dans la liste déroulante de la boîte de dialogue. Pour ne voir les résultats que des lignes en surbrillance dans le tableau (et non de toutes les lignes), cochez Lignes sélectionnées seulement. Pour parcourir le tableau et voir le graphique, cochez la case Mise à jour automatique. Si cette option est désactivée, le graphique affiche les valeurs des lignes initialement sélectionnées et ne change pas même si vous avez sélectionné d autres lignes du tableau. Dans la fenêtre de l éditeur de diagramme, vous pouvez passer directement de l histogramme au code source à l éditeur du source et à l élément correspondant. Double-cliquez sur une barre du graphique ou cliquez avec le bouton droit sur cette barre et choisissez Ouvrir. Les histogrammes ou les graphes de distribution n affichent que les nœuds développés dans le tableau de résultats. Si vous avez l impression que certains objets manquent dans ces graphiques, cela est certainement dû au fait qu ils sont masqués dans le tableau. Utilisez les boutons +/- à gauche du tableau pour développer ou replier les branches avant de générer un graphique. L illustration ci-dessous affiche un histogramme de la métrique CBO. Figure 8.3 Métrique CBO : Histogramme des résultats du projet exemple Graphe de distribution Le graphe de distribution affiche la distribution des valeurs pour tous les packages, classes et/ou opérations d une métrique sélectionnée. Il est particulièrement utile pour obtenir une vue d ensemble d un projet sous l angle d une métrique spécifique. Une mince ligne rouge verticale représente la limite supérieure et une mince ligne bleue verticale représente la limite inférieure. Cochez Log X pour afficher l axe x sur une échelle logarithmique. Dans la plupart des cas, cela facilite l interprétation du graphique. Pour afficher les résultats d une autre métrique, sélectionnez la métrique voulue dans la liste déroulante de la boîte de dialogue. Pour définir la portée des résultats à afficher, choisissez Package, Classe ou Opération dans la liste déroulante de la boîte de dialogue. Pour ne voir que les résultats des lignes en surbrillance dans le tableau (plutôt que toutes les lignes), cochez Lignes sélectionnées seulement. Pour parcourir le tableau et voir le graphique, cochez la case Mise à jour automatique. Si cette option est désactivée, le graphique affiche les valeurs des lignes initialement sélectionnées et ne change pas même si vous avez sélectionné d autres lignes du tableau. 200 Guide de l utilisateur de Borland Together Developer 2005
211 Métriques Pour obtenir une explication générale de la métrique en cours, consultez l onglet Description. Pour obtenir des conseils sur l interprétation des résultats et sur leur amélioration, consultez l onglet Conseil. Sous cet onglet, vous trouverez aussi les valeurs extrêmes (supérieures et/ou inférieures) de la métrique en cours, dans des tableaux appelés Hauts en cours et Bas en cours. Ces tableaux indiquent les packages ou classes à réviser. Pour modifier les limites supérieure et inférieure ainsi que d autres options définies pour la métrique en cours, cliquez sur l onglet Options. L illustration ci-dessous affiche un graphe de distribution des classes dans l exemple, pour la métrique CBO. Figure 8.4 Métrique CBO : Graphe de distribution des classes à partir du projet exemple Graphe de Kiviat Le graphe de Kiviat affiche les résultats de l analyse de la classe ou du package actuellement sélectionné pour toutes les métriques à valeurs limites prédéfinies. Les résultats apparaissent le long des axes qui partent du centre du graphique. Chaque axe a une échelle logarithmique, la base logarithmique représentant la limite supérieure des métriques et toutes les valeurs supérieures étant équidistantes du centre. Ainsi, les limites et les valeurs sont affichées avec la notation suivante : Les limites supérieures sont représentées par un cercle rouge, tous les points situés à l extérieur de ce cercle violant la limite supérieure. Les limites inférieures sont représentées par une zone bleue, tous les points situés à l intérieur de cette zone violant la limite inférieure. Notez que cette indication n apparaît pas dans les zones du graphique dont les limites inférieures sont définies à 1 ou 0. Les métriques réelles sont affichées sous forme d étoile, leurs valeurs étant représentées par des points. Les points verts représentent les valeurs acceptables. Les points bleus représentent les valeurs situées en dessous de la limite inférieure. Les points rouges représentent les valeurs dépassant la limite supérieure. Les marques d échelle apparaissent sous forme de traits situés dans le sens des aiguilles d une montre et perpendiculaires au rayon Kiviat. Chapitre 8 : Exécution des audits et métriques 201
212 Métriques Les libellés de limite inférieure apparaissent sous la forme de traits bleus situés dans le sens inverse des aiguilles d une montre et perpendiculaires au rayon Kiviat. L illustration ci-dessous affiche un graphe de Kiviat du package <default>, dans le projet exemple. Figure 8.5 Graphe de Kiviat pour le projet exemple Impression des résultats Pour imprimer des résultats, vous avez le choix entre imprimer le tableau affiché dans le volet Messages ou imprimer les graphiques. Vous pourriez également exporter les résultats dans le format souhaité, puis imprimer le fichier enregistré. Impression des résultats à partir du tableau Pour imprimer la totalité du tableau, cliquez avec le bouton droit n importe où dans le tableau et choisissez Imprimer dans le menu contextuel. Dans la boîte de dialogue qui apparaît, vous pouvez afficher un aperçu avant impression et définir l échelle d impression. Pour imprimer les résultats de métriques spécifiques : 1 Cliquez avec le bouton droit n importe où dans le tableau et choisissez Imprimer dans le menu contextuel ou, dans la barre d outils, cliquez simplement sur. 2 Sous Sélectionner les colonnes à imprimer, cochez les cases correspondant aux métriques dont vous voulez imprimer les résultats (par défaut, toutes les colonnes sont sélectionnées ; vous devez donc désactiver les métriques que vous ne voulez pas imprimer). 3 Sous Portée, cochez Développer les nœuds si vous voulez imprimer le contenu des nœuds développés. Si l option Développer les nœuds est désactivée, seuls les éléments actuellement visibles dans le tableau seront imprimés. 4 Si nécessaire, visualisez l aperçu avant impression et modifiez l échelle d impression. Pour imprimer les résultats de lignes spécifiques : 1 Sélectionnez les lignes du tableau à imprimer. 2 Choisissez Imprimer dans le menu contextuel. La boîte de dialogue d impression apparaît alors. 3 Sous Portée, choisissez Lignes sélectionnées. 202 Guide de l utilisateur de Borland Together Developer 2005
213 Métriques 4 Sous Portée, cochez Développer les nœuds si vous voulez imprimer le contenu des nœuds développés. Si l option Développer les nœuds est désactivée, seuls les éléments actuellement visibles dans les lignes sélectionnées seront imprimés. 5 Sous Sélectionner les lignes à imprimer, cochez les cases correspondant aux colonnes que vous voulez imprimer pour les lignes sélectionnées (par défaut, toutes les colonnes sont cochées). 6 Si nécessaire, visualisez l aperçu avant impression et modifiez l échelle d impression. Impression des résultats graphiques Pour imprimer un graphique : 1 Ouvrez le graphique à imprimer, comme le décrit la section Affichage du résultat des audits, page Dans la boîte de dialogue qui apparaît, cliquez sur le bouton Imprimer. 3 Dans la boîte de dialogue qui apparaît, vous pouvez afficher un aperçu avant impression et définir l échelle d impression. 4 Cliquez sur OK pour envoyer le graphique à l imprimante. Exportation des résultats des métriques Exportez les résultats des métriques vers un fichier texte ou HTML pour les partager avec d autres membres de votre équipe ou les étudier plus tard. Vous pouvez aussi les enregistrer dans un format tel que vous pourrez les recharger ultérieurement pour faire des comparaisons. Pour enregistrer les résultats des métriques dans un fichier distinct : 1 Dans le menu contextuel du tableau des résultats, pointez sur Exporter et choisissez la portée des résultats à exporter (Tableau entier ou Lignes sélectionnées). Pour exporter l intégralité du tableau, cliquez sur dans la barre d outils. 2 Dans la boîte de dialogue Exportation des résultats dans un fichier, indiquez l emplacement et le nom du fichier cible. 3 Dans la liste déroulante Type de sortie, sélectionnez le format du fichier exporté. Séparé par des tabulations : Enregistre le tableau des résultats dans un fichier texte avec des tabulations entre les colonnes. Aligné avec des espaces : Enregistre le tableau des résultats dans un fichier texte où les colonnes sont alignées à l aide d espaces. Générer un fichier HTML : Enregistre le tableau des résultats sous forme de tableau dans un fichier HTML. Les descriptions des métriques sont enregistrées dans un dossier distinct, avec des hyperliens vers les descriptions du fichier de résultats. Créer un rapport HTML multifichier : Le tableau des résultats est enregistré sous forme d un ensemble de fichiers HTML, avec des hyperliens permettant de naviguer dans l arborescence du projet et dans les liens donnant accès à des descriptions de métriques (voir Création de rapports HTML avec hyperliens pour les métriques, page 204). Enregistrer en format chargeable : Le tableau des résultats est enregistré dans un fichier *.mtbl qui peut être rechargé indépendamment du projet (voir Enregistrement et chargement des résultats des métriques, page 204). 4 Cliquez sur OK pour enregistrer les résultats dans l emplacement spécifié. Chapitre 8 : Exécution des audits et métriques 203
214 Métriques Création de rapports HTML avec hyperliens pour les métriques Pour les résultats des métriques, vous pouvez générer un rapport au format HTML sous forme d un ensemble de fichiers HTML avec hyperliens. Vous obtenez ainsi un fichier distinct pour chaque package et classe impliqué dans l analyse, un fichier qui couvre les résultats de tous les packages et un fichier pour toutes les classes. Tous ces fichiers sont reliés entre eux par des hyperliens qui facilitent la navigation dans l arborescence du projet. Les descriptions des différentes métriques sont également enregistrées et liées aux résultats, donc plus faciles à consulter. Pour générer un rapport HTML avec hyperliens : 1 Dans le menu contextuel du tableau des résultats, pointez sur Exporter et choisissez la portée des résultats à exporter (Tableau entier ou Lignes sélectionnées). 2 Dans Type, choisissez Créer un rapport HTML multifichier. 3 Dans Répertoire, indiquez le chemin d accès au dossier dans lequel vous voulez enregistrer les fichiers du rapport, ou cliquez sur le bouton sélecteur pour sélectionner un chemin. 4 Sous Options Html, indiquez où enregistrer les fichiers HTML qui contiennent la description de chaque métrique. Cette description, identique à celle affichée dans la boîte de dialogue Métriques, peut être référencée à partir du rapport HTML. Par défaut, ces fichiers sont enregistrés dans un dossier appelé \descriptions sous le répertoire que vous avez indiqué pour la sortie. Pour indiquer un autre dossier, désactivez l option Emplacement standard (pour de plus amples informations sur la façon de définir ces options, cliquez sur Aide dans la boîte de dialogue). 5 Cochez la case Lancer le visualiseur pour ouvrir automatiquement le rapport dans le navigateur. 6 Cliquez sur OK. Lorsque vous consultez le rapport, servez-vous des liens pour voir toutes les classes ou tous les packages. Cliquez sur un en-tête de colonne (abréviation d une métrique) pour voir le nom complet et la description de cette métrique. Enregistrement et chargement des résultats des métriques Après avoir exécuté des métriques, vous pouvez enregistrer les résultats pour une consultation ultérieure indépendamment du projet. Vous pouvez utiliser les fichiers obtenus pour partager les résultats des métriques avec d autres utilisateurs ou pour comparer différents ensembles de résultats sur la durée. Si vous n enregistrez pas les résultats, vous ne pourrez plus les voir après avoir fermé le tableau. Les résultats de métriques enregistrés ont l extension.mtbl. Pour enregistrer un ensemble de résultats de métriques : 1 Cliquez avec le bouton droit n importe où dans le tableau des résultats et choisissez Exporter Tableau entier dans le menu contextuel. 2 Dans la boîte de dialogue Exportation des résultats dans un fichier, indiquez le chemin d accès au répertoire dans lequel vous voulez enregistrer le fichier et le nom à attribuer à ce fichier. 3 Dans Type de sortie, sélectionnez Enregistrer en format chargeable. 4 Dans le champ Commentaire, tapez une brève description du tableau de résultats que vous enregistrez. A l ouverture du fichier, ce texte apparaît comme titre du tableau. Si vous laissez ce champ vierge, le nom du fichier est utilisé comme titre du tableau. Le fichier est enregistré avec l extension.mtbl. 204 Guide de l utilisateur de Borland Together Developer 2005
215 Métriques Pour charger un ensemble de résultats de métriques enregistré : 1 Choisissez Projet Contrôle qualité Charger les résultats des métriques dans le menu principal. Il n est pas nécessaire qu un projet soit ouvert. 2 Dans la boîte de dialogue Chargement des résultats des métriques, naviguez jusqu au fichier *.mtbl qui contient les résultats à consulter, puis cliquez sur OK. Vous pouvez choisir n importe quel fichier *.mtbl existant ; cette fonctionnalité est indépendante du projet. 3 Choisissez l onglet Métriques du volet Messages pour afficher le tableau des résultats. Le sous-onglet du tableau affiche le nom ou le texte qui a été saisi dans le champ Commentaire à l enregistrement du fichier. Si ce champ a été laissé vierge, le nom de fichier abrégé est utilisé à la place. Lorsque vous placez le curseur sur ce nom, une bulle affiche le chemin d accès complet et le nom du fichier *.mtbl enregistré. Comparaison des résultats des métriques Si vous avez plusieurs ensembles de résultats de métriques ouverts, vous pouvez comparer les valeurs d un tableau à celles d un autre tableau. Utilisez cette fonctionnalité pour comparer des projets ou des modifications apportées à un projet sur la durée. Les différences entre les résultats peuvent être mises en surbrillance dans le tableau et affichées dans des info-bulles. Lorsque vous comparez deux tableaux, des couleurs sont utilisées pour mettre en évidence les différences. Lorsque vous comparez des valeurs spécifiques dans plusieurs tableaux, l info-bulle qui apparaît sur une cellule comporte la liste des tableaux avec leur valeur pour cette cellule (c est-à-dire les résultats pour la même métrique dans le même objet). La commande Aller vers un objet de la table permet de passer rapidement de l objet sélectionné dans le tableau en cours au même objet dans un autre tableau. Pour signaler les différences, les conventions suivantes ont été adoptées : La valeur plus élevée est dans un rectangle rose. La valeur plus basse est dans un rectangle violet. Une info-bulle affiche les valeurs de la même cellule dans différents tableaux de résultats. Une cellule non comparée est dans un rectangle gris. Pour comparer des tableaux : 1 Assurez-vous que tous les tableaux que vous voulez comparer sont ouverts. Les différences seront affichées dans le tableau qui détient la focalisation. 2 Cliquez avec le bouton droit n importe où dans le tableau et choisissez Comparer dans le menu contextuel. 3 Dans la boîte de dialogue Comparer, vous pouvez changer les couleurs qui serviront à mettre en évidence les différences. Pour cela, utilisez les boutons de sélection des couleurs : Chapitre 8 : Exécution des audits et métriques 205
216 Métriques Figure 8.6 Boîte de dialogue Comparer Supérieures représente la couleur utilisée pour mettre en évidence les cellules comportant une valeur supérieure à celles de l autre tableau. Inférieures représente la couleur utilisée pour mettre en évidence les cellules comportant une valeur inférieure à celle de l autre tableau. Non trouvées représente la couleur utilisée pour mettre en évidence des cellules qui n existent pas dans l autre tableau. Si les valeurs sont identiques, elles ne sont pas mises en surbrillance (le fond de la cellule est blanc). 4 La liste déroulante de Comparer avec affiche tous les tableaux ouverts. Choisissez le tableau avec lequel vous voulez comparer visuellement les résultats. Ce cadre affiche un message si certaines colonnes du premier tableau sont absentes du second. Si vous sélectionnez Pas de comparaison, aucune cellule ne sera mise en surbrillance. 5 Sous Afficher dans des info-bulles, sélectionnez le nom des tableaux à inclure dans les info-bulles lors de la comparaison des valeurs des cellules. Ajoutez-les à la case Tables sélectionnées. 6 Si vous ne voulez pas afficher les info-bulles, laissez vide la case Tables sélectionnées. 7 Cliquez sur OK. Figure 8.7 Exemple d un ensemble de résultats généré avec la boîte de dialogue Comparaison Pour supprimer la surbrillance et les info-bulles de comparaison : 1 Cliquez avec le bouton droit n importe où dans le tableau et choisissez Comparer dans le menu contextuel. 2 Dans Comparer avec, choisissez Pas de comparaison et cliquez sur OK. Le tableau revient à l état dans lequel il se trouvait avant la comparaison. Pour rechercher un objet correspondant dans un autre tableau : 1 Cliquez avec le bouton droit n importe où dans la ligne du package, de la classe ou de l opération à rechercher. 206 Guide de l utilisateur de Borland Together Developer 2005
217 Métriques 2 Choisissez Aller vers un objet de la table dans le menu contextuel. 3 Le sous-menu affiche la liste des tableaux ouverts. Choisissez celui dans lequel rechercher l objet. Si l objet s y trouve, ce tableau s ouvre et l objet correspondant est sélectionné. Si le tableau ne s ouvre pas, cela signifie que l objet est introuvable. Enregistrement d ensembles de métriques à exécuter La boîte de dialogue Métriques affiche l ensemble de toutes les métriques disponibles et dont les fonctionnalités correspondent à celles des propriétés du projet. Lorsque vous ouvrez un projet, un sous-ensemble par défaut de toutes les métriques disponibles est activé. Les métriques actives sont indiquées par une coche. Si vous ouvrez la boîte de dialogue et cliquez sur Démarrer, toutes les métriques actives sont traitées. Comme il n est pas toujours utile d exécuter toutes les métriques de l ensemble, vous avez la possibilité de choisir un sous-ensemble des métriques disponibles. Vous pouvez créer et enregistrer des ensembles de métriques actives, que vous chargerez et traiterez à votre gré. Vous pouvez toujours rétablir l ensemble actif par défaut en cliquant sur le bouton Valeurs par défaut dans la boîte de dialogue Métriques. Pour créer un ensemble enregistré de métriques actives : 1 Ouvrez la boîte de dialogue Métriques (Projet Contrôle qualité Métriques). Dans la boîte de dialogue Métriques, les boutons de la barre d outils fournissent des commandes d utilisation des ensembles de métriques. 2 Si vous voulez baser votre nouvel ensemble enregistré sur l ensemble par défaut, cliquez sur le bouton Valeurs par défaut. Si vous souhaitez le baser sur un ensemble personnalisé déjà créé, cliquez sur le bouton Charger l ensemble, puis allez jusqu au fichier *.mts à utiliser. 3 Parcourez les différentes métriques et cochez celles que vous voulez ajouter à l ensemble ou désactivez celles que vous voulez exclure. Pour sélectionner tous les éléments d un groupe, cochez le nom de ce groupe. 4 Une fois votre sélection terminée, cliquez sur Enregistrer l ensemble sous, puis indiquez l emplacement et le nom du fichier *.mts enregistré. Pour utiliser un ensemble enregistré de métriques actives : 1 Ouvrez la boîte de dialogue Métriques (Projet Contrôle qualité Métriques). 2 Cliquez sur Charger l ensemble et choisissez le fichier *.mts à utiliser. 3 Cliquez sur Démarrer. Sources d information supplémentaires Shyam R. Chidamber and Chris F. Kemerer, A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), pp , Thomas J. McCabe, Complexity Measure. IEEE Transactions on Software Engineering, Volume 2, No 4, PP , décembre Arthur H. Watson and Thomas J. McCabe, Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric. Computer Systems Laboratory, National Institute of Standards and Technology, Gaithersburg, MD , September Halstead, Elements of Software Science. New York, Elsevier North-Holland, Brian Henderson-Sellers, Object-Oriented Metrics: Measures of Complexity. Prentice Hall, December Chapitre 8 : Exécution des audits et métriques 207
218 Définitions des audits Object-Oriented Metrics: an Annotated Bibliography, voir dec.bournemouth.ac.uk/eserg/eserg.html Voir aussi Définitions des métriques, page 246 Boîte de dialogue Métriques dans l aide en ligne Boîte de dialogue Comparaison des résultats des métriques dans l aide en ligne Boîte de dialogue Exportation des résultats dans un fichier dans l aide en ligne Définitions des audits Tableau 8.5 Audits disponibles dans Together Developer 2005 Révision de code Activé par défaut Correction possible Fragments de code similaires (LIKE) Oui Non Style de codage Activé par défaut Correction possible L instruction switch devrait inclure un case Non Non default (SSSIDC) Accès aux membres statiques par le nom de Oui Non classe d un descendant (ASMDCN) Accès aux membres statiques via des objets Oui Non (ASMO) Affectations de paramètres formels (AFP) Oui Non Affectations complexes (CA) Oui Non Clauses d initialisation ou de mise à jour Non Non complexes dans une boucle for (CIUCFL) Fichiers longs (LF) Non Non Lignes longues (LL) Non Non Instructions multiples sur une ligne (MSOL) Non Non Opérateur de négation dans une instruction if Oui Non (NOIS) Attribut statique non final (NFSA) Non Non Littéraux numériques dans le code (NLC) Non Non L opérateur?: ne devrait pas être utilisé Oui Non (OSNBU) Mettre la condition entre parenthèses dans Non Non l opérateur?: (PCO) Placer les déclarations au début des blocs Non Non (PDBB) Fournir l incrément dans l instruction for ou Oui Non utiliser l instruction while (PIFS) Référencement des packages Non Non d implémentation (RIP) Littéraux chaîne (SL) Non Non Utilisation explicite de this pour accéder aux Non Non membres de classe (UTE) Utiliser un opérateur d affectation abrégé (UAAO) Oui Non Erreurs critiques Activé par défaut Correction possible Séparation commande/requête (CQS) Oui Non Masquage des attributs hérités (HIA) Oui Non Masquage des méthodes statiques héritées (HISM) Oui Non 208 Guide de l utilisateur de Borland Together Developer 2005
219 Définitions des audits Tableau 8.5 Audits disponibles dans Together Developer (suite)2005 Masquage des noms (HN) Oui Non Constructeurs ou méthodes correspondants Oui Non inaccessibles (IMCM) Multiples déclarations visibles avec le même Oui Non nom (MVDSN) Surcharge dans une sous-classe (OWS) Oui Non Redéfinition de méthode non abstraite par une Oui Non méthode abstraite (ONAMAM) Redéfinition de méthode privée (OPM) Oui Non Attribut statique utilisé pour l initialisation (SAUI) Oui Non Style de déclaration Activé par défaut Correction possible Emplacement incorrect des déclarateurs de Non Non tableau (BLAD) Les attributs privés constants doivent être Non Oui correctibles (CPASBF) Les variables constantes devraient être Non Non déclarées final (CVSBF) Déclaration de chaque variable dans une Oui Non instruction séparée (DVSS) Les classes instanciées devraient être Non Oui déclarées final (ICSBF) Lister en premier les membres publics et Non Non package (LPPMF) Ordre de déclaration des membres de classe Non Non (ODCM) Ordre des modificateurs (OM) Oui Non Placer en dernier la fonction Main (PMFL) Non Non Placer d abord la classe publique (PPCF) Non Non Documentation Activé par défaut Correction possible Balise incorrecte dans des commentaires Non Non Javadoc (BTJC) Détection des associations basées sur des Non Non collections (DCBA) Fournir des commentaires de fichier (PFC) Non Non Fournir des commentaires Javadoc (PFC) Non Non Style de nommage Activé par défaut Correction possible Un nom de classe devrait correspondre à un Oui Non nom de fichier (CNSMFN) Noms des classes d exception (NEC) Oui Non Conventions de nommage (NC) Oui Non Rassemblement des opérations de même nom Oui Non (POSNT) Utiliser des noms de variable conventionnels (UCVN) Oui Non Performances Activé par défaut Correction possible Ajout à une chaîne dans une boucle (ASWL) Oui Non Expressions de boucles complexes (CLE) Non Non Déclaration de variables dans des boucles Non Non (DVIL) Concaténations de chaînes multiples (MSC) Oui Non Trop de case dans l instruction Switch (TMSSC) Non Non Chapitre 8 : Exécution des audits et métriques 209
220 Définitions des audits Tableau 8.5 Audits disponibles dans Together Developer (suite)2005 Erreurs possibles Activé par défaut Correction possible Modificateur synchronized (SM) Oui Non Affectations dans une expression conditionnelle Oui Non (ACE) Affectation de variables de boucle for (AFLV) Oui Non Appel à super.finalize() à partir de finalize Oui Oui (CSF) Comparaison entre types à virgule flottante Oui Non (CFPT) Constantes avec valeurs égales (CEV) Non Non Blocs catch vides (ECB) Non Non Corps dans un bloc (EBWB) Oui Non Initialisation explicite de toutes les variables Oui Non (EIAV) Mélange d opérateurs logiques sans Oui Non parenthèse (MLOWP) Attributs publics et de package (PPA) Oui Non Renvoi d une valeur Null au lieu d une Oui Non collection vide (RNEC) Instruction avec un corps vide (SEB) Oui Non Instruction break ou commentaire dans Non Non l instruction Case (SBCCS) Utiliser equals au lieu de = = (UE) Oui Non Utilisation de L au lieu de l à la fin des constantes entières (UL) Oui Oui Contenu superflu Activé par défaut Correction possible Opérations d égalité sur des arguments Oui Non booléens (EOBA) Construction de liste d importation (ILC) Oui Oui Modificateurs d interface obsolètes (OIM) Oui Oui Evaluations instanceof superflues (UIOE) Oui Non Casts superflus (UC) Oui Non Modificateurs de membres d interface inutiles Oui Oui (UIMM) Parenthèses d instruction return inutiles Non Non (URSP) Variables locales et paramètres formels Oui Non inutilisés (ULVFP) Membres de classes privés non utilisés (UPCM) Oui Oui Audits de révision de code Fragments de code similaires (LIKE) Cet audit recherche des fragments de code similaires pouvant représenter un code dupliqué demandant un refactoring. Deux fragments de code sont considérés comme similaires s ils ne diffèrent que par quelques noms de variables, attributs et méthodes ou présentent des différences dans leurs constantes, tandis que la structure du code reste la même (dont les mots clés et les opérations). Par exemple, ces deux méthodes appartiennent à des classes différentes : public Collection getmodules1() { TreeSet ar = new TreeSet(); String themodule; 210 Guide de l utilisateur de Borland Together Developer 2005
221 Définitions des audits int sz = size(); for (int i = 0; i < sz; i++) { AuditPlugin p = get(i).getplugin(); if (p instanceof PluginEx) { themodule = ((PluginEx)p).requiredModule(); if (themodule!= null) { ar.add(themodule); return ar; public Collection getmodules2() { TreeSet ar = new TreeSet(); String themodule; int sz = getsize(); for (int i = 0; i < sz; i++) { MetricsPlugin p = getholder(i).getplugin(); if (p instanceof PluginEx) { themodule = ((PluginEx)p).requiredModule(); if (themodule!= null) { ar.add(themodule); return ar; Le corps de la méthode reste le même dans sa structure, dans les deux cas. Les seules différences entre les deux fragments se situent dans l appel aux méthodes size(), getsize() et get(i), getholder(i), et dans le type de variable locale p : TreeSet ar = new TreeSet(); String themodule; int sz = <size getsize>(); for (int i = 0; i < sz; i++) { <AuditPlugin MetricsPlugin> p = <get getholder>(i).getplugin(); if (p instanceof PluginEx) { themodule = ((PluginEx)p).requiredModule(); if (themodule!= null) { ar.add(themodule); return ar; Nous pouvons supposer que ces deux méthodes viennent d un copier-coller. Il est possible que : 1 Les classes aient un ancêtre commun. Dans ce cas, au lieu de ces deux méthodes, il est possible de n en avoir qu une, dans la classe de base. 2 Les classes ne soient pas connectées. Dans ce cas, vous pouvez remplacer les deux méthodes par une seule, dans une classe utilitaire. Fonctionnement de l audit L audit recherche des fragments similaires dans : 1 Les blocs (fragments entre accolades {), incluant des méthodes entières. 2 Les instructions complexes (if, while, for). Chapitre 8 : Exécution des audits et métriques 211
222 Définitions des audits Les résultats de l audit ne montrent que les fragments de structure strictement identique. Ils ne montrent pas les fragments qui : 1 Diffèrent par une ou plusieurs instructions. 2 Diffèrent dans une séquence d instructions identiques. 3 Constituent une séquence d instructions non limitée à un bloc. Des fragments similaires sont regroupés en clusters. Pour chaque cluster, l audit analyse les différences entre les fragments. Dans les résultats, qui apparaissent sous forme de clusters de fragments de code dupliqués, les violations sont représentées par un nombre de fragments par cluster. Pour chacune, il est possible de voir tous les fragments inclus dans le cluster ainsi qu un fragment récapitulatif où les différences sont mises en évidence. Pour afficher un cluster de fragments dupliqués, double-cliquez sur la ligne appropriée dans le tableau des résultats de l audit. Options Pour limiter la taille des fragments analysés, définissez une taille à ne pas dépasser (la taille est obtenue en additionnant le nombre de ; au nombre de blocs). Choisissez de préférence une valeur inférieure à 5. Interprétation des résultats Dans la plupart des cas, la présence de gros fragments identiques de code complique la compréhension et la maintenance des programmes et entraîne des erreurs dans la hiérarchie des classes. Il existe cependant des exceptions. Par exemple, l absence de classes template dans les résultats Java, dans le cas de méthodes strictement identiques mais venant de différents types surchargés pour le traitement. Les méthodes java.util.arrays.sort1() offrent un excellent exemple. java.util.arrays.sort1(byte[] x, int off, int len) java.util.arrays.sort1(char[] x, int off, int len) java.util.arrays.sort1(double[] x, int off, int len) java.util.arrays.sort1(float[] x, int off, int len) java.util.arrays.sort1(int[] x, int off, int len) java.util.arrays.sort1(long[] x, int off, int len) java.util.arrays.sort1(short[] x, int off, int len) Ces méthodes ne présentent comme différence que le type de paramètre. Audits sur le style de codage L instruction switch devrait inclure un case default (SSSIDC) Selon les conventions de code Sun pour Java, chaque instruction switch doit inclure un case default. Accès aux membres statiques par le nom de classe d un descendant (ASMDCN) Les membres statiques doivent être référencés par les noms des classes dans lesquelles ces membres sont définis. 212 Guide de l utilisateur de Borland Together Developer 2005
223 Définitions des audits Incorrect class Elephant extends Animal { class Animal { public static int attr; Astuce Elephant.attr = 0; Référencez toujours les membres statiques par le nom des classes où ils sont définis. Correct class Elephant extends Animal { class Animal { public static int attr; Animal.attr = 0; Astuce Accès aux membres statiques via des objets (ASMO) Les membres statiques doivent être référencés par des noms de classes plutôt que par des objets. Incorrect class ASMO1 { void func () { ASMO1 obj1 = new ASMO1(); ASMO2 obj2 = new ASMO2(); obj1.attr = 10; obj2.attr = 20; obj1.oper(); obj2.oper(); this.attr++; this.oper(); static int attr; static void oper () { class ASMO2 { static int attr; static void oper () { Référencez toujours les membres statiques via le nom des classes. Correct class ASMO1 { void func () { ASMO1 obj1 = new ASMO1(); ASMO2 obj2 = new ASMO2(); ASMO1.attr = 10; ASMO2.attr = 20; ASMO1.oper(); ASMO2.oper(); ASMO1.attr++; ASMO1.oper(); Chapitre 8 : Exécution des audits et métriques 213
224 Définitions des audits static int attr; static void oper () { class ASMO2 { static int attr; static void oper () { Astuce Affectations de paramètres formels (AFP) Vous ne devez pas affecter de valeurs à des paramètres formels. Incorrect int oper (int param) { param +=10; return ++param; Déclarez une variable interne et utilisez-la à la place du paramètre formel. Correct int oper (int param){ int result = param + 10; return ++result; Affectations complexes (CA) Cette règle vérifie la présence d affectations multiples et d affectations de variables dans une même expression. Vous devez éviter d utiliser des affectations trop complexes, car cela réduit la lisibilité des programmes. Si l option Strict est désactivée, les affectations d une même valeur à plusieurs variables dans une opération sont autorisées. Par exemple, considérez l instruction suivante : i = j = k = 0; Cette instruction provoquera une violation si l option Strict est activée, mais pas dans le cas où elle est désactivée. Incorrect // affectation composée i *= ++j; k = j = 10; l = j += 15; // affectation imbriquée Astuce i = j ; i = (j = 25) + 30; Découpez l instruction en plusieurs instructions. Correct // à la place de i *= ++j; ++j; i *= j; // à la place de k = j = 10; k = 10; 214 Guide de l utilisateur de Borland Together Developer 2005
225 Définitions des audits j = 10; // à la place de l = j += 15; j += 15; l = j; // à la place de i = j ; i = j + 20; j++; // à la place de i = (j = 25) + 30; j = 25; i = j + 30; Astuce Clauses d initialisation ou de mise à jour complexes dans une boucle for (CIUCFL) Lorsque vous utilisez l opérateur virgule dans la clause d initialisation ou de mise à jour d une instruction for, évitez la complexité en utilisant au maximum trois variables. Incorrect for ( i=0, j=0, k=10, l=-1; i < cnt; i++, j++, k--, l+=2 ) { // faire quelque chose Si nécessaire, utilisez des instructions séparées avant la boucle for (pour la clause d initialisation) ou à la fin de la boucle (pour la clause de mise à jour). Correct l=-1; for ( i=0, j=0, k=10; i < cnt; i++, j++, k-- ) { // faire quelque chose l+=2; Fichiers longs (LF) Selon les conventions de code Sun pour Java, les fichiers supérieurs à 2000 lignes sont difficiles à gérer et doivent être évités. Lignes longues (LL) Selon les conventions de Sun pour le code Java, les lignes d une longueur supérieure à 80 caractères devraient être évitées, car elle ne sont pas gérées correctement par de nombreux terminaux et outils. Astuce Instructions multiples sur une ligne (MSOL) Selon les conventions de code Sun pour Java, chaque ligne ne doit pas contenir plus d une instruction. Incorrect if( somecondition ) somemethod(); i++; j++; Placez chaque instruction sur une ligne séparée. Chapitre 8 : Exécution des audits et métriques 215
226 Définitions des audits Correct if( somecondition ) somemethod(); i++; j++; Astuce Opérateur de négation dans une instruction if (NOIS) L opérateur de négation réduit la lisibilité du programme, et il est donc recommandé de ne pas l utiliser fréquemment. Incorrect boolean isok = verifysomewhat() if (!isok ) return 0; else return 1; Modifiez la logique de votre programme pour éviter la négation. Correct boolean isok = verifysomewhat() if ( isok ) return 1; else return 0; Attribut statique non final (NFSA) Cette règle vous aide à éviter les attributs statiques non finals. Incorrect protected static ArrayList InterfaceListeners = new ArrayList(); Correct protected final static ArrayList Interface Listeners = new ArrayList(); Astuce Astuce Littéraux numériques dans le code (NLC) Selon les conventions de code Sun pour Java, les constantes numériques (littéraux) ne doivent pas être codées directement, mis à part -1, 0 et 1, qui peuvent apparaître dans une boucle for comme valeurs de compteur. Ajoutez des attributs statiques finals aux constantes numériques. L opérateur?: ne devrait pas être utilisé (OSNBU) L opérateur?: rend le code plus difficile à lire qu une autre forme utilisant une instruction if. Incorrect void func (int a) { int b = (a == 10)? 20 : 30; Remplacez l opérateur?: par l instruction if-else appropriée. Correct void func (int a) { if (a == 10) b = 20; else 216 Guide de l utilisateur de Borland Together Developer 2005
227 Définitions des audits b = 30; Mettre la condition entre parenthèses dans l opérateur?: (PCO) Selon les conventions de code Sun pour Java, si une expression contenant un opérateur binaire apparaît avant le? dans l opérateur ternaire?:, elle doit être mise entre parenthèses. Incorrect return x >= 0? x : -x; Correct return (x >= 0)? x : -x; Astuce Astuce Placer les déclarations au début des blocs (PDBB) Les conventions de code Sun pour Java recommandent de ne mettre les déclarations qu au début des blocs. (Tout code entouré par des accolades { et définit un bloc.) Ne déclarez pas les variables au moment de leur première utilisation ; cela peut perturber le programmeur négligent et gêner la portabilité du code dans la portée. Incorrect void mymethod() { if (condition) { dosomework(); int int2 = 0; useint2(int2); int int1 = 0; useint1(int1); Déplacez les déclarations vers le début du bloc. Correct void mymethod() { int int1 = 0; // début du bloc de la méthode if (condition) { int int2 = 0; // début du bloc "if" dosomework(); useint2(int2); useint1(int1); Fournir l incrément dans l instruction for ou utiliser l instruction while (PIFS) Cette règle vérifie si le troisième argument d une instruction for est absent. Incorrect for ( Enumeration enum = getenum(); enum.hasmoreelements(); ) { Object o = enum.nextelement(); dosomeproc(o); Soit fournissez la partie incrément de la structure for, soit transformez votre instruction for en instruction while. Chapitre 8 : Exécution des audits et métriques 217
228 Définitions des audits Correct Enumeration enum = getenum(); while (enum.hasmoreelements()) { Object o = enum.nextelement(); dosomeproc(o); Référencement des packages d implémentation (RIP) Cette règle vous permet d éviter de faire référence à un package qui en principe ne doit pas être référencé. Par exemple, si vous utilisez les modèles Facade ou AbstractFactory, vous pouvez vérifier que personne n utilise d appels directs aux constructeurs des classes sous-jacentes. Dans ce cas, vous pouvez diviser vos packages en packages d interface et d implémentation, et vous assurer que personne ne référence de packages d implémentation - uniquement des packages d interface. Vous pouvez définir deux listes : les packages autorisés (Allowed, packages d interface) et les packages interdits (Banned, packages d implémentation). Pour chaque référence de classe dans le code source, cette règle vérifie que le package auquel cette classe appartient se trouve dans la liste Allowed et ne se trouve pas dans la liste Banned. Les noms des packages dans les listes peuvent être les suivants : * : tous les packages sont autorisés (interdits) Nom de package : ce package est autorisé (interdit) Nom de package postfixé par * : tous les sous-packages du package donné sont autorisés (interdits) En cas de conflit, la règle la plus spécifique est prioritaire. Par exemple, si vous spécifiez comme liste Allowed : * com.mycompany.openapi.* et comme liste Banned : com.mycompany.* tous les sous-packages du package com.mycompany seront interdits, à l exception des sous-packages appartenant au sous-package com.mycompany.openapi. Littéraux chaîne (SL) Si votre projet peut être internationalisé, vous devez éviter les chaînes codées en dur et les littéraux caractère, mais les conserver plutôt dans des ressources externes. Cette règle facilite la recherche de ce type de littéral peu sûr. Vous pouvez personnaliser le filtre en entrant les listes des littéraux appropriés en séparant les chaînes et les caractères (sur les onglets Chaîne autorisées et Caractères autorisés), et en cochant les options Ignorer les espaces et Ignorer les chiffres. Vous pouvez également autoriser l utilisation de littéraux chaîne en tant que paramètres des méthodes dans la liste Opérations autorisées. Utilisation explicite de this pour accéder aux membres de classe (UTE) Vous devriez utiliser this explicitement lorsque vous essayez d accéder aux membres d une classe. Souvent, utiliser les mêmes noms pour les membres d une classe et les paramètres brouille ce à quoi vous faites référence. Incorrect class UTE { int attr = 10; 218 Guide de l utilisateur de Borland Together Developer 2005
229 Définitions des audits void func () { // faire quelque chose void oper () { func(); attr = 20; Correct class UTE { int attr = 10; void func () { // faire quelque chose void oper () { this.func(); this.attr = 20; Utiliser un opérateur d affectation abrégé (UAAO) Utilisez l opérateur d affectation abrégé pour écrire les programmes plus rapidement. Certains compilateurs s exécutent aussi plus rapidement dans ce cas. Incorrect void oper () { int i = 0; i = i + 20; i = 30 * i; Correct void oper () { int i = 0; i += 20; i *= 30; Audits d erreurs critiques Séparation commande/requête (CQS) Empêche les méthodes qui retournent une valeur de modifier l état. Les méthodes que vous utilisez pour demander l état d un objet doivent être différentes des méthodes que vous utilisez pour exécuter des commandes (changer l état de l objet). Incorrect class CQS { int attr; int getattr () { attr += 10; return attr; Chapitre 8 : Exécution des audits et métriques 219
230 Définitions des audits Masquage des attributs hérités (HIA) Cette règle détecte les situations où des attributs déclarés dans des classes enfant cachent les attributs hérités. Incorrect class Elephant extends Animal { int attr1; //quelque chose...; Astuce class Animal { int attr1; Renommez l attribut de la classe enfant. Correct class Elephant extends Animal { int elphattr1; //quelque chose...; class Animal { int attr1; Masquage des méthodes statiques héritées (HISM) Cette règle détecte les opérations statiques héritées masquées par des classes enfant. Incorrect class Elephant extends Animal { void oper1() { static void oper2() { Astuce class Animal { static void oper1() { static void oper2() { Renommez les opérations soit de la classe ancêtre soit de la classe descendant. Correct class Elephant extends Animal { void anoper1 () { static void anoper2 () { class Animal { static void oper1() { static void oper2() { Masquage des noms (HN) Les déclarations de noms ne doivent pas masquer d autres déclarations du même nom. Si l option Formally est activée, le masquage des noms est également détecté pour une variable paramètre si sa seule utilisation consiste à affecter sa valeur à l attribut du même nom. 220 Guide de l utilisateur de Borland Together Developer 2005
231 Définitions des audits Remarque Astuce Astuce Incorrect class HN { int index; void func () { int index; // faire quelque chose void setindex (int index) { this.index = index; La deuxième violation n est déclenchée que si Formellement est coché. Renommez la variable qui cache un attribut ou une autre variable. Correct class HN { int index; void func () { int index1; // faire quelque chose void setindex (int anindex) { this.index = anindex; Constructeurs ou méthodes correspondants inaccessibles (IMCM) La résolution de la surcharge prend uniquement en considération les constructeurs et les méthodes visibles au moment de l appel. Si tous les constructeurs et toutes les méthodes étaient pris en compte, il pourrait y avoir d autres résultats. Dans ce cas cette règle serait violée. Imaginez que ClassB se trouve dans un package différent de celui de ClassA. L allocation de ClassB viole alors cette règle, car le deuxième constructeur n est pas visible au moment de l allocation, mais il correspond quand même à l allocation (selon la signature). De plus, l appel à l opérateur dans ClassB viole cette règle, car la deuxième et la troisième déclarations de l opérateur ne sont pas visibles au moment de l appel mais correspondent toujours à l appel (selon la signature). Incorrect public class ClassA { public ClassA (int param) { ClassA (char param) { ClassA (short param) { public void oper (int param) { void oper (char param) { void oper (short param) { Vous pouvez soit donner une visibilité égale à de telles méthodes ou constructeurs, soit modifier leur signature. Correct public class ClassA { ClassA (int param) { public ClassA (char param) { public ClassA (short param) { public void oper (int param) { void dooper (char param) { Chapitre 8 : Exécution des audits et métriques 221
232 Définitions des audits void dooper (short param) { Astuce Astuce Multiples déclarations visibles avec le même nom (MVDSN) Plusieurs déclarations avec le même nom ne doivent pas être visibles simultanément, excepté pour les méthodes surchargées. Incorrect class MVDSN { void index () { return; void func () { int index; Renommez les membres (ou variables) portant des noms conflictuels. Correct class MVDSN { void index () { return; void func () { int anindex; Surcharge dans une sous-classe (OWS) Une méthode de superclasse ne peut pas être surchargée dans une sous-classe si toutes les surcharges dans la superclasse sont également redéfinies dans la sous-classe. Il est très inhabituel pour une sous-classe de surcharger des méthodes dans sa superclasse sans également redéfinir les méthodes surchargées. Cela arrive plus souvent en raison de modifications incohérentes entre la superclasse et la sous-classe, c est-à-dire à cause de l intention de l utilisateur de redéfinir la méthode dans la superclasse, mais à cause d une erreur, la méthode de la sous-classe finit par surcharger la méthode de la superclasse. Incorrect public class Elephant extends Animal { public void oper (char c) { public void oper (Object o) { class Animal { public void oper (int i) { public void oper (Object o) { Surchargez les autres méthodes également. Correct public class Elephant extends Animal { public void oper (char c) { public void oper (int i) { public void oper (Object o) { class Animal { public void oper (int i) { 222 Guide de l utilisateur de Borland Together Developer 2005
233 Définitions des audits public void oper (Object o) { Astuce Astuce Redéfinition de méthode non abstraite par une méthode abstraite (ONAMAM) Vérifie la redéfinition de méthodes non abstraites par des méthodes abstraites dans une sous-classe. Incorrect class Animal { void func () { abstract class Elephant extends Animal { abstract void func (); S il s agit d une simple coïncidence de noms, renommez votre méthode. Sinon, rendez la méthode en question abstraite dans l ancêtre ou non abstraite dans le descendant. Correct class Animal { void func () { abstract class Elephant extends Animal { abstract void extfunc (); Redéfinition de méthode privée (OPM) Une sous-classe ne doit pas contenir de méthode avec le même nom et la même signature qu une méthode se trouvant dans une superclasse si ces méthodes sont déclarées privées. Incorrect class Animal { private void func () { class Elephant extends Animal { private void func () { Renommez la méthode de la classe descendant. Correct class Animal { private void func () { class Elephant extends Animal { private void extfunc () { Attribut statique utilisé pour l initialisation (SAUI) Des attributs statiques non finals ne devraient pas être utilisés dans les initialisations des attributs. Incorrect class ClassA { static int state = 15; static int attr1 = state; static int attr2 = ClassA.state; Chapitre 8 : Exécution des audits et métriques 223
234 Définitions des audits Astuce static int attr3 = ClassB.state; class ClassB { static int state = 25; Soit rendez finals les attributs servant à l initialisation, soit utilisez d autres constantes d initialisation. Correct class ClassA { static int state = 15; static final int INITIAL_STATE = 15; static int attr1 = INITIAL_STATE; static int attr2 = ClassA.state; static int attr3 = ClassB.state; class ClassB { static final int state = 25; Audits sur le style de déclaration Emplacement incorrect des déclarateurs de tableau (BLAD) Les déclarateurs de tableau devraient être placés à côté du descripteur du type de leurs composants. Incorrect class BLAD { int attr[]; int oper (int param[]) [] { int var[][]; // faire quelque chose Correct class BLAD { int[] attr; int[] oper (int[] param) { int[][] var; // faire quelque chose Les attributs privés constants doivent être correctibles (CPASBF) CPASBF est un audit correctible. Les attributs privés dont les valeurs ne sont jamais changées devraient être déclarés final. Lorsque vous les déclarez explicitement ainsi, le code source donne au lecteur une information sur la façon dont l attribut doit être utilisé. L audit recherche les utilisations susceptibles de modifier la valeur d un attribut initialisé de manière privée. S il n en trouve pas, il déclare que l attribut est final. Dans le volet Options, vous pouvez préciser quelle sorte d attributs vérifier. Types primitifs : Ne vérifie que les types primitifs tels que int, boolean et double. 224 Guide de l utilisateur de Borland Together Developer 2005
235 Définitions des audits Astuce Astuce Primitifs, leurs enveloppes et leurs chaînes : Vérifie les objets primitifs, leurs enveloppes telles que java.lang.integer ou java.lang.boolean, ainsi que les objets java.lang.string. Tous les types : Vérifie tous les attributs initialisés de manière privée. Incorrect class CPASBF { private int attr1 = 10; private int attr2 = 20; void func () { attr1 = attr2; System.out.println(attr1); Rendez final chacun des attributs privés qui ne sont jamais modifiés. Correct class CPASBF { int attr1 = 10; private final int attr2 = 20; void func () { attr1 = attr2; System.out.println(attr1); Les variables constantes devraient être déclarées final (CVSBF) Les variables locales dont les valeurs ne sont jamais modifiées doivent être déclarées final. Lorsque vous les déclarez explicitement de cette manière, cela donne à un lecteur du code source des informations sur la manière dont la variable est censée être utilisée. Incorrect void func () { int var1 = 10; int var2 = 20; var1 = var2; System.out.println(attr1); Rendez final chacune des variables qui ne sont jamais modifiées. Correct void func () { int var1 = 10; final int var2 = 20; var1 = var2; System.out.println(attr1); Déclaration de chaque variable dans une instruction séparée (DVSS) Vous ne devriez pas déclarer plusieurs variables (attributs et variables locales) dans la même instruction. L option Types différents seulement peut assouplir cette règle. Lorsqu elle est cochée, une violation est déclenchée uniquement lorsque les variables sont de types différents. Par exemple : int foo, fooarray[]; // définitivement incorrect Chapitre 8 : Exécution des audits et métriques 225
236 Définitions des audits Astuce Astuce Incorrect class DVSS { int attr1; int attr2, attr3; void oper () { int var1; int var2, var3; Déclarez chaque variable dans une instruction séparée. Correct class DVSS { int attr1; int attr2; int attr3; void oper () { int var1; int var2; int var3; Les classes instanciées devraient être déclarées final (ICSBF) ICSBF est un audit qui peut être corrigé. Cette règle recommande de déclarer toutes les classes instanciées finales. Elle vérifie les classes présentes dans le modèle objet. Les classes dans le chemin de recherche/ de classes sont ignorées. Incorrect class ICSBF { private Class1 attr1 = new Class1(); // quelque chose... class Class1 { // quelque chose... Rendez final toutes les classes instanciées. Correct class ICSBF { private Class1 attr1 = new Class1(); // quelque chose... final class Class1 { // quelque chose... Lister en premier les membres publics et package (LPPMF) Impose un standard pour améliorer la lisibilité. Les méthodes/données de votre classe devraient être correctement ordonnées. Incorrect class LPPMF { private int attr; public void oper () { 226 Guide de l utilisateur de Borland Together Developer 2005
237 Définitions des audits Astuce Remarque Placez les membres publics et les membres du package avant les membres protégés et les membres privés. Cette règle peut être contestable. Cependant, grouper les membres par fonctionnalité plutôt que par portée augmente la lisibilité du code. Correct class LPPMF { public void oper () { private int attr; Ordre de déclaration des membres de classe (ODCM) Selon les conventions de code Sun pour Java, les parties de la déclaration d une classe ou d une interface doivent apparaître dans l ordre suivant : 1 Variables de classe (statiques). D abord les variables de classe publiques, puis les variables protégées, puis le niveau du package (pas de modificateur d accès), et enfin les variables privées. 2 Variables d instance. D abord les variables de classe publiques, puis les variables protégées, puis le niveau du package (pas de modificateur d accès), et enfin les variables privées. 3 Constructeurs 4 Méthodes Astuce Ordre des modificateurs (OM) Vérifie la validité de l ordre des modificateurs. Pour les classes : visibilité (public, protected ou private), abstract, static, final. Pour les attributs : visibilité (public, protected ou private), static, final, transient, volatile. Pour les opérations : visibilité (public, protected ou private), abstract, static, final, synchronized, native. Incorrect final public class OOAOM { public static final int attr1; static public int attr2; Modifiez l ordre des modificateurs. Correct public final class OOAOM { public static final int attr1; public static int attr2; Placer en dernier la fonction Main (PMFL) Essaie de conformer le programme à divers standards de codage en ce qui concerne la forme des définitions de classes. Incorrect public class PMFL { void func1 () { public static void main (String args[]) { void func2 () { Chapitre 8 : Exécution des audits et métriques 227
238 Définitions des audits Correct public class PMFL { public static void main (String args[]) { void func1 () { void func2 () { Placer d abord la classe publique (PPCF) Selon les conventions de code Sun pour Java, la classe ou interface publique doit être la première classe ou interface dans le fichier. Incorrect class Helper { // code Astuce public class PPCM { // code Placez la classe ou l interface publique en premier. Correct public class PPCM { // code class Helper { // code Audits de documentation Balise incorrecte dans des commentaires Javadoc (BTJC) Cette règle recherche dans le code une utilisation accidentelle de balises Javadoc inadéquates. Incorrect package audit; /** Class BTJC Jan-2000 TogetherSoft */ public class BTJC { /** * Attribute attr 0..* 1 */ private int attr; /** Operation oper int */ public int oper () { 228 Guide de l utilisateur de Borland Together Developer 2005
239 Définitions des audits Astuce Remplacez les balises mal orthographiées. Ou, si votre outil Javadoc (doclet, etc.) utilise certaines balises non standard, ajoutez-les à la liste des balises valides. Détection des associations basées sur des collections (DCBA) Pour le langage Java, Together permet aux utilisateurs de visualiser de façon simple les associations basées sur des collections. En d autres termes, lors de la rétro-ingénierie du code existant, Together peut identifier et afficher des associations basées sur des collections : les utilisateurs n ont pas à inspecter leur code et à insérer à la main les de Together pour que le lien soit dessiné sur le diagramme. Ceci est un audit auto-correctif, et il peut insérer les balises association dans le code à votre place. Exemple Voici un exemple du résultat de l audit sur une classe simple. Avant : import java.util.*; class A { private Vector v = new Vector(); public void addelement(string element) { v.addelement(element); Après : import java.util.*; class A { /** String */ private Vector v = new Vector(); public void addelement(string element) { v.addelement(element); Définition des options de traitement Cochez Corriger immédiatement pour insérer automatiquement des balises d association à l exécution de l audit. Les corrections font l objet d une liste dans la table de résultats de l audit. Une coche de couleur verte dans la colonne Corrigé indique que les violations ont été corrigées. Si cette option n est pas cochée, la table des résultats de l audit fait la liste de toutes les violations et vous pouvez décider de les corriger ou non automatiquement individuellement. Si l option Ignorer l existant est cochée, les balises d association existantes sont ignorées pendant le traitement. Si cette option n est pas cochée, les balises d association existantes sont recalculées. Si Associer avec un parent commun est cochée alors que la collection contient des objets de classes différentes, elle est associée à l objet ancêtre commun le plus proche (en remontant dans la hiérarchie des objets de la collection). Si cette option n est pas cochée, aucune association n est créée et l audit ne vous informe que des types d objets de la collection qui subissent une violation. Personnalisation de l ensemble de collections Cet audit peut être accordé à n importe quel ensemble de collections. Les collections sont listées sur l onglet Classes du volet des options. Pour définir une nouvelle collection, cliquez sur Ajouter avant ou sur Ajouter après et saisissez le nom complet de la classe collection (par exemple, java.util.vector). Chapitre 8 : Exécution des audits et métriques 229
240 Définitions des audits Pour désactiver une collection que vous ne souhaitez pas auditer, videz la case dans la colonne Activer. Vous pouvez également retirer une collection d un ensemble en utilisant le bouton Supprimer. Lorsque vous sélectionnez une collection, vous pouvez aller dans l onglet Opérations, qui liste les signatures des opérations ajoutant des objets à la collection, ainsi que le numéro du paramètre qui encapsule l objet ajouté. Par défaut, les onglets Classes et Opérations contiennent les noms complets de toutes les classes et interfaces appartenant au package java.util. Fournir des commentaires de fichier (PFC) Selon les conventions de code Sun pour Java, tous les fichiers source doivent commencer par un commentaire de style C donnant le nom de la classe, les informations sur la version, la date et la mention du copyright : /* * Nom de la classe * Informations sur la version * Date * Mention du copyright */ Cette règle d audit vérifie si le fichier commence par un commentaire de style C. Il peut vérifier également si ce commentaire contient le nom de la classe de niveau supérieur présente dans le fichier donné. Fournir des commentaires Javadoc (PFC) Vérifie si des commentaires Javadoc sont fournis pour les classes, les interfaces, les méthodes et les attributs. Vous pouvez indiquer au moyen des cases à cocher si vous souhaitez vérifier dans les commentaires Javadoc uniquement les classes et les membres publics, de packages ou protégés, ou bien tous. Les conventions de code Sun pour Java recommandent aussi que l ordre des corresponde à l ordre des paramètres des opérations et que les soient dans l ordre alphabétique. Lorsque les options Ordered sont activées, l audit vérifie également si les balises correspondantes sont correctement ordonnées. Audits sur le style de nommage Astuce Un nom de classe devrait correspondre à un nom de fichier (CNSMFN) Vérifie si la classe et l interface de niveau le plus élevé ont le même nom que le fichier dans lequel elles résident. Incorrect // Fichier Audit_CNSMFN.java class CNSMFN { Renommez soit la classe soit le fichier Correct // Fichier Audit_CNSMFN.java class Audit_CNSMFN { Noms des classes d exception (NEC) Les noms des classes dérivées de Exception devraient finir par Exception. 230 Guide de l utilisateur de Borland Together Developer 2005
241 Définitions des audits Astuce Astuce Incorrect class AuditException extends Exception { class NEC extends Exception { Renommez les classes d exceptions. Correct class AuditException extends Exception { class NECException extends Exception { Conventions de nommage (NC) Accepte une expression régulière et un nom d élément et rapporte tous les cas où le modèle ne correspond pas à la déclaration. Incorrect package _audit; class _AuditNC { void operation1 (int Parameter) { void Operation2 (int parameter) { int _variable; int my_attribute; final static int constant; Renommez les packages, les classes, les membres, etc. en respectant les conventions d attribution des noms. Correct package audit; class AuditNC { void operation1 (int parameter) { void operation2 (int parameter) { int variable; int monattribut; final static int CONSTANT; Conseils pour l écriture des expressions régulières Utilisez les symboles spéciaux suivants pour définir des expressions régulières : * Correspond à zéro ou plusieurs occurrences. + Correspond à une ou plusieurs occurrences.? Correspond à zéro ou une occurrence. [...] Correspond à n importe quel caractère encadré par les crochets. * et? perdent leurs significations particulières dans une classe de caractères. De plus, si le premier caractère suivant le crochet ouvrant est ^, tout caractère n appartenant pas à la classe de caractères est représenté. Un tiret (-) entre deux caractères peut être utilisé pour indiquer un intervalle. Un tiret (-) au début ou à la fin de la classe de caractères représente un tiret au lieu de faire référence à un intervalle. Un crochet fermant ] qui suit immédiatement le crochet ouvrant [ représente un crochet fermant au lieu d indiquer la fin de la classe de caractères. Dans d autres positions, un crochet fermant doit être suivi d une barre oblique inverse pour représenter un crochet fermant. Chapitre 8 : Exécution des audits et métriques 231
242 Définitions des audits \ Une barre oblique inverse représente une barre oblique inverse dans la plupart des situations. Mais lorsqu elle se trouve avant un caractère spécial comme *, la barre oblique inverse change le caractère, en indiquant que le caractère spécial doit être interprété comme un caractère normal et non comme un caractère spécial. Tous les autres caractères se représentent eux-mêmes. Exemple : [a-za-z][a-za-z0-9]* représente un nom qui possède au moins un caractère, sans maximum. Le premier caractère peut être n importe quelle lettre (minuscule ou majuscule) et les autres peuvent être n importe quelle lettre ou n importe quel chiffre. Par exemple, le nom SaleDM est conforme à cette convention. Astuce Rassemblement des opérations de même nom (POSNT) Impose un standard pour améliorer la lisibilité. Incorrect package audit; class POSNT { void operation () { void function () { void operation (int param) { Regroupez les opérations qui ne diffèrent que par leur liste de paramètres. Il est conseillé de les classer sur leur nombre de paramètres, du plus petit au plus grand. Correct package audit; class POSNT { void operation () { void operation (int param) { void function () { Utiliser des noms de variable conventionnels (UCVN) Les noms de variables locales ou de paramètres à un seul caractère doivent être évités, excepté pour les variables temporaires et les variables de boucles ou lorsqu une variable contient une valeur non différenciée d un type. Les noms conventionnels à un caractère sont les suivants : b pour un byte c pour un char d pour un double e pour une Exception f pour un float i, j, k pour des entiers l pour un long o pour un Object s pour une String Pour éviter les conflits potentiels, modifiez les noms des variables locales ou des paramètres composés uniquement de deux ou trois lettres majuscules qui coïncident avec les codes de pays et les noms de domaines initiaux et pourraient être utilisés comme premiers composants de noms de package uniques. 232 Guide de l utilisateur de Borland Together Developer 2005
243 Définitions des audits Astuce Incorrect void func (double d) { int i; Object o; Exception e; char s; Object f; String k; Object UK; Donnez à toutes les variables locales un nom qui respecte les conventions. Correct void func (double d) { int i; Object o; Exception e; char c; Object o; String s; Audits de performances Astuce Ajout à une chaîne dans une boucle (ASWL) Une amélioration des performances peut être obtenue en remplaçant les opérations String par des opérations StringBuffer si un objet String est ajouté (append) à l intérieur d une boucle. Incorrect public class ASWL { public String func () { String var = "var"; for (int i = 0; i < 10; i++) { var += (" " + i); return var; Utilisez la classe StringBuffer plutôt que String. Correct public class ASWL { public String func () { StringBuffer var = new StringBuffer("var"); for (int i = 0; i < 10; i++) { var.append(" " + i); return var.tostring(); Expressions de boucles complexes (CLE) Evitez l utilisation d expressions complexes comme conditions de répétition des boucles. Chapitre 8 : Exécution des audits et métriques 233
244 Définitions des audits Astuce Astuce Incorrect void oper () { for (int i = 0; i < vector.size(); i++) { // faire quelque chose Affectez l expression à une variable avant la boucle et utilisez la variable à la place de l expression. Correct void oper () { int size = vector.size(); for (int i = 0; i < size; i++) { // faire quelque chose Déclaration de variables dans des boucles (DVIL) Cette règle recommande la déclaration des variables locales à l extérieur des boucles. La raison : la déclaration des variables à l intérieur d une boucle est, en général, moins performante. Incorrect int good_var = 0; for (int i = 0; i < 100; i++) { int var1 = 0; //... while (true) { int var2 = 0; //... do { int var3 = 0; //... while (true); Déplacez les déclarations de variables hors de la boucle Correct int good_var = 0; int var1; for (int i = 0; i < 100; i++) { var1 = 0; //... int var2; while (true) { var2 = 0; //... int var3; do { var3 = 0; //... while (true); 234 Guide de l utilisateur de Borland Together Developer 2005
245 Définitions des audits Concaténations de chaînes multiples (MSC) Les classes String sont conçues pour être immuables, et chaque méthode de la classe qui semble modifier une String crée et renvoie en fait un objet String tout neuf contenant la modification. La chaîne originelle est conservée intacte, le compilateur pouvant optimiser votre code. Utiliser StringBuffer à la place de String pour les opérations modifiables améliore les performances. Cet audit vous aide à trouver le code suspect. Incorrect private String gethtmlout() { String htmlout; htmlout = "<html>";... htmlout += "<body>";... htmlout += "Enregistrement non trouvé";... htmlout += "</body></html>"; return htmlout; Correct private String gethtmlout() { StringBuffer htmlout=new StringBuffer(100); htmlout.append("<html>");... htmlout.append("<body>");... htmlout.append("enregistrement non trouvé");... htmlout.append("</body></html>"); return htmlout.tostring(); Vous pouvez spécifier la quantité maximale de concaténations autorisées et la portée à analyser au cours de l audit. Trop de case dans l instruction Switch (TMSSC) Les instructions Switch ne doivent pas contenir plus de 256 case. Certains processeurs possèdent des instructions matérielles spécialisées qui peuvent tirer parti de la présence de moins de 256 case dans l instruction switch pour optimiser le code. C est pourquoi il est utile de respecter cette règle. Audits d erreurs possibles Modificateur synchronized (SM) Le modificateur synchronized utilisé sur des méthodes peut créer des confusions lors de la maintenance ou du débogage. Cette règle recommande donc d utiliser des instructions synchronized en remplacement. Incorrect class SM { public synchronized void method () { // faire quelque chose Chapitre 8 : Exécution des audits et métriques 235
246 Définitions des audits Astuce Utilisez des instructions synchronized à la place des méthodes synchronisées. Correct class SM { public void method () { synchronized(this) { // faire quelque chose Affectations dans une expression conditionnelle (ACE) L utilisation d affectations dans des conditions rend le code source difficile à comprendre. Incorrect if ( (dir = new File(targetDir)).exists() ) { // faire quelque chose Correct dir = new File(targetDir); if ( dir.exists() ) { // faire quelque chose Astuce Astuce Affectation de variables de boucle for (AFLV) Les variables de boucle For ne doivent pas être affectées. Incorrect for (int i = 0; i < charbuf.length; i++) { if ( Character.isWhitespace(charBuf[i]) ) i++;... Utilisez l opérateur continue ou convertissez la boucle for en boucle while. Correct for (int i = 0; i < charbuf.length; i++) { if ( Character.isWhitespace(charBuf[i]) ) continue;... Appel à super.finalize() à partir de finalize (CSF) CSF est un audit correctible. Comme l indiquent Ken Arnold et James Gosling dans le manuel The Java Programming Language, appeler super.finalize() depuis finalize() est une bonne pratique de programmation, même si la classe de base ne définit pas la méthode finalize(). Cela rend les implémentations des classes moins interdépendantes. Incorrect void finalize() { Appelez toujours super.finalize(). 236 Guide de l utilisateur de Borland Together Developer 2005
247 Définitions des audits Correct void finalize() throws Throwable { super.finalize(); Astuce Comparaison entre types à virgule flottante (CFPT) Evitez de tester l égalité de nombres à virgule flottante. Les nombres à virgule flottante qui devraient être égaux ne le sont pas toujours, en raison de problèmes d arrondi. Incorrect void oper (double d) { if ( d!= 15.0 ) { // faire quelque chose Remplacez les comparaisons directes par l estimation de la valeur absolue de la différence. Correct void oper (double d) { if ( Math.abs(d ) < Double.MIN_VALUE * 2 ) { // faire quelque chose Constantes avec valeurs égales (CEV) Cette règle capture les constantes ayant la même valeur. La présence de constantes différentes de même valeur peut provoquer des bogues si ces constantes ont la même signification. Incorrect final static int SUNDAY = 0; final static int MONDAY = 1; final static int TUESDAY = 2; final static int WEDNESDAY = 3; final static int THURSDAY = 4; final static int FRIDAY = 5; final static int SATURDAY = 0; // Cette méthode ne retournerait jamais "Saturday" String getdayname(int day) { if( day == SUNDAY ) return "Sunday";... else if( day == SATURDAY ) return "Saturday";... Blocs catch vides (ECB) Les blocs Catch ne devraient pas être vides. Les programmeurs oublient fréquemment de traiter les résultats négatifs d un programme car ils ont tendance à se concentrer sur les résultats positifs. Lorsque l option Vérifier l utilisation des paramètres est cochée, cette règle vérifie également si le code se sert du paramètre exception. Si ce n est pas le cas, une violation est déclenchée. Chapitre 8 : Exécution des audits et métriques 237
248 Définitions des audits Vous pouvez spécifier la liste des exceptions devant être ignorées. Par exemple, pour PropertyVetoException, le bloc catch est habituellement vide - en général, le programme ne fait rien si cette exception se produit. Corps dans un bloc (EBWB) L instruction d une boucle doit toujours être un bloc. Les parties then et else d une instruction if devraient toujours être des blocs. Cela facilite l ajout d instructions sans introduire accidentellement d erreurs à cause de l oubli d accolades. Incorrect if( st == null ) Astuce return; while( st.counttokens() > 2 ) s += st.nexttoken(); Placez toujours le corps dans un bloc. Correct if( st == null ) { return; while( st.counttokens() > 2 ) { s += st.nexttoken(); Initialisation explicite de toutes les variables (EIAV) Initialisation explicite de toutes les variables. La seule raison de ne pas initialiser une variable à l endroit où elle est déclarée est que sa valeur initiale dépend d un traitement qui doit se produire auparavant. Incorrect void func () { int var0; int var1 = 1, var2; //faire quelque chose Correct void func () { int var0 = 0; int var1 = 1, var2 = 0; //faire quelque chose Mélange d opérateurs logiques sans parenthèse (MLOWP) Une expression contenant plusieurs opérateurs logiques doit être correctement mise entre parenthèses. Incorrect void oper () { boolean a, b, c; // faire quelque chose if ( a b && c ) { // faire quelque chose return; 238 Guide de l utilisateur de Borland Together Developer 2005
249 Définitions des audits Astuce Astuce Utilisez des parenthèses pour faciliter la lecture des expressions logiques complexes. Correct void oper () { boolean a, b, c; // faire quelque chose if ( a (b && c) ) { // faire quelque chose return; Attributs publics et de package (PPA) Déclarez les attributs privés ou protégés et fournissez des opérations pour y accéder ou les modifier. Il peut y avoir une exception lorsqu une classe est utilisée comme struct dans le langage C : elle contient simplement certaines valeurs et ne possède donc pas de méthodes. L option Formally définit si des violations doivent être signalées pour de telles classes. Lorsque Formally n est pas activée, les violations ne sont pas signalées. Incorrect class PPA { int attr1; public int attr2; Modifiez la visibilité des attributs pour qu ils soient privés ou protégés. Fournissez des opérations d accès pour ces attributs. Correct class PPA { private int attr1; protected int attr2; public int getattr1() { return attr1; public int getattr2() { return attr2; public void setattr2(int newval) { attr2 = newval; Renvoi d une valeur Null au lieu d une collection vide (RNEC) Normalement, une opération déclarée comme renvoyant une collection ne devrait pas renvoyer de valeur null. A la place, elle devrait renvoyer une collection vide. Incorrect public ArrayList getlanguagelist() {... if(something) { return null;... Chapitre 8 : Exécution des audits et métriques 239
250 Définitions des audits Correct public List getlanguagelist() {... if(something) { return new ArrayList();... ou, si vous utilisez la liste vide immuable de java.util.collections public List getlanguagelist() {... if(something) { return Collections.EMPTY_LIST;... Instruction avec un corps vide (SEB) Dans la mesure du possible, évitez d utiliser des instructions avec des corps vides. Incorrect StringTokenizer st = new StringTokenizer(class1.getName(), ".", true); String s; Astuce for( s = ""; st.counttokens() > 2; s = s + st.nexttoken() ); Fournissez un corps à l instruction ou modifiez la logique du programme (par exemple, utilisez une instruction while à la place d une instruction for). Correct StringTokenizer st = new StringTokenizer(class1.getName(), ".", true); String s = ""; while( st.counttokens() > 2 ) { s += st.nexttoken(); Instruction break ou commentaire dans l instruction Case (SBCCS) Selon les conventions de Sun pour le code Java, chaque fois qu un case continue en séquence (n inclut pas d instruction break), un commentaire devrait être ajouté à l emplacement qu aurait normalement occupé l instruction break. Dans le case par défaut, l instruction break est redondante, mais elle empêche une erreur de passage en séquence (fall-through) si un autre case est ajouté ultérieurement. Incorrect switch( c ) { case n : result += \n ; break; case r : result += \r ; break; case \ : someflag = true; case \" : result += c; break; 240 Guide de l utilisateur de Borland Together Developer 2005
251 Définitions des audits Astuce Astuce Astuce // code supplémentaire... Ajoutez le commentaire /* passe en séquence */ là où devrait normalement se trouver l instruction break. Correct switch( c ) { case n : result += \n ; break; case r : result += \r ; break; case \ : someflag = true; /* passe en séquence */; case \" : result += c; break; // code supplémentaire... Utiliser equals au lieu de = = (UE) L opérateur de chaînes == vérifie si deux objets chaîne sont identiques. Toutefois, la plupart du temps, vous souhaitez simplement vérifier que deux chaînes ont la même valeur. Dans ce cas, utilisez la méthode equals. Incorrect void func (String str1, String str2) { if (str1 == str2) { // faire quelque chose Remplacez l opérateur == par la méthode equals. Correct void func (String str1, String str2) { if ( str1.equals(str2) ) { // faire quelque chose Utilisation de L au lieu de l à la fin des constantes entières (UL) UL est un audit qui peut être corrigé. Il est difficile de différencier la lettre minuscule l du chiffre 1. Lorsque la lettre l est utilisée en tant que modificateur long à la fin d une constante entière, elle peut être confondue avec un chiffre. Dans ce cas, il vaut mieux utiliser une lettre majuscule L. Incorrect void func () { long var = 0x l; Changez le l de la fin des constantes entières en L. Chapitre 8 : Exécution des audits et métriques 241
252 Définitions des audits Correct void func () { long var = 0x L; Audits de contenu superflu Opérations d égalité sur des arguments booléens (EOBA) Evitez d effectuer des opérations d égalité sur des opérandes booléens. Vous ne devriez pas utiliser les littéraux true et false dans des clauses conditionnelles. Incorrect int oper (boolean bok) { if (bok) { return 1; while ( bok == true ) { // faire quelque chose return ( bok == false )? 1 : 0; Correct int oper (boolean bok) { if (bok) { return 1; while ( bok ) { // faire quelque chose return (! bok )? 1 : 0; Construction de liste d importation (ILC) ILC est un audit qui peut être corrigé. Cette règle permet de construire une liste d importation optimale. Elle collecte les références à des classes utilisées et modifie la liste d importation en fonction des paramètres. De plus, l audit supprime les déclarations d importation en double, les packages des classes java.lang et du fichier source explicitement importés et les éléments importés non utilisés. L audit peut être personnalisé pour grouper et trier les éléments de la liste d importation selon vos spécifications dans les paramètres. Stratégies d importation Toujours importer explicitement : L audit construit une liste d importation où tous les éléments utilisent la forme explicite, sauf ceux spécifiés dans la liste Importer à la demande. Toujours importer à la demande : L audit construit une liste d importation où tous les éléments utilisent la forme à la demande, sauf ceux spécifiés dans la liste Importer explicitement. Importer à la demande si plus de n classes sont utilisées pour un package : L audit compte les classes qui sont utilisées dans un fichier. Si le nombre des classes utilisées pour un package est supérieur à la limite, l audit les organise en un seul élément à la demande ; si le nombre est inférieur à la limite, il les organise en importations explicites. Les éléments appartenant à la liste Importer à la demande sont toujours agencés à la demande et les éléments appartenant à la liste 242 Guide de l utilisateur de Borland Together Developer 2005
253 Définitions des audits Importer explicitement sont toujours agencés explicitement, quel que soit le nombre de classes utilisées. Paramètres de personnalisation Groupage et tri : L onglet Groupage et tri du volet Options vous permet de contrôler la façon dont seront regroupés et triés les éléments de la liste d importation. Si un élément de la liste d importation élaborée se trouve sur cet onglet, il sera groupé et placé selon la position qu il occupe dans la liste. Sinon, il est intégré à un groupe. * représente la place pour le groupe des éléments n ayant pas été trouvés dans la liste. Si cette ligne ne figure pas dans la liste, ce groupe est placé à la fin de la liste d importation. A l intérieur d un groupe, les éléments sont classés par ordre alphabétique. Si l option Récursivement est cochée, les sous-packages sont traités comme le package spécifié. Listes Importer à la demande et Importer explicitement : Ces listes contiennent des packages qui doivent être organisés comme importations à la demande ou explicites quelle que soit la stratégie d importation générale. Si l option Récursivement est cochée, les sous-packages sont traités comme le package spécifié. Correction en une étape : Si l option Correction en une étape est cochée sous l onglet Général, toutes les modifications nécessaires à la liste d importation sont regroupées en une seule action. Si elle n est pas cochée, chaque modification à la liste des importations est représentée dans le résultat de l audit comme une violation individuelle. Audits connexes dépréciés Cette règle remplace les audits dépréciés suivants qui concernent les listes d importation : Replacement for Demand Imports (RDI) Duplicate Import Declarations (DID) Explicitly Importing java.lang Classes (EIJLC) Imported Items Should Be Used (IISBU) Importing the Source File s Package (ISFP) Astuce Modificateurs d interface obsolètes (OIM) OIM est un audit qui peut être corrigé. Le modificateur abstract est considéré comme obsolète et ne doit pas être utilisé. Incorrect abstract interface OIM { Supprimez les modificateurs abstract. Correct interface OIM { Evaluations instanceof superflues (UIOE) Vérifie si le type à l exécution de l expression de la partie gauche est celui spécifié dans la partie droite. Incorrect class UIOE { void operation () { Chapitre 8 : Exécution des audits et métriques 243
254 Définitions des audits Astuce Animal animal; Elephant elephant; if ( animal instanceof Animal ) { dosomething1(animal); if ( elephant instanceof Animal ) { dosomething2(elephant); class Animal { class Elephant extends Animal { Supprimez les tests inutiles Correct class UIOE { void operation () { Animal animal; Elephant elephant; dosomething1(animal); dosomething2(elephant); class Animal { class Elephant extends Animal { Casts superflus (UC) Vérifie l utilisation de conversions de type inutiles. Incorrect class Animal { class Elephant extends Animal { void func () { int i; float f = (float) i; Elephant e1; Elephant e2 = (Elephant) e1; Astuce Animal a; Elephant e; a = (Animal) e; Supprimez les transtypages inutiles pour augmenter la lisibilité. Modificateurs de membres d interface inutiles (UIMM) UIMM est un audit correctible. Toutes les opérations d une interface sont implicitement publiques et abstraites. Tous les attributs d une interface sont implicitement publics, finals et statiques. Incorrect interface UIMM { int attr1; public final static int ATTR2; void oper1 (); 244 Guide de l utilisateur de Borland Together Developer 2005
255 Définitions des audits Astuce public abstract void oper2 (); Supprimez les modificateurs des membres de l interface superflus. Correct interface UIMM { int attr1; final static int ATTR2; void oper1 (); void oper2 (); Parenthèses d instruction return inutiles (URSP) Selon les conventions du code Sun pour Java, une instruction return avec une valeur ne doit pas utiliser de parenthèses, excepté si elles rendent ainsi la valeur retournée plus évidente. Exemple : Incorrect return; return (mydisk.size()); return (sizeok? size : defaultsize); Correct return; return mydisk.size(); return (sizeok? size : defaultsize); Astuce Variables locales et paramètres formels inutilisés (ULVFP) Les déclarations des variables locales et des paramètres formels doivent être utilisés. Cet audit ne vérifie pas l utilisation de paramètres formels s ils sont définis dans des classes de base et des interfaces ni s ils concernent la méthode main. Dans les cas où seule la valeur d une variable ou d un paramètre change, l audit ne considère pas cette modification comme une utilisation. Ils sont donc signalés comme violations. Par exemple : { int i = 0; i = 9; i++; L information donnée ici est que i n est pas utilisé. Incorrect int oper (int unused_param, int used_param) { int unused_var; return 2 * used_param; Supprimez les variables locales et les paramètres formels inutilisés. Membres de classes privés non utilisés (UPCM) UPCM est un audit correctible. Un membre inutilisé d une classe pourrait indiquer un défaut logique du programme. La déclaration de la classe doit être révisée afin de déterminer l utilité du ou des membres inutilisés. Chapitre 8 : Exécution des audits et métriques 245
256 Définitions des métriques Astuce Incorrect class UPCM { private int bad_attr; private int good_attr; private void bad_oper () { //faire quelque chose...; private void good_oper1 () { good_attr = 10; public void good_oper2() { good_oper1(); Examinez le programme. Si le membre concerné est réellement inutile, supprimez-le (ou, au moins, mettez-le en commentaire). Définitions des métriques Tableau 8.6 Métriques disponibles dans Together Developer 2005 De base Lines of Code (LOC) (lignes de code) Number of Attributes (NOA) (nombre d attributs) Number of Classes (NOC) (nombre de classes) Number of Constructors (NOCON) (nombre de constructeurs) Number of Members (NOM) (nombre de membres) Number of Operations (NOO) (nombre d opérations) Opérateur de négation dans une instruction if (NOIS) Cohésion Lack of Cohesion of Methods 1 (LOCOM1) (manque de cohésion des méthodes 1) Lack of Cohesion of Methods 2 (LOCOM2) (manque de cohésion des méthodes 2) Lack of Cohesion of Methods 3 (LOCOM3) (manque de cohésion des méthodes 3) Complexité Attribute Complexity (AC) (complexité des attributs) Cyclomatic Complexity (CC) (complexité cyclomatique) Number of Remote Methods (NORM) (nombre de méthodes Remote) Response for Class (RFC) (réponse pour la classe) Weighted Methods Per Class 1 (WMPC1) (méthodes pondérées par classe 1) Weighted Methods Per Class 2 (WMPC2) (méthodes pondérées par classe 2) Couplage Change Dependency Between Classes (CDBC) (modification de la dépendance entre classes) Coupling Between Objects (CBO) (couplage entre objets) Coupling Factor (CF) (facteur de couplage) Activé par défaut Oui Oui Oui Non Non Oui Non Activé par défaut Non Non Oui Activé par défaut Non Oui Oui Oui Oui Non Activé par défaut Non Oui Oui 246 Guide de l utilisateur de Borland Together Developer 2005
257 Définitions des métriques Tableau 8.6 Data Abstraction Coupling (DAC) (couplage avec abstraction de données) FanOut (FO) (déploiement) Method Invocation Coupling (MIC) (couplage des appels de méthode) Violations of Demeters Law (VOD) (violations de la loi de Demeters) Encapsulation Attribute Hiding Factor (AHF) (facteur de masquage des attributs) Method Hiding Factor (MHF) (facteur de masquage des méthodes) Halstead Halstead Difficulty (HDiff) (difficulté Halstead) Halstead Effort (HEff) (travail Halstead) Halstead Program Length (HPLen) (longueur de programme Halstead) Halstead Program Vocabulary (HPVoc) (vocabulaire du programme Halstead) Halstead Program Volume (HPVol) (volume du programme Halstead) Number of Operands (NOprnd) (nombre d opérandes) Number of Operators (NOprtr) (nombre d opérateurs) Number of Unique Operands (NUOprnd) (nombre d opérandes uniques) Number of Unique Operators (NUOprtr) (nombre d opérateurs uniques) Héritage Attribute Inheritance Factor (AIF) (facteur d héritage des attributs) Method Inheritance Factor (MIF) (facteur d héritage des méthodes) Depth of Inheritance Hierarchy (DOIH) (profondeur de la hiérarchie des héritages) Number of Child Classes (NOCC) (nombre de classes enfant) Couplage fondé sur l héritage Total Reuse in Descendants Unitary (TRDu) (total des réutilisations dans l unitaire des descendants) Total Reuse in Descendants percentage (TRDp) (total des réutilisations dans le pourcentage de descendants) Total Reuse from Ancestors unitary (TRAu) (total des réutilisations depuis l unitaire des ancêtres) Total Reuse from Ancestors percentage (TRAp) (total des réutilisations depuis le pourcentage des ancêtres) Maximum Métriques disponibles dans Together Developer 2005 (suite) Maximum Number of Levels (MNOL) (nombre maximal de niveaux) Maximum Number of Parameters (MNOP) (nombre maximal de paramètres) Maximum Size of Operation (MSOO) (taille maximale de l opération) Oui Oui Non Non Activé par défaut Oui Oui Activé par défaut Oui Oui Oui Non Non Non Non Non Non Activé par défaut Oui Oui Oui Oui Activé par défaut Non Non Non Non Activé par défaut Oui Non Oui Chapitre 8 : Exécution des audits et métriques 247
258 Définitions des métriques Tableau 8.6 Polymorphisme Number of Added Methods (NOAM) (nombre de méthodes ajoutées) Number of Overridden Methods (NOOM) (nombre de méthodes remplacées) Polymorphism Factor (PF) (facteur de polymorphisme) Ratio Métriques disponibles dans Together Developer 2005 (suite) Comment Ratio (CR) (ratio de commentaire) True Comment Ratio (TCR) (ratio des commentaires véritables) Percentage of Package Members (PPkgM) (pourcentage de membres du package) Percentage of Private Members (PPrivM) (pourcentage de membres privés) Percentage of Protected Members (PProtM) (pourcentage de membres protégés) Percentage of Public Members (PPubM) (pourcentage de membres publics) Métriques de base Lines of Code (LOC) (lignes de code) Il s agit de la mesure traditionnelle de la taille. Elle compte le nombre des lignes de code. Les commentaires de documentation et d implémentation, ainsi que les lignes vierges, peuvent optionnellement être comptées comme lignes de code. Les commentaires de documentation sont des commentaires Javadoc. Les commentaires d implémentation sont un autre type de commentaires. Number of Attributes (NOA) (nombre d attributs) Compte le nombre d attributs. Optionnellement, les attributs hérités peuvent être comptés. Si une classe a beaucoup d attributs, il convient peut-être de la diviser en sous-classes. Number of Classes (NOC) (nombre de classes) Compte le nombre de classes. Activé par défaut Number of Constructors (NOCON) (nombre de constructeurs) Compte le nombre de constructeurs. Vous pouvez spécifier s il convient de compter tous les constructeurs ou seulement les constructeurs publics, ou seulement les constructeurs protégés, etc. Number of Members (NOM) (nombre de membres) Compte le nombre des membres, c est-à-dire les attributs et les opérations ajoutées à une classe. Optionnellement, les membres hérités peuvent être comptés dans le total. Si une classe a beaucoup de membres, il convient peut-être de la diviser en sous-classes. Number of Operations (NOO) (nombre d opérations) Compte le nombre d opérations. Les membres hérités sont comptés si la case Ancêtres est cochée. Si une classe a beaucoup d opérations, il convient peut-être de la diviser en sous-classes. Oui Oui Oui Activé par défaut Oui Non Non Non Non Non 248 Guide de l utilisateur de Borland Together Developer 2005
259 Définitions des métriques Number of Import Statements (NOIS) (nombre d instructions Import) Compte le nombre de packages/classes importés. Cette métrique peut mettre l accent sur des importations excessives et servir de mesure du couplage. L utilisation de cette métrique dépend de la politique de votre entreprise vis à vis des instructions d importation. Si le style de codage en vigueur dans l entreprise autorise l utilisation d instructions import se terminant par *, la valeur de la métrique doit être maintenue aussi basse que possible. Souvent, une valeur élevée de la métrique indique une division du projet en packages incorrecte. Si le style de l entreprise interdit l utilisation des instructions import se terminant par *, la métrique est alors indirectement liée à la métrique CBO, qui doit être également utilisée. En général, il n est pas recommandé de générer des analyses sur la base de cette métrique. Métriques de cohésion Lack of Cohesion of Methods 1 (LOCOM1) (manque de cohésion des méthodes 1) Prend chaque paire des méthodes de la classe et détermine l ensemble des champs accédés par chacune. Si les méthodes ont des ensembles d accès aux champs qui sont disjoints, le compteur P est incrémenté de 1. Si elles partagent l accès à au moins un champ, Q est incrémenté de 1. Après avoir traité chaque paire de méthodes : RESULT = (P > Q)? (P - Q) : 0 Une valeur faible indique un fort couplage entre les méthodes, ce qui implique un intense travail de test car beaucoup de méthodes peuvent affecter les mêmes attributs. Elle indique également un fort potentiel de réutilisation et une bonne modélisation de la classe. La définition de cette métrique a été élaborée par Chidamber et Kemerer en Analyse seulement les classes pour lesquelles cette métrique existe. Cette métrique donnant des valeurs absolues de la cohésion d une classe, il est impossible de définir les limites des valeurs acceptables. Une valeur élevée (cohésion faible) suggère une mauvaise modélisation de la classe. Dans ce cas, il est probablement nécessaire de fractionner la classe en sous-classes. Comme alternatives, utilisez LOCOM2 ou LOCOM3. Lack of Cohesion of Methods 2 (LOCOM2) (manque de cohésion des méthodes 2) Compte le pourcentage des méthodes n accédant pas à un attribut spécifique par rapport à tous les attributs de la classe. Une forte valeur de cohésion (un manque faible de cohésion) indique que la classe a été bien conçue. Une classe cohérente aura tendance à fournir un haut degré d encapsulation, alors qu un manque de cohésion diminuera l encapsulation et augmentera la complexité. Analyse seulement les classes pour lesquelles cette métrique existe. Evitez les classes ayant une valeur supérieure à 50 %. Une valeur élevée (cohésion faible) suggère une mauvaise modélisation de la classe, ce qui implique plus de travail pour tester ou modifier la classe. Pour diminuer la valeur, il est conseillé de fractionner la classe en sous-classes. Cette métrique, ainsi que LOCOM1, présente quelques inconvénients (Brian Henderson-Sellers Object-Oriented Metrics. Measure of Complexity ). Alternativement, il est possible d utiliser LOCOM3. Chapitre 8 : Exécution des audits et métriques 249
260 Définitions des métriques Lack of Cohesion of Methods 3 (LOCOM3) (manque de cohésion des méthodes 3) Mesure la dissemblance des méthodes d une classe par attribut. Considérez un ensemble de m méthodes, M 1, M 2,..., M m Les méthodes accèdent à a attributs de données, A 1, A 2,..., A a Soit a(m k ) = nombre d attributs accédés par la méthode M k Soit m(a k ) = nombre de méthodes accédant les données A k Alors : La définition de cette métrique a été proposée par Henderson-Sellers en Une valeur basse indique une bonne subdivision de la classe qui garantit simplicité et forte réutilisabilité. Un manque important de cohésion augmente la complexité et donc le risque d erreur au cours du processus de développement. Analyse seulement les classes pour lesquelles cette métrique existe. Evitez les classes ayant une valeur supérieure à 50 %. Une valeur élevée (cohésion faible) suggère une mauvaise modélisation de la classe, ce qui implique plus de travail pour tester et modifier la classe. Pour diminuer la valeur, il est conseillé de fractionner la classe en sous-classes. Métriques de complexité Attribute Complexity (AC) (complexité des attributs) Définie comme la somme des valeurs de chaque attribut de la classe. Vous pouvez définir des poids pour les types et leurs tableaux séparément sous Complexité du type d attribut. Utilisez * pour définir les types d un package avec tous ses sous-packages. Par exemple, java.lang.* signifie que la ligne définit toutes les classes du package java.lang et de tous ses sous-packages. Pour traiter tous les types non présents dans la table, ajoutez une dernière ligne composée de *. L ordre des lignes est important, car la vérification des attributs s effectue du début à la fin de la table. (Les répétitions d un même type ne sont pas comptées : si un type spécifique suit un type plus général qui le contient, le type spécifique ne sera pas pris en compte. Par exemple, java.lang.* n est pas compté s il vient après java.*) La mesure de la complexité des attributs d une classe dépend de la complexité de chaque attribut et du nombre total d attributs. Cette métrique peut servir à analyser les modifications dans une classe. Il est impossible de recommander des limites à ne pas dépasser pour cette métrique. Comme alternative, vous pouvez utiliser la métrique NOA. Cyclomatic Complexity (CC) (complexité cyclomatique) Cette mesure représente la complexité cognitive de la classe. Elle compte le nombre de chemins possibles dans un algorithme en dénombrant le nombre de régions distinctes sur un organigramme, c est à dire le nombre d instructions if, for et while dans le corps de l opération. Les étiquettes case des instructions switch sont prise en compte si l option Case en tant que branchement est cochée. 250 Guide de l utilisateur de Borland Together Developer 2005
261 Définitions des métriques Une définition stricte de CC (introduite par McCabe en 1976) utilise l organigramme de contrôle d un programme pour mesurer sa complexité : CC = L - N + 2P où L est le nombre de liens du graphe, N le nombre de nœuds du graphe et P le nombre de parties déconnectées du graphe. Par exemple, considérons une méthode constituée d une instruction if : if (x>0) { x++; else { x--; CC = L - N + 2P = *1 = 2 Voici une définition moins formelle : CC = D + 1 où D est le nombre de décisions binaires affichées par l organigramme de contrôle, s il n a qu une entrée et quitte. En d autres termes, le nombre d instructions if, for et while et le nombre d opérateurs logiques et et ou. Pour l exemple précédent : CC = D + 1 = = 2 Seule la complexité cyclomatique (CC) des méthodes d une classe devrait être prise en compte pour l analyse. Cette complexité ne devrait pas excéder 10. Pour les méthodes dont la valeur de la métrique est supérieure, envisagez de les décomposer en plusieurs méthodes séparées. La complexité cyclomatique totale peut servir à analyser les modifications dans une classe. Exemples : 1 Dans le code de la méthode existent de nombreux tests instance of du même objet. Il se peut que le polymorphisme soit employé de façon incorrecte ou pas employé du tout. 2 Le niveau d imbrication des instructions if, for, while utilisées dans le code est élevé. Le groupe d instructions profondément imbriquées peut certainement être extrait dans une opération séparée. En ce cas, vous devriez trouver un fragment de code significatif. Il est possible (mais non nécessaire) que ce fragment se répète en d autres emplacements dans la classe ou les sous-classes. Number of Remote Methods (NORM) (nombre de méthodes Remote) Traite toutes les méthodes et tous les constructeurs et compte le nombre de méthodes distantes appelées. Une méthode distante est une méthode qui n est pas déclarée dans la classe elle-même ni dans les ancêtres de la classe. Les résultats des métriques et pour les méthodes et pour la classe en général sont une aide précieuse à l analyse. Pour les opérations, la valeur de la métrique ne devrait pas excéder 10. Pour réduire la valeur de la métrique, décomposez la méthode en plusieurs méthodes. Pour les classes, la valeur de la métrique ne devrait pas excéder 30. Pour réduire la valeur de la métrique, décomposez la classe en plusieurs sous-classes. Response for Class (RFC) (réponse pour la classe) La taille de l ensemble réponse de la classe inclut les méthodes de la hiérarchie d héritage de la classe et les méthodes pouvant être invoquées sur d autres objets. Une classe qui fournit un ensemble réponse plus grand est considérée comme plus Chapitre 8 : Exécution des audits et métriques 251
262 Définitions des métriques complexe et comme nécessitant plus de test qu une classe dont la complexité de la modélisation générale est plus faible. Cette mesure se calcule par la formule : Number of Local Methods + Number of Remote Methods. Les résultats des métriques et pour les méthodes et pour la classe en général sont une aide précieuse à l analyse. Pour les opérations, la valeur de la métrique ne devrait pas excéder 15. Pour réduire la valeur de la métrique, décomposez la méthode en plusieurs méthodes. Pour les classes, la valeur de la métrique ne devrait pas excéder 50. Pour réduire la valeur de la métrique, décomposez la classe en plusieurs sous-classes. Weighted Methods Per Class 1 (WMPC1) (méthodes pondérées par classe 1) Cette métrique est la somme de la complexité de toutes les méthodes d une classe, où chaque méthode a reçu un poids correspondant à sa complexité cyclomatique. Le nombre de méthodes et leur complexité permettent de prévoir le temps et l effort nécessaires pour développer et maintenir la classe. Seules sont incluses les méthodes spécifiées dans la classe : toutes les méthodes héritées d un parent sont exclues. Les résultats des métriques et pour les méthodes et pour la classe en général sont une aide précieuse à l analyse. Pour les opérations, la valeur de la métrique ne devrait pas excéder 10. Pour réduire la valeur de la métrique, décomposez la méthode en plusieurs méthodes. Pour les classes, la valeur de la métrique ne devrait pas excéder 30. Pour réduire la valeur de la métrique, décomposez la classe en plusieurs sous-classes. Weighted Methods Per Class 2 (WMPC2) (méthodes pondérées par classe 2) Cette métrique sert à mesurer la complexité d une classe, selon le principe qu une classe possédant plus de méthodes qu une autre sera plus complexe, et qu une méthode comportant plus de paramètres qu une autre sera également plus complexe. Cette métrique compte le nombre des méthodes et des paramètres d une classe. Seules sont incluses les méthodes spécifiées dans la classe : toutes les méthodes héritées d un parent sont exclues. Evitez les classes dont la valeur de la métrique est supérieure à 100. Pour réduire la valeur de la métrique, décomposez la classe en sous-classes ou reconcevez-la. Métriques de couplage Change Dependency Between Classes (CDBC) (modification de la dépendance entre classes) Cette métrique mesure le couplage. Elle détermine la quantité potentielle de travail de suivi à effectuer dans une classe client (CC) lorsque la classe serveur (SC) est modifiée par une activité de maintenance. Définition. CDBC entre la classe client CC et la classe serveur SC est définie par : 1 n si SC est une super-classe de CC 2 n si CC est un attribut de super-classe de SC 3 j si SC est utilisée dans j méthodes de CC comme variable locale ou paramètre de la méthode CC ou comme référence à la méthode SC où n est le nombre de méthodes de CC. 252 Guide de l utilisateur de Borland Together Developer 2005
263 Définitions des métriques Remarque 1. Vous pouvez spécifier une classe unique, une liste de classes, un package ou une liste de packages contenant des classes serveur. Par exemple, la liste 1 java.lang.string 2 java.awt.* contient la classe String et toutes les classes des packages java.awt, y compris les classes des sous-packages. Remarque 2. Si une classe satisfait le 2e et le 3e éléments (ou le 1er et le 3e) de la définition de la métrique, alors CDBC vaut n. Remarque 3. Les variables locales inutilisées n auront pas d impact sur CDBC. La valeur de la métrique dépend de l ensemble des classes serveur concerné. Cette métrique est utilisée pour estimer quantitativement à quel point il sera difficile de modifier la classe lorsque les classes serveur seront modifiées. Plus grande est la valeur de la métrique, plus nombreuses seront les méthodes de la classe touchées par les modifications lorsque les classes serveur seront modifiées. Coupling Between Objects (CBO) (couplage entre objets) Représente le nombre des classes à laquelle une classe est couplée. Compte le nombre des types de référence utilisés dans les déclarations d attributs, les paramètres formels, les types renvoyés, les déclarations throws et les variables locales, ainsi que les types à partir desquels sont effectuées les sélections d attributs et de méthodes. Les types primitifs, les types du package java.lang et les super-types ne sont pas comptés. Un couplage excessif entre objets nuit à la modélisation modulaire et constitue un obstacle à la réutilisation. Plus une classe est indépendante, plus elle est facile à réutiliser dans une autre application. Pour améliorer la modularité et favoriser l encapsulation, les couples de classes inter-objets doivent être en nombre minimal. Plus le nombre de couples est grand, plus la sensibilité aux modifications des autres parties de la modélisation est forte, et plus la maintenance est difficile. La mesure du couplage permet de prévoir le niveau de complexité des tests de l ensemble de la modélisation. Plus le couplage est élevé, plus rigoureux devront être les tests. Les résultats des métriques et pour les méthodes et pour la classe en général sont une aide précieuse à l analyse. Pour les opérations, la valeur de la métrique ne devrait pas excéder 10. Pour réduire la valeur de la métrique quand elle s applique à une méthode, décomposez celle-ci en plusieurs méthodes séparées. Pour les classes, la valeur de la métrique ne devraient pas excéder 30. Pour réduire la valeur de la métrique quand elle s applique à une classe, décomposez celle-ci en plusieurs sous-classes. Coupling Factor (CF) (facteur de couplage) Cette mesure appartient à la suite MOOD (Metrics for Object-Oriented Development). Elle est calculée en tant que fraction. Le numérateur représente le nombre de couplages non issus de l héritage. Le dénominateur est le nombre maximal possible de couplages dans un système. La métrique est calculée pour l ensemble du projet, elle sert à analyser les modifications d un projet et à comparer des projets. Vous devez viser la valeur la plus faible possible (la plus proche possible de 0 %). Chapitre 8 : Exécution des audits et métriques 253
264 Définitions des métriques Data Abstraction Coupling (DAC) (couplage avec abstraction de données) Compte le nombre de types de référence utilisés dans les déclarations d attributs. Les types primitifs et les super-types ne sont pas comptés. En java, les types du package java.lang sont des types primitifs et ne sont donc pas comptés. Limitez les attributs à un maximum de 5 types différents d attributs par classe. Pour réduire la valeur de la métrique, décomposez la classe en plusieurs sous-classes. FanOut (FO) (déploiement) Compte le nombre des types de référence utilisés dans les déclarations d attributs, les paramètres formels, les types renvoyés, les déclarations throws et les variables locales. Les types simples et les super-types ne sont pas comptés. Evitez les classes dont la valeur de la métrique est supérieure à 15. Pour réduire la valeur de la métrique, décomposez la classe en sous-classes ou reconcevez-la. Method Invocation Coupling (MIC) (couplage des appels de méthode) Cette métrique mesure le nombre (relatif) des classes auxquelles une classe donnée envoie des messages. Définition. MIC norm = n MIC /(N-1) où N est le nombre total des classes définies dans le projet et n MIC le nombre des classes auxquelles des messages sont envoyés. Points de vue. L impact du couplage sur certains attributs externes est résumé ci-dessous d après plusieurs points de vue. 1 Facilité de maintenance. Une classe fortement couplée (de forte valeur MIC) est plus difficile à maintenir à cause de sa dépendance par rapport aux classes auxquelles elle est couplée. 2 Compréhensibilité. Une classe fortement couplée est plus difficile à comprendre car elle implique la compréhension partielle (et parfois totale) des classes auxquelles elle est couplée. 3 Testabilité et propension aux erreurs. La propension d une classe à occasionner des erreurs est directement proportionnelle au nombre des couples qu elle forme avec les autres classes. En conséquence, un haut niveau de couplage a un impact négatif sur la testabilité. Source : Ing. Radu Marinescu. An Object Oriented Metrics Suite on Coupling. Universitatea Politehnica Timisoara, Facultatea de Automatica si Calculatoare, Departamentul de Calculatoare si Inginerie Software. Septembre, La valeur de la métrique doit être aussi basse que possible. Cette métrique générant une valeur relative, il est impossible de recommander la fourchette des valeurs acceptables par une classe. FO et CBO peuvent être considérées comme deux alternatives. Violations of Demeters Law (VOD) (violations de la loi de Demeters) Loi de Déméter Définition 1 (Client) La méthode M est un client de la méthode f attachée à la classe C si, dans le message M, f est envoyée à un objet de la classe C ou à C. Si f est spécialisée dans une ou plusieurs sous-classes, alors M n est client que de la méthode f attachée à la plus haute classe de la hiérarchie. La méthode M est un client d une certaine méthode attachée à C. Définition 2 (Fournisseur) Si M est un client de la classe C, alors C est un fournisseur pour M. En d autres termes, une classe fournisseur pour une méthode est une classe dont les méthodes sont appelées dans la méthode. 254 Guide de l utilisateur de Borland Together Developer 2005
265 Définitions des métriques Définition 3 (Classe connaissance) Une classe C1 est une classe connaissance de la méthode M attachée à la classe C2, si C1 est un fournisseur pour M et si C1 n est pas : 1 la même classe que C2 ; 2 une classe utilisée dans la déclaration d un argument de M ; 3 une classe utilisée dans la déclaration d une variable d instance de C2. Définition 4 (Classe connaissance préférée) Une classe connaissance préférée d une méthode M est soit 1 une classe d objets créée directement dans M, soit 2 une classe utilisée dans la déclaration d une variable globale utilisée dans M. Remarque pour la réalisation. Dans la création directe, les objets sont créés via l opérateur new. Définition 5 (Classe fournisseur préféré) La classe B est appelée fournisseur préféré de la méthode M (attachée à la classe C) si B est un fournisseur pour M et si une des conditions suivantes est respectée : 1 B est utilisée dans la déclaration d une variable d instance de C, 2 B est utilisée dans la déclaration d un argument de M, incluant C et ses super-classes, 3 B est une classe connaissance préférée de M. Figure 8.8 Relation entre les différents types de classes fournisseur La forme de la loi de Déméter applicable aux classes a deux versions : une version stricte et une version de minimisation. La forme stricte de la loi établit que chaque classe fournisseur d une méthode doit être un fournisseur préféré. La forme de minimisation est plus laxiste et se contente d exiger de minimiser le nombre de classes connaissance de chaque méthode. Observations 1 Le but de la loi de Déméter est d assurer la plus grande modularité possible au logiciel. La loi réduit effectivement les occurrences de certains messages imbriqués et simplifie les méthodes. 2 La définition de la loi établit une différence entre les classes associées à la déclaration de la méthode et les classes utilisées dans le corps de la méthode, c est-à-dire les classes associées à son implémentation. Le premier cas inclut la classe où est attachée la méthode, ses super-classes, les classes utilisées dans les déclarations des variables d instance et les classes utilisées pour déclarer les arguments de la méthode. En un sens, elles sont les conséquences automatiques de la déclaration de la méthode. Elles peuvent facilement être dérivées du code Chapitre 8 : Exécution des audits et métriques 255
266 Définitions des métriques et affichées dans un navigateur. Toutes les autres classes fournisseur pour les méthodes sont introduites dans le corps de la fonction ; cela signifie que ces couples ont été créés au moment de l implémentation concrète de la méthode. Elles ne peuvent être déterminées que par une lecture attentive de l implémentation. Violations of Demeters Law - VOD La définition de cette nouvelle métrique est basée sur la définition de la forme de minimisation de la loi de Déméter. Nous définissons la métrique VOD en fonction des concepts développés ici et en rappelant que la forme de minimisation de la loi de Déméter requiert de conserver une valeur basse au nombre de classes connaissance. Définition 6 (Métrique VOD) Soit une classe C et A l ensemble de toutes ses classes connaissance, VOD(C) = A En termes ordinaires, VOD est le nombre de classes connaissance d une classe donnée. Maintenir VOD à une valeur basse présente certains avantages énumérés ci-dessous : 1 Contrôle du couplage. Un projet dont la valeur VOD est basse est le signe d un couplage par use minimal entre abstractions. Cela signifie qu un nombre réduit de méthodes peut être invoqué. Cela rend les méthodes plus réutilisables. 2 Réduction de la structure. La réduction de la valeur VOD représente en fait une réduction du nombre des sous-éléments extraits directement pour la hiérarchie partie-de. En d autres mots, les membres publics doivent être utilisés de manière restrictive. 3 Emplacement de l information. Une valeur VOD basse signifie également que l information sur la classe est localisée. Cela réduit la complexité du programme. Source : Ing. Radu Marinescu. An Object Oriented Metrics Suite on Coupling. Universitatea Politehnica Timisoara, Facultatea de Automatica si Calculatoare, Departamentul de Calculatoare si Inginerie Software. Septembre, Evitez d enfreindre la loi de Déméter. Vous pouvez spécifier les classes à exclure de l application de cette métrique en utilisant les paramètres de celle-ci. Par exemple, il est recommandé d exclure des violations les classes provenant du package java.util.*, ainsi que les classes fournissant au projet des services fondamentaux ou représentant l interface de base. Métriques d encapsulation Attribute Hiding Factor (AHF) (facteur de masquage des attributs) Cette mesure appartient à la suite MOOD (Metrics for Object-Oriented Development). Elle est calculée en tant que fraction. Le numérateur est la somme des invisibilités de tous les attributs définis dans toutes les classes. L invisibilité d un attribut est le pourcentage des classes (exceptée la classe propriétaire de l attribut) pour qui cet attribut n est pas visible. Le dénominateur est le nombre total d attributs définis dans le projet. La métrique est calculée pour l ensemble du projet et sert à analyser les modifications du projet. Vous devez viser la valeur la plus forte possible (la plus proche possible de 100 %). 256 Guide de l utilisateur de Borland Together Developer 2005
267 Définitions des métriques Method Hiding Factor (MHF) (facteur de masquage des méthodes) Cette mesure appartient à la suite MOOD (Metrics for Object-Oriented Development). Elle est calculée en tant que fraction. Le numérateur est la somme des invisibilités de tous les méthodes définies dans toutes les classes. L invisibilité d une méthode est le pourcentage des classes (exceptée la classe propriétaire de la méthode) pour qui cette méthode n est pas visible. Le dénominateur est le nombre total de méthodes définies dans le projet. La métrique est calculée pour l ensemble du projet et sert à analyser les modifications du projet. Une valeur forte pour cette métrique (proche de 100%) indique une modélisation indigente de la classe. En ce cas, vous devriez reconcevoir le projet et réviser l accès aux méthodes, sauf pour la hiérarchie des interfaces. Dans la majorité des cas, un accès protégé, package ou privé suffit à de nombreuses méthodes publiques ; modifier l accès réduit la valeur de la métrique. Métriques Halstead Halstead Difficulty (HDiff) (difficulté Halstead) Cette mesure appartient aux métriques Halstead Software Science. Elle se calcule par la formule : ( Number of Unique Operators / 2) * ( Number of Operands / Number of Unique Operands ). Cette métrique estime le niveau de difficulté d une classe. La métrique sert pour comparer quantitativement la difficulté de diverses classes, ou pour l analyse des modifications des classes de l ensemble d un projet. Halstead Effort (HEff) (travail Halstead) Cette mesure appartient aux métriques Halstead Software Science. Elle est calculée par la formule : Halstead Difficulty * Halstead Program Volume. Cette métrique estime l effort dépensé pour le développement d une classe. L auteur de la métrique a constaté empiriquement une relation établissant que la valeur de la métrique est équivalente au nombre de secondes passée à développer la classe. Naturellement, la métrique ne peut pas évaluer le temps passé sur la classe en prenant en compte l histoire antérieure aux modifications de la classe. Cette métrique peut servir à évaluer le temps passé au développement d une classe ou d un projet, et pour l analyse des modifications d une classe ou d un projet. Halstead Program Length (HPLen) (longueur de programme Halstead) Cette mesure appartient aux métriques Halstead Software Science. Elle se calcule par la formule : Number of Operators + Number of Operands. Cette estimation de la longueur d une classe indépendante du style du programmeur est une alternative à LOC. Evitez les classes dont la valeur de la métrique est supérieure à Pour réduire la valeur de la métrique, décomposez la classe en sous-classes. Halstead Program Vocabulary (HPVoc) (vocabulaire du programme Halstead) Cette mesure appartient aux métriques Halstead Software Science. Elle se calcule par la formule : Number of Unique Operators + Number of Unique Operands. Les programmes les plus difficiles à comprendre sont ceux qui utilisent le vocabulaire le plus large. Cette métrique peut servir à comparer des classes et à analyser les modifications apportées à une classe. Chapitre 8 : Exécution des audits et métriques 257
268 Définitions des métriques Halstead Program Volume (HPVol) (volume du programme Halstead) Cette mesure appartient aux métriques Halstead Software Science. Elle est calculée par la formule : Halstead Program Length * Log2( Halstead Program Vocabulary ). Le volume d un programme peut servir à estimer le nombre d erreurs qui s y trouvent. L auteur de la métrique a constaté empiriquement une relation établissant qu une erreur se produit toutes les 3000 unités de la métrique. Le nombre d erreurs dans une classe est évaluée d après ce principe. Number of Operands (NOprnd) (nombre d opérandes) Cette mesure sert de paramètre aux métriques Halstead Software Science. Elle compte le nombre des opérandes utilisés par une classe. Exemple : 01 public class Class1 { 02 public void x(boolean v) { 03 int i; 04 if (v) {i = 1; 05 else {i = 2; 06 switch(i){ 07 case 1: 08 case 2: 09 default:; try { 12 while(v){ 13 v = false; 14 int r = 1; 15 Boolean b = new Boolean(true); 16 i = i*i+r; 17 break; catch (Exception e) { 20 throw e; Tableau 8.7 Où Descriptions des lignes de code Ligne N1 n1 N2 n2 04 if, = if, = v, i, 1 v, i, 1 05 = i, switch switch i 12 loop loop v 13 = v, false false 14 = 1 15 =, new, call new, call Boolean, true Boolean, true 16 =, *, + *, + i, i, i, r r 20 throw throw e e Total N1 est NOprtr (Number of Operators), n1 est NUOprtr (Number of Unique Operators), N2 est NOprnd (Number of Operands), n2 est NUOprnd (Number of Unique Operands) 258 Guide de l utilisateur de Borland Together Developer 2005
269 Définitions des métriques Les métriques dérivées du groupe Halstead sont calculées en fonction de cette métrique. Cette métrique peut servir à comparer des classes, ou à analyser les modifications apportées aux classes et leur impact sur les métriques dérivées. Number of Operators (NOprtr) (nombre d opérateurs) Cette mesure sert de paramètre aux métriques Halstead Software Science. Elle compte le nombre d opérateurs utilisés par une classe. Exemple : 01 public class Class1 { 02 public void x(boolean v) { 03 int i; 04 if (v) {i = 1; 05 else {i = 2; 06 switch(i){ 07 case 1: 08 case 2: 09 default:; try { 12 while(v){ 13 v = false; 14 int r = 1; 15 Boolean b = new Boolean(true); 16 i = i*i+r; 17 break; catch (Exception e) { 20 throw e; Tableau 8.8 Où Descriptions des lignes de code Ligne N1 n1 N2 n2 04 if, = if, = v, i, 1 v, i, 1 05 = i, switch switch i 12 loop loop v 13 = v, false false 14 = 1 15 =, new, call new, call Boolean, true Boolean, true 16 =, *, + *, + i, i, i, r r 20 throw throw e e Total N1 est NOprtr (Number of Operators), n1 est NUOprtr (Number of Unique Operators), N2 est NOprnd (Number of Operands), n2 est NUOprnd (Number of Unique Operands) Les métriques dérivées du groupe Halstead sont calculées en fonction de cette métrique. Cette métrique peut servir à comparer des classes, ou à analyser les modifications apportées aux classes et leur impact sur les métriques dérivées. Chapitre 8 : Exécution des audits et métriques 259
270 Définitions des métriques Number of Unique Operands (NUOprnd) (nombre d opérandes uniques) Cette mesure sert de paramètre aux métriques Halstead Software Science. Elle compte le nombre des opérandes uniques utilisés par une classe. Exemple : 01 public class Class1 { 02 public void x(boolean v) { 03 int i; 04 if (v) {i = 1; 05 else {i = 2; 06 switch(i){ 07 case 1: 08 case 2: 09 default:; try { 12 while(v){ 13 v = false; 14 int r = 1; 15 Boolean b = new Boolean(true); 16 i = i*i+r; 17 break; catch (Exception e) { 20 throw e; Tableau 8.9 Où Descriptions des lignes de code Ligne N1 n1 N2 n2 04 if, = if, = v, i, 1 v, i, 1 05 = i, switch switch i 12 loop loop v 13 = v, false false 14 = 1 15 =, new, call new, call Boolean, true Boolean, true 16 =, *, + *, + i, i, i, r r 20 throw throw e e Total N1 est NOprtr (Number of Operators), n1 est NUOprtr (Number of Unique Operators), N2 est NOprnd (Number of Operands), n2 est NUOprnd (Number of Unique Operands) Les métriques dérivées du groupe Halstead sont calculées en fonction de cette métrique. Cette métrique peut servir à comparer des classes, ou à analyser les modifications apportées aux classes et leur impact sur les métriques dérivées. Comme le souligne l auteur de la métrique, il est possible d évaluer d avance le nombre d opérandes et d opérateurs uniques (pour certaines catégories de problèmes, les opérateurs uniques peuvent être vus comme des constantes). 260 Guide de l utilisateur de Borland Together Developer 2005
271 Définitions des métriques En ce cas, la longueur du programme, HPLen, peut s estimer comme suit : NUOprtr*log(NUOprtr) + NUOprnd*log(NUOprnd), où log est binaire. Number of Unique Operators (NUOprtr) (nombre d opérateurs uniques) Cette mesure sert de paramètre aux métriques Halstead Software Science. Elle compte le nombre des opérateurs uniques utilisés par une classe. Exemple : 01 public class Class1 { 02 public void x(boolean v) { 03 int i; 04 if (v) {i = 1; 05 else {i = 2; 06 switch(i){ 07 case 1: 08 case 2: 09 default:; try { 12 while(v){ 13 v = false; 14 int r = 1; 15 Boolean b = new Boolean(true); 16 i = i*i+r; 17 break; catch (Exception e) { 20 throw e; Tableau 8.10 Descriptions des lignes de code Ligne N1 n1 N2 n2 04 if, = if, = v, i, 1 v, i, 1 05 = i, switch switch i 12 loop loop v 13 = v, false false 14 = 1 15 =, new, call new, call Boolean, true Boolean, true 16 =, *, + *, + i, i, i, r r 20 throw throw e e Total Où N1 est NOprtr (Number of Operators), n1 est NUOprtr (Number of Unique Operators), N2 est NOprnd (Number of Operands), n2 est NUOprnd (Number of Unique Operands) Chapitre 8 : Exécution des audits et métriques 261
272 Définitions des métriques Les métriques dérivées du groupe Halstead sont calculées en fonction de cette métrique. Cette métrique peut servir à comparer des classes, ou à analyser les modifications apportées aux classes et leur impact sur les métriques dérivées. Métriques sur l héritage Attribute Inheritance Factor (AIF) (facteur d héritage des attributs) Cette mesure appartient à la suite MOOD (Metrics for Object-Oriented Development). Elle est calculée en tant que fraction. Le numérateur est la somme des attributs hérités de toutes les classes du projet. Le dénominateur est le nombre total d attributs disponibles (définis localement plus hérités) pour toutes les classes. La métrique est calculée pour l ensemble du projet et sert à analyser les modifications du projet. Vous devez viser la valeur la plus faible possible (la plus proche possible de 0%). Method Inheritance Factor (MIF) (facteur d héritage des méthodes) Cette mesure appartient à la suite MOOD (Metrics for Object-Oriented Development). Elle est calculée en tant que fraction. Le numérateur est la somme des méthodes héritées de toutes les classes du projet. Le dénominateur est le nombre total de méthodes disponibles (définies localement plus héritées) pour toutes les classes. La métrique est calculée pour l ensemble du projet et sert à analyser les modifications du projet. Une valeur faible (proche de 0 %) suggère une modélisation indigente de la classe. Depth of Inheritance Hierarchy (DOIH) (profondeur de la hiérarchie des héritages) Compte à quel niveau de profondeur dans la hiérarchie une classe ou une interface est déclarée. Des valeurs élevées impliquent que la classe est très spécialisée. Il est recommandé de maintenir la profondeur de la classe dans la hiérarchie à 5 niveaux maximum. Une position très profonde dans la hiérarchie suggère que la classe n a pas été conçue correctement. Il peut s avérer nécessaire de changer l héritage en agrégation pour les classes dont le niveau de hiérarchie est élevé. Il est possible qu un niveau d abstraction non nécessaire ait été employé. Cette métrique peut servir à analyser les modifications d un projet et à comparer des projets. Number of Child Classes (NOCC) (nombre de classes enfant) Compte le nombre de classes qui héritent d une classe particulière, c est-à-dire le nombre de classes situées sous cette classe dans l arbre des héritages. Une valeur non nulle indique que la classe est réutilisée. Cependant, l abstraction de la classe peut être indigente s il existe un trop grand nombre de classes enfant. D autre part, n oubliez pas qu une valeur élevée de cette mesure annonce l intensité de l effort de test nécessaire à chacune des classes enfant. Soyez très attentif lorsque vous manipulez des classes ayant un grand nombre de descendants. Toutes les modifications apportées à de telles classes affectent leurs nombreux descendants. Il se peut que le niveau d abstraction soit trop élevé dans les classes ayant de nombreuses classes enfant. Cependant, il n existe pas de recommandations particulières quant aux limites acceptables du nombre de descendants. La métrique peut servir à comparer des classes et à analyser les modifications d un projet. 262 Guide de l utilisateur de Borland Together Developer 2005
273 Définitions des métriques Métriques sur le couplage fondé sur l héritage Total Reuse in Descendants Unitary (TRDu) (total des réutilisations dans l unitaire des descendants) Définition 1 (Reuse in Descendant-class - RD) La métrique RD entre une classe C et une de ses classes descendant D s exprime par la formule : où m i (i = 1; n C ) représente les membres utilisables de la classe C. Explications La métrique RD quantifie la réutilisation totale de tous les membres de la classe C dans une de ses classes descendant. Le degré de réutilisation d une classe ancêtre par une méthode est variable, et la façon dont il est calculé peut dépendre du but de la mesure. De même que RA, la métrique est paramétrisée par une famille de métriques baptisée Reuse Degree in Descendant-class (RDD) qui quantifie ce degré de réutilisation. Vous trouverez ci-dessous la description de cette famille de métriques. Les métriques RDD Définition 2 (Reuse Degree in Descendant-class) La fonction exprimant la mesure de la réutilisation d un membre m C de la classe C dans une classe descendant D est appelée degré de réutilisation (Reuse Degree) de m C dans la classe descendant D. où SM C est l ensemble de tous les membres de la classe C et SDC C est l ensemble de toutes les classes descendant D de la classe C. Unitary RDD - RDD unit Le Unitary Reuse Degree in Descendant-class est défini comme suit : Métrique Total RD - TRD Dans les sections précédentes, la métrique RD était définie avec deux paramètres : une certaine classe et un descendant de cette classe. Comme pour TRA, il apparaît nécessaire de définir une métrique exprimant la valeur totale de la réutilisation d une classe par tous ses descendants. Il existe deux points de vue pour interpréter cette métrique. 1 Facilité de maintenance. Une valeur TRD élevée pour une classe indique qu une modification apportée à cette classe a un impact élevé sur la hiérarchie des classes sous-jacente, c est-à-dire sur ses descendants. 2 Degré de réutilisation des membres. Une valeur TRD élevée pour une classe indique que ses membres sont en majorité réutilisés dans les sous-classes. Etant donné les enjeux différents de ces deux points de vue, il est impossible d avoir une seule définition de TRD. Il existe une définition distincte pour chacun des points de vue : Définition 3 (Définition de TRD basée sur les descendants) La métrique Total Reuse in Descendants pour une classe C est définie par la somme des valeurs RD existant entre la classe C et tous ses descendants. Ce qui s exprime par la formule ci-dessous : Chapitre 8 : Exécution des audits et métriques 263
274 Définitions des métriques où n D représente le nombre des classes descendant de la classe C, et où D i est l itérateur de ces descendants. Vous pouvez voir non seulement la somme totale de la métrique calculée pour une classe mais aussi les opérandes de cette somme correspondant à toutes les classes descendant de la classe concernée. Cliquez avec le bouton droit sur la table de résultat de la métrique pour accéder à la table de ses opérandes. S il existe des descendants pour cette classe, le menu contextuel de la table de résultat inclut la commande RDu. Source : Ing. Radu Marinescu. An Object Oriented Metrics Suite on Coupling. Universitatea Politehnica Timisoara, Facultatea de Automatica si Calculatoare, Departamentul de Calculatoare si Inginerie Software. Septembre, Une valeur élevée de cette métrique indique que la classe est utilisée de manière intensive par les classes descendant, ce qui est normal pour une modélisation orientée objet. Toute modification apportée à la classe affectera de nombreuses classes enfant ; cette métrique permet d évaluer l impact des modifications d une classe sur ses classes descendant. Il n existe pas de recommandations particulières pour les limites acceptables des valeurs de cette métrique. La métrique peut servir à comparer des classes ou des projets et à analyser les modifications d une classe ou d un projet. Total Reuse in Descendants percentage (TRDp) (total des réutilisations dans le pourcentage de descendants) RDp - Reuse in Descendant percentage Définition 1 (Reuse in Descendant-class - RD) La métrique RD entre une classe C et une de ses classes descendant D s exprime par la formule : où m i (i = 1; n C ) représente les membres utilisables de la classe C. Explications La métrique RD quantifie la réutilisation totale de tous les membres de la classe C dans une de ses classes descendant. Le degré de réutilisation d une classe ancêtre par une méthode est variable, et la façon dont il est calculé peut dépendre du but de la mesure. De même que RA, la métrique est paramétrisée par une famille de métriques baptisée Reuse Degree in Descendant-class (RDD) qui quantifie ce degré de réutilisation. Vous trouverez ci-dessous la description de cette famille de métriques. Les métriques RDD Définition 2 (Reuse Degree in Descendant-class) La fonction exprimant la mesure de la réutilisation d un membre m C de la classe C dans une classe descendant D est appelée degré de réutilisation (Reuse Degree) de m C dans la classe descendant D. où SM C est l ensemble de tous les membres de la classe C et SDC C est l ensemble de toutes les classes descendant D de la classe C. 264 Guide de l utilisateur de Borland Together Developer 2005
275 Définitions des métriques Percentage RDD - RDD perc Le Percentage Reuse Degree in Descendant-class est défini comme suit : où n D est le nombre de méthodes de la classe D. La fonction uses est définie comme suit : Métrique Total RD - TRD Dans les sections précédentes, la métrique RD était définie avec deux paramètres : une certaine classe et un descendant de cette classe. Comme pour TRA, il apparaît nécessaire de définir une métrique exprimant la valeur totale de la réutilisation d une classe par tous ses descendants. Il existe deux points de vue pour interpréter cette métrique. 1 Facilité de maintenance. Une valeur TRD élevée pour une classe indique qu une modification apportée à cette classe a un impact élevé sur la hiérarchie des classes sous-jacente, c est-à-dire sur ses descendants. 2 Degré de réutilisation des membres. Une valeur TRD élevée pour une classe indique que ses membres sont en majorité réutilisés dans les sous-classes. Etant donné les enjeux différents de ces deux points de vue, il est impossible d avoir une seule définition de TRD. Il existe une définition distincte pour chacun des points de vue : Définition 3 (Définition de TRD basée sur les descendants) La métrique Total Reuse in Descendants pour une classe C est définie par la somme des valeurs RD existant entre la classe C et tous ses descendants. Ce qui s exprime par la formule ci-dessous : où n D représente le nombre des classes descendant de la classe C, et où D i est l itérateur de ces descendants. Vous pouvez voir non seulement la somme totale de la métrique calculée pour une classe mais aussi les opérandes de cette somme correspondant à toutes les classes descendant de la classe concernée. Cliquez avec le bouton droit sur la table de résultat de la métrique pour accéder à la table de ses opérandes. S il existe des descendants pour cette classe, le menu contextuel de la table de résultat inclut la commande RDp. Source : Ing. Radu Marinescu. An Object Oriented Metrics Suite on Coupling. Universitatea Politehnica Timisoara, Facultatea de Automatica si Calculatoare, Departamentul de Calculatoare si Inginerie Software. Septembre, Une valeur élevée de cette métrique indique que la classe est utilisée de manière intensive par les classes descendant, ce qui est normal pour une modélisation orientée objet. Toute modification apportée à la classe affectera de nombreuses classes enfant ; cette métrique permet d évaluer l impact des modifications d une classe sur ses classes descendant. Il n existe pas de recommandations particulières pour les limites acceptables des valeurs de cette métrique. Chapitre 8 : Exécution des audits et métriques 265
276 Définitions des métriques La métrique peut servir à comparer des classes ou des projets et à analyser les modifications d une classe ou d un projet. Total Reuse from Ancestors unitary (TRAu) (total des réutilisations depuis l unitaire des ancêtres) RAu - Reuse from Ancestor unitary Définition 1 (Reuse of Ancestor-class - RA) La métrique RA entre une classe C et une de ses classes ancêtre A s exprime par la formule : où mth i (i = 1; n C ) représente les méthodes définies dans la classe C. Explication La métrique RA quantifie la réutilisation d une super-classe en totalisant cette réutilisation à partir de toutes ses méthodes. Le degré de réutilisation d une classe ancêtre par une méthode est variable, et la façon dont il est calculé peut dépendre du but de la mesure. Pour cette raison, la métrique est paramétrisée par une famille de métriques baptisée Reuse Degree of Ancestor-class (RDA) qui évalue ce degré de réutilisation. Vous trouverez ci-dessous la description de cette famille de métriques. Les métriques RDA Définition 2 (Reuse Degree of Ancestor-class) La fonction exprimant la mesure de la réutilisation d une classe ancêtre A dans la méthode mth i de la classe C est appelée Reuse Degree of Ancestor-class A dans la méthode mth i. où SMF C est l ensemble de toutes les fonctions membre (méthodes) de la classe C et SAC C l ensemble de toutes les classes ancêtre A de la classe C. Unitary RDA - RDA unit Le Unitary Reuse Degree of Ancestor-class est défini comme suit : Métrique Total RA - TRA Comme nous l avons vu, la métrique RA a deux paramètres : une certaine classe et une de ses classes ancêtre. Il apparaît nécessaire de disposer d une métrique exprimant pour une classe la réutilisation totale (calculée à partir de tous les ancêtres). La définition de cette nouvelle métrique est basée sur la définition de la métrique RA précédente. Définition 3 (Total Reuse from Ancestors - TRA) La métrique Total Reuse from Ancestors pour une classe C est définie par la somme des valeurs RA existant entre la classe C et toutes ses super-classes. Ce qui s exprime par la formule ci-dessous : où n A représente le nombre des classes ancêtre de la classe C, et où A i est l itérateur de ces classes ancêtre. 266 Guide de l utilisateur de Borland Together Developer 2005
277 Définitions des métriques Vous pouvez voir non seulement la somme totale de la métrique calculée pour une classe mais aussi les opérandes de cette somme correspondant à toutes les classes ancêtre de la classe concernée. Cliquez avec le bouton droit sur la table de résultat de la métrique pour accéder à la table de ses opérandes. S il existe des ancêtres pour cette classe, le menu contextuel de la table de résultat inclut la commande RAu. Source : Ing. Radu Marinescu. An Object Oriented Metrics Suite on Coupling. Universitatea Politehnica Timisoara, Facultatea de Automatica si Calculatoare, Departamentul de Calculatoare si Inginerie Software. Septembre, Une valeur élevée de cette métrique indique que la classe utilise de manière intensive les méthodes de ses classes ancêtre, ce qui est normal pour une modélisation orientée objet. La métrique peut servir à comparer des classes et à analyser les modifications d un projet. Total Reuse from Ancestors percentage (TRAp) (total des réutilisations depuis le pourcentage des ancêtres) RAp - Reuse from Ancestor percentage Définition 1 (Reuse of Ancestor-class - RA) La métrique RA entre une classe C et une de ses classes ancêtre A s exprime par la formule : où mth i (i = 1; n C ) représente les méthodes définies dans la classe C. Explications La métrique RA quantifie la réutilisation d une super-classe en totalisant cette réutilisation à partir de toutes ses méthodes. Le degré de réutilisation d une classe ancêtre par une méthode est variable, et la façon dont il est calculé peut dépendre du but de la mesure. Pour cette raison, la métrique est paramétrisée par une famille de métriques baptisée Reuse Degree of Ancestor-class (RDA) qui évalue ce degré de réutilisation. Vous trouverez ci-dessous la description de cette famille de métriques. Les métriques RDA Définition 2 (Reuse Degree of Ancestor-class) La fonction exprimant la mesure de la réutilisation d une classe ancêtre A dans la méthode mth i de la classe C est appelée Reuse Degree of Ancestor-class A dans la méthode mth i. où SMF C est l ensemble de toutes les fonctions membre (méthodes) de la classe C et SAC C l ensemble de toutes les classes ancêtre A de la classe C. Percentage RDA - RDA perc Le Percentage Reuse Degree of Ancestor-class est défini comme suit : Chapitre 8 : Exécution des audits et métriques 267
278 Définitions des métriques où m i imp (i = 1; n A imp ) représente les membres utilisables de la classe A appartenant à l implémentation de la classe et m j int (j = 1; n A int ) les membres de la classe A appartenant à l interface de la classe. La fonction uses est définie comme suit : et où k A est le facteur de stabilité. Facteur de stabilité est défini comme suit. Une classe A A est stable si la majorité des modifications de l implémentation de A peuvent être exécutées sans affecter son interface. Nous définissons un facteur de stabilité k A, k A [0; 1], comme l expression quantitative de la stabilité de la classe A. Observations La stabilité de la classe ancêtre jouant un rôle important dans la perspective de la classe client, la définition RDA prend aussi en compte la stabilité de l interface de l ancêtre. Métrique Total RA - TRA Comme nous l avons vu, la métrique RA a deux paramètres : une certaine classe et une de ses classes ancêtre. Il apparaît nécessaire de disposer d une métrique exprimant pour une classe la réutilisation totale (calculée à partir de tous les ancêtres). La définition de cette nouvelle métrique est basée sur la définition de la métrique RA précédente. Définition 3 (Total Reuse from Ancestors - TRA) La métrique Total Reuse from Ancestors pour une classe C est définie par la somme des valeurs RA existant entre la classe C et toutes ses super-classes. Ce qui s exprime par la formule ci-dessous : où n A représente le nombre des classes ancêtre de la classe C, et où A i est l itérateur de ces classes ancêtre. Vous pouvez voir non seulement la somme totale de la métrique calculée pour une classe mais aussi les opérandes de cette somme correspondant à toutes les classes ancêtre de la classe concernée. Cliquez avec le bouton droit sur la table de résultat de la métrique pour accéder à la table de ses opérandes. S il existe des ancêtres pour cette classe, le menu contextuel de la table de résultat inclut la commande RAp. Source : Ing. Radu Marinescu. An Object Oriented Metrics Suite on Coupling. Universitatea Politehnica Timisoara, Facultatea de Automatica si Calculatoare, Departamentul de Calculatoare si Inginerie Software. Septembre, Une valeur élevée de cette métrique indique que la classe utilise de manière intensive les méthodes de ses classes ancêtre, ce qui est normal pour une modélisation orientée objet. Il n existe pas de recommandations particulières pour les limites acceptables des valeurs de cette métrique. La métrique peut servir à comparer des classes et à analyser les modifications d un projet. Métriques du maximum Maximum Number of Levels (MNOL) (nombre maximal de niveaux) Compte la profondeur des branches if, for et while dans le corps des méthodes. Pour les unités logiques dont les niveaux d imbrication sont nombreux, essayez de simplifier les implémentations et d améliorer les processus ; en effet, les groupes contenant plus de sept pièces d information s avèrent de plus en plus difficiles à comprendre quand il s agit de résoudre les problèmes. 268 Guide de l utilisateur de Borland Together Developer 2005
279 Définitions des métriques Utilisez cette métrique pour analyser les méthodes des classes. Il est recommandé de limiter l imbrication à un maximum de 7 niveaux. Au delà de 7 niveaux, la compréhension est difficile et le risque d erreurs augmente. Pour réduire l imbrication, vous pouvez extraire certaines parties d une méthode pour créer une méthode séparée. Cette métrique peut servir à contrôler les modifications d une classe ou de l ensemble d un projet. Maximum Number of Parameters (MNOP) (nombre maximal de paramètres) Compte le plus grand nombre de paramètres définis pour une même opération, parmi toutes les opérations de la classe. Les méthodes ayant de nombreux paramètres sont souvent plus spécialisées et ont donc moins de chance d être réutilisées. Utilisez cette métrique pour analyser les méthodes des classes. Il est recommandé de limiter à 4 le nombre de paramètres dans les méthodes d une classe. Un plus grand nombre de paramètres rend le but de la méthode plus difficile à comprendre. Pour réduire le nombre de paramètres, décomposez les méthodes en méthodes plus petites, ou transmettez des objets plus complexes dans leurs paramètres. Cette métrique peut servir à contrôler les modifications d une classe ou de l ensemble d un projet. Maximum Size of Operation (MSOO) (taille maximale de l opération) Compte la taille maximale des opérations d une classe. La taille d une méthode est déterminée en termes de complexité cyclomatique, c est-à-dire par le nombre d instructions if, for et while incluses dans le corps de l opération. Optionnellement, les étiquettes case des instructions switch peuvent être comptées. La taille (complexité cyclomatique) ne devrait pas excéder 10. Pour les méthodes dont la valeur de la métrique est élevée, pensez à les décomposer en plusieurs méthodes. Pour calculer de manière détaillée la taille des méthodes d une classe, utilisez la métrique CC. Métriques relatives au polymorphisme Number of Added Methods (NOAM) (nombre de méthodes ajoutées) Compte le nombre des opérations ajoutées à une classe. Les opérations héritées et les opérations redéfinies ne sont pas comptées. Une valeur élevée de cette mesure indique que la fonctionnalité de la classe s éloigne de plus en plus de celle de la classe parent. En ce cas, demandez-vous si la classe doit vraiment hériter de la classe parent, ou si elle doit être découpée en plusieurs classes plus petites. Evitez les classes possédant plus de 50 méthodes ajoutées. Dans une classe, un nombre excessif de méthodes indique probablement une hiérarchie de classes incorrecte. Pour réduire le nombre de méthodes dans une classe, découpez la classe en sous-classes, ou répartissez les méthodes sur toute la hiérarchie des classes. Number of Overridden Methods (NOOM) (nombre de méthodes remplacées) Compte le nombre des opérations héritées qui sont redéfinies par une classe. Des valeurs élevées peuvent indiquer des problèmes de modélisation : en effet, les sous-classes devraient étendre les fonctionnalités des classes parent, et leur en ajouter, plus souvent que les redéfinir. Evitez les classes possédant plus de 10 méthodes redéfinies. La nécessité de redéfinir un grand nombre de méthodes par rapport aux classes de base risque d être la conséquence d une modélisation de la hiérarchie des classes incorrecte. Chapitre 8 : Exécution des audits et métriques 269
280 Définitions des métriques Il existe une exception lorsque la hiérarchie est entièrement construite sur des fonctions virtuelles ; en ce cas, la fonctionnalité requise est ajoutée à une fonction virtuelle et la méthode de la base est invoquée après elle (ou avant). Le nombre de méthodes redéfinies peut alors être supérieur à 10. Polymorphism Factor (PF) (facteur de polymorphisme) Cette mesure appartient à la suite MOOD (Metrics for Object-Oriented Development). Elle est calculée en tant que fraction. Le numérateur est la somme des méthodes redéfinies de toutes les classes. C est, en fait, le nombre des situations polymorphiques différentes possibles. Un message envoyé à une classe peut être lié de manière statique ou dynamique à l implémentation d une méthode nommée. Cette dernière peut prendre autant de formes (morphologies) qu il existe de redéfinitions de cette même méthode dans les descendants de cette classe. Le dénominateur représente le nombre maximal de situations polymorphiques différentes possibles pour cette classe, c est-à-dire la somme pour chaque classe du nombre de nouvelles méthodes multipliée par le nombre de descendants. Ce maximum serait atteint si toutes les nouvelles méthodes définies dans chaque classe étaient redéfinies dans toutes les classes dérivées de celle-ci. Le polymorphisme est un concept fondamental de la programmation orientée objet. La métrique est calculée pour l ensemble du projet ; elle sert à analyser les modifications apportées au projet et à comparer des projets. La valeur de cette métrique doit être supérieure à 0. Métriques sur les ratios Comment Ratio (CR) (ratio de commentaire) Compte le rapport des commentaires de documentation et/ou d implémentation sur le nombre total de lignes de code (les commentaires étant inclus dans le compte des lignes de code). Les lignes vierges peuvent optionnellement être comptées comme lignes de code. Vous pouvez également spécifier quel type de commentaire utiliser pour ce calcul. Les commentaires de documentation sont des commentaires Javadoc. Les commentaires d implémentation sont un autre type de commentaires. Le nombre adéquat de commentaires dépend de la politique générale de l entreprise en ce domaine. En tous les cas, les commentaires améliorent la lisibilité d un programme et en simplifient la modification. Il est recommandé de fournir au moins 5 % de lignes de commentaire par rapport au nombre total de lignes de code et de commentaire. La valeur supérieure est illimitée. True Comment Ratio (TCR) (ratio des commentaires véritables) Compte le rapport des commentaires de documentation et/ou d implémentation sur le nombre de lignes de code (tous les commentaires étant exclus du compte des lignes de code). Les lignes vierges peuvent optionnellement être comptées comme lignes de code. Vous pouvez également spécifier quel type de commentaire utiliser pour ce calcul. Les commentaires de documentation sont des commentaires Javadoc. Les commentaires d implémentation sont un autre type de commentaires. Le nombre adéquat de commentaires dépend de la politique générale de l entreprise en ce domaine. En tous les cas, les commentaires améliorent la lisibilité d un programme et en simplifient la modification. 270 Guide de l utilisateur de Borland Together Developer 2005
281 Définitions des métriques Il est recommandé de fournir au moins 5 % de lignes de commentaire par rapport au nombre de lignes de code. En limite supérieure de la métrique, nous recommandons un maximum de quatre lignes de commentaire par ligne de code ; ceci s applique particulièrement à la documentation des interfaces. Trop de commentaires (plus de 400 %) rendraient les classes plus difficiles à lire. Percentage of Package Members (PPkgM) (pourcentage de membres du package) Compte le pourcentage de membres package dans une classe. Il est recommandé de limiter l accès package à 10 % en moyenne sur le projet. L ensemble des métriques Percentage of devrait servir à comparer des projets et à suivre les modifications d un projet, d un package ou d une classe. Percentage of Private Members (PPrivM) (pourcentage de membres privés) Compte le pourcentage de membres privés dans une classe. Plus grand est le pourcentage de méthodes private, mieux c est. L ensemble des métriques Percentage of devrait servir à comparer des projets et à suivre les modifications d un projet, d un package ou d une classe. Percentage of Protected Members (PProtM) (pourcentage de membres protégés) Compte le pourcentage de membres protégés dans une classe. Il est recommandé de limiter l accès protégé à 10 % en moyenne sur le projet. L ensemble des métriques Percentage of devrait servir à comparer des projets et à suivre les modifications d un projet, d un package ou d une classe. Percentage of Public Members (PPubM) (pourcentage de membres publics) Compte le pourcentage de membres vulnérables dans une classe. Une proportion élevée de membres vulnérables signifie que la classe risque fort d être affectée par des classes externes et qu un surcroît d effort sera nécessaire pour tester complètement une telle classe. Il n existe pas de recommandation pour le nombre de méthodes public. L ensemble des métriques Percentage of devrait servir à comparer des projets et à suivre les modifications d un projet, d un package ou d une classe. Chapitre 8 : Exécution des audits et métriques 271
282 272 Guide de l utilisateur de Borland Together Developer 2005
283 Chapitre 9 9Importation et exportation Chapitre de modèles Together Designer peut importer des modèles créés par des applications tierces via le format XMI ou directement à partir de fichiers IBM Rational Rose. Il peut également exporter des modèles au format XMI. Together Developer prend en charge toutes ces fonctionnalités uniquement si une licence Together Designer est détectée. Importation et exportation de modèles XMI Importation de modèles IBM Rational Rose (MDL) Importation et exportation de modèles XMI L utilisation du format XMI pour l échange de modèle permet de fournir une interopérabilité des divers outils de modélisation et modèles d échange sans perte de données. Exportation de modèles XMI Vous pouvez exporter le modèle en entier en XMI. L exportation utilise XMI pour UML 1.4 avec échanges de diagrammes. Pour exporter un modèle Together, suivez ces étapes : 1 Dans le menu principal, choisissez Outils Exporter le modèle vers un fichier XMI. 2 Dans la boîte de dialogue Exportation vers XMI, spécifiez Chemin du fichier XMI ou cliquez sur le bouton sélecteur, puis allez jusqu à l emplacement cible dans la boîte de dialogue Sélectionner le document XML. 3 Dans le champ Nom de fichier, spécifiez le nom du fichier généré. 4 Cliquez sur OK. Résultat : Le fichier spécifié est généré à l emplacement sélectionné. Chapitre 9 : Importation et exportation de modèles 273
284 Importation de modèles IBM Rational Rose (MDL) Vous pouvez lancer l exportation de votre modèle sans démarrer l environnement Together. Le lanceur TogetherXMIExport.exe se trouve sous le dossier /bin de l installation Together. Pour exécuter l exportation XMI depuis la ligne de commande, entrez la commande suivante : TogetherXMIExport.exe <nom projet> <fichier XMI> <encodage> Importation de modèles XMI Remarque Il est possible de créer un projet Together à partir d un modèle XMI existant. Pour plus de détails, consultez la section Création d un projet à partir d un modèle XMI, page 26. Si vous prévoyez d exporter un modèle de Rational Rose vers XMI puis de l importer dans Together, choisissez l option de jeu de caractères ASCII/MBCS dans la boîte de dialogue d exportation XML Unisys de Rose. Les modèles exportés vers d autres jeux de caractères ne seront pas correctement importés. Importation de modèles IBM Rational Rose (MDL) Remarque Il est possible d importer dans Together des modèles conçus dans IBM Rational Rose. Voici les types de fichiers pris en charge : *.mdl (format principal), *.ptl, *.cat, *.sub (sous-unités). IBM Rational Rose 2003 Enterprise est pris en charge. Il est possible de créer un projet Together à partir d un modèle MDL existant. Pour plus de détails, consultez la section Création d un projet à partir d un modèle MDL, page 25. Pour créer un projet à partir d un modèle MDL, utilisez l interface utilisateur Together ou la ligne de commande. Important Lorsque vous importez un modèle d état ou d activité depuis Rational Rose, gardez à l esprit que les éléments n ont pas le même comportement dans Rose et dans Together. Dans Rose, un élément d un modèle d état ou d activité peut appartenir à plusieurs travées ; dans Together, il ne peut appartenir qu à une seule travée. Même si l élément appartenait à plusieurs travées, à l importation, il est placé dans une seule travée. Dans Rational Rose, il est possible de créer des diagrammes imbriqués pour les éléments suivants : classes, cas d utilisation, activités et états. Lorsque vous importez des modèles comportant des diagrammes imbriqués, des hyperliens s établissent entre ces diagrammes et les éléments associés. Dans l expert Projet MDL, il est possible d ajouter un fichier modèle et sa sous-unité à la liste d importation. Vous obtenez alors un projet invalide : les éléments de la sous-unité sont importés deux fois et les deux exemplaires portent le même nom unique. Importation de modèles MDL via la ligne de commande Il est possible de lancer l importation d un modèle IBM Rational sans démarrer l environnement Together. Le lanceur mdlimport.exe (mdlimport) se trouve sous le dossier /bin de l installation Together. Pour exécuter l importation XMI depuis la ligne de commande, entrez la commande suivante : java com.borland.mdlimport.cmdlineimporter [-options] 274 Guide de l utilisateur de Borland Together Developer 2005
285 Importation de modèles IBM Rational Rose (MDL) où : Option Description -d <répertoire> Nom du répertoire cible dans lequel sont placés les fichiers en sortie. -model <nom_répertoire> Nom du répertoire cible dans lequel sont placés les fichiers de diagrammes générés. -src <nom_répertoire> -project <nom_projet> -scale <valeur> -colors -bounds -logfile <fichier historique> -gensource -log[:none errors debug] Par exemple : Nom du répertoire cible dans lequel sont placés les fichiers source générés. Nom du projet pour générer des hyperliens vers des diagrammes internes Facteur d échelle entre les diagrammes Rose et les diagrammes Together. Valeur par défaut : 0,3. Convertit les couleurs Rose par défaut en couleurs Together par défaut Conserve les liens entre les nœuds du diagramme Chemin d accès au fichier historique Active la génération du source Définit le niveau de l historique. La valeur par défaut est errors -A<nom>=<valeur> Cette option sert à convertir des alias de chemins d accès du fichier modèle Rose en chemins réels ; ici, <nom> est l alias du chemin et <valeur> le chemin réel. -modelfile <nom_fichier> Nom du fichier modèle Rose (*.mdl, *.ptl, *.cat, *.sub) -f <nom_fichier> Fichiers des sous-unités ou chemins d accès aux sous-unités (fichiers *.cat ou *.sub) -v Active la validation des noms des éléments du code source. La validation signifie que les symboles restreints de Java sont remplacés par les caractères _. -p Active la création de diagrammes conformes au nouveau métamodèle d imbrication. -actors Mappe les classes dont le stéréotype est Actor (ou d autres stéréotypes similaires) à des acteurs. Voici les stéréotypes pris en charge : Actor, Business Actor, Business Worker, Physical Worker. -ac Fait correspondre les classes d association à la propriété simple text des liens d association. Cette option est à l intention des versions existantes de Together qui ne prenaient pas en charge les classes d association. mdlimport.exe -d c:\monprojet -model diagrammes -project monprojet -modelfile monmodèle.mdl Chapitre 9 : Importation et exportation de modèles 275
286 276 Guide de l utilisateur de Borland Together Developer 2005
287 Chapitre 10 10Intégration des outils de gestion Chapitre des exigences Remarque Together vous permet d accéder aux fonctionnalités de gestion des exigences pendant la modélisation. L intégration des plugins CaliberRM et RequisitePro permet de connecter des éléments de modélisation à des exigences d un serveur. Dans cette section, vous apprendrez comment activer les plugins et comment réaliser des tâches de traçage d exigences sans quitter la modélisation. Les informations de cette section s appliquent uniquement à la plate-forme Microsoft Windows. Présentation de l intégration de CaliberRM L intégration de CaliberRM prend en charge tous les contrôles et fonctionnalités de CaliberRM, plus une interaction étroite avec les fonctions de modélisation et de rapport de Together. Cette section fournit des informations sur l utilisation des fonctionnalités CaliberRM avec Together. Pour avoir une description détaillée des contrôles CaliberRM, reportez-vous à la documentation du produit. Remarque : L intégration de CaliberRM est disponible uniquement dans JBuilder Entreprise. L intégration de CaliberRM propose les fonctionnalités suivantes : Création de traces : Crée la trace d une exigence CaliberRM dans un diagramme ou des éléments de diagramme. Suppression de trace : Retire une trace entre une exigence CaliberRM et un diagramme ou des éléments de diagramme. Navigation entre un élément et une trace : Navigue d un élément de diagramme à une exigence effectuant la traçabilité de cet élément. Gestion de traces avec des hyperliens : Crée et supprime des traces en utilisant l hyperlien vers un nœud dans le menu contextuel des éléments d un diagramme. Utilisation de l inspecteur pour gérer des traces : Maintenant, l inspecteur d élément fournit un nœud Exigences dans l onglet Hyperliens. Chapitre 10 : Intégration des outils de gestion des exigences 277
288 Présentation de l intégration de CaliberRM Remarque Création de rapports : Utilise la fonctionnalité de Génération de documentation pour créer des rapports en ligne et hors ligne. Création de cas d utilisation : Génère un diagramme de cas d utilisation sur la base des exigences sélectionnées. Création d exigences à partir de cas d utilisation : Crée des exigences sur le serveur CaliberRM en se basant sur des cas d utilisation existants. Les informations de cette section s appliquent uniquement à la plate-forme Microsoft Windows. Utilisation de l intégration de CaliberRM Dans cette section, vous allez apprendre à : Ajouter une connexion CaliberRM à votre projet Together Ouvrir un projet CaliberRM Gérer des traces vers des éléments de modélisation en utilisant l arborescence des exigences, les hyperliens ou l inspecteur Naviguer entre les exigences et les éléments Générer une documentation Astuce Ajout d une connexion CaliberRM à un projet Together Pour ajouter une connexion CaliberRM à un projet Together, suivez ces étapes : 1 Dans le menu principal, choisissez Outils CaliberRM Configurer les connexions. 2 Dans la boîte de dialogue Configuration des connexions, créez une connexion ou choisissez-en une dans la liste Connexions. Pour avoir une description détaillée des commandes de la boîte de dialogue, consultez la documentation CaliberRM. 3 Spécifiez le nom du serveur, l hôte, le nom et le mot de passe d ouverture de session, puis cliquez sur Connecter. 4 Une fois la connexion établie, choisissez un projet CaliberRM dans la liste Projet. Si nécessaire, vous pouvez également spécifier une ligne de base et un filtre. 5 Cliquez sur Ajouter au projet. Vous pouvez ajouter à votre projet Together en cours autant de connexions CaliberRM que nécessaire. Résultat : Un nœud CaliberRM s ajoute à la vue Projet. Quand il est développé, ce nœud montre des sous-nœuds pour chaque connexion CaliberRM accessible. Vous pouvez ultérieurement sélectionner des projets et des lignes de base à partir des connexions en utilisant le bouton de modification de projet. Pour supprimer une connexion CaliberRM du projet Together : 1 Dans le navigateur de projet, développez le nœud CaliberRM. 2 Cliquez avec le bouton droit sur le projet CaliberRM à retirer. 3 Choisissez Retirer dans le menu contextuel de la sélection. 278 Guide de l utilisateur de Borland Together Developer 2005
289 Présentation de l intégration de CaliberRM Ouverture d un projet CaliberRM Pour ouvrir une connexion CaliberRM : 1 Développez le nœud CaliberRM 2 Cliquez avec le bouton droit sur le nœud du serveur voulu 3 Choisissez Ouvrir dans le menu contextuel. 4 Dans la fenêtre d ouverture de session, donnez votre nom et votre mot de passe, puis cliquez sur OK. Résultat : Chaque connexion CaliberRM ajoutée au projet Together s ouvre dans son propre onglet, comme le montre l illustration suivante. Astuce Gestion des traces Together permet de gérer des traces entre les exigences et des éléments du modèle à l aide de divers outils : Arborescence des exigences Hyperlien vers une commande de l éditeur de diagramme Onglet Hyperliens de l inspecteur. A la création d une trace, l exigence respective dans l arborescence des exigences est signalée comme telle et les éléments tracés sont listés dans le menu contextuel de l exigence. D autre part, les éléments tracés dans les diagrammes sont signalés par des noms écrits en bleu. Si vous ne voyez pas le résultat de vos actions, cliquez sur le bouton Actualiser de la barre d outils CaliberRM. Utilisation de l arborescence des exigences Pour créer une trace depuis une exigence CaliberRM vers un élément ou un groupe d éléments d un diagramme : 1 Sélectionnez l exigence dans la section des exigences CaliberRM. 2 Cliquez avec le bouton droit sur l exigence et choisissez Gérer les suivis des éléments de diagramme dans le menu contextuel. Cela ouvre la boîte de dialogue Gestionnaire de sélection qui vous permet de sélectionner les éléments à tracer dans Modèle, Bibliothèques ou Favoris. Utilisez les boutons Ajouter/Retirer pour créer la liste des éléments de diagramme à suivre. 3 Cliquez sur OK lorsque vous avez terminé. Résultat : Une icône spéciale repère l exigence ; le nom de l élément tracé dans le diagramme est en bleu, comme les hyperliens. Chapitre 10 : Intégration des outils de gestion des exigences 279
290 Présentation de l intégration de CaliberRM Astuce Utilisez le glisser-déposer pour créer des traces. Sélectionnez une exigence dans l arborescence et faites-la glisser jusqu à l élément de modélisation cible. La connexion au serveur CaliberRM doit être active pendant toute la modification des traces. Sinon, vos changements ne peuvent pas être enregistrés. Pour retirer des suivis d éléments : 1 Sélectionnez l exigence dans la section des exigences CaliberRM. 2 Cliquez avec le bouton droit sur l exigence et choisissez Gérer les suivis des éléments de diagramme dans le menu contextuel. Dans le volet droit de la boîte de dialogue Gestionnaire de sélection, choisissez les éléments à retirer et cliquez sur le bouton Retirer. Pour retirer les suivis pour tous les éléments, cliquez sur Tout retirer. Cliquez sur OK lorsque vous avez terminé. Utilisation d hyperliens Pour créer une trace depuis un élément de modélisation vers une ou plusieurs exigences : 1 Dans l éditeur de diagramme, sélectionnez un élément à tracer. 2 Dans le menu contextuel de la sélection, choisissez Hyperlien vers CaliberRM. 3 Dans la boîte de dialogue de gestion de la sélection, sélectionnez une ou plusieurs exigences dans l arborescence. 4 Cliquez sur le bouton Ajouter pour ajouter les exigences sélectionnées à la liste résultante. Utilisez les boutons Ajouter/Retirer pour créer la liste. 5 Cliquez sur OK lorsque vous avez terminé. Utilisation de l inspecteur Pour créer une trace depuis un élément de modélisation vers une ou plusieurs exigences : 1 Dans l éditeur de diagramme, sélectionnez un élément à tracer. 2 Dans le menu contextuel de la sélection, choisissez Inspecteur. 3 Dans l inspecteur, sélectionnez l onglet Hyperliens (ou développez le nœud respectif). 4 Choisissez Gérer la trace des exigences CaliberRM. 5 Dans la boîte de dialogue de gestion de la sélection, sélectionnez une ou plusieurs exigences dans l arborescence. 6 Cliquez sur le bouton Ajouter pour ajouter les exigences sélectionnées à la liste résultante. Utilisez les boutons Ajouter/Retirer pour créer la liste. 7 Cliquez sur OK lorsque vous avez terminé. Pour enlever une trace avec l inspecteur : 1 Dans l éditeur de diagramme, sélectionnez un élément dont supprimer une trace. 2 Dans le menu contextuel de la sélection, choisissez Inspecteur. 3 Dans l inspecteur, sélectionnez l onglet Hyperliens (ou développez le nœud respectif). 280 Guide de l utilisateur de Borland Together Developer 2005
291 Présentation de l intégration de CaliberRM 4 Sous le nœud Exigence, sélectionnez l exigence voulue. 5 Dans son menu contextuel, choisissez Supprimer la trace. Navigation entre des exigences et des éléments Pour passer d une exigence à un élément associé : 1 Cliquez ave le bouton droit sur une exigence dans la liste CaliberRM. 2 Choisissez un élément (classe, opération, etc.) dans le menu contextuel. Résultat : L élément approprié s ouvre dans le volet contenu. Génération de la documentation L intégration de CaliberRM permet de générer des rapports sur les exigences. Il y a deux types de rapports : Rapport hors ligne qui rassemble des informations sur les exigences stockées avec le modèle Together. Rapport en ligne qui rassemble des informations sur des exigences du serveur CaliberRM, en fonction du filtre actif configuré dans le plugin RM. L intégration fournit deux templates spéciaux : OfflineRequirementReport.trl pour les rapports hors ligne et OnlineRequirementsReport.tpl pour les rapports en ligne. Les deux templates se trouvent dans le dossier \modules\com.togethersoft.modules. impl.caliberrm\templates de votre installation Together. Le filtrage est effectué selon la table affichée dans la vue CaliberRM. Le rapport généré ne contient que les colonnes incluses dans la vue. Astuce Pour générer un rapport : 1 Dans le menu principal, choisissez Projet Documentation. 2 Dans le sous-menu, sélectionnez Générer à l aide d un template. 3 Dans la boîte de dialogue Génération de documentation à l aide d un template, spécifiez les options suivantes : Chemin : chemin d accès vers l emplacement du rapport généré Template : chemin d accès vers les templates CaliberRM. Portée : spécifiez la portée à inclure dans la sortie générée. Format : choisissez un des formats pris en charge Importations : spécifiez les importations à inclure dans la sortie générée. 4 Cliquez sur OK lorsque vous avez terminé. Pendant la génération du rapport en ligne, vous êtes invité à ouvrir une session si les traces rencontrées font référence à une session CaliberRM inactive. Résultat : Le rapport généré est créé à l emplacement spécifié ; il s ouvre dans une page à onglet du volet contenu si l option Exécuter le visualiseur a été cochée. Voir aussi Documentation CaliberRM à l adresse Création de cas d utilisation à partir d exigences Vous pouvez créer des diagrammes de cas d utilisation basés sur des exigences. Le cas d utilisation s applique alors à l exigence sélectionnée et à toutes les exigences imbriquées. Les cas d utilisation résultants peuvent être connectés par les liens du type sélectionné. Voici comment procéder... Chapitre 10 : Intégration des outils de gestion des exigences 281
292 Présentation de l intégration de RequisitePro Pour créer un diagramme de cas d utilisation à partir d une exigence : 1 Dans la section du projet CaliberRM, sélectionnez une exigence. 2 Dans le menu contextuel, choisissez Créer un diagramme de cas d utilisation. 3 Dans la boîte de dialogue obtenue, spécifiez le nom du diagramme, le package, le type de lien et une description facultative. Voici les types de lien possibles : Extension Inclusion Généralisation aucun lien 4 Cliquez sur OK. Si l exigence du diagramme de cas d utilisation créé a une ou plusieurs exigences enfant, les cas générés sont automatiquement liés par des liens de relation de généralisation. Création d exigences sur le serveur Pour créer des exigences à partir de cas d utilisation : 1 Dans un diagramme de cas d utilisation, sélectionnez un ou plusieurs cas. 2 Cliquez avec le bouton droit sur la sélection, puis choisissez Créer une exigence dans le menu contextuel. 3 Dans la boîte de dialogue Gestionnaire de sélection obtenue, choisissez le nœud de destination dans la liste des exigences disponibles, puis cliquez sur Ajouter. Utilisez les boutons Ajouter/Retirer pour créer la liste des exigences tracées. 4 Cliquez sur OK lorsque vous avez terminé. Résultat : une exigence par cas d utilisation est créée sous le nœud spécifié. Voir aussi Utilisation des diagrammes de cas d utilisation UML 1.4, page 90 Documentation CaliberRM à l adresse Présentation de l intégration de RequisitePro Remarque L intégration de Together et de RequisitePro fournit les fonctions majeures suivantes : Association et dissociation d objets Together avec des exigences RequisitePro. Gestion des exigences via l inspecteur de Propriétés. Création de diagrammes de cas d utilisation basés sur des exigences. Les informations de cette section s appliquent uniquement à la plate-forme Microsoft Windows. Utilisation de l intégration de RequisitePro Dans cette section, vous allez apprendre à : Activer l intégration Modifier les paramètres d un projet Together 282 Guide de l utilisateur de Borland Together Developer 2005
293 Présentation de l intégration de RequisitePro Gérer des traces vers des éléments de modélisation en utilisant l arborescence des exigences, les hyperliens ou l inspecteur Naviguer entre les exigences et les diagrammes Générer une documentation Activation de l intégration L installation du produit inclut l intégration de RequisitePro. L intégration ne nécessite pas d installation séparée ; cependant, vous devez l activer. Pour activer l intégration : 1 Dans le menu principal, choisissez Outils RequisitePro. 2 Choisissez Ouvrir. Résultat : Le navigateur RequisitePro s ouvre, comme le montre l illustration suivante : L arborescence des exigences est interactive et permet de créer et de supprimer des traces. La barre d outils du navigateur RequisitePro propose plusieurs boutons : Icône Description Ouvrir un projet RequisitePro Modifier les paramètres d un projet Together : permet de lier un projet Together à un ou plusieurs projets RequisitePro. Ces projets s ouvrent à l ouverture de la vue RequisitePro. Actualiser un projet RequisitePro Gérer la trace des éléments de modélisation Signaler des exigences comme étant lues : Ces informations sont stockées par projet ; par conséquent, si vous ouvrez un autre projet Together, l exigence n est pas signalée comme étant lue. Signaler des exigences comme étant non lues Accepter des exigences modifiées : Une exigence signalée par un point d interrogation a été modifiée depuis son association avec l élément en cours. Ce bouton accepte la modification. Modification des paramètres d un projet Together Plusieurs projets RequisitePro peuvent être associés à un projet Together. Ces projets s ouvrent automatiquement à l ouverture du navigateur RequisitePro. Chapitre 10 : Intégration des outils de gestion des exigences 283
294 Présentation de l intégration de RequisitePro Vous pouvez personnaliser la liste des projets associés en utilisant le bouton de la barre d outils du navigateur RequisitePro. Cliquer sur ce bouton affiche la boîte de dialogue suivante : Utilisez les boutons Ajouter / Retirer pour obtenir l association de projets voulue, puis cliquez sur OK quand vous avez terminé. Il suffit d ouvrir un projet RequisitePro pendant la session pour l ajouter à la configuration. De même, vous pouvez fermer un projet RequisitePro qui n est plus nécessaire pour le retirer automatiquement de la configuration. Gestion de traces vers des éléments de modélisation Together permet de gérer des traces entre les exigences et des éléments du modèle à l aide de divers outils : Vue des exigences Hyperlien vers une commande de l éditeur de diagramme Onglet Hyperliens de l inspecteur. Quand une trace est créée, l exigence respective est signalée comme telle dans l arborescence. Utilisation de l arborescence des exigences Pour créer une trace vers un ou plusieurs éléments de modélisation : 1 Dans l arborescence des exigences, sélectionnez les exigences à tracer. 2 Dans le menu contextuel de la sélection, sélectionnez Traçabilité Gérer la trace des éléments de modèle 3 Dans la boîte de dialogue de gestion de la sélection obtenue, sélectionnez les éléments de modélisation voulus dans le modèle ou les favoris. 4 Cliquez sur le bouton Ajouter pour ajouter les éléments sélectionnés à la liste des éléments tracés. Utilisez les boutons Ajouter/Retirer pour créer la liste. 5 Cliquez sur OK lorsque vous avez terminé. Utilisation d hyperliens Pour créer une trace depuis un élément de modélisation vers une ou plusieurs exigences : 1 Dans l éditeur de diagramme, sélectionnez un élément à tracer. 2 Dans le menu contextuel de la sélection, choisissez Hyperlien vers RequisitePro. 3 Dans la boîte de dialogue de gestion de la sélection, sélectionnez une ou plusieurs exigences dans l arborescence. 284 Guide de l utilisateur de Borland Together Developer 2005
295 Présentation de l intégration de RequisitePro 4 Cliquez sur le bouton Ajouter pour ajouter les exigences sélectionnées à la liste résultante. Utilisez les boutons Ajouter/Retirer pour créer la liste. 5 Cliquez sur OK lorsque vous avez terminé. Utilisation de l inspecteur Pour créer une trace depuis un élément de modélisation vers une ou plusieurs exigences : 1 Dans l éditeur de diagramme, sélectionnez un élément à tracer. 2 Dans le menu contextuel de la sélection, choisissez Inspecteur. 3 Dans l inspecteur, sélectionnez l onglet Hyperliens (ou développez le nœud respectif). 4 Choisissez Gérer la trace des exigences RequisitePro. 5 Dans la boîte de dialogue de gestion de la sélection, sélectionnez une ou plusieurs exigences dans l arborescence. 6 Cliquez sur le bouton Ajouter pour ajouter les exigences sélectionnées à la liste résultante. Utilisez les boutons Ajouter/Retirer pour créer la liste. 7 Cliquez sur OK lorsque vous avez terminé. Pour enlever une trace avec l inspecteur : 1 Dans l éditeur de diagramme, sélectionnez un élément dont supprimer une trace. 2 Dans le menu contextuel de la sélection, choisissez Inspecteur. 3 Dans l inspecteur, sélectionnez l onglet Hyperliens (ou développez le nœud respectif). 4 Sous le nœud Exigence, sélectionnez l exigence voulue. 5 Dans son menu contextuel, choisissez Supprimer la trace. Navigation entre les exigences et les diagrammes Pour passer d une exigence à l élément de modélisation tracé : 1 Dans l arborescence des exigences, sélectionnez une exigence tracée. 2 Choisissez Traçabilité dans le menu contextuel. Le sous-menu affiche la liste des éléments tracés. 3 Dans le sous-menu, sélectionnez l élément voulu. Résultat : L élément sélectionné est mis en évidence dans le diagramme. Si le diagramme conteneur n est pas visible, il s ouvre automatiquement. Pour ouvrir une exigence à partir de l inspecteur : 1 Dans l inspecteur de l élément, sélectionnez l onglet Hyperliens. 2 Développez le nœud Exigence et sélectionnez l exigence voulue. 3 Choisissez Ouvrir une exigence dans le menu contextuel. Résultat : L exigence respective est mise en évidence dans l arborescence des exigences du navigateur RequisitePro. Chapitre 10 : Intégration des outils de gestion des exigences 285
296 Présentation de l intégration de RequisitePro Pour passer d un élément à l exigence associée : 1 Sélectionnez un élément du diagramme. 2 Dans le menu contextuel de la sélection, choisissez Hyperlien vers. Le sous-menu contient la liste des exigences associées. 3 Dans la liste, sélectionnez l exigence voulue. Résultat : L exigence respective est mise en évidence dans l arborescence des exigences du navigateur RequisitePro. Génération de la documentation L intégration de RequisitePro permet de générer des rapports sur les exigences. L intégration fournit le template requirements.trl situé dans le dossier \modules\ com.togethersoft.modules.impl.reqpro\templates de votre installation Together. Pour générer un rapport : 1 Dans le menu principal, choisissez Projet Documentation. 2 Dans le sous-menu, sélectionnez Générer à l aide d un template. 3 Dans la boîte de dialogue Génération de documentation à l aide d un template, spécifiez les options suivantes : Chemin : chemin d accès vers l emplacement du rapport généré Template : chemin d accès vers le template RequisitePro. Portée : spécifiez la portée à inclure dans la sortie générée Format : choisissez un des formats pris en charge Importations : spécifiez les importations à inclure dans la sortie générée. 4 Cliquez sur OK lorsque vous avez terminé. Résultat : Le rapport généré s ouvre dans un onglet du volet contenu si l option Exécuter le visualiseur a été cochée. Création de diagrammes de cas d utilisation Vous pouvez créer des diagrammes de cas d utilisation basés sur des exigences. Le cas d utilisation s applique alors à l exigence sélectionnée et à toutes les exigences imbriquées. Les cas d utilisation résultants peuvent être connectés par les liens du type sélectionné. Voici comment procéder... Pour créer un diagramme de cas d utilisation à partir d une exigence : 1 Dans l arborescence des exigences du navigateur RequisitePro, sélectionnez l exigence voulue. 2 Dans le menu contextuel, choisissez Créer un diagramme de cas d utilisation. 3 Dans la boîte de dialogue obtenue, spécifiez le nom du diagramme, le package conteneur, le type de lien et une description facultative. Voici les types de lien possibles : Extension Inclusion Généralisation aucun lien 4 Cliquez sur OK. 286 Guide de l utilisateur de Borland Together Developer 2005
297 Annexe A ARaccourcis clavier Annexe Together vous permet d effectuer pratiquement toutes les actions de diagrammes sans utilisation de la souris. Vous pouvez naviguer entre les volets, créer et manipuler des éléments, et plus encore, avec la seule utilisation du clavier. Navigation entre vues et volets Appuyez sur Tab ou sur Ctrl +Tab pour naviguer entre les vues. La vue qui détient la focalisation possède une barre de titre bleue. Alt+F10 invoque le menu contextuel de la barre de titre de la vue active. Navigation entre les onglets internes Appuyez sur Alt+flèche gauche/droite pour naviguer entre les onglets internes des volets de navigation, de l inspecteur ou de l éditeur de diagramme. Manipulation des éléments de diagramme Lorsque l éditeur de diagramme détient la focalisation, appuyez sur Alt+Inser pour appeler le menu contextuel du diagramme. Ce faisant, le menu contextuel est spécifique au type d élément et au diagramme en cours, et il présente la liste des nouveaux éléments qui peuvent être ajoutés à la sélection. Utilisez les touches fléchées pour choisir un nouvel élément et la touche Entrée pour confirmer la sélection. Appuyez sur Alt+Inser pour créer des liens. A l aide des touches fléchées, sélectionnez le lien du type requis dans le menu contextuel et appuyez sur Entrée. Dans la boîte de dialogue de sélection de la destination des liens, utilisez les touches fléchées et la touche tabulation pour spécifier l élément de destination. Un élément nœud étant sélectionné, appuyez sur Maj+Pg.Suiv. pour activer la navigation dans les éléments internes. Cela est important pour les diagrammes de classes afin de naviguer parmi les membres de classes, et pour les diagrammes d états afin de naviguer parmi les sous-états. Annexe A : Raccourcis clavier 287
298 Récapitulatif des raccourcis clavier Appuyez sur Maj+Pg.Préc. pour passer des sous-éléments aux éléments de nœuds. Quand un membre est sélectionné dans une icône de classe, appuyez sur Inser pour ajouter un nouveau membre de même type. Lorsque l éditeur de diagramme détient la focalisation, l appui sur une touche fléchée sélectionne un élément de nœud. Utilisez les touches fléchées pour naviguer entre les éléments de nœuds. Ce faisant, l élément sélectionné est mis en évidence avec un cadre en pointillés. L appui sur Ctrl+flèche fournit une sélection multiple. Le prochain élément détenant la focalisation est mis en évidence avec un cadre continu, tandis que la sélection initiale est préservée. Utilisez Ctrl+Espace pour confirmer la sélection. Echap supprime la sélection. Pour utiliser le presse-papiers, appuyez sur les touches standard de raccourci clavier : Ctrl+C, Ctrl+X et Ctrl+V pour copier, couper et coller des éléments rapidement. L élément lui-même reste dans le package d origine. Pour copier/coller physiquement un élément vers un autre package, utilisez les raccourcis clavier Ctrl+C et Ctrl+Maj+V. Si vous appuyez sur la touche Espace, vous basculez entre les états focalisé et sélectionné d un élément de nœud ou d un lien. Appuyez sur Ctrl+Maj+flèche pour déplacer la sélection. Lorsque l ombre atteint la position désirée, appuyez sur Ctrl+Espace ou Entrée pour confirmer le repositionnement. Echap annule l opération. Appuyez sur Ctrl+Q / Ctrl+Maj+Q pour naviguer parmi les liens autour d un nœud, dans le sens des aiguilles d une montre et dans le sens inverse. Appuyez sur les touches du clavier numérique pour zoomer l image du diagramme : + gris effectue un zoom avant ; - gris un zoom arrière ; * ajuste le diagramme entier dans la fenêtre de l éditeur de diagramme ; / affiche la taille réelle. Récapitulatif des raccourcis clavier Le tableau ci-après récapitule les raccourcis clavier les plus utilisés : Tableau 10.1 Raccourcis clavier Action Basculer entre les onglets internes des vues Navigateur et Editeur de diagramme Développer les nœuds dans les vues du navigateur Réduire le nœud dans les vues du navigateur Nouveau (Galerie d objets) Générer la documentation HTML Fermer le diagramme en cours Annuler Rétablir Nouvel(le) attribut/opération/propriété Sélectionner tous les éléments non masqués d un diagramme Copier un raccourci vers un élément Couper un raccourci vers un élément Coller un raccourci vers un élément Coller physiquement un élément Ouvrir l inspecteur Renommer Raccourci clavier ALT+ Flèche DROITE/GAUCHE Flèche droite, double clic Flèche gauche, double clic CTRL+N CTRL+MAJ+H CTRL+F4 CTRL+Z CTRL+MAJ+Z INSER CTRL+A CTRL+C CTRL+X CTRL+V CTRL+Maj+V ALT+ENTREE F2 288 Guide de l utilisateur de Borland Together Developer 2005
299 Récapitulatif des raccourcis clavier Tableau 10.1 Raccourcis clavier (suite) Action Raccourci clavier Mettre à jour la vue F5 Naviguer entre les éléments de nœuds Flèches HAUT, BAS, GAUCHE, DROITE Naviguer entre les membres et les sous-éléments MAJ+PG.PREC., MAJ+PG.SUIV. Naviguer entre les liens MAJ+Q, CTRL+MAJ+Q Zoom avant + (pavé numérique) Zoom arrière - Ajuster à la fenêtre * Zoom 1:1 / Activer l objectif du zoom CTRL+MAJ+ESPACE (maintenir la pression) Sélectionner tous les éléments CTRL+A Désélectionner un élément Echap Déplacer la marque de sélection sur l élément suivant CTRL+GAUCHE/DROITE Confirmer la sélection CTRL+Espace Déplacer l élément sélectionné CTRL+MAJ+GAUCHE/DROITE Terminer le déplacement Barre d espace, ENTREE Annuler le déplacement Echap Créer un élément ALT+INSER Ouvrir la vue globale CTRL+MAJ+O Fermer la vue globale Echap Déplacer l ombre dans la vue globale Touches fléchées Ouvrir le menu déroulant Titre de fenêtre ALT+F10 Annexe A : Raccourcis clavier 289
300 290 Guide de l utilisateur de Borland Together Developer 2005
301 Annexe B BPréférences de modélisation Annexe Préférences de base Les préférences de modélisation (accessible par [Outils Préférences...]) permettent de personnaliser divers comportements et aspects de Together. Préférences de base Liens Détails d affichage Filtres d affichage Notations UML Diagrammes de séquence 1.4 Diagrammes de séquence 2.0 Disposition Imprimer Génération de la documentation Génération HTML Profils Code source Navigateurs Comparaison de modèles Fonte Famille de fonte : Cette option définit la fonte à utiliser dans les diagrammes. Style : Cette option définit le style de fonte à utiliser dans les diagrammes (normal, italique, gras ou gras-italique) Taille : Cette option définit la taille, en points, de la fonte à utiliser dans les diagrammes. Grille Largeur de grille : Cette option permet de spécifier la largeur exacte des carrés de la grille, en pixels. Hauteur de grille : Cette option permet de spécifier la hauteur exacte des carrés de la grille, en pixels. Annexe B : Préférences de modélisation 291
302 Préférences de base Afficher la grille : Si cette option est cochée, une grille de modélisation s affiche en arrière-plan des diagrammes. Pour que les différents éléments du diagramme s accrochent à la coordonnée la plus proche sur la grille, cochez l option Aligner sur la grille. Couleur de la grille : Sélectionnez la couleur de la grille dans le sélecteur de couleurs. Type de grille : Vous pouvez choisir un affichage de la grille sous forme de traits pleins ou de pointillés. Aligner sur la grille : Si cette option est cochée, les éléments du diagramme s accrochent à la coordonnée la plus proche dans la grille de modélisation située dans l arrière-plan du diagramme. Cette fonction s applique que la grille soit visible ou non. Graphiques Arrière-plan du diagramme : Cliquez sur le bouton de sélection pour choisir la couleur à appliquer à l arrière-plan du diagramme. Dans la boîte de dialogue obtenue, sélectionnez la couleur souhaitée dans les échantillons ou les couleurs RVB. Activer l aspect 3D pour les éléments de diagramme : Si cette option est cochée, une ombre se place sous chaque élément du diagramme, pour créer un effet 3D. Cette option ne s applique qu aux éléments dont l option 3D look a la valeur par défaut sous l onglet Affichage dans l inspecteur de propriétés. Activer le graphique antialias pour les éléments de diagramme : Lorsque cette option est cochée, elle lisse les lignes des éléments du diagramme. Son effet est particulièrement visible sur les liens. Cette option peut avoir un impact sur les performances, spécialement lorsque sont activées d autres options agissant sur les performances. Afficher les bordures de page : Cette option indique s il faut afficher ou non des bords gris pour représenter les marges de la page dans l éditeur de diagrammes et le volet Vue globale. Afficher des contrôles pour les compartiments : Si cette option est cochée, une barre de contrôle s affiche au-dessus des compartiments contenant les éléments sélectionnés dans le diagramme (attributs, opérations, classes et propriétés). Ces compartiments prennent la forme de nœuds que vous pouvez développer, ouvrir ou fermer à l aide de la souris. Afficher la flèche de raccourci : Si cette option est cochée, les raccourcis vers les éléments de modélisation sont signalés par une flèche. Largeur maximum des icônes : Cette option spécifie la largeur maximale (en pixels) d une icône de classe, interface ou package lors de sa création. La plupart des icônes peuvent être redimensionnées manuellement à tout moment. Si vous modifiez la taille d une icône manuellement, sa valeur n est conservée en tant que paramètre que si vous choisissez Diagramme Taille réelle dans le menu principal. Général Sur suppression de référence : Cette option définit le comportement de Together lors de la suppression d une référence à un élément. Vous pouvez demander à ne supprimer que la référence et garder l élément ou à supprimer les deux. Si l option Toujours demander est cochée, vous devez choisir le comportement du système à chaque suppression de référence. Afficher un dialogue de rapport d exception lors d erreur interne : Si cette option est cochée, un rapport s affiche dans une boîte de dialogue en cas d erreur interne. Ouvrir les fichiers HTML à l aide d un navigateur interne : Si cette option est cochée, les fichiers HTML (dont la documentation du projet générée au format HTML) sont affichés dans le navigateur interne. Si elle ne l est pas, les fichiers HTML sont affichés dans le navigateur HTML par défaut. 292 Guide de l utilisateur de Borland Together Developer 2005
303 Préférences de liens Préférences de liens Afficher le sélecteur d élément lorsque la cible du lien n est pas valide : Si cette option est cochée, une boîte de dialogue montrant les cibles de liens valides apparaît lorsqu un lien est dessiné ou réacheminé vers une cible incorrecte. Si elle n est pas cochée, un message d erreur apparaît lorsque la cible du lien n est pas correcte. Mettre à jour les liens en cas de modification de destination : Si cette option est cochée, toute modification apportée aux nœuds du modèle qui sont également les destinations des liens déclenche une mise à jour de toutes les sources des liens. Si elle n est pas cochée, seules les destinations des liens sont traitées lors des mises à jour. Quelques exemples : 1 Dans un diagramme, vous souhaitez ajouter un raccourci vers une classe dotée de sous-classes. Si cette option est cochée, des liens Généralisation apparaissent et les sous-classes sont redessinées pour que leurs nœuds ne contiennent pas le nom de la superclasse. Si cette option n est pas cochée, rien ne se passe tant que vous n appelez pas de mise à jour manuelle. 2 Si cette option n est pas cochée, les liens n apparaissent pas si plusieurs classes font référence à une classe inexistante que vous ajoutez (ou à laquelle vous appliquez un pattern, c est-à-dire vous demandez une suppression ou un ajout). 3 Dans l exemple suivant : class A { private B mylnktob; class B{ Le diagramme de classes contient deux nœuds (A et B) ainsi qu un lien entre eux. Si vous changez le nom de la classe de B en C dans l éditeur ou en externe, l attribut n est pas renommé dans le source. Par conséquent le lien visuel disparaît. Ce comportement est correct. Si vous redonnez à la classe C le nom B, le lien n apparaît que si vous appelez manuellement la commande Mettre à jour, sauf si cette option est cochée, auquel cas le lien apparaît automatiquement. Cocher cette option risque de ralentir les performances. Pour chaque destination de lien, il peut exister plusieurs sources à vérifier et à mettre à jour. Dans tous les cas, la mise à jour est plus étendue lorsque cette option est cochée. Arrondir les angles : Si cette case est cochée, les angles des liens sont arrondis. Dessin à main levée : Si cette case est cochée, les traits de liaison ne sont pas tout à fait droits, comme s ils avaient été tracés à la main. Cette option n est disponible que si l option Arrondir les angles a été cochée. Créer le raccourci vers la destination du lien : Cette option ne fonctionne que si l utilisateur ajoute un lien vers un élément n existant pas dans le diagramme en cours. Par exemple, pour ajouter un lien, vous pouvez choisir la commande Nouveau (lien) dans le menu contextuel de l élément ou tracer à la souris un lien vers un emplacement inutilisé dans le diagramme (si l option Afficher le sélecteur d élément lorsque la cible du lien n est pas valide est cochée) et sélectionner un élément d un autre diagramme. Dans ce cas, si cette case est cochée, un raccourci vers l élément choisi se place sur le diagramme. Sinon, ce lien se crée sans s afficher dans le diagramme. Dessin de liens directs : Cette option définit la façon dont les liens sont dessinés dans les diagrammes. Si elle est cochée, les liens sont dessinés en tant que lignes directes entre les éléments. Annexe B : Préférences de modélisation 293
304 Préférences de liens Dessin de liens rectilignes : Cette option définit la façon dont les liens sont dessinés dans les diagrammes. Si cette option est cochée, les liens sont dessinés avec un angle de 90 degrés et les liens Généralisation de la même classe de base sont rassemblés dans la même arborescence. Associations Ces options définissent la manière de dessiner des associations dans l éditeur de diagrammes. Indiquer la direction : Cette option indique s il faut dessiner une flèche donnant la direction de l association. Elle s applique uniquement aux liens d association dont la propriété directed dans l inspecteur de propriétés a la valeur automatic. Si cette propriété est définie à directed ou undirected, le lien est toujours affiché conformément à ce paramètre, quelle que soit la valeur donnée à l option. Voici les différentes valeurs que cette option peut prendre : Automatique Aucune flèche de direction n apparaît sur les liens représentés par des attributs dont le nom commence par lnk. Des flèches de direction apparaissent sur tous les autres liens. Tous Des flèches de direction apparaissent sur tous les liens. Aucun Aucune flèche de direction n apparaît sur aucun lien. Afficher comme attributs : Indique s il faut afficher les attributs représentant des liens d association dans la section Attributs des icônes de classes. Voici les différentes valeurs que cette option peut prendre : Automatique N affiche aucun attribut représentant des liens d association dont le nom commence par lnk. Affiche tous les autres attributs représentant des liens d association. Tous Affiche tous les attributs représentant des liens d association. Aucun N affiche aucun attribut représentant des liens d association. Dépendances Ces options s appliquent uniquement aux projets.jpx. Recherche entre les classes : Cette option contrôle si Together vérifie les dépendances entre les classes ou les interfaces. Ces vérifications se produisent dans trois situations possibles : Un diagramme est actualisé à l écran La génération de documentation a démarré La commande Mettre à jour les dépendances de package du menu Diagramme est choisie. Les liens trouvés au cours de ces vérifications sont affichés comme des liens de dépendance normaux, mais l utilisateur ne peut pas les enlever. Il y a trois options : Toutes pour rechercher les dépendances dans tous les packages du projet en cours. Diagramme local pour rechercher les dépendances uniquement dans le package en cours. Aucune ne recherche aucune dépendance Vérification lors de la recherche : Cette option définit ce qui sera analysé au cours de la mise à jour des dépendances de package. 294 Guide de l utilisateur de Borland Together Developer 2005
305 Préférences des détails d affichage Il y a deux options : Déclarations uniquement pour rechercher dans les déclarations d attributs, dans les valeurs de retour des opérations et dans les types de paramètres. Toutes les utilisations pour rechercher également dans le corps des opérations et dans les valeurs initiales, outre les déclarations. Si l option Recherche entre les classes est définie par Aucune, cette option n est pas pertinente. Reconnaissance des comme hyperliens : Si cette option est cochée, les balises sont considérées comme des hyperliens, avec les mêmes capacités de navigation. Sinon, ces balises sont ignorées. Libellés des liens Afficher les libellés orientés avec les liens : Si cette option est cochée, les libellés des liens sont affichés sur le même axe que les liens eux-mêmes. Dans ce mode, si une ligne de texte est trop longue, il n y a pas de retour ligne automatique. Afficher les libellés orientés horizontalement : Si cette option est cochée, les libellés des liens sont affichés horizontalement par rapport aux liens. Lorsque cette option a été sélectionnée, vous pouvez choisir à quelle distance sera effectué le retour ligne (voir ci-dessous). Retour à la ligne du lien lorsque la ligne dépasse : Cette option spécifie la longueur maximale (en pixels) des libellés de liens. Si un libellé dépasse la longueur maximale, le texte passe à la ligne suivante. Le texte ne passe pas à la ligne lorsque l option Afficher les libellés orientés avec les liens est cochée. Préférences des détails d affichage Avec les options des détails d affichage, vous pouvez contrôler ce que vous souhaitez faire apparaître dans les diagrammes. Vous pouvez spécifier si les différents types d éléments doivent ou non s afficher dans les diagrammes et, s ils s affichent, de quelle manière. Dans la page Détails d affichage, vous pouvez : Contrôler le niveau général de détail affiché dans les diagrammes Contrôler si les membres des classes apparaissent au format UML ou au format Java. Afficher ou masquer des sous-packages dans les diagrammes. Niveau de détail : Cette option définit le nombre d informations relatives à un élément à afficher dans des diagrammes. Par défaut Niveau de détail par défaut dans Together. Analyse Noms seuls (sans signes de visibilité). Modélisation Noms et types (avec signes de visibilité). Implémentation Noms et types, paramètres des opérations et valeurs initiales des attributs (avec signes de visibilité). Format des membres : Cette option contrôle le format des membres dans des diagrammes de classes. UML (par défaut) Le format d affichage des opérations est <nom> (paramètres) : <type>. Le format d affichage des attributs est <nom> : <type>. Langage (Java) Le format d affichage des opérations est <type> <nom> (paramètres). Le format d affichage des attributs est <type> <nom>. Annexe B : Préférences de modélisation 295
306 Préférences des Filtres d affichage Afficher le contenu du package dans l icône de package : Cette option définit jusqu à quel point le contenu d un sous-package est affiché dans le diagramme. Si elle est cochée, Together représente un sous-package en tant qu icône de package avec une liste de toutes les classes, interfaces et sous-packages qu il contient. Si elle n est pas cochée, Together représente un sous-package en tant qu icône de package sans les classes, interfaces et sous-packages qu il contient. Afficher les raccourcis de classes d autres packages dans l icône de package : Cette option spécifie s il faut ou non afficher dans l icône du package les raccourcis vers les classes venant d autres packages. Afficher le nom de la classe référencée dans l icône de classe étendue : Cette option définit si les noms des classes référencées sont affichés dans les diagrammes. Si elle est cochée, le nom de la classe étendue apparaît aligné à droite sous le nom de la classe de niveau supérieur, lorsqu une classe étend une classe non affichée dans le diagramme. Si elle n est pas cochée, les noms des classes référencées ne sont pas affichés dans les diagrammes. Afficher les alias au lieu des noms réels : Lorsque vous utilisez des diagrammes, vous pouvez définir des alias (noms de remplacement) dans l inspecteur. Les alias sont utiles dans les tâches de conception et de modélisation, mais si vous devez assurer des tâches de programmation détaillées, il est parfois utile de voir les noms réels des classes et des packages. Utilisez cette option pour basculer entre alias et noms réels dans les diagrammes. Si cette option est cochée, les alias s affichent dans les diagrammes. Si un élément donné n a pas d alias, il est affiché sous son nom réel. Si cette option n est pas cochée, les classes et les packages apparaissent dans les diagrammes sous leur nom réel. Les alias ne sont visibles que dans le champ alias de l inspecteur. Onglets Membres, Elément de modélisation et Package Sous les onglets Membres, Eléments de modélisation et Packages, vous pouvez contrôler l ordre dans lequel les membres, les éléments de modélisation et les packages s affichent dans les diagrammes. Etat : Cochez ou non cette case selon que vous voulez activer ou non des fonctions de tri. Par exemple, vous pouvez demander un tri des membres des éléments de classes selon leur stéréotype au lieu de les trier selon leur nom. Tri croissant : Trie en ordre croissant. Tri décroissant : Trie en ordre décroissant. Règle : Le tri s applique au nom de l élément ou à son stéréotype. Vers le haut : Remonte la règle sélectionnée dans l ordre de tri. Par exemple, vous pouvez demander un premier tri selon le stéréotype, puis un second selon le nom. Vers le bas : Descend la règle sélectionnée dans l ordre de tri. Préférences des Filtres d affichage Les options de ce groupe permettent de contrôler la présentation des informations sur les diagrammes. Cacher Elles fournissent un filtre par défaut pour masquer un élément dont le nom ou le stéréotype correspond à l expression régulière spécifiée (dans les sous-options). Cochez les éléments de la liste que vous souhaitez masquer dans la vue. 296 Guide de l utilisateur de Borland Together Developer 2005
307 Préférences des Filtres d affichage Expression régulière : Pour activer cette fonction, cochez Correspondance à l expression régulière dans la liste des options à masquer, comme le montre la figure ci-dessous. Ce champ définit l expression régulière à laquelle le filtre de masquage doit correspondre lors de la vérification d un élément. La correspondance doit avoir lieu dans la propriété spécifiée par l option Propriété. Figure 10.1 Activation des préférences Expression régulière et Propriété Propriété : Ce champ définit la propriété dans laquelle le filtre de masquage doit rechercher une correspondance avec l expression spécifiée dans Expression régulière. Dans la liste déroulante, choisissez Nom, Nom complet ou Stéréotype. Destinations exclues Les options de ce groupe définissent un ensemble de classes à interdire en tant que destinations des liens d association. Certaines classes Java standard sont spécifiées par défaut, telles que java.lang.string. Si les liens vers de telles classes ne sont pas exclus de l affichage, les diagrammes de classes risquent d être encombrés de liens inutiles pour le type de communication que vous souhaitez faire passer à propos de votre modèle de classe. Les options de ce groupe ne font que définir les classes à interdire en tant que destinations des liens d association. L option Cacher les associations vers contrôle l affichage ou le non affichage des liens. Cette option booléenne est cochée par défaut, ce qui signifie que les liens d association vers des classes définies comme destinations exclues ne s affichent pas par défaut. Pour voir ces liens, vous devez désactiver le champ Cacher les associations vers. Les champs des destinations exclues proposent par défaut onze valeurs prédéfinies. Vous pouvez modifier les valeurs prédéfinies et ajouter vos propres valeurs à la liste, en cliquant sur Ajouter. Pour retirer une valeur de la liste, cliquez sur Retirer. Cacher les associations vers : Cette option active ou désactive le filtrage visuel de liens d association dont la destination est une des classes définies dans l option Destinations exclues. Généralement, il s agit de classes standard telles que java.lang.object. Un tel filtrage des liens d association permet de gagner en clarté dans les diagrammes, moins encombrés de liens sans informations utiles sur votre modèle. Ajouter : Cliquez sur Ajouter pour ajouter une nouvelle destination exclue. Un nouveau champ s ajoute en bas de la liste des destinations exclues. Sélectionnez ce champ, puis entrez la valeur de la destination exclue. Cliquez sur OK pour enregistrer les modifications et fermer la boîte de dialogue Propriétés du projet. Annexe B : Préférences de modélisation 297
308 Notations UML Retirer : Sélectionnez la valeur de la destination exclue à retirer de la liste, puis cliquez sur Retirer. Cliquez sur OK pour enregistrer les modifications et fermer la boîte de dialogue Propriétés du projet. Notations UML Ces options permettent de choisir entre deux notations des diagrammes d états et de composants, ainsi que des raccourcis vers les diagrammes, en conformité avec la spécification UML 2.0. Etat Icônes Description Si vous appuyez sur ce bouton, vous obtenez une description de l état composite qui comporte l onglet du nom, contenant le nom de l état. Permet de conserver le nom d un état composite comportant des régions orthogonales. Si vous appuyez sur ce bouton, vous pouvez subdiviser un état composite en plusieurs compartiments séparés les uns des autres par un trait horizontal. Composant Icônes Description Si vous appuyez sur ce bouton, vous obtenez la représentation du composant sous forme d icône. Si vous appuyez sur ce bouton, vous obtenez la représentation du composant sous forme de rectangle contenant une icône. Diagramme Icônes Description Si vous appuyez sur ce bouton, vous obtenez la représentation du diagramme sous forme de rectangle. Si vous appuyez sur ce bouton, vous obtenez la représentation du diagramme sous forme de rectangle à onglet (package). Préférences de diagrammes de séquence 1.4 Ces préférences s appliquent aux diagrammes de séquence des projets UML 1.4. Afficher Flèche de retour lors du dessin du lien Message : Cette option active ou désactive l affichage d une flèche retour lors du dessin d un lien dans un diagramme de séquence. Il est possible de demander ensuite, dans le volet Inspecteur, à afficher ou à masquer ce lien. Description de message : Cette option active ou désactive l affichage des descriptions de messages dans des diagrammes de séquence. Ces descriptions se trouvent dans une page Description du volet Inspecteur. 298 Guide de l utilisateur de Borland Together Developer 2005
309 Préférences de diagrammes de séquence 2.0 Numéros de message : Cette option active ou désactive l affichage des numéros de messages dans des diagrammes de séquence. Nom de la classe sous le nom de l objet : Si cette option est cochée, le nom de la classe s affiche sous le nom de l objet dans un diagramme de séquence. Nom de la classe à droite du nom de l objet : Si cette option est cochée, le nom de la classe s affiche à droite du nom de l objet. Générer un diagramme de séquence Inclusion des messages réflexifs : Cette option indique s il faut afficher les messages réflexifs sur les diagrammes de séquence générés. Affichage du diagnostic complet : Cette option indique s il faut afficher les messages de diagnostic détaillés produits lors de la génération des diagrammes de séquence. Création de diagrammes multiples : Si cette option est cochée, un diagramme distinct est généré pour chaque opération quand plusieurs opérations sont sélectionnées pour générer un diagramme de séquence. Sinon, c est un diagramme avec plusieurs messages initiaux qui est généré dans ce cas. Affichage de diagrammes multiples : Si cette option est cochée, tous les diagrammes générés sont immédiatement affichés. Sinon, aucun diagramme n est affiché. Cette option peut être modifiée uniquement si l option Création de diagrammes multiples est cochée. Profondeur d imbrication d appel : N Ce nombre spécifie combien d étapes d appels sont analysées. Une valeur comprise entre 1 et 3 peut être utilisée pour créer un diagramme de haut niveau. Plus tard, vous pourrez choisir de voir plus de profondeur et/ou de créer des diagrammes de séquence supplémentaires pour des opérations particulières. Remarquez qu une valeur élevée se traduit par une procédure plus longue et trop complexe, rendant difficile la lecture des diagrammes. Générer l implémentation Ne jamais modifier le code existant : Si cette option est cochée, le code source existant n est jamais modifié lors de la génération du code source à partir d un diagramme de séquence. Sinon, une fenêtre de dialogue apparaît quand vous choisissez de générer le code source, vous demandant de confirmer la mise à jour du code source existant. Préférences de diagrammes de séquence 2.0 Les projets UML 2.0 sont pris en charge dans Together Developer uniquement si une licence Together Designer est détectée. Ces préférences s appliquent aux diagrammes de séquence des projets UML 2.0. Afficher Afficher les numéros de séquence : Cette option active ou désactive l affichage de numéros de séquence en regard des flèches. Afficher les invocations : Cette option active ou désactive l affichage de spécifications d invocations (l affichage des barres des lignes de vie bascule entre flèches de message et flèches retour). Notez que les invocations ne sont pas conformes à la spécification UML 2.0. Cependant, Together introduit ce contrôle pour simplifier la gestion des messages synchronisés. Annexe B : Préférences de modélisation 299
310 Préférences de disposition Préférences de disposition Les préférences de disposition définissent l alignement des éléments du diagramme. Algorithme : Les diagrammes de classes UML peuvent être considérés comme des graphiques, avec des sommets et des arêtes ; par conséquent, il est possible d appliquer à leur disposition des structures de données graphiques (algorithmes). Cliquez sur la flèche vers le bas pour sélectionner un algorithme de disposition. Les divers algorithmes et leurs options sont décrits ci-dessous. L algorithme que vous spécifiez s exécute lorsque vous choisissez Diagramme Disposition Disposer tout dans le menu principal. Récursive : Tous les algorithmes de disposition ont accès à cette option. Si vous la sélectionnez, vous disposez tous les éléments secondaires des conteneurs tout en disposant les nœuds du diagramme. <sélection automatique> : Chacun des algorithmes de disposition contient des informations internes sur les types de diagrammes avec lesquels il fonctionne, ainsi que les caractéristiques numériques définissant la qualité finale de la disposition selon le diagramme concerné. Un même type de diagramme peut avoir de plusieurs algorithmes. L option <sélection automatique> utilise ces informations internes et sélectionne l algorithme le mieux adapté au type de diagramme en cours. Options de la disposition hiérarchique : L algorithme hiérarchique a pour origine l algorithme Sugiyama. Pour tracer le diagramme UML, il respecte la hiérarchie des préférences que vous sélectionnez. Héritage Cette option définit la façon dont les classes s alignent les unes par rapport aux autres lorsqu elles sont reliées par un lien d héritage. Horizontal Les classes liées par héritage s alignent horizontalement Vertical Les classes liées par héritage s alignent verticalement Distance minimale entre les éléments Distance en pixels. Vous pouvez spécifier ici les distances verticale et horizontale. Justification Cette option définit l alignement des classes. Le paramètre Justification dépend du paramètre Héritage. Sélectionnez une des options suivantes : Haut Si l option Héritage a la valeur Vertical, tous les nœuds d une colonne sont alignés sur la gauche de la colonne. Si l option Héritage a la valeur Horizontal, tous les nœuds d une ligne sont alignés sur le haut de la ligne. Centre Si l option Héritage a la valeur Vertical, tous les nœuds d une colonne sont centrés dans la colonne. Si l option Héritage a la valeur Horizontal, tous les nœuds d une ligne sont centrés sur la ligne. Bas Si l option Héritage a la valeur Vertical, tous les nœuds d une colonne sont alignés sur la droite de la colonne. Si l option Héritage a la valeur Horizontal, tous les nœuds d une ligne sont alignés sur le bas de la ligne. Heuristiques de l ordre des couches Utilise une méthode par heuristique pour trier les nœuds des différentes couches afin de limiter les chevauchements entre arêtes. Barycentre L heuristique Barycentre réorganise les nœuds du nœud N selon le poids du centre de gravité. Le poids du nœud N est la moyenne de toutes les coordonnées relatives de ses successeurs et prédécesseurs. Médiane L heuristique Médiane réorganise les nœuds sur le nœud N selon le poids médian. Le poids du nœud N est la moyenne des positions relatives de ce nœud ne concernant que les coordonnées des centres de ses successeurs et prédécesseurs. 300 Guide de l utilisateur de Borland Together Developer 2005
311 Préférences de disposition Hybride L heuristique Hybride associe les heuristiques Mediane et Barycentre au paramètre Proportion (voir ci-dessous). Proportion Son utilisation est associée à celle de l heuristique de classement Hybride. Ce paramètre peut avoir une valeur optimale de 0.7. Options de la disposition Together : Options de disposition utilisées dans la version 6.1 de Together ControlCenter et Together Edition pour JBuilder. Héritage Cette option définit la façon dont les classes s alignent les unes par rapport aux autres lorsqu elles sont reliées par un lien d héritage. Sélectionnez une des deux options suivantes : De gauche à droite Les classes connectées par héritage sont alignées horizontalement de la gauche vers la droite. De droite à gauche Les classes connectées par héritage sont alignées horizontalement de la droite vers la gauche. De haut en bas Les classes connectées par héritage sont alignées verticalement du haut vers le bas. De bas en haut Les classes connectées par héritage sont alignées verticalement du bas vers le haut. Justification Cette option définit l alignement des classes. Le paramètre Justification dépend du paramètre Héritage. Le tableau suivant récapitule la façon dont les éléments sont alignés : Tableau 10.2 Héritage / Justification Justification/ Héritage Haut Centre Bas Gauche->droite Droite de la colonne Centre de la colonne Gauche de la colonne Droite->gauche Gauche de la colonne Centre de la colonne Droite de la colonne Haut->bas Bas de la ligne Centre de la ligne Haut de la ligne Bas->haut Haut de la ligne Centre de la ligne Bas de la ligne Options de disposition arborescente : L algorithme trace le graphique donné selon une arborescence complètement développée. Sens de la hiérarchie Cette option définit le sens dans lequel les éléments s affichent dans l arborescence Horizontal Les éléments sont alignés horizontalement Vertical Les éléments sont alignés verticalement Hiérarchie inversée Les éléments figurant en dernier dans la hiérarchie se présentent en premier dans le diagramme Distance minimale entre les éléments Distance en pixels. Vous pouvez spécifier ici les distances verticale et horizontale. Justification Cette option définit l alignement des éléments. Le paramètre Justification dépend du paramètre Sens de la hiérarchie. Sélectionnez une des options suivantes : Haut Si l option Sens de la hiérarchie a la valeur Vertical, tous les nœuds d une colonne sont alignés sur la gauche de la colonne. Si l option Sens de la hiérarchie a la valeur Horizontal, tous les nœuds d une ligne sont alignés sur le haut de la ligne. Centre Si l option Sens de la hiérarchie a la valeur Vertical, tous les nœuds d une colonne sont centrés dans la colonne. Si l option Sens de la hiérarchie a la valeur Horizontal, tous les nœuds d une ligne sont centrés sur la ligne. Annexe B : Préférences de modélisation 301
312 Préférences de disposition Astuce Bas Si l option Sens de la hiérarchie a la valeur Vertical, tous les nœuds d une colonne sont alignés sur la droite de la colonne. Si l option Sens de la hiérarchie a la valeur Horizontal, tous les nœuds d une ligne sont alignés sur le bas de la ligne. Traiter les bords sans arborescence Si cette option est sélectionnée, elle courbe les bords sans arborescence pour les ajuster à la disposition du diagramme. Options de la disposition orthogonale : L algorithme Orthogonal utilise des heuristiques pour répartir des nœuds de diagramme sur une grille. Stratégie de placement des nœuds Vous avez le choix entre trois stratégies : Arborescence, Equilibré et Intelligent. Arborescence Cette stratégie dispose le diagramme selon une arborescence graphique. L arbre du graphe est calculé et les nœuds du diagramme sont placés sur la grille de manière à limiter la longueur des arêtes de l arbre et donc à réduire la distance entre les nœuds reliés par une arête. Equilibré Cette stratégie permet un équilibrage des sommets du graphique comme point de départ. Equilibré signifie que les voisins de chaque sommet V sont distribués à gauche et à droite de V aussi uniformément que possible. Intelligent Cette stratégie trie tous les sommets selon les degrés internes et externes de chacun et remplit la grille en partant du centre et commence par les sommets ayant le plus grand degré. Distance minimale entre les éléments Distance en pixels. Spécifie la distance minimale entre les éléments du diagramme. Spring Embedder : Les algorithmes de disposition Fixation à ressorts modélisent le graphe comme s il s agissait d un système de forces et essaient de trouver la configuration de plus basse énergie. Toutes les arêtes sont représentées par des lignes droites. Ce type de disposition convient particulièrement bien aux projets qui comportent de nombreux éléments de diagrammes basés sur un code source important. Si vous disposez le graphe selon l algorithme Fixation à ressorts, le programme en fait un modèle physique (masses et ressorts) qu il soumet à des forces. Les arêtes trop longues sont les plus tendues et essaient de se contracter au maximum. Lorsque les nœuds et les arêtes, à force de s étirer et de se rétracter, sont parvenus à un équilibre, vous obtenez une représentation géométrique du graphe. Options Sélectionnez les options des ressorts Force des ressorts Précisez la rigidité des ressorts. Plus cette valeur est élevée, plus les arêtes seront courtes dans le graphe final. La valeur recommandée : 3.0 Mouvement Indiquez le facteur de déplacement des nœuds. Plus la valeur est élevée, plus les nœuds seront éloignés les uns des autres dans le graphe final. Si vous attribuez à ce facteur la valeur 0, les nœuds seront disposés de manière aléatoire. La valeur recommandée : 10.5 Commencez par disposer votre graphe selon les paramètres par défaut des ressorts, puis modifiez vos options. 302 Guide de l utilisateur de Borland Together Developer 2005
313 Préférences d impression Préférences d impression Cette page décrit les préférences d impression des diagrammes. Une fois que ces paramètres ont été appliqués aux documents imprimés, les paramètres du système d exploitation et de l imprimante s appliquent à nouveau. Format et disposition : Ces options déterminent le format du papier et l orientation de la page. Marges (pouces) : Ces options déterminent les marges de la page. En-tête et pied de page : Ces options déterminent ce qui est écrit dans les en-têtes et les pieds de page. Options d impression des diagrammes : Spécifiez ici, entre autres, vos options d agrandissement/réduction. Voir aussi Impression des diagrammes dans l aide en ligne. Préférences de génération de la documentation Cette page décrit les préférences de génération d une documentation RTF/HTML avec utilisation de templates. Pour plus d informations, voir la boîte de dialogue Génération de documentation à l aide d un template dans l aide en ligne. Préférences de génération du HTML Cette page décrit les préférences de génération de la documentation HTML. Les préférences génération du HTML contrôlent les différents types de contenus à inclure ou exclure dans la documentation HTML standard générée (Projet Propriétés du projet Modélisation Génération HTML au niveau du projet, ou Outils Préférences Modélisation Génération HTML au niveau global). Dans les paramètres indiquant vos préférences en matière de documentation, vous pouvez : Inclure ou exclure les balises d auteur et de version dans la sortie générée. Spécifier tous les paramètres Javadoc (développez le nœud Documentation, puis sélectionnez Javadoc). Spécifier les niveaux de visibilité des classes à inclure dans la documentation HTML générée. Préférences de génération du HTML Générer la documentation dans le style Javadoc : Si cette option est cochée, la documentation est générée dans le style Javadoc. Mettre à jour les dépendances de package avant la génération : Si cette option est cochée, les dépendances de package sont mises à jour avant la génération de la documentation. Activer cette option augmente le temps nécessaire à la génération de la documentation. Conserver les sauts de ligne : Si cette option est cochée, un script recherche les sauts de ligne dans le texte et ajoute les balises <br> au code HTML lors de la génération de la documentation. Inclure classes et membres : Ces options contrôlent les classes et les membres à faire apparaître dans la documentation générée. Annexe B : Préférences de modélisation 303
314 Préférences de génération du HTML Vous pouvez exclure ou inclure dans l affichage : public Si cette option est cochée, les classes et membres publics apparaissent dans la documentation générée. package Si cette option est cochée, les classes et membres package apparaissent dans la documentation générée. protected Si cette option est cochée, les classes et membres protégés apparaissent dans la documentation générée. private Si cette option est cochée, les classes et membres privés apparaissent dans la documentation générée. Préférences Javadoc Ce groupe contient les options Javadoc standard. Titre de fenêtre : Spécifie le titre à placer dans la balise HTML <title>. Ce titre apparaît dans le titre de la fenêtre et dans les signets du navigateur (emplacements favoris) créés pour cette page. Il ne doit pas contenir de balises HTML, le navigateur ne les interprétant pas correctement. Titre de doc : Spécifie le titre à placer vers le haut du fichier de présentation récapitulatif. Ce titre apparaît centré et au niveau 1, sous la barre de navigation supérieure. Il peut contenir des balises HTML et des espaces. En-tête : Spécifie le texte d en-tête à placer en haut de chaque fichier obtenu en sortie. L en-tête apparaît à droite de la barre de navigation supérieure. Il peut contenir des balises HTML et des espaces. Pied de page : Spécifie le pied de page à placer en bas de chaque fichier obtenu en sortie. Le pied de page apparaît à droite de la barre de navigation inférieure. Il peut contenir des balises HTML et des espaces. Bas : Spécifie le texte à placer en bas de chaque fichier obtenu en sortie. Le texte apparaît en bas de la page, sous la barre de navigation inférieure. Il peut contenir des balises HTML et des espaces. Fichier de présentation : Spécifie le chemin d accès au fichier contenant la documentation de présentation. Ces informations se placent dans la page Présentation (overview-summary.html). Le chemin d accès du fichier est relatif au chemin source. Options de génération Arborescence hiérarchique des classes/interfaces : Indique s il faut générer la hiérarchie des classes et des interfaces. Aide : Indique s il faut ou non placer un lien d aide dans les barres de navigation en haut et en bas de chaque page obtenue. Fichier d index : Indique s il faut générer le fichier index. Diviser l index par lettre en créant plusieurs fichiers : Indique s il faut fractionner le fichier index en plusieurs fichiers, un par lettre, plus un fichier pour les entrées de l index comportant des caractères non alphabétiques. Barre de navigation : Indique s il faut générer la barre de navigation, l en-tête et le pied de page qui apparaissent sinon en bas et en haut des pages. Sans effet sur l option Bas. Désactivez cette option si seul le contenu vous intéresse et que vous n avez pas à naviguer, par exemple pour convertir des fichiers au format PostScript ou PDF pour l impression. 304 Guide de l utilisateur de Borland Together Developer 2005
315 Préférences des profils Préférences des profils Cette page affiche une liste des profils UML disponibles. Vous pouvez y activer ou désactiver des profils. Voici les profils disponibles dans cette version : Together 6.0 UML en couleur Processus métier Processus de développement logiciel Voir aussi Profilage UML, page 152 Préférences du code source Sur cette page, vous définissez les préférences de corrélation entre les diagrammes de modélisation et le code source Java au cours des opérations d ingénierie directe et de rétro-ingénierie. Positionner les membres : Cette option définit l ordre dans lequel les membres sont placés dans une nouvelle classe ou interface. Remarquez que cette préférence ne modifie pas le code source des classes et des interfaces existantes. Il y a deux options : Opérations, puis attributs Attributs, puis opérations Reconnaissance Ce groupe de préférences définit la façon dont les classes Java Beans et les interfaces sont affichées sur les diagrammes. Il y a deux façons d afficher les propriétés et les événements des Beans : la première (native), en tant que membres propriété et événement spéciaux, et la deuxième en tant que leur partie : attributs et opérations des accesseurs (getters et setters.) Le premier moyen nécessite d analyser le code source, de rechercher et de reconnaître ces membres. Reconnaissance des propriétés et des événements : Si cette option est cochée et que des propriétés et/ou des événements sont trouvés, Together affiche les membres selon le moyen natif et modifie la notation des classes/interfaces (un petit rectangle apparaît sur la bordure gauche). Sinon, les propriétés et les événements sont affichés en tant que leur partie. Les trois options suivantes sont alors affichées. Ignorer les interfaces : Si cette option est cochée, les propriétés et les événements des interfaces sont affichés en tant que leur partie. Affichage des attributs et accesseurs : Si cette option est cochée, les propriétés et les événements sont affichés des deux façons simultanément. Annexe B : Préférences de modélisation 305
316 Préférences des navigateurs Préférences des navigateurs Reconnaissance des classes sans constructeur public/défaut : Si cette option est cochée, Together recherche les propriétés et les événements dans toutes les classes et dans toutes les interfaces. Sinon, seules les classes et les interfaces qui ont soit un constructeur par défaut public soit pas de constructeur (donc se conformant à la spécification des Java Beans) sont recherchés. Supprimer les attributs de liaison en supprimant la destination : Si cette option est cochée, à la fois le lien d association sur le diagramme et l attribut dans le code source (représentant ce lien) sont supprimés lors de la suppression de la classe de destination. Sinon, seul le lien d association est supprimé. En indiquant vos préférences, vous pouvez personnaliser un certain nombre de comportements et d aspects des volets de navigation Together : Navigateur de modèle Navigateur de diagrammes Navigateur de favoris Options de tri Si cette option est cochée, les attributs, les opérations, les sous-classes et les propriétés sont triés par ordre alphabétique dans leurs compartiments respectifs. Trier les éléments : Si cette option est cochée, vous pouvez spécifier la façon dont les attributs, les opérations, les sous-classes et les propriétés sont triés. Si elle ne l est pas, les éléments sont triés selon une arborescence. Classes par : Si l option Trier les éléments est cochée, vous pouvez choisir de trier les classes soit par nom, soit par visibilité. Méthodes par : Si l option Trier les éléments est cochée, vous pouvez choisir de trier les méthodes par nom, par visibilité ou par type de retour. Attributs par : Si l option Trier les éléments est cochée, vous pouvez choisir de trier les attributs par nom, par visibilité ou par type. Afficher d abord les nœuds de package : Si l option Trier les éléments est cochée, cette option active ou désactive l affichage des packages en premier dans l arborescence, avant les autres contenus. Autres options Afficher les noms complets : Contrôle si les noms d interface et de classe complets sont affichés dans des info-bulles. Si cette option est désactivée, les noms abrégés sont affichés. Cette option ne s applique qu au navigateur de favoris. Développer les nœuds lors d un double-clic : Cette option contrôle ce qui se produit si vous double-cliquez sur des nœuds dans le volet Navigateur de modèle. Si elle est cochée, un double clic sur un nœud le développe ou le réduit et appelle l action associée par défaut à ce nœud. Si elle ne l est pas, un double clic ne réduit ni ne développe un nœud. Seule l action par défaut est exécutée. Pour développer et réduire des nœuds, vous pouvez utiliser les touches à flèches vers la droite et vers la gauche. Nœuds de diagramme développables : Contrôle si vous pouvez développer les nœuds sur l onglet pour en afficher le contenu. 306 Guide de l utilisateur de Borland Together Developer 2005
317 Préférences de comparaison des modèles Afficher les types de diagramme : Cette option indique s il faut afficher, outre l icône du diagramme, les descriptions des types de diagrammes dans une arborescence de modèles. Si cette option est cochée, le nom du diagramme apparaît sous la forme illustrée dans l exemple : {icône<défaut> (Classe) {icônesystème POS (Déploiement) Préférences de comparaison des modèles Cette fonctionnalité est prise en charge dans Together Developer uniquement si une licence Together Designer est détectée. Cette page décrit les préférences de comparaison des modèles. Pour plus d informations, veuillez consulter la boîte de dialogue Paramètres de comparaison dans l aide en ligne. Annexe B : Préférences de modélisation 307
318 308 Guide de l utilisateur de Borland Together Developer 2005
319 Index A activation et désactivation de profils UML 153 annotation note 57 propriétés des notes 57 annotation des diagrammes 57 annotation des liens message 86 appel de message 114 appliquer les patterns 185 attribut de clé primaire 145 audit 189 ACE 236 AFLV 236 AFP 214 ASMDCN 212 ASMO 213 astuces pour les audits NC 231 ASWL 233 audits ILC dépréciés 243 BLAD 224 BTJC 228 CA 214 CEV 237 CFPT 237 CIUCFL 215 CLE 233 CNSMFN 230 correction automatique 194 CPASBF 224 CQS 219 CSF 236 CVSBF 225 d erreurs possibles 235 DCBA 229 de contenu superflu 242 de révision de code 210 de style de code 212 de style de déclaration 224 de style de nommage 230 définitions des audits 208 Documentation 228 DVIL 234 DVSS 225 EBWB 238 ECB 237 EIAV 238 enregistrement 194 EOBA 242 erreurs critiques 219 exécution 189 exemple d audit DCBA 229 exportation 193 fonctionnement de LIKE 211 HIA 220 HISM 220 HN 220 ICSBF 226 ILC 242 IMCM 221 impression 193 interprétation des résultats de LIKE 212 LF 215 LIKE 210 LL 215 LPPMF 226 mise à jour 192 MLOWP 238 MSC 235 MSOL 215 MVDSN 222 NC 231 NEC 230 NFSA 216 NLC 216 NOIS 216 ODCM 227 OIM 243 OM 227 ONAMAM 223 OPM 223 options de traitement d un audit DCBA 229 options LIKE 212 OSNBU 216 OWS 222 paramètres de personnalisation d un audit ILC 243 PCO 217 PDBB 217 Performance 233 personnalisation de l audit DCBA 229 PFC 230 PIFS 217 PJDC 230 PMFL 227 POSNT 232 PPA 239 PPCF 228 RIP 218 RNEC 239 SAUI 223 SBCCS 240 SEB 240 SL 218 SM 235 SSSIDC 212 stratégies d importation pour un audit ILC 242 TMSSC 235 tri 192 UAAO 219 UC 244 UCVN 232 UE 241 UIMM 244 UIOE 243 UL 241 ULVFP 245 UPCM 245 URSP 245 UTE 218 vue 190 audits 189 audits, comment faire métriques, comment faire 189 audits, correction automatique 194 Index 309
320 audits, exécution 189 audits, résultat audit résultat 191 automatisation gendoc options 164 options de template 164 options HTML 165 B barre d outils principale 6 bloc d instructions 87 branchement des messages 86 C CaliberRM 277 ajout de projet 278 ouverture de projet 279 CaliberRM, cas d utilisation 281 CaliberRM, créer une exigence sur un serveur 282 CaliberRM, génération de documentation 281 CaliberRM, inspecteur 280 CaliberRM, navigation 281 CaliberRM, trace 279 CaliberRM, utilisation 278 cardinalité 146 catégories et types de patterns 171 cluster de sous-types 145 comparaison des modèles 148 analyse 151 configuration multiple 149 notions de base 148 propriétés personnalisées 151 schéma de couleur 151 types d éléments 149 utilisation 150 composants de l interface utilisateur 5 affichage 7 ancrage 7 barre d outils 6 désancrage 7 menu principal 6 organisation 6 redimensionnement 7 configuration de l environnement de Together 5 configuration, préférences 17 connecteur 131 connecteur d entrée 131 connecteur de sortie 131 connecteur de valeur 131 connexion des états 127 contrainte d objet 68 éditeur 69 contrôle de version pour les modèles Together 35 conversion d un composant 31 conversion d un état 31 conversion d un périmètre du système 32 conversion de jointures 33 conversion entre diagrammes de séquence et de collaboration 82 copie de templates existants 186 copie des images des diagrammes 58 création des membres d états 127 création et destruction d objets 88 D définitions des métriques 246 dépendances de package 56 Designer 23, 167 dessin d éléments 44 annuler 56 courbure 46 grille 47 lien 45 lien réflexif 46 nœud 45 synchronisation 56 Developer 1, 23, 167 diagramme affichage d éléments 41 affichage des éléments cachés 41 alignement 44 barre d outils 38 cardinalité 55 clonage d élément 50 clone 39 copie d élément 50 copie de raccourcis 50 création 37 disposition 42 disposition, création 43 glisser-déposer 49 glisser-déposer, prise en charge complète 50 grille 47 hyperlien 38 lien 45 lien avec courbure 46 lien d association 53 lien réflexif 46 lien, libeller 54 liens, réacheminement 52 masquage d éléments 41 menu contextuel 48 menu principal 38 modification de propriétés 48 modification de propriétés, in-situ 49 modification de propriétés, inspecteur 48 nœud 45 organisation 40 ouverture 39 qualificateur 55 raccourci 46, 51 réacheminement 52 redimensionnement d un élément 51 renommer 39 rôle client et fournisseur 55 sélection d élément 47 suppression 39 type de lien 53 vue 40 vue globale 41 zoom 42 diagramme d activité actions d entrée et de sortie 98 activités imbriquées 130 débranchements et jointures 98, 132 décision 132 éléments 96, 129 état imbriqué 98 événement différé Guide de l utilisateur de Borland Together Developer 2005
321 fin de flot 132 fusion 132 regroupement 130 diagramme d états 92 actions d entrée et de sortie 93 éléments 93, 125 état complexe 95 état imbriqué 94 événement différé 94 historique 95, 128 historique détaillé 95, 128 sources multiples 94 transition interne 93 transition réflexive 93 UML diagramme d interaction UML 2.0 copie de ligne de vie 110 fragment combiné 116 invariant d état 114 message d appel 111 message de réponse 111 message réflexif 114 messages 111 occurrence d exécution 111 occurrence d invocation 111 opérations liées au Presse-papiers avec occurrence d exécution 113 diagramme de cas d utilisation éléments 91, 123 propriétés 123 séquence de navigation 91, 124 diagramme de classes 101 agrégations 74 association n-aire 75 associations 74 classe d association 75 classe interne 74 compositions 74 contrôles de compartiment 77 éditeur in-situ 77 éléments 73 lien d implémentation 74 modification de membres 76 modification de propriétés 76 prise en charge de Java prise en charge de Java 5.0, énumération 79 prise en charge de Java 5.0, générique 78 prise en charge de Java 5.0, type d annotation 80 diagramme de composants 99, 132 éléments 99, 133 modélisation 100 notation 133 diagramme de déploiement 100, 135 artefact 137 éléments 101 lien d association 137 lien de déploiement 137 modélisation 101, 137 nœud 136 spécification de déploiement 137 diagramme de déploiement UML 2.0 éléments 136 diagramme de packages 71, 101 diagramme de séquence 80, 81 classe 107 code d implémentation 88 éléments 108 génération à partir d opérations 88 génération de code source 90 importation de classes 83 instanciation des classes 83 ligne de vie 109 options 83, 89 pièce 107 substitution pour l implémentation 89 diagramme de séquence UML 2.0 vérificateur d intégrité 121 diagramme de structure composite 137 création de port 138 éléments 138 instance de collaboration 139 interface 140 interface fournie 140 interface requise 140 liaison de rôle 140 diagramme relations-entités attribut 145 cardinalité 146 clé primaire 145 cluster de sous-types 145 création 142 domaine 143 éléments 143 entité 144 groupe de clés 147 liens de relations 146 niveau d affichage 142 niveau de visualisation 143 niveau entité 142 notation 142 relation de catégorisation 145 types 142 vérification 147 vérification du modèle logique 148 vue 144 diagrammes d activité 95, 128 diagrammes d interaction 80 diagrammes d interaction UML combinaison 118 création 106 dissociation 118 imbrication de messages 114 lier le cadre 120 message d appel à une opération 114 occurrence d interaction 119 opérande 118 opérateur 117 restauration 107 suppression 106 diagrammes dans Together 37 diagrammes de cas d utilisation 90, 122 diagrammes ER 141 diagrammes relations-entités 141 diagrammes UML 67 documentation 2 automatisation 163 ligne de commande 163 template 160 documentation html paramètres 160 documentation HTML, préférences 303 domaine 143 Index 311
322 durée d activation 86 E éditeur de diagramme 11 éléments des diagrammes d interaction 82 emplacement 134 enregistrement des images des diagrammes 58 ERD 141 F favoris 9 utilisation 35 fichier ajout 34 commutation 35 ouverture 34 filemate 22 filtrage des patterns 169 flot d objets 131 flot de contrôle 131 fragment combiné 116 G gendoc options RTF 162 génération de code source, expert 157 génération de la documentation 159 html 159 projet ouvert 159 génération du code source 157 génération JavaDoc, préférences 304 gestion des exigences 277 gestionnaire de patterns 168 H hyperlien entre projets 61 multi-projet 59 hyperliens création 59 navigation 60 suppression 60 vue 60 hyperliens et diagrammes 59 I imbrication de messages 86 importation modèle XMI 274 importation de MDL 25 importation et exportation 273 importation mdl 274 inspecteur 12 inspecteur, onglet affichage 15 inspecteur, onglet description 16 inspecteur, onglet hyperlien 15 inspecteur, onglet lien 16 inspecteur, onglet personnalisation 16 inspecteur, onglet propriétés 14 stéréotype 15 inspecteur, onglets 14 inspecteur, utilisation 13 inspecteur, vue classique 12 inspecteur, vue moderne 12 invariant d état 114 J JavaDoc, préférences 304 L lien ajouter un nouveau qualificateur 55 classement 52 inverser 85 point actif 53 point de courbure 52 ligne de commande, opérations importation mdl 274 ligne de vie 87 M manipulation d éléments 47 MDL importation de modèles 274 menu principal 6 message pour l appel d une opération 85 message réflexif 85 messages 84 messages dans les diagrammes de collaboration 84, 111 messages dans les diagrammes de séquence 84, 111 métamodèle d imbrication 21 stockage physique des éléments 21 métriques 196 autres sources 207 chargement 204 comment utiliser les métriques 196 comparaison 205 enregistrement 204 exécution 197, 199 exportation 203 filtrage 199 graphe de distribution 200 graphe de Kiviat 201 histogramme 199 impression 202 impression des résultats à partir d un tableau 202 impression des résultats graphiques 203 métrique AC 250 métrique AHF 256 métrique AIF 262 métrique CBO 253 métrique CC 250 métrique CDBC 252 métrique CF 253 métrique CR 270 métrique DAC 254 métrique DOIH 262 métrique FO 254 métrique HDiff 257 métrique HEff 257 métrique HPLen 257 métrique HPVoc 257 métrique HPVol 258 métrique LOC Guide de l utilisateur de Borland Together Developer 2005
323 métrique LOCOM1 249 métrique LOCOM2 249 métrique LOCOM3 250 métrique MHF 257 métrique MIC 254 métrique MIF 262 métrique MNOL 268 métrique MNOP 269 métrique MSOO 269 métrique NOA 248 métrique NOAM 269 métrique NOC 248 métrique NOCC 262 métrique NOCON 248 métrique NOIS 249 métrique NOM 248 métrique NOO 248 métrique NOOM 269 métrique NOprnd 258 métrique NOprtr 259 métrique NORM 251 métrique NUOprnd 260 métrique NUOprtr 261 métrique PF 270 métrique PPkgM 271 métrique PPrivM 271 métrique PProtM 271 métrique PPubM 271 métrique RFC 251 métrique TCR 270 métrique TRAp 267 métrique TRAu 266 métrique TRDp 264 métrique TRDu 263 métrique VOD 254 métrique WMPC1 252 métrique WMPC2 252 métriques d encapsulation 256 métriques de base 248 métriques de cohésion 249 métriques de complexité 250 métriques de couplage 252 métriques du maximum 268 métriques Halstead 257 métriques relatives au polymorphisme 269 métriques sur l héritage 262 métriques sur le couplage fondé sur l héritage 263 métriques sur les ratios 270 rapport avec hyperliens 204 résultats 198 tri 198 utilisation de métriques enregistrées 207 modélisation diagramme de classes 70 diagramme de packages 70 modélisation avec Together 67 modélisation, patterns 181 modification des états 126 modification des transitions 127 modification, préférences affichage, préférences 17 N navigateur de diagrammes 10 navigateur de modèle 9 navigateur de projet 10 navigation au clavier, onglets 287 navigation au clavier, vues et volets 287 notations UML 298 composant 298 diagramme 298 état 298 nouveau métamodèle d imbrication opérations liées au Presse-papiers 22 O OCL 68 éditeur 69 opérations au clavier 287 ordre des liens message 86 ouverture de projet 27 P paramètre d activité 131 pattern API ouverte 178 appliquer 185 binaire 178 catégorie 171 comportement 178 de première classe 183 exemple 179 filtre 169 gestionnaire 168 groupe 170 macros de templates 172 macros définies par l utilisateur 173 migration 186 modification des noms 169 pattern de modélisation 181 registre 168 synchroniser 169 template de code source 170 template de code, créer 173 template de code, modifier 177 template de code, propriétés 171 template de code, supprimer 177 template de modélisation, créer 181 patterns 167 moisson 183 reconnaissance 183 patterns binaires 178 patterns de première classe 183 patterns, migration 186 préférences code source 305 comparaison de modèles 307 de base 291 destinations exclues 297 détails d affichage 295 diagramme de séquence, UML diagramme de séquence, UML disposition 300 filtres d affichage 296 fonte 291 génération de documentation à l aide de templates 303 génération de documentation HTML 303 graphiques 292 Index 313
324 grille 291 impression 303 libellés des liens 295 lien 293 lien d association 294 masquage d éléments du diagramme 296 modélisation 291 navigateurs 306 notations UML 298 profils 305 réorganisation de membres 296 tri 306 profil UML de processus de développement de logiciel 156 profil UML de processus métier 155 profil UML en couleur 154 profil UML Together profilage UML 152 profils UML disponibles 153 projet 19 conversion 30 création 23 création à partir d un modèle MDL 25 création d un projet UML 2.0 à partir d un projet UML création depuis Together Designer 26 création depuis XMI 26 création entièrement nouvelle 27 diagramme par défaut 20 dossier 34 fichier 20, 34 modification de propriétés 28 ouverture 27 projets de modélisation 20 racine 20 ressources 29 projet depuis MDL alias de chemins 25 R raccourci 46 raccourcis clavier 287 raccourcis clavier, tableau 288 Rational Rose 25, 274 recherche 61 recherche d un élément 65 recherche dans un diagramme 61 recherche par requête 61 recherche rapide 16, 64 recherche, résultats 63 registre de patterns 168 RequisitePro, activation 283 RequisitePro, cas d utilisation 286 RequisitePro, génération de documentation 286 RequisitePro, gestion des traces 284 RequisitePro, gestion des traces dans l arborescence des exigences 279, 284 RequisitePro, hyperlien 280, 284 RequisitePro, inspecteur 285 RequisitePro, intégration 282 RequisitePro, modification des paramètres du projet 283 RequisitePro, navigation 285 RequisitePro, utilisation 282 S SDE 22 spécification d instance 134 synchronisation des patterns 169 T template paramètres 161 template de code source 170 together création d états 126 Together Designer 23 Together Developer 1, 23 TogetherDesigner 167 TogetherDeveloper 167 transition interne 97 U UML spécifications prises en charge 67, 141 UML 1.4 diagramme d activité 95 UML 2.0 connecteur de délégation 104 diagramme d activité 129 diagramme de classes 101 éléments des diagrammes de classes 102 emplacement 104 interface 103 interface, ajout de membre 104 spécification d instance 104 utilisation des anciens patterns binaires 186 V volet contenu 11 volets de navigation 8 modèle 9 projet 10 X XMI exportation 273 exportation depuis la ligne de commande 274 importation et exportation de modèles Guide de l utilisateur de Borland Together Developer 2005
Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES
Avant-propos Conçu par des pédagogues expérimentés, son originalité est d être à la fois un manuel de formation et un manuel de référence complet présentant les bonnes pratiques d utilisation. FICHES PRATIQUES
Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de
Guide de l utilisateur Faites connaissance avec la nouvelle plateforme interactive de Chenelière Éducation est fière de vous présenter sa nouvelle plateforme i+ Interactif. Conçue selon vos besoins, notre
Access 2007 FF Access FR FR Base
ACCESS Basic Albertlaan 88 Avenue Albert Brussel B-1190 Bruxelles T +32 2 340 05 70 F +32 2 340 05 75 E-mail [email protected] Website www.keyjob-training.com BTW TVA BE 0425 439 228 Access 2007
Guide de l utilisateur Mikogo Version Windows
Guide de l utilisateur Mikogo Version Windows Table des matières Création d un compte utilisateur 3 Téléchargement et installation 4 Démarrer une session 4 Joindre une session 5 Fonctionnalités 6 Liste
L espace de travail de Photoshop
L espace de travail de Photoshop 1 Au cours de cette leçon, vous apprendrez à : ouvrir les fichiers Photoshop ; sélectionner et employer certains des outils dans le panneau Outils ; définir les options
EXCEL TUTORIEL 2012/2013
EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi
Mindjet pour Windows - Guide d utilisation
Mindjet pour Windows - Guide d utilisation Version 11.2 1994-2013 Mindjet Mindjet 11 pour Windows - Guide d utilisation Table des matières Introduction... 1 Nouveautés de Mindjet pour Windows... 2 Propriétés
Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :
1 CONNEXION A LA MESSAGERIE ZIMBRA PAR LE WEBMAIL Ecran de connexion à la messagerie Rendez vous dans un premier temps sur la page correspondant à votre espace webmail : http://webmailn.%votrenomdedomaine%
PRISE EN MAIN D ILLUSTRATOR
CHAPITRE 1 PRISE EN MAIN D ILLUSTRATOR Présentation... 13 Contenu du livre... 13 Les nouveautés... 14 Composants de l interface... 15 Afficher les documents... 20 Organiser son espace de travail... 21
Comment accéder à d Internet Explorer
Comment accéder à d Pour ouvrir l application, vous n avez qu à doublecliquer sur l icône de celle-ci : ou vous pouvez encore allez le chercher par le raccourci dans la barre des tâches : Lorsque l application
Créer et partager des fichiers
Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation
Tutoriel. Votre site web en 30 minutes
Tutoriel Votre site web en 30 minutes But du tutoriel Nous allons vous présenter comment réaliser rapidement votre site avec Web Creator Pro 6 en vous basant sur l utilisation des modèles fournis avec
GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e
GUIDE DE DÉMARRAGE SitagriPro Infinite Un service FINANCEAGRI c o r p o r a t e SOMMAIRE ÉTAPE 1 : Installation... p.3 1. Introduction 2. Connexion à SitagriPro Infinite ÉTAPE 2 : Identification... p.5
EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05
EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA
Comment utiliser FileMaker Pro avec Microsoft Office
Guide d utilisation Comment utiliser FileMaker Pro avec Microsoft Office Comment utiliser FileMaker Pro et Microsoft Office page 1 Table des matières Introduction... 3 Avant de commencer... 4 Partage de
Numbers sur ipad. Atelier Formation Numbers sur ipad. [Notes extraitres de l'aide en ligne]
Numbers sur ipad [Notes extraitres de l'aide en ligne] Table des matières Atelier Formation Numbers sur ipad Introduction à Numbers 4 Créer ou ouvrir une feuille de calcul 4 Créer ou ouvrir une feuille
Guide de l utilisateur du Centre de gestion des licences en volume LICENCES EN VOLUME MICROSOFT
Guide de l utilisateur du Centre de gestion des licences en volume LICENCES EN VOLUME MICROSOFT Table des matières Présentation du Centre de gestion des licences en volume (VLSC)... 3 Inscription auprès
Contenu Microsoft Windows 8.1
Contenu Microsoft Windows 8.1 MODULE 1 AVANT-PROPOS CLAVIER SOURIS TERMINOLOGIE Modifier l apparence de l écran d accueil Modifier l avatar du compte FERMER UNE SESSION WINDOWS Redémarrer l ordinateur
Solutions en ligne Guide de l utilisateur
Solutions en ligne Guide de l utilisateur Décembre 2009 Informations générales... 1 Configuration minimale requise... 1 Connexion... 1 Page d accueil des Solutions en ligne... 2 Utilisation de la table
Les calques : techniques avancées
Les calques : techniques avancées 9 Au cours de cette leçon, vous apprendrez à : importer un calque d un autre fichier ; créer un masque d écrêtage ; créer et modifier un calque de réglage ; employer les
Your Detecting Connection. Manuel de l utilisateur. [email protected]
Your Detecting Connection Manuel de l utilisateur [email protected] 4901-0128-5 ii Table des matières Table des matières Installation... 4 Conditions d utilisation de XChange 2...4 Définir vos Préférences
Guide de l'utilisateur
Guide de l'utilisateur 1994 2010 Mindjet Mindjet MindManager Version 9 pour Windows - Guide de l'utilisateur Table des matières Introduction... 1 Mindjet en bref - Solutions de productivité visuelle et
Guide de l utilisateur de Cisco Unified Communications Manager Assistant pour Cisco Unified Communications Manager 6.0
Guide de l utilisateur de Cisco Unified Communications Manager Assistant pour Cisco Unified Communications Manager 6.0 Siège social aux États-Unis Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA
SOMMAIRE. 1. Connexion à la messagerie Zimbra 4 1.1.Pré-requis 4 1.2.Ecran de connexion à la messagerie 4
Messagerie Zimbra version 7 Prise en main Nadège HARDY-VIDAL 2 septembre 20 SOMMAIRE. Connexion à la messagerie Zimbra 4..Pré-requis 4.2.Ecran de connexion à la messagerie 4 2. Présentation générale de
Séminaire d information MIGRATION WINDOWS 7 ET OFFICE 2010
Séminaire d information MIGRATION WINDOWS 7 ET OFFICE 2010 Pourquoi migrer vers Office 2010? Pour bénéficier d une meilleure ergonomie Pour faciliter les échanges avec l extérieur Pour profiter de la puissance
Démarrer et quitter... 13
Démarrer et quitter... 13 Astuce 1 - Ouvrir, modifier, ajouter un élément dans le Registre... 14 Astuce 2 - Créer un point de restauration... 18 Astuce 3 - Rétablir un point de restauration... 21 Astuce
L ORDINATEUR FACILE D ACCÈS!
L ORDINATEUR FACILE D ACCÈS! Préparé par Éric Roussel, enseignant spécialisé en informatique / École Jacques-Ouellette / 2009 Préambule Il est important de noter qu il n y a pas d adaptation parfaite des
Numérisation. Copieur-imprimante WorkCentre C2424
Numérisation Ce chapitre contient : «Numérisation de base», page 4-2 «Installation du pilote du scanner», page 4-4 «Réglage des options de numérisation», page 4-5 «Récupération des images», page 4-11 «Gestion
Guide d administration de Java Desktop System Configuration Manager Release 1.1
Guide d administration de Java Desktop System Configuration Manager Release 1.1 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Référence : 819 0952 10 Février 2004 Copyright 2004
GUIDE Excel (version débutante) Version 2013
Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte
Créer des documents interactifs
Créer des documents interactifs 14 Au cours de cette leçon, vous apprendrez à : créer un document en ligne de base ; ajouter des boutons, des transitions de page et des hyperliens ; exporter au format
Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.
Presentation Draw F Mode d emploi Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10. Microsoft, Windows et
Découvrez Windows NetMeeting
Découvrez Windows NetMeeting Conférence Internet 2001 Université de Moncton. Tous droits réservés. Table des matières 1. Comment puis-je télécharger, installer et démarrer NetMeeting?... 3 2. Quelles sont
SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10
/0 SOMMAIRE. Lancer le logiciel. Mettre un titre dans une diapositive et du texte. Ajouter une diapositive 4. Créer une diapositive avec une image 5. Créer une diapositive avec un graphique 6. Créer une
Des outils numériques simples et conviviaux!
Des outils numériques simples et conviviaux! 1 La clé USB en bref La clé USB vous permet : n De projeter, avec ou sans tableau blanc interactif (TBI), les pages du livre numérique. n De naviguer facilement
VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET
VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET Brancher / débrancher l ordinateur de la prise Allumer / éteindre l ordinateur : pour allumer ou éteindre l ordinateur vous devez appuyer sur le bouton On/off
Manuel d utilisation du web mail Zimbra 7.1
Manuel d utilisation du web mail Zimbra 7.1 ma solution de communication intelligente Sommaire 1 Connexion à la messagerie Zimbra p.4 1.1 Prérequis p.4 1.1.1 Ecran de connexion à la messagerie p.4 2 Presentation
Création et utilisation de formulaire pdf
Création et utilisation de formulaire pdf Grâce à Adobe Acrobat, il est plus facile de créer, de remplir et d envoyer des formulaires électroniques PDF. Vous pouvez concevoir et créer un formulaire complètement
Prise en main rapide
Prise en main rapide 4 Dans cette leçon, vous découvrirez les fonctionnalités de création de page web de Dreamweaver et apprendrez à les utiliser dans l espace de travail. Vous apprendrez à : définir un
Table des matières ENVIRONNEMENT
ENVIRONNEMENT Présentation de Windows 7.................13 Démarrer Windows 7......................15 Quitter.................................15 Les fenêtres..............................16 Généralités............................17
Gestion des documents avec ALFRESCO
Gestion des documents avec ALFRESCO 1 INTRODUCTION : 2 1.1 A quoi sert ALFRESCO? 2 1.2 Comment s en servir? 2 2 Créer d un site collaboratif 3 2.1 Créer le site 3 2.2 Inviter des membres 4 3 Accéder à
HP StorageWorks All-in-One Storage Manager Manuel de l utilisateur
HP StorageWorks All-in-One Storage Manager Manuel de l utilisateur 452695052 Numéro de référence : 452695-052 Première édition : Octobre 2007 Avis Copyright 1999, 2007 Hewlett-Packard Development Company,
WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires :
WINDOWS 8 Windows 8 : généralités Windows 8 est la dernière version du système d'exploitation de Windows, sortie en octobre 2012. Si vous possédez un ordinateur récent, il y a de fortes chances que votre
The Grid 2: Manuel d utilisation
The Grid 2: Manuel d utilisation Bienvenue dans The Grid 2 Merci d avoir choisi The Grid 2! Ce guide va vous apprendre tout ce que vous devez savoir à propos de The Grid 2. Il vous guidera pas à pas pour
FAA : Fonctions Automatiques de l Application. Les fonctions automatiques incluses dans vos applications développées avec
FAA : Fonctions Automatiques de l Application Les fonctions automatiques incluses dans vos applications développées avec Fonctionnalités automatiques WinDev 12 - Version 2-03-08 Fonctionnalités automatiques
INITIATION A EXCEL 2007. Année 2009 2010
Qwertyuiopasdfghjklzxcvbnmqwertyu iopavbnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmqw
Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010
Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010 Les tutoriaux suivants vous guident dans l utilisation de Visio 2010. Certaines vidéos sont disponibles sur le site. Tutoriaux : Faites vos
Publication dans le Back Office
Site Web de l association des ingénieurs INSA de Lyon Publication dans le Back Office Note : dans ce guide, l'appellation GI signifie Groupe d'intérêt, et GR Groupe Régional laure Buisset Page 1 17/09/2008
Formation tableur niveau 1 (Excel 2013)
Formation tableur niveau 1 (Excel 2013) L objectif général de cette formation est de repérer les différents éléments de la fenêtre Excel, de réaliser et de mettre en forme un tableau simple en utilisant
Manuel de formation Spaceman 1 ère journée
Manuel de formation Spaceman 1 ère journée Table des Matières Présentation des barres d outils et des icônes...4 Présentation de l espace de travail...10 1 ère PARTIE : CONSTRUIRE LE MOBILIER...11 La gondole
2013 Pearson France Adobe Illustrator CC Adobe Press
Au cours de cette démonstration d Adobe Illustrator CC, vous découvrirez les nouvelles fonctionnalités du logiciel, comme les outils de retouche et la sélection du texte, ainsi que d autres aspects fondamentaux
SUPPORT DE COURS ACCESS 2010
Qu est-ce qu Access? Access 2010 est un outil de déploiement et de conception d application de base de données que vous pouvez utiliser pour effectuer le suivi d informations importantes. Vous pouvez conserver
FICHIERS ET DOSSIERS
La différence entre fichier et dossier FICHIERS ET DOSSIERS La première notion à acquérir est la différence entre un dossier et un fichier Un dossier est une sorte de classeur dans lequel on range divers
MEGA ITSM Accelerator. Guide de démarrage
MEGA ITSM Accelerator Guide de démarrage MEGA 2013 1ère édition (janvier 2013) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune
«Manuel Pratique» Gestion budgétaire
11/06/01 B50/v2.31/F/MP005.01 «Manuel Pratique» Gestion budgétaire Finance A l usage des utilisateurs de Sage BOB 50 Solution Sage BOB 50 2 L éditeur veille à la fiabilité des informations publiées, lesquelles
Réalisez votre propre carte de vœux Éléctronique
Les différentes possibilités d animer une carte de vœux Il existe plusieurs possibilités d animer une carte de vœux : - Une Vidéo : Vous pouvez créer une vidéo, un film simplement avec Windows Media Player.
FORMATION EXCEL 2010 Groupe LUCAS LOGICIA
FORMATION EXCEL 2010 Groupe LUCAS LOGICIA 1 TABLE DES MATIERES 1. L INTERFACE... 3 2. LES OPTIONS D AFFICHAGE... 5 3. LES MODELES... 8 4. LES CLASSEURS... 9 5. GESTION DES CELLULES... 14 6. SAISIE DES
Correction des Travaux Pratiques Organiser son espace de travail
Module 01 Correction des Travaux Pratiques Organiser son espace de travail Correction de l exercice N 1 Organiser son espace de travail Objectif de l exercice : 1. Comprendre le dock 2. Afficher les règles
Service On Line : Gestion des Incidents
Service On Line : Gestion des Incidents Guide de l utilisateur VCSTIMELESS Support Client Octobre 07 Préface Le document SoL Guide de l utilisateur explique comment utiliser l application SoL implémentée
Manuel d utilisation de la messagerie. http://zimbra.enpc.fr
Manuel d utilisation de la messagerie http://zimbra.enpc.fr ÉCOLE DES PONTS PARISTECH/ DSI JANVIER 04 SOMMAIRE. Connexion à la messagerie.... Présentation générale de l écran d accueil.... Déconnexion...
1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information
TP Numéro 2 CRÉER ET MANIPULER DES TABLEAUX (Mise en forme, insertion, suppression, tri...) 1 CRÉER UN TABLEAU 1.1 Présentation Pour organiser et présenter des données sous forme d un tableau, Word propose
Importation et exportation de contenu
Importation et exportation de contenu Bienvenue dans Corel DESIGNER, programme de dessin vectoriel complet destiné à la création de graphiques techniques. Dans ce didacticiel, vous allez importer un fichier
Administration du site
Administration du site 1 TABLE DES MATIÈRES Administration du site... 1 Accéder à la console d administration... 3 Console d administration... 4 Apparence... 4 Paramètres... 5 Allez sur le site... 5 Edition
Contenu Windows 8 MODULE 1 AVANT-PROPOS MODULE 2 INTRODUCTION À WINDOWS 8 MODULE 4 APPLICATIONS WINDOWS 8 PARTIE 1 MODULE 3 PARAMÈTRES DE WINDOWS 8
Contenu Windows 8 MODULE 1 AVANT-PROPOS CLAVIER SOURIS TERMINOLOGIE MODULE 2 INTRODUCTION À WINDOWS 8 SYSTÈME D EXPLOITATION WINDOWS 8 VERSIONS DE WINDOWS 8 ENVIRONNEMENT DE WINDOWS 8 ÉCRAN D ACCUEIL Démarrer
MANUEL TBI - INTERWRITE
MANUEL TBI - INTERWRITE TBIIW TITRE Manuel InterWrite WorkSpace INTITULE Manuel d'utilisation du logiciel InterWrite accompagnant le tableau blanc interactif CALCOMP OBJECTIF Aide mémoire sur les fonctionnalités
RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.
S Vous n aimez pas la souris Les raccourcis clavier sont là pour vous faciliter la vie! INTRODUCTION : Vous avez du mal à vous habituer à la manipulation de la souris Des solutions existent : les raccourcis
La Clé informatique. Formation Excel XP Aide-mémoire
La Clé informatique Formation Excel XP Aide-mémoire Septembre 2005 Table des matières Qu est-ce que le logiciel Microsoft Excel?... 3 Classeur... 4 Cellule... 5 Barre d outil dans Excel...6 Fonctions habituelles
MESSAGERIE BUREAU AGENDA VIRTUEL. Votre nouvelle messagerie COLLABORATIVE GUIDE PRATIQUE. Membre de
Membre de MESSAGERIE COLLABORATIVE AGENDA VIRTUEL GUIDE PRATIQUE BUREAU Votre nouvelle messagerie Suivez le guide... SOMMAIRE C est quoi? 03 Présentation de l interface 04 Confidentialité et droits accès
COURS BARDON - EXCEL 2010
COURS BARDON - EXCEL 2010 Sommaire EXCEL 2010 - INTRODUCTION 3 FONDAMENTAUX OFFICE 2010 3 EXCEL 3 1. L ECRAN 3 2. BARRE D ETAT : CALCULS ET MODES D AFFICHAGE 7 3. PARAMETRAGE DU LOGICIEL 7 Chapitre 1 GESTION
< Atelier 1 /> Démarrer une application web
MES ANNOTATIONS SONT EN ROUGE : Axel < Atelier 1 /> Démarrer une application web Microsoft France Tutorial Découverte de ASP.NET 2.0 Sommaire 1 INTRODUCTION... 3 1.1 CONTEXTE FONCTIONNEL... 3 1.2 CONTEXTE
Édu-groupe - Version 4.3
Édu-groupe - Version 4.3 Guide de l utilisateur Gestion des fichiers Société GRICS, Équipe Évaluation Août 2012 2 CONSIDÉRATIONS GÉNÉRALES A. Importante mise en garde concernant les types de fureteur Les
PRESENTATION DU LOGICIEL
Calibrage du Tableau Interactif (TBI) Mise en route du Logiciel Interwrite Workspace Ouverture du logiciel : La barre d outils apparaît sur le bureau de l ordinateur Clic Droit sur l icône einstruction
Open-Sankoré. Mise en route. Guide utilisateur Février 2013 NTICE (E. S.)
Guide utilisateur Février 2013 NTICE (E. S.) Open-Sankoré Développé à l Université de Lausanne en 2003 sous le nom d Uniboard, ce logiciel combine la simplicité des outils d enseignements traditionnels
SAP BusinessObjects Web Intelligence (WebI) BI 4
Présentation de la Business Intelligence 1. Outils de Business Intelligence 15 2. Historique des logiciels décisionnels 16 3. La suite de logiciels SAP BusinessObjects Business Intelligence Platform 18
I Pourquoi une messagerie?
I Pourquoi une messagerie? Outlook express est un logiciel de messagerie de windows. Il est installé par défaut sur un grand nombre d ordinateurs de la planète, ceux tournant sous Windows, et proposé par
PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées
PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.
Note de cours. Introduction à Excel 2007
Note de cours Introduction à Excel 2007 par Armande Pinette Cégep du Vieux Montréal Excel 2007 Page: 2 de 47 Table des matières Comment aller chercher un document sur CVMVirtuel?... 8 Souris... 8 Clavier
MEGA ITSM Accelerator. Guide de Démarrage
MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune
Formation. Module WEB 4.1. Support de cours
Formation Module WEB 4.1 Support de cours Rédacteur Date de rédaction F.CHEA 08/02/2012 Les informations contenues dans ce document pourront faire l'objet de modifications sans préavis Sauf mention contraire,
Form Designer Guide d utilisateur DOC-FD-UG-FR-01/01/12
Form Designer Guide d utilisateur DOC-FD-UG-FR-01/01/12 Les informations contenues dans le présent manuel de documentation ne sont pas contractuelles et peuvent faire l objet de modifications sans préavis.
Groupe Eyrolles, 2006, pour la présente édition, ISBN : 2-212-11782-5
Groupe Eyrolles, 2006, pour la présente édition, ISBN : 2-212-11782-5 Table des matières Chapitre A : Principes de base des scripts... 1 Élaboration de votre premier script... 1 Importance du modèle...
Création de mises en plan
Création de mises en plan Numéro de publication spse01545 Création de mises en plan Numéro de publication spse01545 Avertissement sur les droits de propriété et les droits réservés Ce logiciel et la documentation
Pages 08 Guide de l utilisateur
Pages 08 Guide de l utilisateur K Apple Inc. 2008 Apple Inc. Tous droits réservés. Ce manuel est soumis aux lois sur le droit d auteur et ne peut être copié, totalement ou partiellement, sans le consentement
Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B
Excel : Réalisation d un classeur Compta Saisir les étiquettes Renommer la première feuille Compta Laisser la première ligne vide et sur la deuxième ligne saisir les étiquettes Se placer sur A2 et saisir
Microsoft Excel 2000 Fonctions avancées
Microsoft Excel 2000 Fonctions avancées - 2 / 38 - Sommaire : I. MISE EN FORME EVOLUEE...3 A. AFFICHAGE PERSONNALISE...3 B. FUSION...3 C. RETOUR A LA LIGNE...4 D. AFFICHAGES PERSONNALISES...4 E. LES STYLES...6
Guide d utilisation 2012
Guide d utilisation 2012 Tout ce dont vous avez besoin pour bien démarrer REACOM La performance marketing SOMMAIRE Démarrez avec reagiciel Accédez à votre console d administration 4 Gestion internet Aperçu
Guide d installation UNIVERSALIS 2014
Guide d installation UNIVERSALIS 2014 (Windows) Nous vous recommandons de lire ce document avant de commencer l installation d UNIVERSALIS 2014 sur Windows. Vous y trouverez la description de la procédure
26 Centre de Sécurité et de
26 Centre de Sécurité et de Maintenance La fenêtre du Centre de sécurité et de maintenance (CSM) rassemble tous les outils nécessaires au contrôle, à l analyse, à la maintenance, à la sauvegarde et au
Tenrox. Guide d intégration Tenrox-Salesforce. Janvier 2012. 2012 Tenrox. Tous droits réservés.
Tenrox Guide d intégration Tenrox-Salesforce Janvier 2012 2012 Tenrox. Tous droits réservés. À propos de ce guide Le présent guide décrit les procédures nécessaires pour configurer les paramètres d intégration
CAPTURE DES PROFESSIONNELS
CAPTURE DES PROFESSIONNELS 2 Téléchargement 3 Installation 8 Prise en main rapide 10 Lancement Recherche 14 Gestion des fichiers 23 Compare et Sépare 24 Fichiers annexes 2/ Le menu Utilitaires 32 Internet
SolidWorks edrawings et publications
SolidWorks edrawings et publications Ce tutorial a pour but de vous expliquer ce qu est edrawings et ce que ce format de fichier peut vous rendre comme services, puis de vous expliquer les différentes
Access. Apprenez exactement ce dont vous avez besoin Progressez à votre rythme Téléchargez les exercices. Joyce Cox et Joan Lambert
Access Microsoft 2010 Maîtrisez rapidement Access 2010 avec le livre officiel de Microsoft Press Apprenez exactement ce dont vous avez besoin Progressez à votre rythme Téléchargez les exercices Joyce Cox
Création d un document PublishView
Auteur : Jean Louis Balas Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS Création d un document PublishView Ce document est réalisé avec la version 3.0.2 du logiciel TI Nspire CAS Teacher
Débuter avec Excel. Excel 2007-2010
Débuter avec Excel Excel 2007-2010 Fabienne ROUX Conseils & Formation 10/04/2010 TABLE DES MATIÈRES LE RUBAN 4 LE CLASSEUR 4 RENOMMER LES FEUILLES DU CLASSEUR 4 SUPPRIMER DES FEUILLES D UN CLASSEUR 4 AJOUTER
On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (http://www.ccdmd.qc.ca/ri/cantare)
Cantare 2 Introduction L outil logiciel Cantare s adresse à toute personne qui veut construire des leçons visant l apprentissage d une langue par l écoute de chansons ou de fichiers sonores dont les paroles
Manuel d utilisation email NETexcom
Manuel d utilisation email NETexcom Table des matières Vos emails avec NETexcom... 3 Présentation... 3 GroupWare... 3 WebMail emails sur internet... 4 Se connecter au Webmail... 4 Menu principal... 5 La
Microsoft. Access 2007. Utilisation de base. Fac Similé. Manuel de référence
Microsoft Access 2007 Utilisation de base Fac Similé Manuel de référence AVERTISSEMENT Microsoft Access 2007 est une marque déposée de la société Microsoft. Toutes les marques citées dans cet ouvrage sont
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx Guide pratique cvbnmqwertyuiopasdfghjklzxcvbnmq WINDOWS SEVEN wertyuiopasdfghjklzxcvbnmqwertyui Année
Mise en scène d un modèle dans l espace 3D
CHAPITRE 3 Mise en scène d un modèle dans l espace 3D Blender permet de construire des espaces à la manière d une scène de théâtre. Pour cela, il présente dès l ouverture tout ce dont on a besoin : un
Comment configurer Kubuntu
Comment configurer Kubuntu Configuration du réseau... 1 Configurer votre système Linux sur le réseau...1 Vérifier manuellement l adresse IP...5 Connecter un lecteur réseau distant Windows/Mac grâce au
