Stéréotypes et génération de diagrammes dans Obeo SmartEA

Chaque nouvelle version de Obeo SmartEA est l’occasion pour nous d’introduire de nouvelles fonctionnalités qui adressent des besoins remontés par les utilisateurs.

Avec la version 6.3, nous avons pris en compte deux demandes importantes exprimées par de nombreux architectes :

  • la possibilité de cadrer les propriétés dynamiques de ArchiMate, chaque propriété dynamique ne devant être applicable que sur des types d’objets bien définis,
  • la possibilité de générer automatiquement des diagrammes spécifiques, à partir de règles définissables par l’utilisateur final.

Cette nouvelle version de Obeo SmartEA introduit donc deux nouvelles fonctionnalités au module ArchiMate pour répondre à ces demandes, et même au-delà:

  • la gestion native de stéréotypes dans Obeo SmartEA, à la fois sur les éléments et les relations ArchiMate,
  • le principe de templates de diagramme permettant de générer automatiquement un grand nombre de diagrammes peuplés selon les mêmes règles.

Ces fonctionnalités facilitent les déploiements de référentiels à grande échelle en offrant aux équipes d’architectes des outils qui garantissent la conformité du langage utilisé, et permettent le traitement de masse.

Nous illustrons ces deux fonctionnalités dans la suite de ce billet en les mettant en œuvre dans le cadre de la création d’un catalogue de services applicatifs.

Un webinaire est également programmé le 10 mars prochain pour présenter en détail ces deux fonctionnalités.

Extension d’ArchiMate par stéréotypes

La notation ArchiMate est conçue pour pouvoir s’adapter à des situations et des contextes très différents. Elle répond à ce besoin à travers deux caractéristiques :

  • des types et des relations génériques, tels que le type d’objet Noeud de la couche technologique et le type de relation Association, qui permettent d’enrichir à volonté la sémantique du modèle,
  • les propriétés dynamiques qui permettent de doter les éléments d’attributs spécifiques. Chaque objet d’un référentiel peut ainsi être assorti d’une série de paires clé-valeur qui ajoutent des propriétés à un objet. Cette association est totalement libre et il est possible d’ajouter des attributs spécifiques à n’importe quel objet du modèle.

Ces caractéristiques de ArchiMate répondent au besoin important qu’ont les notations d’architecture d’entreprise de pouvoir s’adapter à un vocabulaire métier pour permettre de fédérer des acteurs autour d’un référentiel commun.

Le revers de la médaille est qu’elles rendent difficile l’utilisation d’un jeu d’attributs cohérent entre les différents éléments du modèle.

Pour répondre à cela, Obeo SmartEA 6.3 offre une nouvelle fonctionnalité de gestion de stéréotypes qui permet deux choses importantes :

  • spécialiser et affiner le sens des éléments ArchiMate. Par exemple, le concept Noeud de la couche technologique est utilisé dans notre référentiel d’exemple pour représenter à la fois des configurations logicielles et des machines virtuelles. Nous nous appuyons sur le nommage pour distinguer ces deux types d’éléments, mais l’utilisation de stéréotypes peut permettre de les distinguer sur la base d’un élément plus formel et qui est contrôlable dans les requêtes,
  • définir un vocabulaire, sous la forme d’un ensemble d’attributs prédéfinis pour chaque stéréotype. Ces attributs étant créés automatiquement sur un objet du modèle lorsqu’on lui applique ces stéréotypes.

Le paramétrage des stéréotypes se fait dans l’éditeur de prismes (qui sert à réaliser le paramétrage fonctionnel de l’outil Obeo SmartEA) :

Dans l’exemple ci-dessus, nous avons défini les stéréotypes Config et VM auxquels nous avons ajouté des attributs permettant de définir systématiquement un responsable et un domaine pour ces deux éléments, ainsi qu’une date de mise à jour pour la configuration, et une adresse IP pour la VM.

Les attributs sont créés automatiquement par Obeo SmartEA au moment de l’application d’un stéréotype, et chaque stéréotype est accompagné d’un masque de saisie :

Cette première capture illustre l’IHM permettant de gérer les stéréotypes associés à un élément.

Cette seconde image ci-dessous montre l’onglet dans la vue propriété qui donne accès au masque de saisie associé à un stéréotype.

Génération de diagrammes

La génération automatique de diagrammes passe par la définition de templates dans l’éditeur de prismes.

Ces templates sont définis par des éléments graphiques (noeuds) qui vont peupler les diagrammes générés, ainsi que par des relations à suivre pour trouver ces éléments. Un template de diagramme définit également l’élément racine auquel il s’applique, à partir duquel tous les autres éléments du diagramme sont calculés (en cascade).

Pour prendre un exemple concret, nous paramétrons un diagramme qui montre chaque application avec ses interfaces :


Ici, nous définissons le nœud racine Root Node comme étant un élément de type Application Component et le nœud Interface comme étant un élément de type Application Interface.

Les diagrammes produits automatiquement à partir de ce template seront composés, chacun, de l’application racine à partir de laquelle la génération est lancée, ainsi que de toutes les interfaces accessibles depuis cette application par une relation de composition :


Concrètement, la génération des diagrammes se fait via un menu contextuel :

Le menu filtre la liste des templates applicables en fonction du type de l’élément sélectionné et de ses stéréotypes. Un utilisateur se voit ainsi toujours proposer des templates qui sont réellement applicables à l’élément sélectionné.

Pour générer les diagrammes correspondant à un template pour l’ensemble des éléments auxquels il s’applique, le menu général offre une entrée pour chaque template permettant de déclencher cette action :

La sélection de cette action aura pour effet de générer les diagrammes Application & Interfaces pour toutes les applications du référentiel.

Application : création d’un catalogue de services applicatifs

Pour illustrer la façon dont ces deux nouvelles fonctionnalités peuvent être utilisées, nous allons prendre comme exemple concret, le besoin d’une DSI qui a opté pour une architecture orientée service et qui offre un ensemble d’API de micro-services utilisables dans divers contextes.

Afin d’être réellement réutilisables ces services doivent être répertoriés, documentés et les informations les concernant doivent être accessibles et à jour. A cette fin, il est désormais possible de créer très facilement un catalogue de ces services, à base de deux diagrammes générés automatiquement :

  • un premier diagramme agissant comme une carte capacitaire et exposant l’ensemble des services par catégorie,
  • un second diagramme qui zoome sur un service et montre son environnement (les applications qui rendent ce service, les rôles métier qui les utilisent, etc.).

Structuration du référentiel pour la modélisation du catalogue

Afin de contrôler l’affichage des éléments du catalogue, et pour gérer les catégories de services sans avoir nécessairement à organiser la hiérarchie de dossiers en fonction de ces catégories, il nous faut modéliser le catalogue.

Pour faire cela, un choix naturel consiste à utiliser des éléments de groupement ArchiMate. Il reste à déterminer comment les distinguer des autres groupements. C’est là que la combinaison des stéréotypes et de la génération de diagramme a un intérêt pour ne pas faire apparaître tous les groupements du référentiel : nous créons des stéréotypes spécifiques dans l’éditeur de prisme :


Le premier d’entre eux, Catalogue de services, permet de modéliser le catalogue à proprement parler. Le second permet de modéliser les catégories.

Nous avons assorti ces stéréotypes d’attributs permettant de gérer le cycle de vie du catalogue et ces attributs apparaissent dans les propriétés des éléments concernés :

On voit sur l’image ci-dessus le masque de saisie qui est produit automatiquement pour un stéréotype permettant à l’utilisateur de saisir ses attributs sans passer par la table des propriétés dynamiques.

L’analyse d’impacts suivante montre l’utilisation de ces groupements sur un exemple de modèle :

Production des diagrammes

Le premier diagramme que nous souhaitons générer est un diagramme classique montrant l’environnement immédiat de chaque service :

  • la fonction applicative, ou dans certains cas directement l'application, qui implémente le service,
  • les données utilisées par le service.

Nous souhaitons en plus que les données soient colorées en fonction de leur sensibilité :

  • en rouge les données de haute sensibilité,
  • en jaune celles de moyenne sensibilité,
  • en vert celles de basse sensibilité.

Le template d’un tel diagramme est le suivant :

On y décline le nœud montrant les données applicatives en fonction de la criticité, ce qui permet de les colorer comme souhaité.

Voici le résultat de la génération sur un service :

On y voit le service cible de la carte dans une couleur qui le distingue des autres éléments. L’application qui implémente le service apparaît dans la couleur ArchiMate standard et les données sont colorées suivant leur sensibilité.

Deux détails d’importance :

  • le diagramme possède un cartouche indiquant l’heure et la date de génération ainsi que l’auteur (qui est l’utilisateur qui a déclenché la génération),
  • le service enferme un lien de navigation vers un autre diagramme (en l'occurrence la carte de tous les services). La définition des templates de diagrammes permet d’insérer des liens au sein des nœuds, ainsi que vers les diagrammes générés d’après les templates correspondants, ou vers une carte spécifique définie en dur par son identifiant.

Le second diagramme que nous souhaitons générer pour le catalogue montre l’ensemble des services structurés par catégorie, avec la possibilité de naviguer vers les diagrammes correspondants à chaque service :

La particularité de ce diagramme est que les services sont montrés comme des éléments à l’intérieur des groupements. Les templates permettent de désigner l’élément graphique parent qui contient un nœud. Il est ainsi possible de construire automatiquement des cartes capacitaires.

Ici nous avons également inséré, dans le nœud de chaque service, un lien permettant de naviguer vers la carte de service correspondante.

Ainsi à l’aide de ces deux types de diagrammes, il est possible de naviguer dans l'intégralité du catalogue de service.

Mot de la fin

Nous avons choisi d’illustrer la fonctionnalité de génération de diagramme à l’aide d’un catalogue de services applicatifs mais il est évident que les possibilités de cette fonctionnalité s’étendent à l’ensemble des cas d’usage d’un référentiel d’architecture. Que l’on fasse de la cartographie des processus métier, de la gestion de risque technologique, etc., la fonctionnalité de génération de diagramme permet d’afficher les éléments dans leur contexte, de calculer des indicateurs rendus à l’aide de couleurs et de procéder à une génération exhaustive.

Ajoutons que ces fonctionnalités se contentent d’outiller le module ArchiMate pour aider à la production de diagramme. En tant que telles, elles ne réduisent absolument pas la compatibilité avec ArchiMate 3.1 et l’outil reste parfaitement interopérable avec tout autre outil compatible avec cette spécification.

Ces deux fonctionnalités de stéréotype et de génération de diagramme peuvent être testées en téléchargeant la version d’évaluation de Obeo SmartEA.

Vous pouvez également revoir le webinaire que j'ai présenté sur ce sujet:

Meet Sirius in the browser
Happy New 2022.01.0!

Related Posts