Ce tutoriel décrit l'utilisation des filtres visuels appliqués aux diagrammes (Diagram Filters), fonctionnalité disponible depuis la version 9 d’Enterprise Architect. Les avantages de cette fonctionnalité sont également illustrés par des exemples inspirés de projets récents.
Pour accéder aux filtres, la vue “Diagram Filters” doit être affichée sous EA (menu View : Diagram Filters). Il est alors possible de créer autant de filtres que cela est nécessaire. Ces filtres sont stockés dans le fichier EAP, et ils peuvent être activés sur n’importe quel diagramme affiché. Remarque: il ne semble pas possible d’exporter ces filtres vers d’autres projets EA.
Créer un nouveau filtre
Lors de la création d’un nouveau filtre, il faut saisir un nom puis choisir si l’on souhaite filtrer sur un Elément (ex : une classe, un composant, etc.) ou un Connecteur (ex : une association, une dépendance, etc.). Un même filtre ne peut pas s’appliquer à la fois sur des connecteurs et des éléments. Une liste de critères est alors disponible :
Exemple 1 : filtrer les connecteurs entre interfaces sur un diagramme de composants
Le contexte implique la modélisation de composants logiciels avec leurs interfaces fournies ou requises. Les interfaces sont alors associées à l’aide de connecteurs de dépendance pour relier les services fournis par des composants avec les consommateurs.
En raison du nombre important d’interfaces, de composants, et de connecteurs, il était nécessaire de pouvoir cacher à la demande tous les connecteurs afin de mieux visualiser les composants et interfaces. J’ai donc créé le filtre suivant pour afficher tous les connecteurs sur le diagramme sauf les dépendances : ConnectorType Not Equals Dependency.
Voici un diagramme de composants avec le filtre désactivé (vue originale) :
Et voici le même diagramme avec le filtre activé (option choisie : Hide) :
Le diagramme ci-dessus montre qu’il existe actuellement une limitation sur le filtrage entre connecteurs. En effet le lien de dépendance entre Component1 et Package1 ne devrait pas être caché. Aussi il serait utile de pouvoir définir le type de la source et de la destination pour ne sélectionner que les dépendances reliées entre deux interfaces (source type = target type = Interface). J’ai suggéré cette évolution fonctionnelle à SparxSystems.
Exemple 2 : filtrer les états et transitions sur un diagramme d’états
Le deuxième exemple implique la modélisation du cycle de vie d’une classe avec un diagramme d’états UML. Ce diagramme a été utilisé pour la réalisation de deux produits par des équipes et pour des projets différents.
Pour cet article, j’ai choisi l’exemple du cycle de vie d’un lecteur DVD.
Lors de la réalisation, les deux projets n’ont pas été testés par les mêmes utilisateurs. De ces tests ont émergés des évolutions fonctionnelles spécifiques à chaque projet, modifiant ainsi les règles métiers réalisées d’un projet à un autre.
Après livraison, mon rôle a consisté à recueillir et modéliser ces différences, ce afin de visualiser et de comprendre les écarts entre les projets dans le but d’uniformiser les cycles de vie lors d’une étape ultérieure.
Dans un 1er temps, j’ai créé une copie du diagramme d’états des spécifications, sur lequel j’ai rajouté les transitions propres à chaque projet, en indiquant via le champ Alias (dans les propriétés du connecteur) la valeur ‘ProjectA’ ou ‘ProjectB’. Remarque : il n’a pas été possible d’utiliser les ‘tagged values’, comme celles-ci ne font pas partie des critères de filtrage.
J’ai par la suite créé les filtres visuels suivants :
- Afficher les connecteurs communs (paramétrage du filtre: Alias Equal To <pas de valeur >)
- Afficher les connecteurs de projectA (paramétrage du filtre: Alias Equal To ProjectA)
- Afficher les connecteurs de projectB (paramétrage du filtre: Alias Equal To ProjectB)
Il était alors possible de produire plusieurs rendus du même diagramme par un simple clic :
- Afficher tous les connecteurs (communs et spécifiques) : aucun filtre n’est activé
- Afficher uniquement les connecteurs communs aux deux projets avec le filtre « connecteurs communs » activé, et les filtres ProjectA et ProjectB désactivés :
- Afficher le cycle de vie du projet A avec les filtres « afficher les connecteurs communs » et « afficher les connecteurs ProjectA » activés :
Une alternative à l’utilisation de filtres visuels pourrait consister à appliquer des codes couleurs sur les transitions, par exemple les transitions en noir pour les règles communes, en rouge pour les règles spécifiques au projet A, et bleu pour les règles spécifiques au projet B. Néanmoins ce fonctionnement semble nécessiter des efforts importants notamment sur des diagrammes plus complexes.