Guide de syntaxe des diagrammes ArchiMate pour PlantUML

Qu’est-ce qu’un diagramme ArchiMate ?

Un Diagramme ArchiMateest une visualisation de modélisation d’architecture d’entreprise de haut niveau qui suit les stratégies, les processus métiers, les applications logicielles et l’infrastructure physique des données à travers une organisation. Contrairement aux cartes UML traditionnelles qui s’intéressent en profondeur aux routines d’exécution logicielle, ArchiMate aide les analystes métiers, les architectes de solutions et les CTO à représenter comment les objectifs stratégiques élevés dépendent des systèmes informatiques sous-jacents.

Bien que PlantUML de base contienne des primitives natives, les mises en page d’entreprise de niveau production exigent l’extension officielle de la bibliothèque standard Archimate-PlantUML d’extension de bibliothèque standard. En utilisant des macros déclaratives et des bandes de couleur standardisées, elle vous permet de maintenir des modèles cohérents et conformes à TOGAF. Avec VPasCode, vous pouvez définir vos blocs architecturaux et vos fils relationnels entièrement en texte, laissant le moteur gérer dynamiquement les schémas de couleur des boîtes et l’alignement.

Guide de syntaxe fondamentale : éléments et constructions

Pour utiliser en toute sécurité l’extension officielle ArchiMate dans PlantUML, vous devez inclure le fichier de bibliothèque standard, implémenter correctement les macros de catégorie, gérer les blocs imbriqués et appliquer des relations structurelles explicites.

1. Initialisation de la bibliothèque standard ArchiMate

Pour débloquer les macros officielles, les palettes de couleurs et les stéréotypes structurels, votre bloc de script doit importer le fichier de bibliothèque standard directement sous votre balise de démarrage. Vous pouvez éventuellement appliquer l’un des thèmes officiels pour assurer une visibilité en contraste élevé :

@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>

2. Déclaration d’éléments à l’aide de macros de catégorie

La bibliothèque standard simplifie la création d’éléments en enveloppant les formes natives dans des macros préfixées par une catégorie. Les éléments suivent une convention stricte de nommage :Catégorie_NomElement(ID, "Libellé") Ce qui détermine le niveau structurel et injecte automatiquement le jeton de couleur approprié :

  • Stratégie et Motivation (Violet) : Motivation_Stakeholder(), Strategy_Capability()
  • Couche Métier (Jaune) : Business_Actor(), Business_Process(), Business_Service()
  • Couche Application (Bleu) : Application_Composant(), Application_Services()
  • Couche Technologie (Verte) : Technology_Nœud(), Technology_LogicielSystème()
!include <archimate/Archimate>
Motivation_Interesse(CEO, "Directeur Général")
Application_Composant(CRM, "Système CRM Salesforce")

3. Définition des limites des groupes et du regroupement structurel

Les cartes d’entreprise reposent fortement sur la contenance visuelle pour représenter la propriété ou l’isolation d’exécution. Vous pouvez créer des dossiers limites en utilisant les macros Groupe() ou Regroupement() macros, ou imbriquer des éléments les uns dans les autres en utilisant des accolades :

!include <archimate/Archimate>
Regroupement(SousSystèmeApp, "Suite de gestion des clients") {
    Application_Composant(AuthMod, "Module de jeton OAuth")
    Application_Services(UserReg, "API d'inscription utilisateur")
}

4. Mappage des relations d’entreprise normalisées

ArchiMate impose un vocabulaire strict pour les connexions. Au lieu de flèches brutes, la bibliothèque standard propose des macros de relations dédiées formatées comme suit :Rel_TypeRelation(De_ID, À_ID, "Libellé"). Pour forcer des ajustements d’orientation manuels, vous pouvez ajouter des indications directionnelles spatiales (telles que _Haut, _Bas, _Gauche, ou _Droite):

!include <archimate/Archimate>

Motivation_Stakeholder(CEO, "Directeur général")
Application_Component(CRM, "Système CRM Salesforce")

Grouping(AppSubsystem, "Suite de gestion des clients") {
    Application_Component(AuthMod, "Module de jeton OAuth")
    Application_Service(UserReg, "API d'inscription d'utilisateur")
}

' Exemples de relations structurelles et comportementales
Rel_Realization(UserReg, AuthMod, "Implémente la sécurité")
Rel_Serving_Right(CRM, CEO, "Fournit des tableaux de bord")

Meilleures pratiques pour les diagrammes d’architecture en couches

  • Isoler les couches distinctes :Organisez vos scripts de manière séquentielle du haut vers le bas (Motivation > Entreprise > Application > Technologie) afin de rendre vos schémas d’architecture intuitifs pour les parties prenantes.
  • Utilisez des identifiants de composants courts :Maintenez vos chaînes de suivi internes courtes (par exemple, utilisez AP_01 ou Srv_Auth), tout en réservant le texte descriptif, visible par le client, pour le paramètre d’étiquette entre guillemets doubles.
  • Imposer des directions explicites sur les fils traversant les couches :Les chemins de disposition peuvent changer de manière imprévisible lorsqu’ils traversent des frontières structurelles. Utilisez des macros directionnelles comme Rel_Access_Down() pour garantir que vos flux de données se déplacent de manière fluide vers le bas à travers les séparations de couche.

Exemples réels de PlantUML ArchiMate

Exemple 1 : Cartographie classique des capacités stratégiques (niveaux Motivation et Stratégie)

Ce plan fonctionnel documente la couche stratégique d’une organisation, illustrant comment les parties prenantes corporates s’alignent avec les capacités métiers et les résultats techniques réalisés.

@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>

title Carte d'alignement stratégique de l'entreprise

Motivation_Stakeholder(CFO, "Directeur financier")
Motivation_Driver(CostEfficiency, "Réduction des coûts opérationnels")
Strategy_Capability(AutomatedBilling, "Automatisation de la facturation d'entreprise")
Business_Process(InvoiceRun, "Reconciliation du journal à la fin du mois")

' Connecter les dépendances stratégiques
Rel_Association(CFO, CostEfficiency, "S'efforce d'améliorer")
Rel_Influence(AutomatedBilling, CostEfficiency, "Impact positif")
Rel_Realization(InvoiceRun, AutomatedBilling, "Satisfait la capacité")
@enduml

Analyse syntaxique : En exécutant les macros stratégiques violettes, le moteur affiche les éléments de manière claire. Les macros relationnelles claires relient le responsable humain à travers les motivations organisationnelles, alignant la stratégie d’entreprise de manière nette avec les comportements d’exécution sous-jacents.

Exemple 2 : Système d’entreprise en trois niveaux (maillage entre couches)

Ce plan avancé démontre une topologie d’architecture complète et multicouche. Il cartographie un processus métier opérationnel à travers les microservices d’application de soutien jusqu’à l’hôte d’infrastructure cloud sous-jacente.

@startuml
!include <archimate/Archimate>
!theme archimate-standard from <archimate/themes>

title Alignement de l'architecture d'application multi-niveaux

Grouping(BizLayer, "Opérations métiers") {
    Business_Actor(Agent, "Agent d'assistance client")
    Business_Process(Ticketing, "Processus de traitement des tickets d'assistance entreprise")
}

Grouping(AppLayer, "Écosystème d'application") {
    Application_Service(TicketSvc, "API d'intégration Zendesk")
    Application_Component(DataRouter, "Moteur de traitement d'événements")
}

Grouping(TechLayer, "Niveau infrastructure") {
    Technology_SystemSoftware(K8sCluster, "Cluster d'orchestration Kubernetes")
    Technology_Node(CloudVM, "Cible de calcul AWS EC2 m6i.xlarge")
}

' Établir des mappages multicouches de manière fluide en utilisant des indications directionnelles
Rel_Assignment(Agent, Ticketing, "Exécuté quotidiennement")
Rel_Serving_Down(TicketSvc, Ticketing, "Alimente l'interface web du bureau")

Rel_Composition(DataRouter, TicketSvc, "Reçoit les webhooks depuis")
Rel_Realization_Down(K8sCluster, DataRouter, "Héberge le conteneur d'application")

Rel_Composition_Down(CloudVM, K8sCluster, "Fournit l'hyperviseur central en matériel brut")
@enduml

Analyse syntaxique : Cette carte met en évidence la puissance de la structure Groupement des composants. Les éléments reçoivent automatiquement des teintes de couleur distinctes et spécifiques à la couche (jaune, bleu, vert) en fonction de leurs familles macro. Les substitutions de relations directionnelles telles que Rel_Serving_Down et Rel_Realization_Down imposent aux dépendances de s’écouler élégamment vers le bas de la grille d’entreprise.

Retour en haut