Modélisation UML & SysML

Expertise et articles Blog sur UML, SysML, et Enterprise Architect de Sparx Systems

mardi, 23 janvier 2018 22:42

Add-in eaUtils 1.14 : évolutions, améliorations et tests automatiques

Écrit par

eautils 1.14 addin pour sparx enterprise architect

Suite à la sortie d’une version portable (installation sans droit administrateur) en Novembre, une nouvelle version de l’add-in gratuit d’utilitaires pour Enterprise Architect, eaUtils 1.14 vient d'être publiée en ce début d’année :

  • Jusqu’à présent limitée à la navigation via des éléments composite, la fonction fil d’Ariane (breadcrumb trail) supporte désormais les hyperliens, paquetages (ouverture du diagramme principal), et navigation cells (alternative aux hyperliens disponible depuis EA 13).
  • La fonction de tri des éléments intègre également de nouvelles options :
    • Le tri par object id correspondant à l’ordre de création des éléments.
    • A la demande d’un utilisateur, le tri des sous-éléments, par exemple les actions placées sous une activité.

La complexité croissante d’eaUtils nécessite un minimum de tests afin de limiter le risque d’anomalies ou de régressions. Partagé pour la première fois à l’EA User Group de Londres 2017, je continue à m’appuyer sur la solution de tests automatiques dédiée aux add-ins EA, eaTests (www.eatests.com). Le code source eaUtils dédié à la gestion et l’exécution des tests automatiques qui s’appuie sur le module eaTests (DLL) intègre ces dernières évolutions.

Remarque : eaTests est un développement que je maintiens pour eaUtils. Conçu pour être utilisable par d’autres add-ins, comme cela a été démontré à l’EAUG via l'add-in Open Source hoTools, vous pouvez me contacter sur guillaume [at] umlchannel.com pour avoir plus d’informations sur l’intégration d’eaTests avec vos add-ins EA.

Cet article présente les nouvelles fonctionnalités, puis le processus de tests automatiques réalisé avant la publication d’eaUtils 1.14.

Fonctionnalités eaUtils 1.14

Générer les liens de retour dans un diagramme avec la navigation fil d’Ariane

Le diagramme suivant illustre les différents types de liens pour ouvrir un diagramme avec Enterprise Architect :

eaUtils 1.14 breacrumb main diagram

Support éléments composites

Dans le diagramme de l’activité "Activity3", eaUtils permet de générer un lien de retour vers le diagramme main (présenté ci-dessus).

La fonction eaUtils generate diagram breadcrumb trail depuis le diagramme de l’activité composite affiche la fenêtre suivante.

eaUtils 1.14 breacrumb composite elements

Après exécution, deux liens de retour vers les diagrammes permettant d’ouvrir l’activité composite sont disponibles, comme illustré ci-dessous :

eaUtils 1.14 breacrumb composite elements result

La navigation obtenue est illustrée ci-dessous :

eaUtils 1.14 breacrumb composite elements liens de retour navigation fil d'Ariane

Support packages

Le fil d’Ariane peut être généré depuis le diagramme principal de package1, pour obtenir un lien de retour sur le diagramme principal (main). Dans l’exemple suivant, l’option Package doit être sélectionnée pour générer ce lien de retour.

eaUtils 1.14 breadcrumb packages

Résultat :

eaUtils 1.14 breacrumb packages sparx enterprise architect navigation link

Support hyperlinks

L’exemple suivant permet de revenir sur le diagramme principal (main) depuis le diagramme Activity2, ouvert via un lien hypertexte (option Hyperlinks).

eaUtils 1.14 breadcrumb hyperlinks sparx ea

Remarque : un lien de retour vers le diagramme activities a également été généré car ce diagramme contient l’activité composite.

Support navigation cell

Enfin voici l’exemple avec le diagramme Activities, ouvert depuis le diagramme main via un lien ‘navigation cell’.

  • eaUtils 1.14 breacrumb navigation cells sparx ea

Tri des éléments du modèle

Tri par ordre de création (critère Object ID)

Le tri des éléments dans les modèles peut être très utile pour faciliter la gestion d’un grand nombre d’exigences, cas d’utilisations, classes, blocs, composants, etc. Aussi eaUtils propose de nombreuses options de tri par nom, alias, stéréotype ou tagged values.

J’ai récemment travaillé sur un modèle dont le contenu est issu d’une retro-ingénierie (reverse) sur le code source. Triées par ordre alphabétique, les classes obtenues devaient être triées par ordre de création ; afin d’éviter la création d’un script spécifique de tri, une simple évolution d’eaUtils a permis d’obtenir rapidement le résultat attendu. eaUtils 1.14 intègre ainsi un tri par "object id", dont l’ordre correspond à la création des éléments dans EA.

Dans l’exemple suivant, les classes ont été créées dans l’ordre indiqué par le suffixe (-1, -2, -3, etc.). La fonction de tri eaUtils par Object ID, c’est-à-dire par ordre de création est exécutée.

eaUtils 1.14 sort tri element object id sparx ea

Résultat :

eaUtils 1.14 sort tri element object id sparx ea result

eaUtils permet également de trier les éléments sur une branche du modèle (sous-paquetages) via l’option "process tree package". Dans l’exemple suivant, les paquetages Test1, Test2, Test3 et Test4 contiennent les mêmes classes.

eaUtils 1.14 sort tri element object id sparx ea tree package

Résultat :

eaUtils 1.14 sort tri element object id sparx ea result tree package

Tri des sous-éléments

Le diagramme ArchiMate suivant illustre un cas particulier de tri transmis par un utilisateur eaUtils :

  • Le champ alias des processus métiers correspond à leur ordre d’exécution (BP-1, BP-2…).
  • Le processus BP-2 a été décomposé en sous-processus, placés sous cet élément.
  • L’ensemble des processus doivent être triés par alias.

eaUtils 1.14 sort tri element alias sparx ea sous elements archimate

L’option « sort sub elements » a été ajoutée pour permettre le tri des processus (BP-1, BP-2, BP-3, BP-4) et sous-processus (BP2-1, BP2-2…).

Résultat (les alias ont été ajoutés à titre d’information) :

eaUtils 1.14 sort tri element alias sparx ea sous elements archimate result

Tests automatiques de l’add-in eaUtils 1.14 avec eaTests

eaUtils intègre la solution eaTests pour gérer ses tests automatiques. Cette solution permet de définir, maintenir et jouer les scénarios de tests pour eaUtils dans un projet EA dont la structure est illustrée ci-dessous :

  • Data Set : jeux de données sur lesquels les fonctions eaUtils vont être exécutées lors des tests automatiques.
  • Test Steps : étapes de tests.
  • Test Runs : historique des lancements de tests.

eaUtils 1.14 automated tests addin enterprise architect sparx model

Le diagramme suivant présente les étapes de tests définies pour les évolutions d’eaUtils 1.14 :

eaUtils 1.14 automated tests addin enterprise architect sparx model

Afin d’alimenter le module de tests automatiques avec la définition de ces étapes, les fonctions eaUtils à tester doivent être jouées une fois avec les paramètres associés. Exemple pour le tri des sous-éléments (étape 12) :

  • Prérequis : le module eaTests doit être activé (mode développeur eaUtils).

eaUtils 1.14 automated tests addin enterprise architect

  • Le lien "trace" entre l’élément testcase et le jeu de données est défini.

eaUtils 1.14 automated tests addin enterprise architect step

  • Les paramètres eaUtils sont mis à jour (activation de l’option tri des sous-éléments) :

eaUtils 1.14 automated tests addin enterprise architect settings

  • La fonction de tri eaUtils est exécutée sur le paquetage (jeu de données).

eaUtils 1.14 automated tests addin enterprise architect generate

  • Les résultats obtenus sont vérifiés par rapport aux résultats attendus (post conditions) :

eaUtils 1.14 automated tests addin enterprise architect sort postconditions

  • La définition de l’étape de test a été générée au format XML dans la vue System Output EA :

eaUtils 1.14 automated tests addin enterprise architect output

Ces informations sont copiées dans le fichier XML réunissant l’ensemble des étapes de tests automatiques à exécuter sur l’add-in EA.

eaUtils 1.14 automated tests addin enterprise architect xml content

Les tests automatiques peuvent être joués pour vérifier le bon fonctionnement des nouvelles fonctionnalités, tout en s’assurant qu’il n'y a pas de régression.

  • Les tests automatiques sont lancés à partir du menu eaUtils > Run Tests.

eaUtils 1.14 automated tests addin run eatests

  • Le module eaTests lance une phase de tests automatiques :
    • Le contenu du fichier XML (définition des tests) est chargé.
    • Les paramètres de l’add-in sont mis à jour.
    • La méthode de l’add-on est exécutée sur le jeu de données associé (paquetage).
    • Les résultats obtenus sont comparés avec les post conditions.
    • Ces informations sont tracées dans un diagramme de séquence.
  • Les résultats sont enregistrés sous la branche Test Runs et un résumé affiché :

eaUtils 1.14 automated tests addin eatests successful

  • Le diagramme de séquence suivant correspond à l’exécution de l’étape 12 :

eaUtils 1.14 automated tests addin eatests results sequence diagram

eaUtils est disponible en téléchargement depuis www.eautils.com/download.

En complément des informations sur le site www.eaTests.com, vous pouvez consulter le contenu de ma présentation à l’EAUG Londres 2017 ici.