Modélisation de système
Comment assurer la traçabilité des exigences avec les user stories, les use cases, les processus métier, la cinématique et les maquettes d'écrans ? Une solution dans notre test Obeo ISD S.1 Ep.3
L’outil open source et low code d’architecture logicielle Obeo Information System Designer (ISD) et sa méthode Graal, un fork agile d’UML, intègre les User Stories et les aspects statiques et dynamiques des IHM, le tout relier à un gestionnaire d'exigences.
Les matrices de traçabilité garantiront que les parties prenantes auront une compréhension complète du produit en cours de développement et que toutes les exigences seront satisfaites.
Exemple de la cartographie de la cinématique des écrans,
comprenant leur aspect et leur composition, ainsi que les actions assurant la navigation.
Une vue permet d'avoir la liste des exigences prises en compte par le workflow.
Le NoUML est apparu parce que les formalismes normalisés de modélisation comme UML n’ont jamais pris en compte les méthodes agiles, c’est ce que nous déplorions dans nos 2 précédents articles :
- NoSQL, NoCode et NoUML ? Faut-il encore modéliser avec UML ? Défauts et qualités de cette norme de l’OMG vieillissante
- Que faut-il garder d'UML ? Quelles seraient les évolutions nécessaires ? Va-t-on vers un reboot d'UML ? Quelles alternatives à UML ?
La méthode Graal d’Obeo a réparé cette erreur en intégrant, entre autres, les User Stories des méthodes agiles.
Un peu d’histoire sur les User Stories
En 1999, Kent Beck publie en premier le principe des User Stories (US) ou récits utilisateurs dans le cadre de la méthode « eXtreme Programming (XP) ».
Les US sont largement adoptées par les méthodes agiles comme Scrum, en raison du formalisme minimaliste et de l’amélioration de la communication MOA/MOE. Elles sont en parfaite adéquation avec des itérations courtes, car une US doit pouvoir être implémentée en une itération contrairement aux cas d'utilisation UML.
Une US illustre un besoin fonctionnel exprimé par la typologie d’utilisateurs. Cela permet d’assurer que l’on délivre bien pour eux de la valeur. Les avantages sont de permettre :
- de coller au maximum au besoin et à la vision de l’utilisateur (car elles sont exprimées de manière simple, en langage courant) ;
- d’engendrer un gain de temps considérable pour les équipes de développement dans leur compréhension de la fonctionnalité à développer (toujours grâce à sa forme synthétique) ;
- d’aligner la vision, et de confirmer la compréhension du métier, du Product Owner, des développeurs, du Scrum Master, des testeurs et de toute autre partie prenante, en les rassemblant autour d’un langage commun.
Résumé des épisodes précédents
ISD de l’éditeur français Obeo est un environnement open source, low code et NoUML pour l’analyse, la conception et la génération de code d’applications, s’interfaçant avec l’outil d’Architecture d’Entreprise SmartEA du même éditeur.
Pour l'aspect dynamique du système, la démarche permet de modéliser les rôles des acteurs, puis les cas d'utilisation. Leur granularité étant toujours problématique, l'utilisateur sera aidé en ayant la possibilité de les décomposer suivant 2 niveaux de détails :
- les scénarios (Tasks Graph),
- les étapes (Actions Plan) d’un scénario.
Pour ceux qui le désirent, il est possible d'ajouter des diagrammes de séquence et d'états.
L'aspect statique se compose de diagrammes semblables à ceux d'UML, mais expurgés des éléments rarement utilisés :
- les domaines métier (Namespaces), équivalent au diagramme de package UML avec la complexité des relations en moins,
- les entités métier et leurs relations (Domain Classes), correspondant à un diagramme de classes UML pragmatique.
Si vous avez manqué le début, voici les 2 épisodes précédents :
- Alimenter le référentiel d’Architecture d’Entreprise pour la couche Application de TOGAF avec l’outil Information System Designer (ISD) d’Obeo - Modélisation de l’analyse des besoins S.1 Ep.1
- Méthode Graal, le NoUML d’Obeo, parfaite fusion entre un UML phagocyté et un BPMN édulcoré. S.1 Ep.2
Conception d’une User Story
à partir d'un Tasks Graph ou d’un Actions Plan
Dans notre article cité au début « Que faut-il garder d'UML... », nous proposions que les cas d'utilisation UML référencent plusieurs User Stories. C’est ce que propose la méthode Graal d’ISD. Une fois une User Story créée (voir en annexe la procédure), vous pouvez lui rattacher (lien de composition UML dans le métamodèle de la méthode Graal ?) des tâches d’un Tasks Graph ou des actions d’un Actions Plan, appartenant à un Use Case. Le principe fondamental de l’agilité consistant à simplifier et à faciliter l'analyse d'impacts est bien respecté.
Un ensemble d'actions de la tâche « Rechercher un assuré » sont liées à la User Story :
« US02 : En tant que Gestionnaire Prévoyance, je veux rechercher un assuré suivant des critères,
afin d'avoir l'historique des survenances et sinistres associés,
pour prendre la décision d'ouvrir un nouveau dossier de prestation. »
Gestion des exigences
Plus besoin de SysML, ISD est un studio « all inclusive »
A l’identique de ce qui précède, UML ne possède aucun diagramme pour modéliser les exigences. Si l’on veut rester dans la nébuleuse des normes de l’OMG, il faudra se tourner vers une autre notation, SysML.
Voir nos articles :
- SysML : le diagramme d'exigence (requirement diagram)
- SysML : exemples de diagramme d'exigence tout droit sortie de la norme de l'OMG
ISD possède un outillage de gestion des exigences, offrant un ensemble de fonctionnalités permettant d’intégrer la gestion d’exigences d’un projet dans le processus de modélisation. Il est composé d’un éditeur permettant de saisir ses exigences et d’une vue gérant le lien entre les modèles et les exigences du projet (voir les procédures en annexe).
Etude d'impacts : merci aux matrices de traçabilité de la méthode Graal d'ISD
La méthode Graal possède des matrices de traçabilité, offrant une vue consolidée, pour les tâches, les use case et une dernière rassemblant tous les éléments concernés par des exigences, comme les écrans et les workflows (voir les procédures en annexe).
Tout changement sur les 3 exigences impacterait la tâche « Rechercher assuré »,
ainsi que les actions qui la composent, représentées par le diagramme de plan d'actions.
Liste des exigences réalisées par un use case.
Les diagrammes de séquence et d’états UML ont été simplifiés dans la méthode Graal et l'on applaudit
Les principaux éléments standards d’un diagramme de séquence UML sont présents,
sauf ceux plus exotiques (voir en annexe la procédure de création).
On retrouve un diagramme d’états UML pragmatique ;
Obeo a élagué tous les concepts complexes des machines à états de la norme
et inutiles en informatique de gestion (voir en annexe la procédure de création).
Faites votre film en dessinant
l'enchaînement de vos écrans
Vous pouvez concrétiser vos US en modélisant la cinématique et les maquettes des écrans. ISD possède un outil de conception d'écrans d’application nommé Cinematic Designer, permettant de décrire la structure d’une IHM (modélisation statique) et son comportement (modélisation dynamique).
Cinematic Designer apporte le point de vue Cinematic Views qui permet de :
- Modéliser des vues et leurs éléments comme les composants graphiques d’une IHM,
- Modéliser la structure de la disposition graphique sous une structure de type « Grid Layout »,
- Modéliser les états et le flot entre les états de l’application,
- Organiser les Flows et les View Elements en packages.
Le directeur de la photo : Vue Statique ou View Container (maquette écran ou mockup)
Cette représentation apporte la modélisation de la disposition graphique des composants de l’IHM. Elle permet de créer et positionner les View Elements dans les View Containers.
Maquette d’écran représentant la User Story de recherche d'assuré par le gestionnaire prévoyance,
décrite précédemment (voir en annexe la procédure de création).
Le metteur en scène : Vue Dynamique ou Flow
Ce diagramme permet d'afficher :
- Les états du Flow (InitialState, FinalState, ViewState, ActionState, DecisionState, AsyncEventState, SubflowState),
- Les événements transitoires éventuellement conditionnés (guard entre crochets) qui font transiter d'un écran ou d'un état à un autre,
- Un conteneur flottant nommé FlowEvents présente les FlowEvents génériques du flow de portée globale, qui représentent des événements logiques ou métier,
- Les ViewContainers rassemblant les éléments d'un écran (boutons, tableaux, zones de formulaires...) référencés par les ViewState affichés.
Cinématique des écrans de la User Story de recherche d'assuré par le gestionnaire prévoyance décrite précédemment, avec les événements assurant la navigation. Le picto « clé » indique que l'élément est lié à des exigences. En double cliquant sur l'autre picto, on accède à la maquette d'écran.
Dommage qu'on ne puisse pas avoir une fonctionnalité identique avec les User Stories !
Le producteur : Vue Package
Ce diagramme permet de modéliser les Packages, Flows et ViewContainers.
Représentation du package contenant le ViewContainer et le Flow associé, abordés précédemment.
Le directeur du casting : Vue de la structure de l’interface utilisateur (UI Structure)
La représentation UI Structure fournit une vue d’ensemble complète de la structure des écrans de l’application modélisée, sous forme arborescente.
Vue hiérarchisée de la structure de l'écran « Synthèse des événements initiaux » de notre User Story.
Le réalisateur d'effets spéciaux : Création de toolkits
Un des objectifs du métamodèle Cinématique est de permettre de créer facilement de nouveaux toolkits. La création d’un toolkit consiste en la création de widgets, et, sous chaque widget, la création des types d'événements qu’il peut déclencher.
Cela est rendu possible par l’intégration du framework open source Sirius, permettant de créer ses propres outils de modélisation, en association avec le métamodèle Eclipse Ecore et l'éditeur EMF (Eclipse Modeling framework).
Si le sujet vous intéresse, consultez les 4 articles que nous avions consacrés à la réalisation d'un outil de modélisation DMN (Decision Model Notation) :
- DMN ( Decision Model and Notation ) : comment concevoir son propre outil de modélisation DMN ? [1/4]
- Le métamodèle Eclipse Ecore DMN ( Decision Model and Notation ) : comment concevoir son propre outil de modélisation DMN ? [2/4]
- Tutorial Obeo Designer Community : comment concevoir son propre outil de modélisation DMN ? [3/4]
- Améliorations et notions avancées Eclipse Sirius, suite et fin de notre saga : comment concevoir son propre outil de modélisation DMN ? [4/4]
Les répétitions : le calque « Example » pour la valorisation des écrans
Une fonctionnalité intéressante est la valorisation des écrans avec des exemples permettant de concrétiser du storytelling, technique hyper efficace de communication entre les experts métier et la MOE.
Le calque Example modifie le label des View Elements, permettant de visualiser l’IHM
avec des données d’exemple. Le label est alors calculé tel que défini dans le toolkit.
Critique du film : dommage qu'on ne puisse pas lier des user stories à des exigences !
Si la fonctionnalité Flow représente la cartographie pour la navigation et les événements de transition d'un écran à un autre, il nous a été impossible d'associer des user stories, bien que le logiciel le laissait penser.
Par exemple en sélectionnant un élément « View », en cliquant sur l'onglet « User Stories » puis sur le picto +, une boîte de dialogue apparaît permettant de saisir une nouvelle US, une fois complétée et validée, mais l'onglet reste désespérément vide !
Générer la documentation
Finies les SFD (Spécifications Fonctionnelles Détaillées) et STD (Spécifications Techniques Détaillées), ISD va vous faciliter la vie (voir en annexe la procédure de génération de documentation).
Comme dans tout générateur de documentation, il faut un modèle variabilisé.
Conclusion
Avec ISD, les acteurs, qu’ils soient business analyst, product owner, concepteur, développeur, testeur... embarquent dans un train et se laissent conduire. Chacun apporte sa pierre à l’édifice. Le product owner conçoit les user stories, le testeur crée les exigences et les cas de tests à partir des cas d'utilisation, le concepteur modélise les interactions utilisateur et le business analyst les cas d'utilisation, le modèle conceptuel de données et les transitions d’états des entités métier.
Comme le montre notre étude de cas, avec les matrices de traçabilité des exigences avec les use case, les tâches, la cinématique et les maquettes des écrans, les liens sont bien tissés entre les besoins utilisateurs et les spécifications de l’application.
Lors de changements, le contrôle de cohérence entre tous ces éléments et les études d’impact en seront grandement facilités, principe cher aux méthodes agiles.
En couplant ISD avec l’outil SmartEA, vous obtiendrez des cartographies allant jusqu’à une granularité très fine et augmenterez le degré d’agilité de votre architecture d’entreprise.
Jusqu’ici, nous avons vu des équivalents de cartographie métier, fonctionnelle, applicative avec la cinématique et les représentations des écrans : il restera l’architecture technique, abordée dans notre prochain article. Nous verrons qu'ISD a plus d’un tour dans son sac, puisqu’il permet de modéliser une architecture SOA, comme une architecture micro-services.
Merci pour vos commentaires qui seront les bienvenus ainsi que vos retours d'expérience heureux ou malheureux qui pourront profiter à nos lecteurs.
|
Rhona Maxwel @rhona_helena |
« Quand les hommes ne peuvent changer les choses, ils changent les mots. »
Jean Jaurès
Annexe 1 : comment procéder ?
Gérer les User Stories (US)
Pour Graal, une user story permet de décrire un enchaînement de tâches
et un parcours dans un plan d'actions.
La procédure de création est la suivante :
Menu Window > Show View > Other… > Information System Designer > User stories
Dès qu’un élément Graal est sélectionné sur un diagramme ou dans la vue Model Explorer, les User Stories du système sont affichées dans la vue permettant de gérer le cycle de vie d’une US.
Pour créer un parcours de tâches à effectuer représentant la US :
- faire une sélection multiple soit dans un Tasks Graph ou dans un Actions Plan,
- cliquer sur le pictogramme +,
- indiquer un nom et une description de la US,
- cocher la case de la US nouvellement créée.
Association d'un workflow d'actions à une User Story.
Procédure d'association d'une tâche à une User Story :
- Sélectionner la ou les tâche(s) « Créer un dossier de prestation prévoyance »
dans le Tasks Graph,
- Cocher la US « Ouvrir un nouveau dossier de prestation ».
Une fois l'association activée, pour visualiser le parcours, double cliquer sur la US ou sélectionner le picto ampoule. Toutes les actions composant la tâche font automatiquement partie de la US. Remarque : Rechercher assuré n'est pas sélectionné, puisque c'est la tâche suivante dans le Tasks Graph.
Le fait d’avoir sélectionné une tâche dans un Tasks Graph (partie supérieure de l'illustration)
sélectionne automatiquement tous ses composants dans le diagramme Actions Plan
(partie inférieure de l'illustration) sauf l'élément représentant la tâche suivante dans le Tasks Graph.
Pour dissocier, sélectionner les éléments affichés par le picto ampoule et décocher la case correspondant à la User story.
Gérer les exigences (requirements)
Classer hiérarchiquement vos exigences en catégorie
- Menu File > New > Other… > Requirement Model > sélectionner votre projet,
un Requirements Table est créé. Modifier son nom dans la vue Properties.
- Dans l’onglet Requirements table, clic droit sur la première ligne > Create Category
ou dans la vue Properties, cliquer sur le +
Une fois une catégorie créée, de la même manière vous pouvez créer des sous-catégories.
Exemple d'organisation arborescente de catégories d'exigences
Gérer le référentiel d'exigences
Vous pouvez créer vos exigences dans un premier temps dans le modèle Requirements table :
Clic droit sur une catégorie ou sous-catégorie > Create Requirement ou +
dans la vue Properties > dans la vue Properties,
renseigner les différents champs : Id ; Name ; Version ; Status ; Statement.
ISD offre la possibilité de créer un référentiel d'exigences organisé en une arborescence de catégories. On retrouve le fonctionnement des outils de gestion d'exigences
où chacune est documentée avec un ensemble exhaustif de propriétés.
Le menu contextuel sur une ligne du tableau permet la gestion (créer, modifier, supprimer, copier, déplacer...) du référentiel d'exigences.
Associer des exigences à un use case, une tâche ou à une action
- Une fois un use case décomposé en Tasks Graph et chaque tâche décomposée en Actions Plan, vous pouvez sélectionner un de ces éléments pour lui associer des exigences.
- Activer la vue Linked Requirements : Menu Window > Show View > Other… > Linked Requirements.
- Sélectionner un Tasks Graph > cliquer sur une tâche > cliquer sur Link Requirements with Selection de la vue Linked Requirements et sélectionner une ou plusieurs exigences.
- Une clé jaune apparaît alors dans l’élément de modèle, signifiant que des exigences lui sont liées.
La procédure serait identique pour un use case ou une action d'un diagramme Actions Plan.
Association de 2 exigences à la tâche « Créer une survenance »
Créer une exigence liée à un élément de modèle, use case, tâche ou action
En sélectionnant un élément (use case, tâche, action), vous pouvez créer et associer
une exigence, en cliquant sur le + de la vue Linked Requirements.
Création d'une nouvelle exigence liée à la tâche « Rechercher un assuré »
Sélection de la catégorie de la nouvelle exigence
Détacher une exigence liée à un élément de modèle, use case, tâche ou action
Sélectionner l’élément de modèle avec une clé > dans la vue Linked Requirements,
sélectionner l’exigence à détacher > cliquer sur la croix rouge.
Créer des matrices de traçabilité pour les exigences
Sélectionner le point de vue d’exigences > clic droit > New Representation >
sélectionner Task Traceability Matrix ou Use Case Traceability Matrix.
Créer des diagrammes de séquence et d’états UML
Sur la méthode Graal, sélectionner le point de vue System > clic droit > New interaction >
new Sequence Diagram > nommer votre diagramme.
Sur la méthode Graal, sélectionner le point de vue System > clic droit > New state Machine > new State Machine Diagram > nommer votre diagramme.
La couche front-end (IHM) :
conception de maquettes et cinématique d'écrans
Créer un modèle d'IHM (Cinematic Model)
File > New > Other > IS Designer > Cinematic Model > Choisir un projet >
Saisir un nom de modèle.
- Pour le Toolkit, on a le choix entre Web ou SWT (Standard Widget Toolkit de la fondation Eclipse). SWT est une boîte à outils de widget open source pour Java, conçue pour fournir un accès efficace et portable aux fonctionnalités de l'interface utilisateur des systèmes d'exploitation sur lesquels il est implémenté.
- Pour Main container, on a le choix entre Page, Panel et Table.
Le modeleur Cinematic va créer un écran (View Container), une cartographie des transitions d'écrans (Flow), un diagramme de package pour organiser les éléments de l'IHM
et une vue hiérarchisée des widgets graphiques composant les écrans.
Fonctionnalités du modeleur Cinematic
Le modeleur Cinematic apporte les représentations suivantes :
- View Container Mockup : diagramme permettant de modéliser l'aspect statique avec la structure et l’apparence des IHM.
- Flow Diagram : diagramme permettant de modéliser la dynamique de l’IHM. Le Flow Diagram permet le dialogue entre l’analyste ou le product owner dans un contexte Scrum et le concepteur/développeur schématisant les vues.
Par contre, ce diagramme de flow ne permet pas de définir le contenu des écrans, ce qui se fait sur un diagramme de View Container Mockup. - Package Diagram : diagramme permettant de modéliser les Packages, Flows et ViewContainers.
- UI Structure : représentation arborescente permettant de modéliser la description statique de l’IHM (écrans, panels, widgets...).
- Layout Diagram : diagramme de consultation des composants et composites d’un layout.
View Container Mockup : dessiner une ébauche d'écran illustrant une User Story
L’objectif n’est pas de concevoir un écran WYSIWYG (What You See Is What You Get), mais de définir une maquette servant par exemple de base de réflexion pour un atelier d’un groupe de travail.
Menu contextuel sur View Container WenPage > New Representation > View Container Mockup
Une fois que l’on a assimilé les concepts, et pour ceux qui connaissent la plateforme Eclipse, le produit est relativement convivial.
ISD crée des images JPEG pour chaque version de la maquette.
Maquette (Mockup) de l'écran illustrant la User Story : « US02 : En tant que Gestionnaire Prévoyance, je veux rechercher un assuré suivant des critères afin d'avoir l'historique des survenances et sinistres associés pour prendre la décision d'ouvrir un nouveau dossier de prestation ».
Flow Diagram : cinématique de navigation, cartographie des événements système
et utilisateurs pour les transitions d'écrans.
Les états (States) View peuvent être représentés par leur Mockup (Maquette) et être lié avec leur View Container. Les transitions peuvent être des actions système ou utilisateur, comme cliquer sur un bouton.
Associer des écrans et des éléments d'IHM avec des exigences
Dans Cinematic > View Container > View Container Mockup > Sélectionner un composant (bouton, etc.) > dans la vue Linked Requirements cliquer sur le bouton jaune Link Requirements with selection > dans la fenêtre sélectionner un référentiel, puis une catégorie et enfin une ou plusieurs exigences.
Traçabilité d'une exigence avec les éléments d'IHM (Requirements Traceability Matrix)
Au chapitre « Classer hiérarchiquement vos exigences en catégorie », nous avions vu comment créer un Requirement Model dans lequel il y avait 3 matrices de traçabilité :
- Requirements Task Traceability Matrix,
- Requirements Traceability Matrix,
- Requirements Use Case Traceability Matrix.
Les Requirements Task Traceability Matrix et Requirements Use Case Traceability Matrix ont été abordées. Reste la matrice Requirements Traceability Matrix. Cette matrice est complète, en indiquant pour une exigence tous les éléments de l'application qui lui sont liés. En plus des use cases, tâches et actions, elle indique les éléments d'IHM.
Requirements Traceability Matrix permet de voir les éléments d'IHM en lien avec une exigence.
Ici, le bouton « Rechercher, » la cinématique des écrans « Flow »
et l'écran « Synthèse des événements d'un assuré » sont liés à l'exigence Req01.
Générer une documentation
- Sélectionner le projet dans Model Explorer > Menu File > New > Other… > M2Doc > New Generation > sélectionner un template, pour le test nous avons pris ceux de l’exemple E-BookStore (voir paragraphe suivant). Pour cela, il suffit de cliquer dans Browse workspace et de choisir un template. Plusieurs templates sont proposés :
- E-BookStore_Cinematic_template.docx pour les écrans
- E-BookStore_DataBase_template.docx pour les bases de données
- E-BookStore_GraalSystemAndRequirements_template.docx pour la méthode de spécifications fonctionnelles Graal et les exigences.
- Sélectionner le fichier MyGeneration.genconf qui est apparu dans le projet > clic droit > Generate documentation.
- Un document MyGeneration.generated.docx Word est généré.
Des modèles prêts à l'emploi sont proposés dans l'exemple complet E-BookStore fourni avec ISD.
Une étude de cas pédagogique couvrant l'ensemble des étapes d'un projet de réalisation d'une application avec ISD, allant de l'analyse à la génération de code
File > New > Example > Information System > E Book Store
Exemple complet d’un site de e-commerce d’une librairie en ligne,
illustrant toutes les couches applicatives de démonstration
Annexe 2 : liste des liens présents dans cet article
Les articles précédents consacrés à Obeo ISD :
- Alimenter le référentiel d’Architecture d’Entreprise pour la couche Application de TOGAF avec l’outil Information System Designer (ISD) d’Obeo - Modélisation de l’analyse des besoins S.1 Ep.1
- Méthode Graal, le NoUML d’Obeo, parfaite fusion entre un UML phagocyté et un BPMN édulcoré. S.1 Ep.2
Le site de référence :
Obeo Information System Designer (ISD)
Nos articles sur NoUML :
- NoSQL, NoCode et NoUML ? Faut-il encore modéliser avec UML ? Défauts et qualités de cette norme de l’OMG vieillissante
- Que faut-il garder d'UML ? Quelles seraient les évolutions nécessaires ? Va-t-on vers un reboot d'UML ? Quelles alternatives à UML ?
Le site de Kent Beck, l'inventeur des users stories :
Diagramme d'exigences normalisé avec SysML de l'OMG :
- SysML : le diagramme d'exigence (requirement diagram)
- SysML : exemples de diagramme d'exigence tout droit sortie de la norme de l'OMG)
Si vous voulez savoir comment est conçu ISD :
- DMN ( Decision Model and Notation ) : comment concevoir son propre outil de modélisation DMN ? [1/4]
- Le métamodèle Eclipse Ecore DMN ( Decision Model and Notation ) : comment concevoir son propre outil de modélisation DMN ? [2/4]
- Tutorial Obeo Designer Community : comment concevoir son propre outil de modélisation DMN ? [3/4]
- Améliorations et notions avancées Eclipse Sirius, suite et fin de notre saga : comment concevoir son propre outil de modélisation DMN ? [4/4]
Annexe 3 : pour aller plus loin
Méthode Graal, le NoUML d’Obeo, parfaite fusion entre un UML phagocyté et un BPMN édulcoré. S.1 Ep.2
Obeo a bien compris qu'en matière de développement d’applications, tout ce qui ne produit pas une fonctionnalité utilisable - dont la conduite de projet ou la modélisation - s’avère une activité parasite, aussi utile semble-t-elle être sur le moment.
N’en déplaise aux markéteurs d’Obeo, le Graal n’est peut-être pas complètement atteint, mais on s’y rapproche.
Notre exemple fictif d'une Institution de Prévoyance (ABIP) projetant de refondre son SI.
Recette pour réussir un outil d'architecture applicative
Débarrassez UML et BPMN de tout ce qui n’a jamais été utilisé, ajoutez un soupçon de diagramme d’activité nommé graphe de tâches, incorporez-y un doigt de diagramme de collaboration BPMN rebaptisé plan d’actions, mélangez avec un zeste de cas d’utilisation avec leurs acteurs. Laissez reposer, préparez le diagramme de classes participantes qui seront packagées. Il est possible, selon les goûts, de l'accompagner de User Stories. Pour finir, agrémentez le tout d’exigences, sans oublier de les lier aux tâches de votre graphe.
Il était une fois la refonte d'un SI...
Regroupement fusionnel
Pour donner un peu de consistance et un soupçon de réalisme à notre fil conducteur, nous avons choisi deux Institutions de Prévoyance AIP et BIP, qui viennent de fusionner et deviennent ABIP. L’architecte d’entreprise, en étroite collaboration avec la DG, a défini la vision de transformation qui soutient les objectifs stratégiques de ABIP. Malgré l’omniprésence d’une infrastructure mainframe IBM antédiluvienne, celle-ci sera conservée en partie, comme le font la plupart des grandes entreprises dans les domaines bancaire et assurantiel : les batches COBOL/CICS pour l’édition des relevés ou le calcul des rentes, sont non seulement maintenus, mais évoluent et sont intégrés dans une architecture orientée services (SOA). Comme dans “2001 : l'Odyssée de l'Espace", un monolithe est omniprésent sous la forme de l'application de prestations réalisée en technologies des années 90.
Une roadmap de migration en méthode agile, basée sur une architecture micro-services (PrevIT), a été validée. Toutes les technologies, outils, framework devront être basés sur l’écosystème Java qui s'interface nativement avec l'environnement mainframe IBM (MVS). La plateforme open source Java Eclipse a été choisie comme outil commun à toutes les parties prenantes. Développé sur ce socle, l’outil d’architecture d’entreprise Obeo SmartEA, remplacera MEGA, dont les coûts de licence obèrent le budget de la DSI. Pour les experts métier, les business analysts, les architectes logiciel et les concepteurs/développeurs, l’outil open source Information System designer (ISD) d'Obeo leur permettra de mieux communiquer. Etant donné les contrats existants avec IBM pour la maintenance des applications sur z/OS, il a été décidé la mise en œuvre d'IBM Cloud Pak for Integration et IBM® Robotic Process Automation, intégrant le moteur de règles métier IBM® Operational Decision Manager.
Le choix de l'ADM de TOGAF
Pour parvenir à ces objectifs, c’est-à-dire la transformation de l’architecture d’entreprise pour avoir une vision globale des aspects stratégiques, métier, organisationnels, et pour maîtriser l’alignement entre le métier et la technique, clé d’un Système d’Information agile, ABIP a choisi le cadre TOGAF.
Dans un contexte de fusion et de refonte du SI, où l’on doit concevoir des solutions dans un laps de temps réduit, après la phase A Vision de l'Architecture, la 1ère itération de définition de l’ADM (Architecture Development Method) se composant des phases : B Métier, C Système d’Information et D Technique, se concentrera sur l’architecture cible et ensuite, dans la 2ème itération, insistera sur l’architecture existante.
Architecture Micro-Services prescrite par TOGAF
La mise en œuvre de l’architecture micro-services (MSA) suivra les préconisations du guide TOGAF :
et la méthode de conception DDD (Domain Driven Design), voir nos articles :
- Les couches de l'Architecture Microservices et la méthode de conception DDD (Domain Driven Design)
- Architecture Hexagonale, exemple de mise en pratique de la méthode DDD Domain Driven Design
Le subtil mélange des concepts d'acteurs,
de Cas d'Utilisation (CU), de tâches et d'actions,
pour arriver à la panacée de l'analyse des besoins
UML n’est pas une méthode, Obeo a donc créé la sienne et l’a nommée Graal
En effet, UML ne donne aucune indication sur les niveaux de décomposition d’un cas d’utilisation, ce qui a toujours été problématique quand il s’agissait de régler le curseur sur la bonne granularité d’un artefact de modélisation, quel qu’il soit d’ailleurs. Voir nos articles :
- NoSQL, NoCode et NoUML ? Faut-il encore modéliser avec UML ? Défauts et qualités de cette norme de l’OMG vieillissante
- Que faut-il garder d'UML ? Quelles seraient les évolutions nécessaires ? Va-t-on vers un reboot d'UML ? Quelles alternatives à UML ?
Dans un autre article, nous évoquions la méthode des 10 - 10 (voir notre article :
Comment être efficace dans la modélisation de vos cas d'utilisation (UML use case diagram) ?)
Le postulat est de considérer qu'un Use Case est constitué au maximum de 10 scénarios, qui se décomposent en 10 étapes élémentaires. Les scénarios peuvent se modéliser en diagramme de séquence, avec utilisation des fragments comme “opt” pour les options, “alt” pour les scénarios alternatifs, “loop” pour les itérations, etc.
La méthode Graal préconise de :
- Représenter les acteurs dans un graphe d'acteurs,
- Modéliser l'ensemble des CUs (Use Case Main View) sans les acteurs, qui apparaîtront une fois les Use Case Diagrams réalisés (voir ci-après). On y perd son UML !
- Détailler les tâches (Use Case Diagram) effectuées par un acteur pour un cas d'utilisation,
- Affiner une tâche en explicitant les types d'actions (Actions Plan), comme les évènements de l'application, ses traitements internes, les vues de l'utilisateur et ses actions, équivalent sans le nommer d'un modèle BPMN.
1- Graphe des acteurs (pour un système), sosie d'UML, mais sans les cas d'utilisation
Après avoir créé un modèle Graal (voir l'annexe 1), un point de vue Graal Methodology est activé.
Le service Gestion des Prestations Prévoyance est composé de 7 gestionnaires et d’un responsable.
Pour le système PrevIT, nous commençons par représenter, dans le cadre de la méthode Graal, le graphe des acteurs sosies des acteurs UML.
Le Gestionnaire Prestation Prévoyance (GPP) crée des dossiers, les instruit et les valide tant que le montant ne dépasse pas 50 000 €. Le Responsable Prestation Prévoyance (RPP) procède aux mêmes tâches que le GPP, mais en plus il contrôle et valide les dossiers d’un montant supérieur à 50 000 €, gère les réclamations et manage son équipe.
2- Vue d'ensemble des Cas d'Utilisation (Use Case Main View), sans les acteurs
On identifie les fonctionnalités du futur système.
Remarque : les acteurs créés dans les "Use Case Diagram ou Task Graph" ont été masqués.
Avec les outils standards UML, il suffit, à partir du référentiel, de faire un drag and drop d’un acteur dans le diagramme de Use Cases, puis de le relier par une association au Use Case désiré.
Totalement impossible avec ISD, d’ailleurs l’icône Actor est absente de la palette du diagramme de Use Case (voir la figure ci-dessus). La démarche est déroutante, quand on a l’expérience des outils standards UML.
Pour associer un acteur représenté dans le graphe des acteurs, il faut, pour chaque Cas d'Utilisation de la vue d'ensemble, créer un “Use Case Diagram” (voir annexe 1).
Voir l'annexe 1 pour la procédure de création.
3- Qui (Acteur) et Quoi (Tâches), ensemble dans un même diagramme
(Use Case Diagram) pour un Cas d'Utilisation de la vue d'ensemble
Use Case Diagram (ou Tasks Graph) "Créer un dossier de prestation prévoyance" pour le CU du même nom. Le picto en bas à droite de la 1ère tâche signifie qu'une vue "Actions Plan" lui est associée
et est accessible par un double clic. Le picto "clé" montre que la tâche réalise des exigences.
Pour chaque CU de la vue d'ensemble (Use Case Main View), il est possible de créer un “Use Case Diagram” qui est en fait, dans la méthode Graal, un graphe de tâches (voir annexe 1), dans lequel vous pourrez associer des tâches à un acteur.
4- Dernier niveau de détail, la vue des actions (Actions Plan),
pour une tâche du Use Case Diagram
Une fois les tâches d'un acteur identifiées, vous pouvez, pour chacune d’entre elles,
créer une vue plan d’actions (Actions Plan).
Un plan d’actions est associé à une tâche. Ce graphe représente, de manière pragmatique, les traitements effectués par l’application, les écrans et les interactions effectuées par l’acteur.
Il s’agit en fait d’un modèle BPMN simplifié, dans lequel on retrouve les principaux types de tâches (évènement, action de l’application, vue utilisateur, action de l’utilisateur, tâche), les gateways, nommées ici opérateurs (and, or, xor, loop) et les transitions (simple, interruptible).
Voir l'annexe 1 pour le mode opératoire.
Packages et classes participantes
Organisation hiérarchique des classes du domaine
(Domain Classes Namespaces Hierarchy)
Cartographie des Capacités de l'entreprise (réalisée avec l'outil open source Archi)
La méthode Graal reprend le terme namespace, utilisé dans de nombreuses technologies comme XML, pour désigner les packages UML. Seul le concept de hiérarchie est conservé. Les dépendances entre les namespaces sont automatiquement ajoutées à partir du diagramme des entités métier abordé dans le paragraphe suivant. Toutes les autres relations complexes et rarement utilisées ont été éliminées.
Avec le formalisme UML, on peut créer des classes dans le vide sidéral, sans aucune organisation hiérarchique. Pour pallier ce défaut, la méthode d'Obeo contraint le Business Analyst à créer au moins un namespace pour pouvoir ensuite créer un modèle du domaine avec des classes métier. En UML, cela se traduirait par un diagramme de package.
Les namespaces (package en UML) peuvent modéliser des fonctions ou des domaines métier
de l'entreprise en corrélation en ajoutant les dépendances.
N.B. Le nombre de dépendances entre Prestation Prévoyance et Produit vaut 2
(voir l'annexe 1, le diagramme de classes participantes de Prestation Prévoyance)
Diagramme des entités métier (Domain Classes Diagram)
Le modélisateur qui utilise le diagramme de classes UML doit préciser le destinataire, le contexte et l’objectif. Par exemple, dans un modèle du domaine "Entités métier/Relations" réalisé par les Business Analysts pour le compte de la MOA, les méthodes, les niveaux d’encapsulation, les identifiants techniques, etc. n'y figurent pas, mais rien ne l’interdit.
Dans son Graal du NoUML, Obeo a repris le diagramme de classes UML pour en faire un diagramme de classes du domaine modélisant uniquement les entités métier avec leurs données et leurs relations.
Diagramme de classes du domaine (namespace) "Prestation Prévoyance"
Les classes du domaine "Produit" et les relations avec les autres domaines "Contrat" et "Prestation"
Voir l'annexe 1 pour le mode opératoire.
Conclusion
Avec sa méthode Graal, Obeo s'est bien imprégnée des principes du NoUML. Son implémen-tation au travers de l'outil ISP, permet un usage pragmatique, les modèles sont affinés par de petits incréments, les notations simples facilitent la validation. L'utilisateur peut se focaliser plus aisément sur les aspects qu'il doit modéliser.
Pour l'aspect dynamique du système, la démarche permet de considérer les rôles des acteurs, puis, à une autre étape, les cas d'utilisation. Leur granularité étant toujours problématique, l'utilisateur sera aidé en ayant la possibilité de décomposer suivant 2 niveaux de détails :
- les scénarios (Tasks Graph),
- les étapes (Actions Plan).
Pour ceux qui le désirent, il est possible d'ajouter des diagrammes de séquence et d'état.
L'aspect statique se compose de diagrammes semblables à UML, mais expurgés des éléments rarement utilisés :
- les domaines métier (Namespaces),
- les entités métier et leurs relations (Domain Classes).
Dans notre prochain article, nous verrons que Graal a aussi intégré des concepts qui faisaient défaut à UML, comme les exigences et les User Stories. Mais cela est une autre histoire.
Merci pour vos commentaires qui seront les bienvenus, ainsi que vos retours d'expérience heureux ou malheureux, qui pourront profiter à nos lecteurs.
|
Rhona Maxwel @rhona_helena |
" L’inertie seule est menaçante. Ne crains pas, ni ne doute,
car le doute est stérile et la crainte est servile. "
Saint-John Perse
Annexe 1 : mode d'emploi
Résumé de l'épisode précédent
Dans notre article :
nous avions vu les caractéristiques d'ISD, son interopérabilité avec Obeo SmartEA, comment installer ISD et comment créer un "Modeling Project".
Créer un modèle Graal
Menu File ou clic droit sur le Modeling Project > New > Other > IS Designer > Graal Model
Créer un graphe d'acteurs (Actors Graph) pour un Système
Clic droit sur "System" > New representation > Actors Graph > nommer le diagramme
Créer une vue d'ensemble de Cas d’Utilisation (Use Cases Main view) pour un Système
Clic droit sur "System" > New representation > Use Cases Main View > nommer le diagramme
Use Case Main View avec les acteurs, des use case inclus, des compositions de tâches
et la traçabilité vers des exigences.
Les acteurs sont affichés uniquement quand dans la liste déroulant "Layers", l'option "Actors" est cochée (4ème icône à partir de la gauche en dessous de l’onglet de la vue). Les liens entre acteurs et les cas d’utilisation sont déterminés automatiquement à partir des liens entre acteurs et tâches dans un "Use Case Diagram" ou "Task Graph".
Les icônes "Change Diagram edition mode" et "Show/Hide" permettent d'Afficher/Masquer tous types d'éléments.
Le picto en bas à droite du CU "Créer un dossier de prestation prévoyance" signifie qu'un "Use Case Diagram" existe, pour détailler l'acteur et ses tâches. Un double clic suffit pour y accéder. Le picto "clé" sur le CU "Enregistrer un sinistre en attente de justificatifs" signifie qu'il réalise des exigences. Une simple sélection affiche un onglet avec la liste des exigences.
Créer un diagramme (Use Case diagram ou Tasks Graph) pour un cas d’utilisation
Clic droit sur le use case dans la vue d'ensemble > New > Create Use Case Diagram ou dans l'onglet Model Explorer > sélectionner le Modeling Project > la méthode Graal > le conteneur System > sélectionner un use case > clic droit > New Representation > Other > Graal Methodology > Use Case Diagram
Pour affecter un acteur à une tâche, vérifier que le calque “Actors” est bien activé dans le ruban en sélectionnant Actor > drag and drop d'Actor de la palette sur la tâche > choisisser l’acteur qui a déjà été modélisé dans le graphe des acteurs. A ce niveau, il n'est pas possible de créer un nouvel acteur, qui doit être opéré uniquement dans la vue graphe d'acteurs, ce qui plutôt bien en évitant la fonction de création à de multiples endroits.
La vue globale de cas d’utilisation du système est mise à jour automatiquement avec l’acteur.
(Il en va de même pour le graphe de tâches système.)
Créer un plan d’actions (Actions Plan) pour une tâche
Dans un graphe de tâches (ou Use Case Diagram) : clic droit sur une tâche > New > Actions Plan
Similaire à un BPMN, on retrouve la typologie
des principales tâches (Actions), les évènements, les passerelles (Operators)...
Créer des namespaces
Dans l'onglet Model Explorer, sélectionner le Modeling Project > Méthode Graal > conteneur System > Domain Classes Namespaces Hierarchy ou clic droit sur System > New Representation
Remarque : pour visualiser les dépendances entre les namespaces qui seront créées dans le Domain Classes Diagram, il faut activer le calque Dependencies dans la liste Layers, 4ème icône du ruban.
Créer un ”Domain Classes Diagram” (classes participantes ou métier)
Sélectionnez un namespace > clic droit > New > New Domain Classes Diagram
Pour relier des classes appartenant à des namespaces différents il faut :
- dans le diagramme Domain Classes Namespaces Hierarchy activer le calque Dependencies,
- dans le diagramme Domain Classes Diagram activer le calque External Domain Classes,
- sélectionner dans la palette External Domain Class puis le namespace et la classe,
- sélectionner dans la palette Relation, cliquer la classe de départ, déplacer la souris jusqu’à la classe d’arrivée.
Annexe 2 : compléments de lecture
- Alimenter le référentiel d’Architecture d’Entreprise pour la couche Application de TOGAF avec l’outil Information System Designer (ISD) d’Obeo - Modélisation de l’analyse des besoins S.1 Ep.1
- NoSQL, NoCode et NoUML ? Faut-il encore modéliser avec UML ? Défauts et qualités de cette norme de l’OMG vieillissante
- Que faut-il garder d'UML ? Quelles seraient les évolutions nécessaires ? Va-t-on vers un reboot d'UML ? Quelles alternatives à UML ?
- Comment être efficace dans la modélisation de vos cas d'utilisation (UML use case diagram) ?
- Top 5 2023 des outils gratuits ou open source pour l’Architecture d'Entreprise et la modélisation du Système d’Information
Alimenter le référentiel d’Architecture d’Entreprise pour la couche Application de TOGAF avec l’outil Information System Designer (ISD) d’Obeo - Modélisation de l’analyse des besoins S.1 Ep.1
L'éditeur logiciel Obeo propose 2 outils interopérables :
le premier, open source, dédié aux architectes logiciels : Information System Designer
et le second, commercial, dédié aux architectes d’entreprise : SmartEA.
Les applications sont complètement modélisées et leurs codes générés dans ISD,
et, grâce à un connecteur, les modèles peuvent ensuite être exportés dans SmartEA.
Et si l'on inversait les rôles ? Si l'on partait de la documentation pour arriver à la réalisation, au code. Le Doc2Code serait-il né ?
Pour assurer la collaboration entre l'architecte logiciel et l'architecte d'entreprise, il faudra payer. Dommage de ne pas avoir choisi le 2 en 1
Pourquoi choisir ISD ?
ISD est un studio moderne pour l’analyse, la conception et la génération de code d’applications s’interfaçant avec l’outil d’Architecture d’Entreprise SmartEA d'Obeo.
Le studio est une base centrale, collaborative de modélisation
afin de générer la documentation et le code.
L’objectif principal est de permettre aux fonctionnels, architectes applicatifs, concepteurs-développeurs et acteurs DevOps, de partager leurs connaissances et leur compréhension du SI, avec des représentations intelligibles.
La méthode Graal d'analyse métier, ainsi que les autres couches,
seront entièrement abordées dans nos prochains articles.
Information System Designer (ISD) offre à la fois la capture des besoins, les cas d’utilisation, les IHM, les services métiers, les entités métiers, les schémas de base de données.
C’est donc un studio de conception d’applications constitué d’un ensemble de modeleurs pour construire des architectures applicatives.
Il intègre une fonctionnalité nommée scaffolding permettant la transformation de modèles.
D’après Obeo, le pourcentage de code généré avec ses générateurs maison customisés avoisinerait 80 %. Les 20 % restants concernent par exemple l’implémentation des modèles états-transitions et les IHM qu'il ne serait pas rentable de faire générer.
Fiabilité de l'architecture garantie
par les générateurs d’Obeo
Contrairement aux frameworks d’ORM (Object Relational Mapping) comme Hibernate, Eclipse Link ou encore Spring Boot, ISD, à partir d’un modèle inspiré du diagramme de classe UML (voir ci-après NoUML), génère les scripts SQL, les exécute dans le RDBMS, génère le code Java et, cerise sur le gâteau, génère la totalité des tests unitaires.
NoUML, pas tout à fait, disons
un UML pragmatique sans fioritures
Entre norme pour technocrate et simplicité alliée à l'efficacité, Obeo a tranché
Comme déjà décrit dans nos articles :
et
UML pêche par sa complexité et freine l’Ingénierie Dirigée par les Modèles
(voir la catégorie IDM).
Deux solutions s’offraient à Obeo :
- se conformer à la norme en concevant un profil UML, comme par exemple SysML
- prendre ses distances en se déclarant NoUML
C’est la deuxième solution qui a été choisie. Comme l’objectif du studio ISD est la conception d’applications, la première solution aurait été compliquée et peu efficiente pour la génération de code.
Obeo a donc choisi, pour se libérer des sévères contraintes et pallier les manques de la norme de l’OMG, la deuxième solution en créant un DSL (Domain-Specific Language) représentant des modèles spécifiques pour représenter visuellement les différents aspects d’une application :
- Exigences (absent d’UML, mais présent dans SysML)
- Scénarios d’usage
- Base de données
- Entités de données
- Services
- IHM et cinématique des écrans (absent d’UML)
Conclusion
Cet outil, interopérable avec SmartEA, permettra d'assurer que les spécifications techniques sont correctement comprises et que les développements sont conformes à l'architecture d'entreprise.
ISD a fait le choix du NoUML en concevant son propre DSL pragmatique et inspiré d’un UML très simplifié.
De la modélisation oui, mais pas trop, juste ce qu’il faut pour pouvoir générer et documenter du code, c'est ce que nous verrons dans nos prochains articles consacrés d'abord à la méthode Graal d'Obeo pour l'analyse métier, puis aux services SOA (Service-Oriented Architecture), aux entités métiers et pour finir les générateurs de codes.
|
Rhona Maxwel @rhona_helena |
" Presque aucune part n’est réservée à l’enseignement de la parole proprement dite ; l’écolier apprend à lire, à écrire, à compter, à raisonner, non à parler (…). Ils seront dans la vie la proie de quelque bavard, expert au langage courant "
Jean Zay
Annexes 1
Installer ISD
Comme la plupart des logiciels open source, ISD est disponible sur tous les OS :
Linux, Mac OS, et Windows.
https://github.com/ObeoNetwork/InformationSystem/releases
Télécharger l’archive correspondant à votre OS, désarchiver et lancer l’exécutable (is-designer), et c’est tout !
ISD a été développé sur un socle Eclipse auquel Obeo a ajouté de nombreux plugins.
Note : notre test s’est effectué sur Linux Ubuntu 22.04 LTS Open JDK 17 et Windows 10 Oracle JDK 11.
Créer un “Modeling Project”
Avec la perspective Modeling (Défaut) ouverte :
File > New > Modeling Project > Nommer votre projet
Annexes 2
Les 4 diagrammes UML à utiliser
Les bonnes pratiques pour modéliser les Cas d'Utilisation UML :
- Modélisation de système : Soyez maniaque, croisez et recroisez vos modèles UML pour être certain qu'ils soient valides (5)
- Comment être efficace dans la modélisation de vos cas d'utilisation (UML use case diagram) ?
Diagramme de classes UML :
Les règles à appliquer pour un diagramme de classes valide :
Diagramme de séquence UML :
Les bonnes pratiques pour un diagramme de séquence valide :
Les règles à appliquer pour un diagramme d'états :
Pour créer des modèles UML avec ChatGPT
ou avec des outils gratuits
Les meilleurs logiciels de modélisation UML :
Création de modèles UML, BPMN et de cartographies ArchiMate avec ChatGPT :
C4 model, un UML pour simplement dessiner
La méthode “C4 model” (Context, Containers, Components, and Code) pour visualiser l’architecture logicielle propose une simplification extrême d’UML.
Pour les architectures métier, sécurité, infrastructure…
la solution Saas UNCIA
La solution UNCIA permet de conceptualiser et gérer le cycle de vie des référentiels techniques.
ChatGPT, l’outil idéal de réalisation de modèles pour l’Architecture d’Entreprise et l’Urbanisation du Système d’Information ?
Dans notre quête du Graal pour outiller les méthodes d’AE et d'urbanisation du SI et plus généralement pour la modélisation multiparadigmes, nous avons testé ChatGPT pour la production de code PlantUML (voir notre article : Texte vers UML et autres outils de "diagrammes en tant que code" - Le moyen le plus rapide de créer vos modèles ? ) pour des vues ArchiMate et XMI pour des diagrammes UML et BPMN. L'intérêt d'avoir les diagrammes sous forme de code facilite entre autres la mise en œuvre de MDA (Model Driven Architecture).
Évidemment, nous avons demandé à DALL·E, une autre IA d'OpenAI,
spécialisée dans la génération d'images à partir d'une description textuelle, d'illustrer notre article.
"An illustration for an article about a chatbot generating code for diagrams".
Un générateur de code qui tient compte de ses erreurs
A quoi sait-on qu’une nouvelle technologie peut vraiment changer la donne ? Quand elle suscite la panique chez les leaders installés du secteur, tout autant que leur convoitise. Présenté pour la première fois fin novembre par OpenAI, le bot conversationnel ChatGPT n’a mis que quelques jours pour devenir le sujet de discussion numéro 1 de la planète numérique.
ChatGPT se révèle être à la fois :
- un moteur de recherche donnant immédiatement et exactement le résultat sans avoir à ouvrir plusieurs liens,
- un Wikipédia,
- un générateur de contenu,
- un traducteur,
- un agent conversationnel mémorisant tous les éléments du dialogue lui permettant d’affûter ses réponses. Chaque conversation est stockée, pour être potentiellement reprise ultérieurement,
- un générateur et vérificateur de code informatique ayant absorbé tous les codes trouvés sur internet jusqu’à fin 2021.
C’est cette dernière fonctionnalité qui nous intéresse ici.
En lui fournissant des informations supplémentaires, comme des données contextuelles ou des préférences utilisateur, ChatGPT formule une réponse encore plus en adéquation avec le sujet demandé. De manière similaire à une conversation entre 2 humains, où la reformulation est le moyen le plus efficace pour se faire comprendre et en procédant par itérations de plus en plus précises, nous avons constaté que ChatGPT affine sa compréhension des attendus et fournit un meilleur résultat.
Le système fait également croire qu’il peut se corriger. Si l’utilisateur n’est pas satisfait d’une réponse, il peut demander de recommencer, et recueillir ensuite une meilleure réponse. ChatGPT ne comprend pas son erreur, mais comme c’est un système probabiliste qui fournit la meilleure réponse parmi plusieurs possibles, il finit par proposer les suivantes dans la liste.
Nos tests (les codes générés se trouvent en annexe 1)
Pour connaître l'environnement de nos essais, les reproduire et les adapter, vous pouvez vous reporter à l'annexe 1 à la fin de cet article.
Nous avons choisi de converser avec ChatGPT en anglais sachant que le domaine abordé est plutôt anglophone, ce qui n’aurait pas été le cas si nous lui avions demandé de disserter sur l'œuvre romanesque de Proust.
Test #1
Code PlantUML d'une vue ArchiMate d'un processus de prêt bancaire
Étant néophytes pour la génération de code PlantUML pour des vues ArchiMate avec ChatGPT, nous nous lançons avec une première demande relativement basique.
Question :
"Give me the code for PlantUML corresponding of an ArchiMate diagram for a bank loan process"
Résultat :
Le résultat est un diagramme de classes UML largement satisfaisant pour un débutant en UML.
ChatGPT a généré du code PlantUML représentant un diagramme de classe
alors qu'on lui a demandé un diagramme ArchiMate. Il a pris le type de diagramme par défaut.
A priori, ChatGPT n’a pas tout à fait compris que nous voulions une vue ArchiMate un peu plus consistante.
Nous allons alors lui indiquer le code de démonstration pour ArchiMate fourni par PlantUML et nous lui demanderons de générer un code similaire pour un prêt bancaire.
Test #2
La même demande après lui avoir donné un exemple
Question :
"Can you generate a similar plantuml code for a bank loan process"
Résultat :
Résultat après lui avoir indiqué un exemple et lui avoir dit que nous voulions le même type de code
Nous avons une vue faisant intervenir les niveaux métier et applicatif. Des relations de composition relient les processus. Les services applicatifs fournissent des fonctionnalités au processus et les composants réalisent les services.
ChatGPT a compris que nous voulions incorporer dans le diagramme un titre et une légende qui sont souvent négligés et fastidieux à mettre en œuvre.
ChatGPT mémorise tous les échanges, nous pouvons donc lui demander de détailler tour à tour chacun des sous-processus.
Test #3
Zoom sur le sous-processus de vérification
Question :
"Like the previous plantuml diagram, can you give me the plantuml code for the Verification process ?"
Résultat :
Zoom sur le processus de vérification
Nous avons demandé le détail de tous les sous-processus composant le prêt bancaire.
Les autres codes générés n'ont pas été intégrés à cet article, mais restent disponibles sur demande.
Test #4
Description textuelle du cas d'utilisation ""Demander un prêt bancaire"
Examinons maintenant ce que va nous donner ChatGPT pour le cas d'utilisation cas d'école "Demander un prêt bancaire".
Question :
"Lets define a simple use case in bank loan, something that is very well established and easy to understand"
Réponse :
Sure, let's consider the use case of obtaining a personal loan from a bank.
Here's how the process might work:
- A customer starts by researching different banks and comparing their personal loan options.
- Once the customer has found a loan that they are interested in, they complete a loan application, which requires them to provide personal and financial information, such as their income, employment history, and credit score.
- The bank uses this information to determine the customer's creditworthiness and assess their ability to repay the loan.
- If the customer is approved for the loan, they receive an offer with the loan terms, including the interest rate, monthly payment amount, and repayment period.
- If the customer accepts the loan offer, they sign the loan agreement and provide any necessary documentation, such as proof of income or collateral.
- The bank then disburses the loan funds to the customer, either as a lump sum payment or in installments.
- The customer then repays the loan over time, including both the principal amount and the interest, according to the terms agreed to in the loan agreement.
This is just a basic example of how a personal loan from a bank works, but it should give you an idea of how individuals can use loans to access the funds they need for a variety of purposes, from paying for large expenses to consolidating debt.
Test #5
Tableau du modèle métier d'un prêt bancaire
Évidemment il s'agit du processus standard. Pour un cas plus spécifique, il suffirait d'ajouter les informations métier supplémentaires.
Demandons-lui le modèle métier sous la forme de tableau au format standard markdown.
Question :
"Describe the data model in more detail or tabular format using markdown"
Réponse :
Here is a more detailed and tabular format of the data model for the use case of obtaining a personal loan from a bank:
Customer
Attribute | Data Type | Description |
---|---|---|
Customer ID | Integer | Primary key, unique identifier for the customer |
Name | String | Full name of the customer |
Address | String | Physical address of the customer |
Phone number | String | Contact phone number for the customer |
String | Contact email for the customer | |
Date of birth | Date | Birthdate of the customer |
Social security number | String | Social security number of the customer |
Loan Application
Attribute | Data Type | Description |
---|---|---|
Loan Application ID | Integer | Primary key, unique identifier for the loan application |
Customer ID | Integer | Foreign key, reference to the customer who submitted the loan application |
Loan amount | Decimal | Total amount requested in the loan application |
Loan purpose | String | Purpose of the loan as stated by the customer in the application |
Status | String | Current status of the loan application (e.g., pending, approved, denied) |
Date submitted | Date | Date on which the loan application was submitted |
Loan Offer
Attribute | Data Type | Description |
---|---|---|
Loan Offer ID | Integer | Primary key, unique identifier for the loan offer |
Loan Application ID | Integer | Foreign key, reference to the loan application that generated the offer |
Interest rate | Decimal | Interest rate for the loan offer |
Monthly payment amount | Decimal | Monthly payment amount for the loan offer |
Repayment period | Integer | Length of the repayment period for the loan offer (in months) |
Date offered | Date | Date on which the loan offer was made |
Loan Agreement
Attribute | Data Type | Description |
---|---|---|
Loan Agreement ID | Integer | Primary key, unique identifier for the loan agreement |
Loan Offer ID | Integer | Foreign key, reference to the loan offer that generated the agreement |
Date signed | Date | Date on which the loan agreement was signed |
Collateral information | String | Information about any collateral used to secure the loan (if applicable) |
Repayment terms | String | Terms of repayment for the loan |
Loan Repayment
Attribute | Data Type | Description |
---|---|---|
Loan Repayment ID | Integer | Primary key, unique identifier for the loan repayment |
Loan Agreement ID | Integer | Foreign key, reference to the loan agreement for which the payment is made |
Payment amount | Decimal | Amount of the payment |
Payment date | Date | Date on which the payment was made |
Balance | Decimal | Remaining balance on the loan after the payment |
This tabular format provides a clear and concise representation of the data model for the personal loan use case, making it easier to understand and manage the data.
Test #6
Diagramme de classe UML d'un prêt bancaire
Passons à l'aspect structurel avec un diagramme de classe UML généré à base de code PlantUML.
Question :
"This is perfect, I would like to depict the relationships in a plantuml diagram, can you give me the code to do this"
A la première génération, ChatGPT met des espaces dans les noms de classe, ce qui provoque un message d'erreur de syntaxe à l'exécution dans PlantUML.
Nous lui indiquons :
"There is a syntax error about class Loan Application, I think there is no space in the class name."
Résultat :
I apologize, you're correct. Here's the corrected PlantUML code:
Voir le code généré en annexe 1.
Voici l'exécution dans PlantUML :
Représentation dans PlantUML du code généré par ChatGPT
pour le modèle d'entités métiers pour un prêt bancaire.
Test #7
Diagramme de séquence UML pour le prêt bancaire
Continuons avec l'aspect comportemental avec un diagramme de séquence UML.
Question :
"How would a client asking for a bank loan impact the classes mentioned above, I would like to depict this as a sequence diagram. Can you help describe the diagram in code for plantuml"
Résultat :
Le diagramme de séquence UML avec les commentaires s'il vous plaît !
Test #8
Diagramme états/transitions UML pour le prêt bancaire
Demandons à ChatGPT quels seraient les états métier du prêt bancaire et de générer le code PlantUML pour le représenter dans un diagramme de "state machine" UML.
Question :
"Will the loan have states like new, closed, active inactive, cancelled, etc ? I would like to depict the states in a state diagram using plantuml. Can you help describe the diagram in code for plantuml"
Résultat :
Les états et les transitions représentés par PlantUML correspondant au code généré par ChatGPT
Test #9
Mind map pour un prêt bancaire
On aurait pu commencer par là : voyons ce que donne un mind map toujours relatif au prêt bancaire.
Question :
"Let's start by creating a simple MindMap on the topic of Bank Loan
Can you give the mindmap in PlantUML format. Keep it structured from the core central topic branching out to other domains and sub-domains. Let's go to 5 levels to begin with. Add the start and end mindmap tags and keep it expanding on one side for now"
Résultat :
Pour finir un mind map des concepts clés d'un prêt bancaire
toujours avec du code PlantUML généré par ChatGPT.
Test #10
Un pattern ArchiMate : Strategic Value Map View
Évidemment, si l’on restreint le périmètre, si on supprime les mots clés, et si l’on ne précise pas les règles métier, tout en augmentant le niveau d’abstraction, on obtient une vue correspondant au contexte demandé.
Question :
"Like the previous plantuml diagram, can you give me the plantuml code for the Strategic Value Map View ?"
Résultat :
Essai de génération du pattern "Strategic Value Map View"
Test #11
Business Model Canvas View
Demandons-lui de faire un template avec ArchiMate pour un Business Model Canvas View.
Question :
"Like the previous plantuml diagram, can you give me the plantuml code for the Business Model Canvas View ?"
Réponse :
ChatGPT répond que malheureusement PlantUML ne supporte pas ce type de diagramme. Il nous propose de trouver un plugin ou de créer nos propres éléments.
En fait, il est tout à fait possible de créer une telle vue avec ArchiMate.
Un Business Model Canvas View avec les artefacts ArchiMate et réalisé avec l’outil open source Archi (voir notre article : Top 5 2023 des outils gratuits ou open source pour l’Architecture d'Entreprise et la modélisation du Système d’Information )
Test #12
Plus on donne d'informations à ChatGPT, meilleure sera la réponse. Exemple d'une librairie en ligne.
Question :
"Give me the code for PlantUML corresponding of a class diagram for an online library with Author, Book, User, ShoppingCartLine, ShippingCart, PurchaseOrder and Status. Don't forget the multiplicity. Author wrote 0 or several books and a book is written by 0 or several authora. A User is an aggragate of 0 or several shopping cart which is an aggragate of 0 or several shopping cart lines which is linked at a book. A PurchaseOrder is linked at one user and one shopping cart. The Status are pending and shipped."
Résultat :
Diagramme de classe UML pour une librairie en ligne, généré par ChatGPT
après avoir décrit le contexte métier.
Si l’ajout des attributs des entités métier était trivial, il n'en va pas de même pour ce qui est des méthodes. Heureusement, ChatGPT les a correctement modélisées selon les meilleures pratiques de conception orientée objet.
Test #13
Qu’en est-il pour du code plus verbeux comme XMI représentant un processus BPMN ?
Question :
“Write BPMN code for a pizza order”
Résultat :
Le code XML de l’OMG pour représenter un simple cas d’école de processus BPMN est tellement verbeux que ChatGPT ne finissait pas sa génération. On peut comprendre qu’il soit limité dans sa réponse en nombre de mots étant donné les millions de conversations simultanées auxquelles il doit participer.
Nous lui avons demandé par 2 fois de terminer son code.
Puis nous avons concaténé les 3 parties de code dans un fichier avec l’extension .bpmn, que nous avons ensuite ouvert avec l’outil bpmn.io (https://bpmn.io/) de Camunda (voir notre article : Top 5 2023 des outils gratuits ou open source pour l’Architecture d'Entreprise et la modélisation du Système d’Information )
En demandant par 3 fois à ChatGPT de continuer à générer le code XML pour le diagramme BPMN, nous avons pu constituer le fichier .bpmn et l'ouvrir avec l'open source bpmn.io de Camunda.
Un assistant de choix pour les cartographes
ChatGPT peut accompagner les cartographes de SI dans leur production quotidienne, en leur suggérant du code pour les outils de modélisation visuelle. En les aidant, ChatGPT peut augmenter leurs capacités et leur productivité, réduire les tâches manuelles et leur permettre de se concentrer sur les aspects les plus intéressants de leur travail.
Cela fait intrinsèquement partie des métiers de l’IT d’évoluer en fonction des innovations technologiques. Un développeur d'application de gestion ne programme plus en assembleur, un architecte logiciel n’écrit plus manuellement les codes techniques pour une architecture distribuée, les outils low code/no code se développent…
De langages impératifs fastidieux, on passera inéluctablement à un formalisme déclaratif voir au langage naturel.
Pourquoi se fatiguer à apprendre ?
Quand Wikipédia est apparu, les instances pédagogiques se sont alarmées des possibilités de plagiat par les apprenants. Avec le temps, des logiciels antiplagiat sont apparus, les enseignants ont largement fait la morale en expliquant les raisons pour lesquelles il ne fallait pas copier et finalement Wikipédia est devenu un outil pédagogique comme un autre.
Nous pensons qu’il se passera la même chose avec ChatGPT. Il ne faudrait pas exercer des contraintes coercitives, mais au contraire innover dans l’ingénierie pédagogique en incluant ce type d’agent conversationnel comme un formidable moyen pour développer les capacités cognitives. Les pédagogues devront alors vérifier, expliquer les résultats et les utiliser comme support pour aller plus loin sur le sujet concerné.
Conclusion
CQFD.
Bien sûr, il s'agit d'une première prise en main de ChatGPT et nos tests portent sur des cas d’école, pouvant par exemple servir comme matériel pédagogique à de futurs étudiants dans le domaine de la modélisation de Système d'Information.
Cependant, ils montrent qu’en apprivoisant ChatGPT, en décrivant un contexte métier en langage naturel, en explicitant la formulation, en ajoutant au fur et à mesure des échanges des informations supplémentaires sur l'ontologie utilisée, en affinant la question et en demandant de détailler certaines parties, ce chatbot est capable de générer du code représentant des vues ArchiMate d’Architecture d’Entreprise ainsi que des diagrammes UML et BPMN pour le SI.
Cette génération de "diagram as code" est fondamentale, car les avantages à représenter les modèles sous forme textuelle sont nombreux : synchronisation automatique entre les modèles, versioning avec des outils de type Git, conception collaborative avec des outils de type Google Doc, solutions open source légères, code moins verbeux que le XMI de l'OMG... (voir notre article : Texte vers UML et autres outils de "diagrammes en tant que code" - Le moyen le plus rapide de créer vos modèles ? ).
Sans oublier la mise en œuvre grandement facilitée de MDA avec la réalisation par scripts de transformations de modèles à partir de leur code. Les normes XMI et DI de l'OMG, très complexes, verbeuses et avec leurs nombreuses versions incompatibles, empêchaient la démocratisation de la dérivation des modèles correspondant par exemple aux couches d'architecture.
Au vu de ce que prépare par exemple le géant chinois de l’internet Baido avec son Ernie Bot, Google avec Bard et OpenAI avec la prochaine version de ChatGPT (GPT-4) et avec l’aide des milliards de Microsoft, soyons assurés que dans un proche avenir, les architectes d’entreprise, urbanistes et cartographes de SI, voir les modélisateurs multiparadigmes, seront dispensés des tâches fastidieuses et sans valeur ajoutée, leur permettant d’être plus créatif.
De notre côté, nous comptons bien en faire une utilisation plus poussée et utiliser ChatGPT à des fins professionnelles. Nous ne manquerons pas de vous tenir informé.
“Autrefois pour faire sa cour
On parlait d'amour
Pour mieux prouver son ardeur
On offrait son cœur
Maintenant, c'est plus pareil
Ça change, ça change
…
Viens m'embrasser
Et je te donnerai
…
Une tourniquette
Pour faire la vinaigrette
Un bel aérateur
Pour bouffer les odeurs
Des draps qui chauffent
Un pistolet à gaufres
…”
Boris Vian - La complainte du progrès
Annexe 1
Les codes générés
Mode d'emploi
- Créer un compte sur le site : chat.openai.com puis se connecter.
- Cliquer sur le lien Serveur de démonstration en ligne de PlantUML.
- Copier/Coller le code de ChatGPT, le diagramme correspondant apparaît instantanément.
Test #1
Code PlantUML d'une vue ArchiMate d'un processus de prêt bancaire
Question :
"Give me the code for PlantUML corresponding of an ArchiMate diagram for bank loan process"
Réponse :
@startuml
!define ARCHIMATE_COLOR #6495ED
class LoanProcess {
+ requestLoan(amount: int, purpose: String)
+ checkEligibility(borrower: Borrower)
+ calculateInterestRate(amount: int, purpose: String)
+ issueLoan(borrower: Borrower, amount: int)
}
class Borrower {
+ name: String
+ address: String
+ income: int
}
class Bank {
+ name: String
+ address: String
+ processLoan: LoanProcess
+ approveLoan(borrower: Borrower, amount: int)
}
Borrower -> LoanProcess : request loan
LoanProcess -> Borrower : check eligibility
LoanProcess -> Bank : calculate interest rate
Bank -> LoanProcess : approve loan
LoanProcess -> Borrower : issue loan
@enduml
chatgpt-01-code-PlantUML-ArchiMate-diagram-bank-loan-proces-.png
Test #2
La même demande après lui avoir donné un exemple
Question :
"Can you generate a similar plantuml code for a bank process"
Réponse :
@startuml
skinparam rectangle<<behavior>> {
roundCorner 25
}
sprite $bProcess jar:archimate/business-process
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
rectangle "Handle claim" as HC <<$bProcess>><<behavior>> #Business
rectangle "Capture Information" as CI <<$bProcess>><<behavior>> #Business
rectangle "Notify\nAdditional Stakeholders" as NAS <<$bProcess>><<behavior>> #Business
rectangle "Validate" as V <<$bProcess>><<behavior>> #Business
rectangle "Investigate" as I <<$bProcess>><<behavior>> #Business
rectangle "Pay" as P <<$bProcess>><<behavior>> #Business
HC *-down- CI
HC *-down- NAS
HC *-down- V
HC *-down- I
HC *-down- P
CI -right->> NAS
NAS -right->> V
V -right->> I
I -right->> P
rectangle "Scanning" as scanning <<$aService>><<behavior>> #Application
rectangle "Customer admnistration" as customerAdministration <<$aService>><<behavior>> #Application
rectangle "Claims admnistration" as claimsAdministration <<$aService>><<behavior>> #Application
rectangle Printing <<$aService>><<behavior>> #Application
rectangle Payment <<$aService>><<behavior>> #Application
scanning -up-> CI
customerAdministration -up-> CI
claimsAdministration -up-> NAS
claimsAdministration -up-> V
claimsAdministration -up-> I
Payment -up-> P
Printing -up-> V
Printing -up-> P
rectangle "Document\nManagement\nSystem" as DMS <<$aComponent>> #Application
rectangle "General\nCRM\nSystem" as CRM <<$aComponent>> #Application
rectangle "Home & Away\nPolicy\nAdministration" as HAPA <<$aComponent>> #Application
rectangle "Home & Away\nFinancial\nAdministration" as HFPA <<$aComponent>> #Application
DMS .up.|> scanning
DMS .up.|> Printing
CRM .up.|> customerAdministration
HAPA .up.|> claimsAdministration
HFPA .up.|> Payment
legend left
Example from the "Archisurance case study" (OpenGroup).
See
====
<$bProcess> :business process
====
<$aService> : application service
====
<$aComponent> : application component
endlegend
@enduml
Can you generate a similar plantuml code for a bank process
Certainly! Here is an example of PlantUML code for a bank loan process:
@startuml
skinparam rectangle<<behavior>> {
roundCorner 25
}
sprite $bProcess jar:archimate/business-process
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
rectangle "Loan Application" as LA <<$bProcess>><<behavior>> #Business
rectangle "Verification" as V <<$bProcess>><<behavior>> #Business
rectangle "Credit Check" as CC <<$bProcess>><<behavior>> #Business
rectangle "Approval" as A <<$bProcess>><<behavior>> #Business
rectangle "Funding" as F <<$bProcess>><<behavior>> #Business
LA *-down- V
V *-down- CC
CC *-down- A
A *-down- F
rectangle "Customer\nInformation\nSystem" as CIS <<$aService>><<behavior>> #Application
rectangle "Credit\nBureau\nSystem" as CBS <<$aService>><<behavior>> #Application
rectangle "Loan\nAdministration\nSystem" as LAS <<$aService>><<behavior>> #Application
rectangle "Payment\nSystem" as PS <<$aService>><<behavior>> #Application
CIS -up-> LA
CBS -up-> CC
LAS -up-> A
LAS -up-> F
PS -up-> F
rectangle "Database" as DB <<$aComponent>> #Application
rectangle "CRM\nSystem" as CRM <<$aComponent>> #Application
rectangle "Financial\nAdministration\nSystem" as FAS <<$aComponent>> #Application
DB .up.|> CIS
DB .up.|> CBS
CRM .up.|> CIS
FAS .up.|> PS
legend left
Example of a bank loan process.
See
====
<$bProcess> : business process
====
<$aService> : application service
====
<$aComponent> : application component
endlegend
@enduml
This code will create a diagram that visualizes the loan application process in a bank. The customer submits their information, which is verified and goes through a credit check. Based on the results, the loan is approved or rejected and, if approved, the funds are disbursed. The diagram also shows the relationships between the various business processes, application services, and application components involved in the loan process.
Test #3
Zoom sur le sous-processus de vérification
Question :
"Like the previous plantuml diagram, can you give me the plantuml code for the Verification process ?"
Réponse :
Here is an example of a PlantUML diagram for a Verification process:
@startuml
skinparam rectangle<<behavior>> {
roundCorner 25
}
sprite $bProcess jar:archimate/business-process
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
rectangle "Verify Information" as VI <<$bProcess>><<behavior>> #Business
rectangle "Collect Information" as CI <<$bProcess>><<behavior>> #Business
rectangle "Check Credibility" as CC <<$bProcess>><<behavior>> #Business
rectangle "Notify Customer" as NC <<$bProcess>><<behavior>> #Business
CI *-down- VI
VI *-down- CC
CC *-down- NC
rectangle "Information Gathering" as IG <<$aService>><<behavior>> #Application
rectangle "Data Validation" as DV <<$aService>><<behavior>> #Application
rectangle "Notification" as N <<$aService>><<behavior>> #Application
IG -up-> VI
DV -up-> CC
N -up-> NC
rectangle "Know Your Customer (KYC)" as KYC <<$aComponent>> #Application
rectangle "Credit Bureau" as CB <<$aComponent>> #Application
rectangle "Notification System" as NS <<$aComponent>> #Application
KYC .up.|> IG
CB .up.|> DV
NS .up.|> N
legend left
Example of a verification process.
See
====
<$bProcess> :business process
====
<$aService> : application service
====
<$aComponent> : application component
endlegend
@enduml
Test #4
Description textuelle du cas d'utilisation "Demander un prêt bancaire"
Examinons maintenant ce que va nous donner ChatGPT pour le cas d'utilisation cas d'école "Demander un prêt bancaire".
Question :
"Lets define a simple use case in bank loan, something that is very well established and easy to understand"
Réponse :
Sure, let's consider the use case of obtaining a personal loan from a bank.
Here's how the process might work:
- A customer starts by researching different banks and comparing their personal loan options.
- Once the customer has found a loan that they are interested in, they complete a loan application, which requires them to provide personal and financial information, such as their income, employment history, and credit score.
- The bank uses this information to determine the customer's creditworthiness and assess their ability to repay the loan.
- If the customer is approved for the loan, they receive an offer with the loan terms, including the interest rate, monthly payment amount, and repayment period.
- If the customer accepts the loan offer, they sign the loan agreement and provide any necessary documentation, such as proof of income or collateral.
- The bank then disburses the loan funds to the customer, either as a lump sum payment or in installments.
- The customer then repays the loan over time, including both the principal amount and the interest, according to the terms agreed to in the loan agreement.
This is just a basic example of how a personal loan from a bank works, but it should give you an idea of how individuals can use loans to access the funds they need for a variety of purposes, from paying for large expenses to consolidating debt.
Test #5
Tableau du modèle métier d'un prêt bancaire
Évidemment il s'agit du processus standard. Pour un cas plus spécifique, il suffirait d'ajouter les informations métier supplémentaires.
Demandons-lui le modèle métier sous forme de tableau au format standard markdown.
Question :
"Describe the data model in more detail or tabular format using markdown"
Réponse :
Here is a more detailed and tabular format of the data model for the use case of obtaining a personal loan from a bank:
Customer
Attribute | Data Type | Description |
---|---|---|
Customer ID | Integer | Primary key, unique identifier for the customer |
Name | String | Full name of the customer |
Address | String | Physical address of the customer |
Phone number | String | Contact phone number for the customer |
String | Contact email for the customer | |
Date of birth | Date | Birthdate of the customer |
Social security number | String | Social security number of the customer |
Loan Application
Attribute | Data Type | Description |
---|---|---|
Loan Application ID | Integer | Primary key, unique identifier for the loan application |
Customer ID | Integer | Foreign key, reference to the customer who submitted the loan application |
Loan amount | Decimal | Total amount requested in the loan application |
Loan purpose | String | Purpose of the loan as stated by the customer in the application |
Status | String | Current status of the loan application (e.g., pending, approved, denied) |
Date submitted | Date | Date on which the loan application was submitted |
Loan Offer
Attribute | Data Type | Description |
---|---|---|
Loan Offer ID | Integer | Primary key, unique identifier for the loan offer |
Loan Application ID | Integer | Foreign key, reference to the loan application that generated the offer |
Interest rate | Decimal | Interest rate for the loan offer |
Monthly payment amount | Decimal | Monthly payment amount for the loan offer |
Repayment period | Integer | Length of the repayment period for the loan offer (in months) |
Date offered | Date | Date on which the loan offer was made |
Loan Agreement
Attribute | Data Type | Description |
---|---|---|
Loan Agreement ID | Integer | Primary key, unique identifier for the loan agreement |
Loan Offer ID | Integer | Foreign key, reference to the loan offer that generated the agreement |
Date signed | Date | Date on which the loan agreement was signed |
Collateral information | String | Information about any collateral used to secure the loan (if applicable) |
Repayment terms | String | Terms of repayment for the loan |
Loan Repayment
Attribute | Data Type | Description |
---|---|---|
Loan Repayment ID | Integer | Primary key, unique identifier for the loan repayment |
Loan Agreement ID | Integer | Foreign key, reference to the loan agreement for which the payment is made |
Payment amount | Decimal | Amount of the payment |
Payment date | Date | Date on which the payment was made |
Balance | Decimal | Remaining balance on the loan after the payment |
This tabular format provides a clear and concise representation of the data model for the personal loan use case, making it easier to understand and manage the data.
Test #6
Diagramme de classe UML d'un prêt bancaire
Question :
"this is perfect, I would like to depict the relationships in a plantuml diagram, can you give me the code to do this"
Après détection d'une erreur de syntaxe dans PlantUML :
"there is a syntax error about class Loan Application, I think there is no space in the class name"
Réponse :
I apologize, you're correct. Here's the corrected PlantUML code:
@startuml
title Personal Loan Data Model Relationships
class Customer {
+ CustomerID: Integer
+ Name: String
+ Address: String
+ PhoneNumber: String
+ Email: String
+ DateOfBirth: Date
+ SocialSecurityNumber: String
}
class LoanApplication {
+ LoanApplicationID: Integer
+ CustomerID: Integer
+ LoanAmount: Decimal
+ LoanPurpose: String
+ Status: String
+ DateSubmitted: Date
}
class LoanOffer {
+ LoanOfferID: Integer
+ LoanApplicationID: Integer
+ InterestRate: Decimal
+ MonthlyPaymentAmount: Decimal
+ RepaymentPeriod: Integer
+ DateOffered: Date
}
class LoanAgreement {
+ LoanAgreementID: Integer
+ LoanOfferID: Integer
+ DateSigned: Date
+ CollateralInformation: String
+ RepaymentTerms: String
}
class LoanRepayment {
+ LoanRepaymentID: Integer
+ LoanAgreementID: Integer
+ PaymentAmount: Decimal
+ PaymentDate: Date
+ Balance: Decimal
}
Customer "1" -- "1..*" LoanApplication
LoanApplication "1" -- "1" LoanOffer
LoanOffer "1" -- "1" LoanAgreement
LoanAgreement "1" -- "1..*" LoanRepayment
@enduml
Test #7
Diagramme de séquence UML pour le prêt bancaire
Question :
"How would a client asking for a bank loan impact the classes mentioned above, I would like to depict this as a sequence diagram. Can you help describe the diagram in code for plantuml"
Réponse :
Certainly! Here's a PlantUML sequence diagram that depicts the interaction between a client and the classes in the personal loan use case when the client applies for a loan:
@startuml
title Personal Loan Application Sequence Diagram
participant Customer
participant LoanApplication
participant LoanOffer
participant LoanAgreement
Customer -> LoanApplication: Submit Loan Application
Note right of LoanApplication: LoanApplication\nvalidates the application
LoanApplication -> LoanOffer: Generate Loan Offer
Note right of LoanOffer: LoanOffer\ncalculates loan terms and conditions
LoanOffer -> Customer: Present Loan Offer
Note right of Customer: Customer\nreviews and accepts loan offer
Customer -> LoanAgreement: Sign Loan Agreement
Note right of LoanAgreement: LoanAgreement\nrecords loan agreement details
@enduml
This diagram depicts the interactions between the customer, the LoanApplication class, the LoanOffer class, and the LoanAgreement class when a client applies for a personal loan. The customer submits a loan application to the LoanApplication class, which validates the application. The LoanApplication class then generates a loan offer by calculating loan terms and conditions and presenting the offer to the customer. If the customer accepts the loan offer, they sign the loan agreement, which is recorded by the LoanAgreement class.
Test #8
Diagramme états/transitions UML pour le prêt bancaire
Question :
"Will the loan have states like new, closed, active inactive, cancelled, etc ? I would like to depict the states in a state diagram using plantuml. Can you help describe the diagram in code for plantuml"
Réponse :
@startuml
title Personal Loan State Diagram
[*] --> New
[*] --> Active : Loan Agreement Signed
New --> Cancelled : Loan Application Cancelled
Active --> Inactive : Loan Repayment Completed
Active --> Closed : Loan Agreement Terminated
Inactive --> Active : Loan Repayment Resumed
Closed --> Cancelled : Loan Agreement Cancelled
@enduml
Test #9
Mind map pour un prêt bancaire
Question :
"Let's start by creating a simple MindMap on the topic of Bank Loan
Can you give the mindmap in PlantUML format. Keep it structured from the core central topic branching out to other domains and sub-domains. Let's go to 5 levels to begin with. Add the start and end mindmap tags and keep it expanding on one side for now"
Remarque : au 1er essai ChatGPT nous dit que les diagrammes de mind map n'existent pas dans PlantUML.
Nous lui donnons alors l'exemple fourni dans la documentation de PlantUML.
Réponse :
I apologize for the earlier confusion. You are correct, PlantUML does support mind map diagrams. Here's an example of a simple mind map for the topic of "Bank Loan":
@startmindmap
* Bank Loan
** Loan Types
*** Personal Loan
*** Home Loan
*** Car Loan
*** Education Loan
*** Business Loan
** Loan Requirements
*** Proof of Income
*** Credit History
*** Collateral
*** Loan Application
** Loan Approval Process
*** Application Review
*** Credit Check
*** Risk Assessment
*** Approval Decision
** Loan Repayment
*** Repayment Terms
*** Interest Rate
*** Penalty for Default
*** Loan Refinancing
@endmindmap
This mind map starts with the central topic of "Bank Loan" and branches out to different loan types, loan requirements, the loan approval process, and loan repayment. Each sub-topic is indented and connected to the central topic.
Test #10
Un pattern ArchiMate : Strategic Value Map View
Question :
"Like the previous plantuml diagram, can you give me the plantuml code for the Strategic Value Map View ?"
Réponse :
Here is a sample PlantUML code for the Strategic Value Map View pattern in ArchiMate:
@startuml
skinparam rectangle<<strategy>> {
roundCorner 25
}
sprite $goal jar:archimate/goal
sprite $businessActor jar:archimate/business-actor
rectangle "Improve Loan Processing Efficiency" as ILPE <<$goal>><<strategy>> #Business
rectangle "Satisfy Customer Needs" as SCN <<$goal>><<strategy>> #Business
rectangle "Maximize Profit" as MP <<$goal>><<strategy>> #Business
rectangle "Customer" as C <<$businessActor>> #Business
ILPE *-down-> SCN
SCN *-down-> MP
C -- ILPE
legend left
Example of a Strategic Value Map view pattern in ArchiMate.
See
<$goal> : goal
<$businessActor> : business actor
endlegend
@enduml
Test #11
Business Model Canvas View
Question :
"Like the previous plantuml diagram, can you give me the plantuml code for the Business Model Canvas View ?"
Réponse :
Unfortunately, PlantUML does not have built-in support for creating a Business Model Canvas view. You may need to find a plugin or create your own custom shapes to represent the elements of the Business Model Canvas in PlantUML.
Test #12
Plus on donne d'informations à ChatGPT, meilleure sera la réponse. Exemple d'une librairie en ligne.
Question :
Give me the code for PlantUML corresponding of a class diagram for an online library with Author, Book, User, ShoppingCartLine, ShippingCart, PurchaseOrder and Status. Don't forget the multiplicity. Author wrote 0 or several Book and a Book is written by 0 or several Author. A User is an aggragate of 0 or several ShoppingCart which is an aggragate of 0 or several ShoppingCartLine which is linked at a Book. A PurchaseOrder is linked at one User and one ShoppingCart. The Status are pending and shipped.
Réponse :
class Author {
+writtenBooks(): Book[]
}
class Book {
+writtenByAuthors(): Author[]
+belongsToShoppingCartLine(): ShoppingCartLine[]
}
class User {
+hasShoppingCarts(): ShoppingCart[]
+hasPurchaseOrders(): PurchaseOrder[]
}
class ShoppingCartLine {
+belongsToShoppingCart(): ShoppingCart
+linkedToBook(): Book
}
class ShoppingCart {
+belongsToUser(): User
+containsShoppingCartLines(): ShoppingCartLine[]
+hasPurchaseOrder(): PurchaseOrder
}
class PurchaseOrder {
+belongsToUser(): User
+belongsToShoppingCart(): ShoppingCart
+hasStatus(): Status
}
class Status {
+pending
+shipped
}
Author "0..*" -- "0..*" Book
User -- "0..*" ShoppingCart
ShoppingCart -- "0..*" ShoppingCartLine
ShoppingCartLine -- Book
PurchaseOrder -- User
PurchaseOrder -- ShoppingCart
Test #13
Qu’en est-il pour du code plus verbeux comme XMI représentant un processus BPMN ?
Ouvrir le code avec : https://bpmn.io/
Question :
Write BPMN code for a pizza command
Réponse :
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="11.3.1">
<bpmn:process id="Process_1" isExecutable="false">
<bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:task id="Task_1" name="Receive Pizza Order">
<bpmn:incoming>Flow_1</bpmn:incoming>
<bpmn:outgoing>Flow_2</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_2" name="Prepare Pizza">
<bpmn:incoming>Flow_2</bpmn:incoming>
<bpmn:outgoing>Flow_3</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_3" name="Bake Pizza">
<bpmn:incoming>Flow_3</bpmn:incoming>
<bpmn:outgoing>Flow_4</bpmn:outgoing>
</bpmn:task>
<bpmn:task id="Task_4" name="Deliver Pizza">
<bpmn:incoming>Flow_4</bpmn:incoming>
<bpmn:outgoing>Flow_5</bpmn:outgoing>
</bpmn:task>
<bpmn:endEvent id="EndEvent_1">
<bpmn:incoming>Flow_5</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_1" targetRef="Task_1" />
<bpmn:sequenceFlow id="Flow_2" sourceRef="Task_1" targetRef="Task_2" />
<bpmn:sequenceFlow id="Flow_3" sourceRef="Task_2" targetRef="Task_3" />
<bpmn:sequenceFlow id="Flow_4" sourceRef="Task_3" targetRef="Task_4" />
<bpmn:sequenceFlow id="Flow_5" sourceRef="Task_4" targetRef="EndEvent_1" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="173" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="157" y="142" width="68" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_1_di" bpmnElement="Task_1">
<dc:Bounds x="259" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_2_di" bpmnElement="Task_2">
<dc:Bounds x="443" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_3_di" bpmnElement="Task_3">
<dc:Bounds x="632" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Task_4_di" bpmnElement="Task_4">
<dc:Bounds x="825" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_EndEvent_2" bpmnElement="EndEvent_1">
<dc:Bounds x="1018" y="102" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1002" y="142" width="68" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1">
<di:waypoint x="209" y="120" />
<di:waypoint x="259" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2">
<di:waypoint x="359" y="120" />
<di:waypoint x="443" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_3_di" bpmnElement="Flow_3">
<di:waypoint x="543" y="120" />
<di:waypoint x="632" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_4_di" bpmnElement="Flow_4">
<di:waypoint x="732" y="120" />
<di:waypoint x="825" y="120" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_5_di" bpmnElement="Flow_5">
<di:waypoint x="925" y="120" />
<di:waypoint x="1018" y="120" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>
Annexe 2
Les principaux concurrents à ChatGPT
en attendant la réponse de Google
Compléments de lecture
- Architecture d'Entreprise augmentée, quelle influence de l’Intelligence Artificielle sur la gouvernance et la stratégie ?
- Le rôle de la prospective pour une entreprise innovante et résiliente
- Méta-physique ? Non, méta-modélisation !
- Le meilleur outil pour transformer, dériver, parcourir, requêter sur des modèles afin de mettre en œuvre MDA (Model Driven Architecture)
- Transformation de modèles et Ingénierie Dirigées par les Modèles (IDM ou MDE Model Driven Engineering ou bien encore MDA Model Driven Architecture)
- Pour trouver les services logiques, les modèles sémantiques et pragmatiques tu dériveras. (« Praxeme 4ème commandement extrait de la bible de l’aspect logique »).
- Exemple de méthode d’Architecture d’Entreprise d’un grand cabinet de conseil : EAM Enterprise Architecture Management de McKinsey L’Enterprise Architecture Management (EAM) de McKinsey est une méthode pour gérer
- Les meilleurs articles sur l’architecture d’entreprise, ses méthodes et ses outils, découvrez quels sont les articles les plus lus de notre blog
- TOGAF 10, quelle méthodologie d’architecture de sécurité et de gestion des risques ?
- Architecture Hexagonale, exemple de mise en pratique de la méthode DDD Domain Driven Design
- Les couches de l'Architecture Microservices et la méthode de conception DDD (Domain Driven Design)
- Orchestration des micro-services avec BPMN
- Agilité logicielle : quelle solution pour diminuer le couplage entre sous-systèmes et obtenir une architecture logicielle agile ?
Top 5 2023 des outils gratuits ou open source pour l’Architecture d'Entreprise et la modélisation du Système d’Information
Existe-t-il des outils idoines et en plus gratuits pour la mise en œuvre efficiente de l’Architecture d’Entreprise (AE) ? Voici notre classement des 5 meilleurs, d’après nos tests complets réalisés en 2022.
L’outil idéal serait un croisement de Modelio, Visual Paradigm, ADOIT:CE, Archi et GenMyModel.
Pas de leader parmi les outils gratuits d’AE
Dans le domaine de l’IA, nous voyons apparaître des disrupteurs gratuits comme ChatGPT d’OpenAI qui pénètre le marché, le révolutionne et bouleverse un grand nombre de domaines comme l’ingénierie logicielle, les productions de contenus textuels, la prospective, les arts, etc.
En est-il de même dans le monde de l’Architecture d’Entreprise (AE) ? Des outils open source comme Modelio, Visual Paradigm, ADOIT:CE ou encore Archi peuvent-ils couvrir tous les aspects de l’AE ? Peuvent-ils répondre aux exigences des urbanistes de SI, des architectes logiciels, des business analysts et autres consultants en IT ?
Le modèle open source est un facteur primordial d’innovation permettant la démocratisation et le partage de connaissances. Il offre au monde éducatif, universités, écoles d’ingénieurs ou de reconversion, professeurs, étudiants souvent sans grands moyens, la possibilité de sortir d’un monde livresque, de mettre en pratique des concepts théoriques et d’accéder à des études de cas tirées de retours d’expérience de projets réels.
Modsars 2023, le palmarès d’urbanisation-si.com
des outils gratuits de modélisation
2 outils français dans le classement cette année.
1ère place : Modelio
Modelio, le seul outil open source fonctionnant sur Windows, Linux, Mac OS, supportant ArchiMate, TOGAF, BPMN, UML, SysML, MDA et offrant, pour tous ces artefacts de modélisation, un référentiel commun assurant la traçabilité depuis la stratégie jusqu’à la couche technologique. Modelio offre une étude de cas exhaustive illustrant l’architecture d’une agence de voyages fictive. L'éditeur Softeam, société de conseils et de services, est français, c'est une filiale de Docaposte.
2ème place : Visual Paradigm (online)
Visual Paradigm Online : sa gratuité, sa facilité d’installation en mode SaaS ne demandant aucune connaissance technique, la possibilité de partager son écran à des coéquipiers et les nombreux exemples ArchiMate, BPMN, UML, prêts à être adaptés, font de Visual Paradigm un excellent outil pédagogique pour mettre en pratique l’art de la modélisation.
3ème place : ADOIT:CE
ADOIT:CE : rien à installer, toujours la dernière version en ligne, interface utilisateur relativement simple, support complet d’ArchiMate, 35 vues différentes proposées, nombreuses fonctionnalités, gestion de portefeuille d'application, Master Data Management, un contenu de démonstration de l’architecture d’une banque fictive, etc.
4ème place : Archi (archimatetool)
Archi (archimatetool) : convient parfaitement au consultant pour des missions ponctuelles. L'absence de mode collaboratif finalisé, nécessitant des installations locales aussi simples soient-elles, prive Archi de pouvoir être utilisé dans une équipe d'architectes d'entreprise.
Alors que Modelio, son concurrent direct comme outil open source de modélisation pour l’Architecture d’Entreprise, est en français, supporte en plus d’ArchiMate, BPMN, UML, SysML, MDA avec un référentiel commun et fourni une étude de cas pédagogique, Archi n’intègre qu’ArchiMate et donc n’est pas archi complet.
5ème place : GenMyModel
GenMyModel est une plate-forme française de conception logicielle basée sur les normes UML pour la modélisation de systèmes, BPMN pour les processus d'entreprise, DMN pour les règles métier et AchiMate pour l’Architecture d’Entreprise. Complètement accessible dans le cloud en mode SaaS, il fournit des générateurs de code intégrés pour Java, SQL, Spring…
A quoi reconnaît-on un bon outil
d’Architecture d’Entreprise ?
Les outils EA aident à imaginer, modéliser et planifier l'avenir de l'entreprise, avec des fonctionnalités permettant de faire évoluer en permanence les modèles commerciaux et opérationnels. Les responsables de l'architecture d'entreprise et de l'innovation technologique doivent sélectionner des outils EA qui soutiennent les objectifs de transformation, de modernisation et d'innovation à long terme.
Voici les principales fonctionnalités que doit posséder l'outil idéal pour l'Architecture d'Entreprise et l'Urbanisation du SI.
Référentiel central et collaboratif
Un référentiel central et collaboratif permet de gérer l'ensemble des objets et métadonnées sur les artefacts dont une entreprise se soucie, il offre une vue partagée du SI, comprise de tous, et permet d'anticiper l’évolutivité des services métier de l’entreprise.
Il doit intégrer la gouvernance, la gestion du cycle de vie des objets, le versioning, les accès, les typologies, les cartographies, les modèles et artefacts de modélisation, les relations et vues métier associées.
Contrôle de l'alignement du SI avec le métier
Il s'agit de mettre en œuvre un support à un alignement du SI avec un métier en constante évolution, facilitant la synergie, le partage et la collaboration.
Gestion du changement
Permettre d’examiner à la fois le besoin et l'impact du changement.
Métrique de couplage entre les écosystèmes
Capturer les interrelations et les interdépendances au sein et entre un écosystème de partenaires, de modèles d'exploitation, de capacités, de personnes, de processus, d'informations, d'applications et de technologies.
Socle d’architecture d’entreprise exhaustif, supportant les standards du marché
Disposer d’un socle d’architecture d’entreprise exhaustif et ouvert supportant les standards du marché (TOGAF, ArchiMate, BPMN, UML…).
Le support de TOGAF doit comprendre une bibliothèque de méthodes décrivant l’ensemble de l’ADM (Architecture Development Method) avec les différentes phases, les entrées, les sorties, les livrables, les rôles…
La modélisation doit structurer les relations entre les entités, telles que les stratégies commerciales, les objectifs, les buts, les contraintes, les capacités, les personnalités, les parcours des clients, les activités, les processus, les flux de valeur, les politiques, les modèles de décision, les métriques, les applications, les technologies, les feuilles de route, les projets et les programmes…
Approche capacitaire
Gérer les capacités métier afin de répondre aux besoins et enjeux du business, dans un contexte numérique. Cette approche capacitaire se concentre avant tout sur les besoins des métiers et permet aux équipes d’architecture de coller au plus près à la stratégie de l’entreprise.
Fonctions d’analyse et de reporting
Posséder des fonctions d’analyse et de reporting nécessaire à l’optimisation du patrimoine applicatif de l’entreprise, en lien avec la cartographie applicative et les méthodes d’urbanisation du SI.
Cloud et modélisation
Supporter les dernières méthodes d’architecture logicielle, le cloud, la modélisation systémique, la modélisation complexes comme les systèmes de systèmes.
Portfolio d'application
Gérer le portefeuille applicatif, les ressources, les projets, la gouvernance, les risques et la mise en conformité des opérations.
Vérification de la conformité et simulation des diagrammes
Intégrer la validation des diagrammes, avec la description détaillée des erreurs et des propositions de solutions pédagogiques.
Aides à la compréhension des impacts liés aux solutions
Présenter les informations sous forme de tableaux de bord, de cartes thermiques, de Sketch View, de Business Model Canvas, de modèles et de scénarios. Cela aide à comprendre et à évaluer les impacts associés aux décisions et aux solutions proposées.
Utilisabilité
Être convivial, facile d'utilisation permettant la prise en charge de différentes catégories d'utilisateurs. Outre les architectes d'entreprise, cela inclut les utilisateurs de n'importe où dans l'entreprise, les analystes, les utilisateurs métier, les architectes logiciels, les analystes stratégiques et les chercheurs opérationnels.
Administration des accès et sécurité
Gérer l’administration pour prendre en charge la sécurité de l'outil EA, ainsi que la configuration de différentes classes d'utilisateurs, leurs droits d'accès et l'alignement des fonctionnalités. Cela implique également de contrôler l'accès aux informations stockées dans le référentiel.
Extensibilité
Être extensible avec la possibilité d'étendre le métamodèle de l'outil EA via la définition de nouveaux concepts de modélisation et de types de relations, jusqu'à de nouvelles représentations graphiques et l'application de règles spécifiques au domaine.
Exportation / Importation des données
Exporter et importer les données vers et depuis d'autres produits, permettant à l'outil EA d'être une plaque tournante réunissant d'autres outils communs dans un écosystème technologique d’entreprise.
Management de l'innovation
Gérer l'innovation en soutenant la création et le suivi des initiatives de changement. Cela inclut le soutien à l'idéation, la détection des tendances et l'engagement de tous les acteurs.
Qu’en pense ChatGPT, la star des IA ?
Notre question
Nous avons posé la question suivante à ChatGPT, l’IA conversationnelle d’OpenAI :
" Top 5 des outils gratuits complets pour l'Architecture d'Entreprise ? "
Sa réponse
Enterprise Architect : un outil de modélisation d'entreprise complet qui prend en charge une variété de méthodologies et de standards, y compris ArchiMate, UML, BPMN, SysML, et les architectures d'entreprise. Il inclut également des fonctionnalités de gestion de projet, de gestion de portefeuille et de gestion de la conformité.
BizzDesign Architect : un outil d'architecture d'entreprise complet qui permet de créer des modèles visuels de processus, de données et de systèmes, ainsi que de gérer les aspects de la gouvernance et de la conformité de l'architecture d'entreprise.
Sparx Systems Enterprise Architect : un outil de modélisation d'entreprise complet qui prend en charge une variété de méthodologies et de standards, y compris ArchiMate, UML, BPMN, SysML, et les architectures d'entreprise. Il inclut également des fonctionnalités de gestion de projet, de gestion de portefeuille et de gestion de la conformité.
MagicDraw : un outil de modélisation unifiée qui prend en charge UML, BPMN, SysML, et les architectures d'entreprise, avec des fonctionnalités de gestion de projet, de gestion de portefeuille et de conformité pour aider les utilisateurs à créer des modèles visuels pour les processus, les systèmes et les données.
Visual Paradigm: un outil de modélisation d'entreprise complet qui prend en charge UML, BPMN, SysML, ArchiMate et les diagrammes de cas d'utilisation pour créer des modèles d'architecture d'entreprise, inclut également des fonctionnalités de gestion de projet, de gestion de portefeuille et de conformité pour aider les utilisateurs à gérer les aspects de la gouvernance et de la conformité de l'architecture d'entreprise.
Il est important de noter que la meilleure solution dépendra des besoins spécifiques de l'entreprise et de son niveau de maturité en matière d'architecture d'entreprise. Il est donc important de faire des recherches et des essais pour choisir l'outil qui convient le mieux à votre entreprise.
Notre avis sur la réponse de ChatGPT
Pour ChatGPT Enterprise Architect et Sparx Systems Enterprise Architect sont 2 outils différents, alors qu'il s'agit du même outil, bien entendu.
Malgré que l'on ait bien précisé "gratuits", ChatGPT a cité 4 outils payants sur 5.
Enterprise Architect ne possède aucune version gratuite.
BizzDesign Architect est payant, il n’y a aucune version gratuite, même limitée.
Magic Draw est payant, on peut télécharger une version d’essai limitée dans le temps.
Le seul outil gratuit étant Visual Paradigm, qui arrive en 2ème position dans notre TOP 5.
ChatGPT a été entraîné avec des milliards de données prises sur internet (web scraping). Est-il possible que certaines de ces données soient obsolètes ?
Conclusion
L’outil idéal serait un croisement de :
- Modelio pour la fonctionnalité d’un référentiel commun d’Entreprise, le support d’ArchiMate, TOGAF, BPMN, UML, SysML, MDA, la validation des modèles, la traçabilité des objets du référentiel assurant l’alignement du SI sur le métier, la génération de rapports, le support d’un langage de script permettant l’automatisation.
- Visual Paradigm pour ne nécessiter aucune installation en local, être en mode Cloud, le mode collaboratif à la Google.
- ADOIT:CE pour le cas complet de démonstration d’une banque, la gestion du portfolio d’applications, le Master Data Management, les matrices de traçabilité, les visuels.
- Archi pour la Sketch View, les conseils et la documentation sur ArchiMate.
- GenMyModel pour DMN (modélisation de règles métier), pour les générateurs de code intégrés pour Java, SQL, Spring…
L’outil gratuit open source d’AE capable de disrupter le marché n’est donc pas encore né.
Si les outils précédents conviennent parfaitement au monde de l’éducation et aux PME, les très grandes organisations aux moyens plus conséquents se tournent volontiers vers les logiciels commerciaux comme MEGA, BOC Group, LeanIX, ...
Etes-vous certain que cet article a été rédigé par un humain et non pas par ChatGPT ?
|
Rhona Maxwel @rhona_helena |
"L'intelligence artificielle est la prochaine grande révolution de notre époque et les modèles de traitement du langage comme ChatGPT en sont un exemple évident."
ChatGPT
"Il est consolant de constater que la dysharmonie de ce monde ne semble être que numérique."
Franz Kafka
Annexe : liste de nos essais
Evaluations des outils gratuits/open source
Nous avons pris le parti dans cette série de tests, d’évaluer uniquement des outils gratuits-open source ou proposant une version d’évaluation ne nécessitant pas de sortir sa carte de crédit ou la visite d’un commercial pour obtenir une licence de prêt.
- Modelio
- Visual Paradigm (online)
- ADOIT:CE (BOC Group) et ADOIT:CE (compléments d’information)
- Archi (archimatetool)
- GenMyModel
- Camunda (les tests spécifiques sont à venir, nous l'indiquons ici, car nous l'avons utilisé maintes fois comme illustration d'articles et au cours de divers projets)
- Papyrus
- Eclipse Modeling Tools
- diagrams.net ou draw.io
- Texte vers UML et autres outils de "diagrammes en tant que code"
- Sirius (Obéo) :
- Améliorations et notions avancées Eclipse Sirius, suite et fin de notre saga : comment concevoir son propre outil de modélisation DMN ? [4/4]
- Ingénierie Dirigée par les Modèles : fini Eclipse GMF, vive Eclipse Sirius ( didacticiel / tutoriel Sirius)
- Didacticiel ( tutoriel ) Eclipse Sirius ( Obeo Designer Community ) : le digne successeur de GMF le framework le plus complexe du monde !
- Didacticiel ( tutoriel ) Eclipse Sirius ( Obeo Designer Community ) : on peaufine l'éditeur de diagramme
Les outils payants, mais abordables, et que nous aimons bien
- Enterprise Architect Sparx Systems :
- WinDesign (outil français, incluant une étude de cas exhaustive illustrant l’architecture d’une compagnie d'assurance fictive.)
diagrams.net ou draw.io : outil en français gratuit pour dessiner des diagrammes ; mais quel est véritablement son spectre d’utilisation ? La réponse dans notre test.
diagrams.net ne demande rien, aucune inscription, mail ou carte de crédit. Dès que l’on clique sur “Créer un nouveau diagramme”, on découvre une liste impressionnante de types de diagrammes : Entreprise, Graphiques, Cloud, Ingénierie, Organigramme, Cartes, Réseau, UML, etc. Que demander de plus ?
Demandons-nous d'abord ce qu’est un bon outil
pour l'architecte d’entreprise ?
Prenons l’outil numéro 1 Gartner dans la catégorie “Choix des clients Gartner® Peer Insights™” de cette année, pour les outils d'architecture d'entreprise (avec une note globale de 4,7 étoiles sur 5) : la plate-forme HOPEX de MEGA International.
Cette plate-forme web dispose d’un socle d’architecture d’entreprise exhaustif et ouvert supportant les standards du marché (TOGAF, ArchiMate, NAF, DoDAF, UML…). Le support de TOGAF (voir nos articles dans la catégorie TOGAF) comprend une bibliothèque de méthode décrivant l’ensemble de l’ADM (Architecture Development Method) avec les différentes phases, les entrées, les sorties, les livrables, les rôles…
L’architecte d’entreprise gagne un temps précieux, car il lui suffit de partir d’un modèle standard qu’il adapte au contexte. Une gestion des droits facilite la collaboration, chaque partie prenante accédant à ses vues en fonction de ses missions.
Des outils de demande de changement et de suivi de validation assurent la conduite opérationnelle des projets d’architecture en mode collaboratif.
D’autre part, MEGA propose des fonctions d’analyse et de reporting nécessaire à l’optimisation du patrimoine applicatif de l’entreprise, en lien avec la cartographie applicative et les méthodes d’urbanisation du SI.
MEGA intègre les derniers paradigmes de l’architecture d’entreprise comme les approches capacitaires, les dernières méthodes d’architecture logicielle, le cloud, la modélisation systémique, la modélisation complexes comme les systèmes de systèmes.
Les référentiels sont interopérables, par exemple les informations gérées dans une démarche d’optimisation de processus de type Lean Six Sigma peuvent être réintégrées dans une démarche d’architecture.
Pour la mise en œuvre d’une transformation numérique, l'architecte d’entreprise dispose d'un ensemble d’outils comme la gestion de portefeuille applicatif, de ressources et de projets, mais aussi de gouvernance, de gestion de risques et de mise en conformité des opérations.
Et en ce qui concerne diagrams.net ?
Absolument rien de tout cela : juste un très bon outil de dessin, couvrant la plupart des normes et standards du spectre de la schématisation de systèmes.
Voici une liste à la Prévert des rendus de la plupart des types de diagrammes :
Pour les architectes d'entreprises : ArchiMate
Exemple de diagramme ArchiMate
Pour les experts métier : BPMN
Rendu des évènements BPMN
Pour les concepteurs et les développeurs : UML
UML, exemple de diagramme de séquence
UML, exemple de diagramme d’activité
Pour les spécifications des systèmes industriels complexes : SysML
SysML, exemple de diagramme d'exigence
Pour les directions opérationnelles : Ishikawa
Exemple de cartographie de dépendances d'objectifs
Pour la prise de notes rapide : Mind Mapping
Exemple de cartes mentales
Pour les infographistes et les développeurs frontend : Maquette d'écran
Template montrant les possibilités de maquettage d'écran
Pour les chefs de projets : Gantt et PERT
Exemple de diagramme de Gantt
Exemple de diagramme PERT
Pour les concepteurs et les développeurs : Git
Exemple de représentation des différentes versions d'une application
suivi par le SCM (Source Control Management) Git
Pour le DevOps : Cloud AWS
Les fonctionnalités d'un système dans le cloud Amazon Web services
Pour les architectes logiciel : Architecture Micro-Services
Architecture Micro-Services vue par IBM
Conclusion
Son mode cloud, sa version française, son entière gratuité et l’accès instantané aux diagrammes ne demandant aucune authentification en font un excellent outil pédagogique pour illustrer les types de diagrammes utilisés par les architectes d’entreprise, les chefs de projet, les architectes logiciels, les concepteurs/développeurs, les MOA…
Vraiment dommage que diagrams.net ne possède pas un mode collaboratif comme Visual Paradigm ou une exhaustivité et une expertise dans les normes de modélisation de système comme GenMyModel.
diagrams.net, comme tous les outils de dessin, ne possède pas de référentiel d'objets d'architecture, pour réutiliser les mêmes objets dans plusieurs diagrammes. Avec la version locale appelée draw.io, il sera toutefois possible de copier-coller des objets d'un diagramme vers un autre. Malgré tout, diagrams.net reste une bonne alternative gratuite à d’autres standards payant comme Visio.
Cet outil conviendra donc parfaitement aux étudiants, voire aux consultants pressés.
Note : 2,5/5
Nous regrettons :
- pas de mode collaboratif
- l’ergonomie moindre que celle de la concurrence
- pas de mise à jour semi-automatique des diagrammes
- bibliothèque de symboles limitée
- pas de traçabilité pour les mesures d’impact
- pas de validation des diagrammes
- pas d’audit
- pas de métamodèle
Nous aimons :
+ pas besoin d’authentification
+ la simplicité d’utilisation
+ le nombre de points d'ancrage de connecteurs sur une forme
+ la sauvegarde automatique des diagrammes
+ le mode Cloud
+ les exemples ArchiMate, BPMN, UML...
+ les exemples de cartographies d’architecture, comme celle des micro-services
+ connecteur draw.io gratuit pour Word, Powerpoint et Excel
|
Rhona Maxwel @rhona_helena |
“Chrétien, on aime un Dieu capable de réduire le monde à lui-même au point de le créer ; (...) astronome, on quête l’origine de l’Univers au point de déduire son évolution du Big Bang ; mathématicien, on cherche les axiomes qui contiendraient tout le reste comme corolaires et conséquences ; philosophe, on espère trouver le fondement radical à partir duquel tout le reste n’est que phénomènes ; intellectuel, on ramène à la vie de la pensée la simple pratique et les simples opinions du vulgaire”.
Bruno Latour
Compléments de lecture
- Texte vers UML et autres outils de "diagrammes en tant que code" - Le moyen le plus rapide de créer vos modèles ?
- GenMyModel est un outil de modélisation en ligne, supportant ArchiMate, BPMN, UML, DMN et gratuit, mais convient-il à l’architecte d’entreprise ?
- Visual Paradigm : l’eldorado du consultant en quête de présentations dorées, mais est-il un bon outil de modélisation pour l’architecte d’entreprise, voici notre test
- Archi (archimatetool) : essai et analyse de cet outil ArchiMate français gratuit sous Windows, Linux et Mac OS
- L’Architecture Micro-Services expliquée à ma fille
- Architecture Hexagonale, exemple de mise en pratique de la méthode DDD Domain Driven Design
- Les couches de l'Architecture Microservices et la méthode de conception DDD (Domain Driven Design
- ADOIT:CE pour la gestion de l’Architecture d’Entreprise
- Essai et évaluation de Modelio : est-il un bon outil de modélisation ?
- WinDesign : essai et analyse de la version d’évaluation, ce logiciel français est-il un bon outil pour l’Architecture d’Entreprise ?
Texte vers UML et autres outils de "diagrammes en tant que code" - Le moyen le plus rapide de créer vos modèles ?
Que valent les outils de modélisation "diagrams as code" ?
Écrire textuellement un modèle, puis générer les diagrammes correspondant en UML, BPMN, ArchiMate, etc. : rêve ou réalité ?
Et hop, un diagramme de classe UML dont le texte peut être mis sur GitHub (réalisé avec yuml).
De quoi parlons-nous ?
Au lieu de dessiner des diagrammes dans un environnement graphique, on écrit quelques lignes (en utilisant par exemple un langage de balisage) dans un fichier texte brut. Un générateur le convertit en un fichier image.
Un outil de modélisation textuelle prend donc en charge l'utilisation d’un langage à base d’une syntaxe comportant des mots clés, pour décrire des modèles logiciels et restitue automatiquement le diagramme graphique correspondant, à partir de cette description écrite.
Ce mode de fonctionnement se fait en round-trip, c’est à dire qu’une fois le diagramme généré, le modélisateur a la possibilité d’apporter des modifications par l’intermédiaire d’un éditeur WYSIWYG, qui sont retraduites automatiquement en texte.
Ces outils de modélisation textuelle ne se concentrent pas uniquement sur UML, mais aussi sur BPMN, ArchiMate, etc.
D’autres appellations leur sont attribuées, comme diagrams as code ou outils low-code.
Quelle est leur place sur le marché des outils de modélisation ?
Cette catégorie d'outils textuels serait l'un des segments à la croissance la plus rapide du marché des modeleurs UML, les éditeurs ne s’y trompent pas : il suffit de regarder l’offre pléthorique ; nous en avons recensé plusieurs dizaines et en avons retenu 5, répertoriés en annexe de cet article.
Dans ses nombreux essais d’outils de modélisation, urbanisation-si.com a toujours systématisé l’UX/UI, l’efficience de l’ergonomie et les fonctionnalités proposées.
Avoir tous les artefacts de notations sous les yeux à portée de souris, des templates sur étagère, des conseils en temps réel permettant en quelques clics de cartographier un système, apportent un réel avantage sur les plans de l’utilisabilité et la rapidité d’appropriation des procédures de fonctionnement.
Alors, quelles sont les raisons qui pousseraient à décrire textuellement, puis à générer graphiquement, les modèles ?
Les défauts inhérents aux éditeurs WYSIWYG
Un premier problème concerne l'incohérence des éléments dont les détails divergent selon les vues.
Soit le diagramme 1, par exemple un diagramme de classes, et soit le diagramme 2, par exemple un diagramme de séquence. Que se passe-t-il si l'on copie/colle certains éléments du diagramme 1 dans le diagramme 2 et si par la suite on modifie un élément (par exemple, le nom d'une classe) présent dans les deux diagrammes uniquement dans l'un des diagrammes ? Avec de nombreux outils graphiques, on risque de se retrouver avec des vues incohérentes.
D’autre part, les modeleurs visuels UML (et autres styles) peuvent sérialiser les diagrammes en XMI (XML Metadata Interchange) conformément à la norme de l’OMG.
A moins d’être expert en XSD (XML Schema Definition), d’avoir lu les presque 1000 pages de la technical reference UML et lire couramment XMI, le traitement manuel de ce code généré est absolument rédhibitoire et à proscrire, compte tenu de sa complexité et de son énormité et ne peut être réservé qu’à des parsers spécialisés.
Pourquoi s’embêter à écrire, plutôt qu’à schématiser ?
Mais pourquoi les outils de conversion de texte en UML sont-ils si populaires ?
Qui n’a pas rêvé de pouvoir différencier toutes les versions d’un modèle ?
Le fait que les modèles UML soient stockés sous forme de texte simplifie leur intégration avec une variété d'outils comme les SCM (Source Control Management, les systèmes de gestion de versions).
Un des usages fréquents est de pouvoir comparer des modèles, de pouvoir gérer leur cycle de vie. Depuis que l'informatique existe, on sait comparer des fichiers texte bruts de manière extrêmement rapide et efficiente.
Tous les acteurs intéressés par la modélisation peuvent ainsi mieux comprendre les différences entre deux révisions de diagramme beaucoup plus rapidement que si l’on n'avait que des fichiers image, où il faudrait basculer sans arrêt entre deux versions. Cet avantage est particulièrement important pour les différentes cartographies des grandes organisations.
Outils de prédilection pour les ingénieurs d’études
Si cela est valable pour les architectes d’entreprise, il l’est aussi pour les concepteurs/développeurs qui utilisent des SCM dans leurs tâches quotidiennes : pour eux nulle nécessité d’acheter/installer des outils supplémentaires.
Ces profils sont souvent plus à l’aise avec des langages textuels qu’avec des notations visuelles. Par exemple, ils utilisent le format Markdown et les outils associés pour concevoir la documentation technique, plutôt que MS Word.
Ces aspects représentent un énorme coup de pouce pour l'adoption de ces outils.
Solution légère et efficiente
Avec les outils de modélisation en ligne, ils constituent l'option incontournable pour toutes les personnes à la recherche d'une solution légère pour dessiner des modèles. En effet, comme la plupart des outils graphiques, ils disposent d'un éditeur en ligne, ils constituent un jackpot pour les modélisateurs occasionnels.
Finies les heures perdues à la mise en forme
Les mises à jour ne doivent pas être un exercice frustrant de déplacement et de redimensionnement pour faire de la place à un nouvel artefact de modélisation. Qui n’a pas passé des heures à rendre son modèle lisible, à se casser la tête pour éviter les croisements entre les relations, à centrer les entités saillantes, à regrouper par domaine métier, à modifier l’échelle, à choisir les couleurs les plus parlantes…
Avec un peu de pratique, la création de diagrammes devient beaucoup plus efficace que l'utilisation d'éditeurs WYSIWYG.
La disposition des éléments du diagramme se fait automatiquement par l’application par le générateur de sa propre politique de mise en forme. De même, plus besoin de passer du temps sur le style manuel des nœuds, car cela peut maintenant être fait en utilisant un mécanisme semblable à une feuille de style, à un endroit central.
Mise en œuvre de l’architecture pilotée par les modèles grandement facilitée
La plupart du temps, les modèles sont cantonnés à un rôle documentaire, au lieu d'un rôle prépondérant dans le processus d'ingénierie logicielle, comme le postule l'architecture pilotée par les modèles MDE Model-Driven Engineering (IDM Ingénierie Dirigée par les Modèles) ou encore dans le monde des normes de l’OMG, MDA Model Driven Architecture. Dans ces cadres de pensée, tout peut être représenté sous forme de modèles, aussi bien les outils que les référentiels, les entités métier, la conception, le développement.
La transformation de modèle a pour objectif majeur la possibilité de spécifier les manières de produire plusieurs modèles cibles à partir d'un ensemble de modèles sources.
Techniquement, le moteur de transformation est grandement simplifié, car il est bien plus facile d’avoir en intrant un texte syntaxiquement simple et des règles qui seront appliquées pour générer le texte cible, que d'avoir un transformateur XSLT (eXtensible Stylesheet Language Transformations) qui doit traiter du XMI extrêmement verbeux.
Et l’envers du décor ?
Le problème central des outils les plus connus, tels que PlantUML ou Mermaid, est qu'ils peuvent toujours se retrouver avec des vues incohérentes. Pour contourner un peu le problème, il existe des mécanismes tels qu'une commande include <file>. Cela permet à un diagramme d'en inclure un autre, en réutilisant tous ou un sous-ensemble sélectionné de ses éléments.
Pourtant, lorsqu’on regarde de plus près la plupart des outils listés en annexe ci-dessous, les fonctionnalités, l'expressivité et la robustesse de ces outils sont plutôt limitées.
L’apprentissage d’un langage de balisage est nécessaire et implique un effort supplémentaire par rapport aux éditeurs graphiques.
La disposition automatique choisie par le générateur d'images n'est parfois pas optimale. Dans ce cas, on va passer plus de temps à apprendre les astuces de mise en page offertes par le langage de balisage, telles que les constructions de contraintes spéciales.
Conclusion
Toute documentation complète doit inclure des diagrammes, car les images aident souvent à transmettre des idées et des concepts, plus efficacement que le texte.
Cet article plaide en faveur de l'utilisation de diagrammes en texte pour faire de la création de diagrammes une expérience agréable pour les ingénieurs utilisant des SCM. Ces outils seront donc plus volontiers réservés comme outils de développement et à l'architecture logicielle.
Cependant, leur limite sera atteinte dès qu’il s’agira, en architecture d’entreprise, de concevoir des référentiels d’objets et d’assurer la traçabilité entre les cartographies.
Nous terminerons par une formule classique : comme toujours, le meilleur outil n’existe pas, il dépendra du contexte et de votre objectif.
|
Rhona Maxwel @rhona_helena |
“Tout ce qu’il faut pour faire un film, c’est une fille et un revolver.”
Jean-Luc Godard
Annexe : nos préférés
PlantUML
Caractéristiques
PlantUML est un outil open source permettant aux utilisateurs de créer des diagrammes à partir d'une description textuelle. PlantUML vous permet de dessiner à peu près n'importe quel diagramme architectural dont vous avez besoin lors de la conception d'un système. Outre les diagrammes UML, il prend en charge plusieurs autres formats liés au développement de logiciels (ArchiMate, BPMN, Gantt chart, etc.), ainsi que la visualisation de fichiers JSON et YAML.
PlantUML permet de dessiner rapidement des :
- diagrammes de séquence
- diagrammes de cas d'utilisation
- diagrammes de classes
- diagrammes d'objet
- diagrammes d'activité
- diagrammes de composant
- diagrammes de déploiement
- diagrammes d'états
- diagrammes de temps
Certains autres diagrammes (hors UML) sont aussi possibles:
- données au format JSON
- données au format YAML
- diagrammes ArchiMate
- diagrammes de Gantt
- diagrammes d'idées (mindmap)
- organigramme ou Work Breakdown Structure (WBS)
- notation mathématique avec AsciiMath ou JLaTeXMath
- diagrammes entité relation (ER/IE)
Exemple de code
@startuml
skinparam rectangle<<behavior>> {
roundCorner 25
}
sprite $bProcess jar:archimate/business-process
sprite $aService jar:archimate/application-service
sprite $aComponent jar:archimate/application-component
rectangle "Handle claim" as HC <<$bProcess>><<behavior>> #Business
rectangle "Capture Information" as CI <<$bProcess>><<behavior>> #Business
rectangle "Notify\nAdditional Stakeholders" as NAS <<$bProcess>><<behavior>> #Business
rectangle "Validate" as V <<$bProcess>><<behavior>> #Business
rectangle "Investigate" as I <<$bProcess>><<behavior>> #Business
rectangle "Pay" as P <<$bProcess>><<behavior>> #Business
HC *-down- CI
HC *-down- NAS
HC *-down- V
HC *-down- I
HC *-down- P
CI -right->> NAS
NAS -right->> V
V -right->> I
I -right->> P
rectangle "Scanning" as scanning <<$aService>><<behavior>> #Application
rectangle "Customer admnistration" as customerAdministration <<$aService>><<behavior>> #Application
rectangle "Claims admnistration" as claimsAdministration <<$aService>><<behavior>> #Application
rectangle Printing <<$aService>><<behavior>> #Application
rectangle Payment <<$aService>><<behavior>> #Application
scanning -up-> CI
customerAdministration -up-> CI
claimsAdministration -up-> NAS
claimsAdministration -up-> V
claimsAdministration -up-> I
Payment -up-> P
Printing -up-> V
Printing -up-> P
rectangle "Document\nManagement\nSystem" as DMS <<$aComponent>> #Application
rectangle "General\nCRM\nSystem" as CRM <<$aComponent>> #Application
rectangle "Home & Away\nPolicy\nAdministration" as HAPA <<$aComponent>> #Application
rectangle "Home & Away\nFinancial\nAdministration" as HFPA <<$aComponent>> #Application
DMS .up.|> scanning
DMS .up.|> Printing
CRM .up.|> customerAdministration
HAPA .up.|> claimsAdministration
HFPA .up.|> Payment
legend left
Example from the "Archisurance case study" (OpenGroup).
See
====
<$bProcess> :business process
====
<$aService> : application service
====
<$aComponent> : application component
endlegend
@enduml
Diagramme ArchiMate généré
PlantUML est un des outils "diagram as code" les plus connus et utilisés
Mermaid
https://mermaid-js.github.io/mermaid/#/
Mermaid est un outil de création de diagrammes et de graphiques basé sur JavaScript, qui utilise des définitions de texte inspirées de Markdown et un moteur de rendu pour créer et modifier des diagrammes complexes. L'objectif principal de Mermaid est d'aider la documentation à rattraper le développement. Mermaid permet aux utilisateurs de créer des diagrammes facilement modifiables, qui peuvent également être intégrés aux scripts de production (et autres morceaux de code). Mermaid est un outil open source.
Mermaid est un autre standard du marché
D2 (Declarative Diagramming)
D2 vous permet d'éditer des diagrammes avec du texte ou une interface graphique, avec des changements synchronisés entre les deux.
D2 n'a pas de types de diagrammes. Dans d'autres outils, vous spécifiez "ceci est un diagramme de classe", ou "ceci est un diagramme d'état". L'un des objectifs de la conception de D2 est d'avoir une syntaxe minimale avec laquelle vous composez. Terrastruct explique qu'elle évite la mode "DSL dans un DSL" qui consiste à déclarer des diagrammes spéciaux et à avoir une syntaxe spéciale pour chacun.
Pour créer des diagrammes de classes dans D2, vous créez des objets comme n'importe quels autres et leur donnez une forme : classe.
- D2 supporte les extraits de code et le texte Markdown
- D2 supporte entièrement les diagrammes de classe UML
- relations entre tables SQL
- fractionnement d'un seul diagramme D2 en plusieurs fichiers qui peuvent être importés et réutilisés
- transpilation à partir des standards du marché PlantUML et Mermaid
- code source disponible
- prise en charge des connexions courbes
- personnalisation et création de thèmes
- D2 supporte les icônes personnalisées
Aperçu de l'IDE de D2
Structurizr
Un outil populaire, Structurizr DSL, vous permet de créer des modèles d'architecture logicielle basés sur le modèle C4 (https://c4model.com/), en utilisant un langage textuel spécifique au domaine (DSL). Le DSL vous permet de créer plusieurs diagrammes dans plusieurs formats de sortie, à partir d'un seul fichier source DSL.
Structurizr est basé sur le modèle C4 technique de notation graphique allégée
pour modéliser l'architecture des systèmes logiciels.
Umple
https://cruise.umple.org/umpleonline/
https://yuml.me/diagram/scruffy/class/draw
Si vous êtes pressé !
Compléments de lecture
- Le meilleur outil pour transformer, dériver, parcourir, requêter sur des modèles afin de mettre en œuvre MDA (Model Driven Architecture)
- Transformation de modèles et Ingénierie Dirigées par les Modèles (IDM ou MDE Model Driven Engineering ou bien encore MDA Model Driven Architecture)
- Ingénierie Dirigée par les Modèles : présentation MDA (Model Driven Architecture), mais est ce utilisé dans la vraie vie ?
- Modélisation de système : UML n'est rien sans OCL !
- Eclipse Modeling Framework (EMF) : revoyons les fondamentaux
- Query View Transform (QVT) Operational : tutoriel, plus simple tu meurs !
- Ingénierie Dirigée par les Modèles (IDM) : tutoriel ATL (ATLAS Transformation Language), concevez les métamodèles avant de passer aux choses sérieuses
- Ingénierie Dirigée par les Modèles (IDM) : tutoriel ATL (ATLAS Transformation Language), le "Da Vinci code" de la transformation ATL
GenMyModel est un outil de modélisation en ligne, supportant ArchiMate, BPMN, UML, DMN et gratuit, mais convient-il à l’architecte d’entreprise ?
GenMyModel est une plate-forme française de conception logicielle basée sur les normes UML pour la modélisation de systèmes, BPMN pour les processus d'entreprise, DMN pour les règles métier et AchiMate pour l’Architecture d’Entreprise. Complètement accessible dans le cloud en mode SaaS, il fournit des générateurs de code intégrés pour Java, SQL, Spring… Idéal ou produit d'appel à des formules payantes ?
L'offre des catégories de projets est pléthorique
Mise en œuvre
Simplissime, le site https://www.genmymodel.com/ propose de créer un compte afin d’accéder à la plate-forme. Vous pouvez aussi utiliser un compte Google ou GitHub existant.
Axellience, les jumeaux numériques et les heatmaps
Basé à Lille, Axellience a été le premier éditeur français de logiciel à créer une plate-forme de modélisation collaborative en ligne, GenMyModel, permettant une co-création à la « Google Drive », basée sur un référentiel commun.
A partir de la plate-forme technologique GenMyModel, Axellience a élaboré “Agile Architecture Factory”, une solution collaborative payante en ligne pour l’architecture agile du SI dans les projets de transformation, ainsi qu’une offre de services associés.
Axellience étend les possibilités de personnalisation de sa méthode en généralisant aux normes ArchiMate et BPMN la notion de profil UML. Ces profils permettent de créer de nouveaux objets avec leurs icônes, et d'en disposer immédiatement pour la modélisation, le reporting et la documentation, en mode no-code. Un projet peut être “multi-modèles”, c'est-à-dire combiner autant de notations que nécessaire, par exemple un modèle de stratégie ArchiMate, des modèles de processus BPMN, des modèles de données en diagramme entité-relation ou UML...
Partant du constat que personne n’a le temps de réaliser la documentation, Axellience a conçu LiveView, un outil bâti sur le principe suivant : “modéliser = documenter”, qui génère automatiquement tous types de rapports.
L’éditeur propose un service basé sur les jumeaux numériques (réplique numérique d'un objet, d'un processus ou d'un système), qui, combiné avec sa méthode, permet de réaliser des indicateurs visuels comme des heatmaps, graphique de données statistiques faisant correspondre à la grandeur d’une variable une gamme de couleurs, pour illustrer les résultats des décisions prises.
Une ombre au tableau,
le service de collaboration à la Google est payant
Pour pouvoir travailler à distance à plusieurs, dans le cloud en mode SaaS ("Software as a Service"), il faut tout d’abord créer une organisation ; ce service est payant ; voir la copie d’écran ci-dessus. Une fois créée, on peut ajouter des membres avec leurs courriels. Les membres devront se connecter, aller dans leur tableau de bord où apparaîtra l’invitation et cliquer sur le bouton pour joindre l’organisation.
Les changements effectués par chacun des membres seront relayés en temps réel, comme pour un document Google Drive ou comme avec Visual Paradigm (voir notre article dans les compléments de lecture).
L’utilisateur possédant un compte FREE ou SOLO devra modifier sa souscription moyennant finance en EQUIPE ou ENTREPRISE.
Dépôt public
Les modèles dans le dépôt public ne sont malheureusement pas vérifiés
quant à leur conformité aux normes.
GenMyModel possède un dépôt public avec quelque 200 000 exemples permettant de ne pas partir from scratch.
Les modèles UML : la grande classe
GenMyModel propose les diagrammes UML ("Unified Modeling Language") suivants : classes, composants, activités, état-transitions, objets, séquence, cas d’utilisation, déploiement. Dommage que les diagrammes UML composite, package, communication, temps et global d'interaction soient absents. Les choix par défaut sont judicieux ; les noms des rôles sont automatiquement définis positionnés ainsi que les multiplicités.
On pressent que GenMyModel est destiné à la génération automatique de code, ce qui le positionne dans le camp des évangélistes du low-code/no-code.
GenMyModel est très certainement à ranger parmi les outils de modélisation classieux.
Pour UML, GenMyModel ravira les architectes logiciels, ainsi que les concepteurs-développeurs
BPMN et la notation souvent oubliée DMN
Si la norme BPMN ("Business Process Model and Notation") est incontournable pour la modélisation des processus métier et si la grande majorité des outils de modélisation l’implémentent, il en est différemment pour la norme DMN (Decision Model and Notation) pour la modélisation des règles métier et des tables de décision. Rares sont les outils supportant cette norme pourtant associée à BPMN.
En effet, à une “Business Rule Task” BPMN, il est d’usage de lui faire correspondre le modèle DMN détaillant les règles métier. A noter que cette tâche est nommée “Business Task” dans l’outil. Si GenMyModel supporte DMN, il est malheureusement impossible de faire correspondre les 2 modèles BPMN et DMN sur le même diagramme.
Il aurait été judicieux de pouvoir insérer le diagramme DMN ci-dessous
à côté de la Business Rule Task "Etudier l'adhésion"
GenMyModel supporte la norme DMN
pour la modélisation des règles métier et des tables de décision
ArchiMate
Nous avons utilisé le pattern ArchiMate (langage de modélisation du framework TOGAF The Open Group Architecture Framework) “Point de vue de réalisation de service" qui permet de montrer comment un ou plusieurs services métier sont réalisés par les processus sous-jacents (et parfois par les composants d'application).
GenMymodel est moins abouti dans ce domaine qu'Archi par exemple (voir notre article dans les compléments de lecture).
Pour ArchiMate, GenMyModel se situe un cran en dessous d'un outil comme Archi,
mais, contrairement à lui, il s'exécute à distance en environnement Cloud.
Import/Export
Pour accélérer la transition Cloud, GenMyModel est interopérable avec Confluence et Jira d’Atlassian. Les utilisateurs profitent de la solution pour se libérer des outils concurrents à base de clients lourds. Ainsi, l’import de l’outil Enterprise Architect de Sparx Systems (https://sparxsystems.com/) se rajoute aux imports XMI et BPMN, pour faciliter la reprise des référentiels d’architecture existants.
GenMyModel propose d’exporter la documentation dans les formats standards Word, PDF…
L’outil offre la possibilité d’exporter les diagrammes en XMI (XML Metadata Interchange) qui est le format textuel normalisé par l’OMG d’import/export de diagrammes UML. Pour les processus métier, le format d’import/export BPMN2 est entièrement supporté.
Outil low-code/no-code ?
Comme son nom l’indique, la spécialité de GenMyModel est la génération de code. Nous avons été agréablement surpris par l’étendue et la puissance du générateur de code utilisant des modules open source en provenance de l’organisation Eclipse.
En effet, la plupart des langages sont supportés. De plus, il est possible de générer des microservices en Java Spring Boot, qui est une des solutions d’implémentation les plus tendance pour une Architecture Microservice (voir notre article dans les compléments de lecture).
Extrait du code Java produit par le générateur UML2SpringBoot de GenMyModel
Conclusion
La formule gratuite n’offre pas la possibilité de gérer un référentiel d’objets transverses à l’ensemble de l’entreprise.
GenMyModel est sans conteste un excellent outil de modélisation, plutôt réservé à la conception d’application qu’à l’Architecture d’Entreprise. Les concepteurs-développeurs trouveront leur bonheur en modélisant, puis en générant des squelettes de code dans leur langage favori.
GenMyModel comporte très peu d’aide, pas d’exemple complet comme dans ADOIT:CE, Modelio ou WinDesign (voir nos articles dans les compléments de lecture).
Comme beaucoup d’autres sociétés de consulting, Axellience propose gratuitement un outil de modélisation offrant les fonctionnalités de base, afin de montrer ses compétences et d’attirer de potentiels clients qui, pour leurs référentiels d’entreprises, auront nécessairement besoin d’extensions payantes et des services, autour de leur méthode maison “Agile Architecture Factory”.
Note : 3/5
Nous regrettons :
- L'impossibilité de lier n’importe quels objets du référentiel pour assurer la traçabilité,
- Peu de documentation,
- Pas d’exemple concret et complet, mais anonymisé, montrant les possibilités de l’outil
- L’absence de validation des diagrammes, avec la description détaillée des erreurs
et des propositions de solutions pédagogiques.
Nous aimons :
+ L’ergonomie et le design sont au niveau de ce qui se fait de mieux aujourd’hui,
+ Un outil de modélisation open source supportant ArchiMate, BPMN, DMN et UML,
+ Outil en mode Cloud se dispensant de toute installation en local et disponible sur tous les OS.
|
Rhona Maxwel @rhona_helena |
“Always choose people that are better than you, that challenge you and are smarter than you. Always be the student” Sandra Bullock.
(Choisissez toujours des personnes qui sont meilleures que vous, qui vous challengent et qui sont plus intelligentes que vous. Soyez toujours l'étudiant)
Compléments de lecture
- Visual Paradigm : l’eldorado du consultant en quête de présentations dorées, mais est-il un bon outil de modélisation pour l’architecte d’entreprise, voici notre test
- Archi (archimatetool) : essai et analyse de cet outil ArchiMate français gratuit sous Windows, Linux et Mac OS
- L’Architecture Micro-Services expliquée à ma fille
- Architecture Hexagonale, exemple de mise en pratique de la méthode DDD Domain Driven Design
- Les couches de l'Architecture Microservices et la méthode de conception DDD (Domain Driven Design
- ADOIT:CE pour la gestion de l’Architecture d’Entreprise
- Essai et évaluation de Modelio : est-il un bon outil de modélisation ?
- WinDesign : essai et analyse de la version d’évaluation, ce logiciel français est-il un bon outil pour l’Architecture d’Entreprise ?
Archi (archimatetool) : essai et analyse de cet outil ArchiMate français gratuit sous Windows, Linux et Mac OS
Archi est souvent utilisé par les consultants architectes d’entreprise pour modéliser les vues et points de vue ArchiMate. Open source, simple, conforme au standard TOGAF de l’Open Group, mais peut-il être l'outil de référence pour toute une équipe ? La réponse dans notre essai.
Architecture humaine ou architecture forestière
Mise en œuvre
Nous aurions pu faire l’économie de rédiger ce chapitre tellement l’installation est un modèle du genre. Notre projet est de tester les outils open source de modélisation d’Architecture d’Entreprise, nous avons donc choisi la version Linux (https://www.archimatetool.com/download/ puis Linux 64-bit).
On est agréablement surpris de ne pas avoir un long formulaire demandant nos coordonnées. Le téléchargement de l’archive (Archi-Linux64-4.9.3.tgz de taille 137 MB) ne prend que quelques secondes ainsi que son extraction.
Dans le répertoire “Archi” créé, on double clique sur Archi et l’application se lance presque instantanément.
Il en va de même pour Mac OS et Windows, pour lequel on vous conseille la version “Windows 64-bit Portable Zip” toujours moins intrusive que “Windows 64-bit Installer”.
A quand l’installation par la parole ?
Sur la page d’accueil, il est dit qu'Archi est développé en Java et est basé sur Eclipse Rich Client Platform.
Si vous êtes comme moi et que vous lisez les médias à sensation, il ne vous aura pas échappé que les logiciels développés en Java ont potentiellement une vulnérabilité due à Log4J.
D’après notre enquête, l’équipe de développement assure qu'Archi n’utilise pas cette librairie.
Un bon point donc pour l’installation
Les fonctionnalités exotiques
Une fois n’est pas coutume, commençons par les fonctionnalités sortant de l’ordinaire.
La vue Brouillon (Sketch View)
D’après la documentation (en anglais), un modèle d’utilisabilité, la vue Sketch est une fonctionnalité expérimentale d'Archi.
La spécification ArchiMate définit un point de vue servant de document de travail, comme le serait un brouillon. Pour cela, ArchiMate a décrit une notation simplifiée, sous-ensemble complet du langage. Très utile pour ne pas investir dans les cartographies, lorsqu’on démarre la conception à grosses mailles d’une trajectoire, quand on n'a pas besoin d’exhaustivité et qu’on s’adresse à des parties prenantes non familières avec les concepts de l’Architecture d’Entreprise.
Une des critiques les plus souvent formulées à propos d’ArchiMate est le nombre important de différents types de relations et leurs règles d’application. Ici, toutes les relations sont indiquées par des lignes simples sauf "déclenchement" et "réalisation" représentés par une flèche.
C’est le principe du brainstorming, basé sur la création d’un groupe de travail allant jusqu’à 10 personnes, avec un facilitateur qui recueille les idées. Nous avions abordé cette technique pour les processus métier modélisés en BPMN, lire nos articles : Comment identifier, simuler, améliorer et modéliser les processus métiers ? et Comment mettre en place un jeux de rôles pour modéliser un processus métier ?
Business Model Canvas.
Business Model Canvas d'un site d'eCommerce
La première démarche de transformation digitale démarre par la phase d’engagement, déclenchée par l'événement correspondant à l’identification d’une opportunité client. L’objectif est d’améliorer le métier grâce à un processus de transformation de l’organisation. Les architectes d’entreprise, souvent d’anciens architectes logiciel, doivent de nos jours, se focaliser sur l’évolution et la transformation au niveau du métier, et non plus au niveau des technologies ou du SI.
Si l’architecte est interne à l’organisation, il établit sa propre crédibilité personnelle avec le métier et les parties prenantes, il doit montrer la valeur de la démarche d’architecture accompagnée de sa méthode. S’il est consultant externe, il doit démontrer sa crédibilité ainsi que celle de la société qu’il représente.
La première étape de cette phase d’engagement est d’établir la vue des besoins métier et formuler les perspectives. La technique Business Model Canvas aide à formaliser cet objectif. Elle présente la manière dont une organisation crée de la valeur et se l’approprie. Archi l’a intégré sous forme d'extension similaire à la fonctionnalité Sketch View.
Petite amélioration souhaitable, les Post-its devraient avoir une taille suffisante pour afficher la totalité du libellé pour qu’on ne soit pas obligé de les redimensionner manuellement.
ArchiMate
Validation des modèles et même des conseils !
Archi propose tout ce que l’on est en droit d’attendre d’un tel outil.
A la création d’un nouveau modèle, les dossiers sont classés dans l’ordre de la spécification ArchiMate (Strategy, Business, Application, Technology & Physical, Motivation, Implementation & Migration et Views).
Exemple d'une Vue ArchiMate avec l'onglet Validator montrant les "avertissements, erreurs et conseils"
Archi valide les vues. Par exemple, les éléments et relations non utilisés s’afficheront sous forme de warnings dans la fenêtre Validator ainsi que les erreurs. Des conseils (Advice) sont même proposés. Ici, nous avons copié/collé tous les éléments d’une vue dans une autre et avons renommé la cible “Supervision métier view”, puis nous avons supprimé la source. Nous trouvons étrange que soit affiché : Advice - 'Supervision métier View' is empty, alors qu’elle ne l’est pas, voir le modèle dans le paragraphe suivant.
Référentiel et Traçabilité
Les liens et la traçabilité d’un élément avec d’autres vues s’affichent dans la fenêtre Visualiser.
L'aide indispensable pour les débutants et même pour les autres
Quand on sélectionne un élément de modélisation, une explication très pédagogique avec des exemples s’affiche dans la fenêtre hints.
L’outil contrôle les règles d’affectation des relations et propose le Magic Connector qui affiche uniquement les liens possibles en fonction du type des éléments à relier. Plus qu’un gadget, nous avons trouvé cela indispensable.
Les rapports
Il est possible de :
- générer des rapports en HTML
- d’exporter les modèles en CSV
- d’importer des données CSV dans un modèle
- exporter et importer dans le format d’échange Open Group
Les antisèches et la documentation
Pour ceux qui ont du mal avec la multitude de types de relations ArchiMate, vous pouvez afficher toutes les règles pour relier deux artefacts de modélisation avec les liens valides selon la spécification.
La documentation en anglais est parfaitement utilisable et amplement suffisante.
Conclusion
Force est de constater qu'Achi conviendra parfaitement au consultant pour des missions ponctuelles. L'absence de mode collaboratif finalisé, nécessitant des installations locales aussi simples soient-elles, prive Archi de pouvoir être utilisé dans une équipe d'architectes d'entreprise.
Alors que Modelio, son concurrent direct comme outil open source de modélisation pour l’Architecture d’Entreprise, est en français, supporte en plus d’ArchiMate, BPMN, UML, SysML, MDA avec un référentiel commun et fourni une étude de cas pédagogique, Archi n’intègre qu’ArchiMate et donc n’est pas archi complet.
Note : 3/5
Nous regrettons :
- Pas d’internationalisation, tout est dans la langue de Shakespeare.
- N’inclut pas les normes : BPMN, DMN, UML
- A quand un relooking dans une interface plus tendance et plus jolie, comme Electron utilisée par exemple par l’open source Visual Studio Code de Microsoft, fonctionnant aussi sur tous les OS (Linux, Mac OS et Windows).
- Pas de cas de démonstration pédagogique
- Pas vraiment de mode collaboratif bien qu’il y ait un plugin : “coArchi – Model Collaboration for Archi” toujours en cours de développement (Version 0.8.3)
Nous aimons :
+ Les explications pédagogiques pour chaque élément
+ La validation et les conseils
+ La traçabilité
+ Les aides notamment sur les relations avec le Magic Connector et le tableau synoptique sur toutes les règles d’utilisation des relations suivant la spécification ArchiMate
+ La conformité avec la dernière version de la spécification ArchiMate
+ Les plugins notamment le “Lightbox for Archi – a Gallery of ArchiMate Views”
|
Rhona Maxwel @rhona_helena |
“La vie a besoin d’illusions, c'est-à-dire des non-vérités tenues pour des vérités.” Friedrich Nietzsche
Compléments de lecture
Outils de Modélisation et comparatifs
- WinDesign : essai et analyse de la version d’évaluation, ce logiciel français est-il un bon outil pour l’Architecture d’Entreprise ?
- Visual Paradigm : l’eldorado du consultant en quête de présentations dorées, mais est-il un bon outil de modélisation pour l’architecte d’entreprise, voici notre test
- Essai et évaluation de Modelio : est-il un bon outil de modélisation ?
- ADOIT:CE pour la gestion de l’Architecture d’Entreprise
- ADOIT:CE (compléments d’information)
- Le meilleur du meilleur des outils de modélisation de Systèmes d’Information pour 2017 : les « Modsars » de « urbanisation-si.com » récompensent les plus innovants
- Les meilleurs outils de modélisation UML, SysML, BPMN, DMN de l'année 2016 et les gagnants sont ...
ArchiMate
- ArchiMate pour les nuls : les fondamentaux - 1
- ArchiMate la synthèse : les éléments de motivation - 2
- ArchiMate en condensé : les éléments de stratégie - 3
- ArchiMate l’essentiel : les éléments de la couche métier - 4
- ArchiMate mémento : les éléments de la couche application - 5
- ArchiMate aide mémoire : les éléments de la couche technologique - 6
- ArchiMate en abrégé : les éléments physiques de modélisation - 7
- ArchiMate mémento : Alignement de la couche métier avec les couches inférieures - 8
- ArchiMate : modélisation de l’alignement des couches d'application et de technologie - 9
- ArchiMate : les éléments d'implémentation et de migration - 10
- ArchiMate : vues et points de vue - 11
- ArchiMate : guide complet des éléments de modélisation - 12
WinDesign : essai et analyse de la version d’évaluation, ce logiciel français est-il un bon outil pour l’Architecture d’Entreprise ?
La série "est-il un bon outil de modélisation" se poursuit avec WinDesign : ce logiciel français est-il la bonne solution pour la modélisation d’Architecture d’Entreprise ?
Y gagnerez-vous en qualité de conception ? La réponse dans notre test.
WinDesign édité par CECIMA, une société française de consulting spécialisée dans l’Ingénierie des SI (https://www.win-design.com/)
Pour nos tests d'outils pour l’Architecture d’Entreprise, nous avions pris le parti de ne pas traiter les outils commerciaux stars des grands cabinets de conseil comme Gartner (Magic Quadrants) ou Forrester (Waves) et de nous concentrer exclusivement sur le monde open source. Notre objectif étant de conseiller des outils efficients et gratuits aux étudiants et aux enseignants.
Vous avez été nombreux à suivre nos évaluations sur ADOIT:CE (ADOIT:CE pour la gestion de l’Architecture d’Entreprise), Modelio (Essai et évaluation de Modelio : est-il un bon outil de modélisation ?), et Visual Paradigm (Visual Paradigm : l’eldorado du consultant en quête de présentations dorées, mais est-il un bon outil de modélisation pour l’architecte d’entreprise, voici notre test).
En attendant le prochain test consacré à Archi (https://www.archimatetool.com/), et comme nous voulons aussi encourager les éditeurs français, nous ferons une exception en consacrant ce test à une version d’évaluation de Win Design, nécessitant ensuite une licence payante.
Installation
Vous avez le choix entre une version Windowsienne et une version Windowsienne, pas de version cloud, comme ADOIT:CE de BOC Group par exemple. Juste pour voir, nous avons fait un essai sous Linux avec WINE (Wine Is Not an Emulator), WinDesign reste utilisable, avec parfois quelques désagréments d’affichage.
Après avoir rempli un formulaire, WinDesign s’installe en téléchargeant un exécutable Windows : “WinDesign1900.exe” à partir du site : https://www.win-design.com/demande-telechargement-windesign/. Nous vous conseillons de l’installer dans votre “home directory” et non pas dans les “Program Files” de Windows. Bravo pour l'installation simplissime.
Look
Bien sûr, le look ne fait pas le logiciel, mais si l’on regarde la plupart des outils récents, on constate des thèmes tendances empruntés aux réseaux sociaux ou aux nouvelles plateformes et basés sur les moteurs innovants de rendus web. Les derniers outils Microsoft open source comme Visual Studio Code, utilisant le moteur Electron architecturé sur Node.JS, offrent un super look dans l'air du temps procurant une excellente expérience utilisateur.
Avec l’écran d’accueil, on sait au premier coup d'œil que l’on est dans une “User Interface / User eXperience” Windows classique, mais très soignée. Par exemple des bulles de texte détaillant la signification des objets, apparaissent systématiquement au survol de la souris.
Bien vu cet assistant qui nous accueille pour partir à la découverte de WinDesign.
Un assistant de démarrage permet de rentrer rapidement dans les fonctionnalités du produit.
L’option Découvrir WinDesign donne accès à la documentation et des exemples de modélisation qui sont les bienvenus.
Documentation utilisateur
Le clic sur “Manuels utilisateur” ne donne rien. Le lien sur le site de WinDesign “https://documentation.win-design.com/” nous apprend que pour accéder à la documentation utilisateur, on doit être détenteur d’une licence d’utilisation.
Les notes techniques sont disponibles. Pour le travail collaboratif, il est possible d’installer une version réseau consistant à installer un serveur qui contiendra les données communes.
Pour les débutants dans l’Urbanisation du SI, la documentation “WinDesign - Découpage Modélothéque” donne en 15 pages de précieux conseils et de bonnes pratiques de modélisation en suivant les 4 couches standards métier, fonctionnel, applicatif, technique, et les 3 niveaux de décomposition zone, quartier, bloc.
Concepts de fonctionnement
Modélothéque
Nous apprécions tout particulièrement la “Modélothéque” de WinDesign, ensemble de fichiers indépendants, stockant des modèles de différentes couches (Stratégie, Métier, Application, Technologie & Infrastructure, Motivation, Implémentation & Migration…). Cette autonomie rend la collaboration de plusieurs utilisateurs possible.
Un espace de travail rassemble des modèles pouvant être cités dans d’autres espaces de travail. Il s’agit d’un cadre de travail regroupant des fichiers de la Modélothéque.
Le référentiel d’objets est constitué par l’ensemble des dictionnaires de chaque modèle de l’espace de travail.
Attention à bien définir au départ son arborescence de répertoires. Gare aux déplacements manuels de fichier sous Windows qui vont produire dans l’espace de travail des liens morts à cause des chemins non mis à jour.
WinDesign suggère de séparer les modélisations par point de vue :
- Organisation
- Métier
- Urbanisation
- Risque, RGPD (Règlement Général sur la Protection des Données)
- Fonctionnel
- Applicatif
- Technique
Organisation proposée par WinDesign
WinDesign gère les liens interobjets appartenant à des modèles différents. L’unicité d’un objet dans le référentiel est assurée par des relations entre un objet référent mutable et les autres qui lui sont liés, immutables et nommés raccourcis. A tout moment, un raccourci peut devenir référent.
Des liens de décomposition hiérarchique entre macro-processus
et sous-processus peuvent être modélisés.
Versioning et travail collaboratif
Point de SCM (Source Control Manager), GitHub ou autre, ici on utilise un système d’archivage propriétaire permettant de comparer les versions archivées, de restaurer une version et de consulter l’historique.
En ce qui concerne le travail à plusieurs utilisateurs et le partage de modèles, on définit des droits aux utilisateurs au niveau de WinDesign et au niveau de Windows.
Métamodèle propriétaire
WinDesign est un outil qui suit donc les préceptes de Christophe Longépé dans son livre fondateur sur l’Urbanisation du SI (voir notre article : Le projet d'urbanisation du SI de Christophe Longépé), du club Urba-EA (voir notre article : Le condensé de l'ouvrage Urbanisme des SI et Gouvernance du Club Urba-EA, le recueil des retours d’expérience de grandes entreprises) et de la DISIC (Direction Interministérielle des Systèmes d’Information et de Communication) pour son cadre commun d’Urbanisation du SI de l'État.
WinDesign a donc développé son propre métamodèle d’Urbanisation de SI.
Extrait du métamodèle WinDesign pour l'Urbanisation du SI
Pour chaque type de modèle, WinDesign offre toute une série de palettes équivalentes à des toolboxes, sortes de stéréotypes UML, représentant les entités du métamodèle.
Palette “Carto-Processus”
MML (Meta Model Language)
Ce langage propriétaire (opérateurs, expressions, structures de contrôles, fonctions…) permet de parcourir le métamodèle. Dommage que les modèles soient stockés dans des fichiers en binaire (extension MGA) et non dans un langage pivot XML/XSD qui aurait pu être manipulé avec un moteur de XSL/XSLT. Une autre solution aurait consisté à intégrer un interpréteur de scripting comme Python ou BASH, open source et mondialement utilisé.
Il existe un requêteur graphique permettant d’élaborer des critères et des conditions complexes, afin de rechercher un objet.
Requêtes
La création de requêtes (onglet Requêtes) pour pouvoir analyser le référentiel et les impacts est indispensable.
Le système, basé sur une navigation dans le métamodèle, autorise tout type d’extraction avec formulation de critères, en mode utilisateur, et réutilisation des résultats en particulier pour l’export. Les références croisées (impacts) sont disponibles à tout moment pour un objet et son environnement. Les résultats peuvent être intégrés dans les références croisées de l’objet et/ou présentés sous forme de tableau ou de matrice.
Requête pour connaître la liste des exigences concernant l’espace de travail
Dictionnaire
Un onglet Dictionnaire bien conçu permet à l’utilisateur de visualiser tous les concepts utilisés dans le projet d’urbanisation. La recherche se fait dans l’onglet juxtaposé de Requêtes.
Lot de commandes dans un document XML
Afin d’éviter de nombreuses manipulations, il est possible par exemple d’ajouter, de modifier et de supprimer des éléments dans un modèle comme des objets, des relations…
L’idée est intéressante pour l’automatisation de tâches fastidieuses, comme la suppression en nombre d’objets obsolètes ou pour l’ajout d’une propriété à un ensemble d'objets. Dommage que ces possibilités ne soient pas étendues à MDA (Model Driven Architecture) en permettant la transformation de modèle (CIM, PIM, PSM… ; voir notre article : Le meilleur outil pour transformer, dériver, parcourir, requêter sur des modèles afin de mettre en œuvre MDA).
RGPD
La documentation intitulée “RGPD : Approche et Méthode WinDesign” propose une méthode pour la mise en conformité vis-à-vis du règlement de vos traitements de Données à Caractère Personnel (DCP).
Quand on découvre un nouvel outil de modélisation de type clickodrome, sur quoi cliquer en premier ? Nous délaissons l'assistant de démarrage pour un parcours libre du logiciel. Le traditionnel menu "Fichier" propose d’entrée de jeu l’option “Cas démo : Accueil” : cela à l’air alléchant, on se laisse tenter.
Un démonstrateur emprunté au monde réel :
“La compagnie Risquetout”
Référentiel transverse
Une étude de cas est souvent incluse dans la plupart des outils d’Architecture d’Entreprise commerciaux ou open source, comme Modelio avec sa très fameuse agence de voyages, ADOIT:CE avec carrément une banque. Nous avons fait de même pour concrétiser de nombreux concepts avec le domaine de la prévoyance.
WinDesign ne déroge pas à la règle et a choisi l’assurance automobile en proposant les cartographies métier, fonctionnelle, applicative et technique d’une compagnie fictive “Risquetout” : c’est l’exemple pédagogique idéal.
WinDesign propose bien plus qu’un simple fil conducteur. En effet, on a l’impression que l'étude de cas proposée est issue directement d'un véritable projet anonymisé avec l'accord du client. Ainsi, l'exemple traitant de l'assurance automobile, modélise dans les moindres détails la démarche d’urbanisation du SI ; même la méthode de mise en conformité du RGPD est fournie.
La structure suit les 3 modules inclus dans cette version d’évaluation :
Business Process Cartography SI, Data Base MCD-MLD-MPD et Object Design/UML.
Nous avons apprécié les nombreuses infographies permettant de présenter des contextes, des angles de vue et des cinématiques de navigation liés à l’affinement des modèles.
Un référentiel commun pour tous les modules
Cartographie Organisation
Localisation et structure hiérarchique de la compagnie Risquetout
Détail de l'implantation en région parisienne
Les toolboxes proposent les artefacts organisationnels :
matrice, tableau pour liaison entre objets, rôle, groupe…
Cartographie des rôles et des utilisateurs pour définir
la sécurité en matière d'identification et d'autorisation
Exemple de diagramme de traçabilité représentant les liens et mesurant les impacts entre objets
Cartographie Métier
L’étude de cas présente donc une structuration classique de la modélisation métier, où l'on retrouve la localisation, les rôles, les matrices des droits, les macro-processus, un 2ème niveau correspondant à un zoom des macro-processus, les entités métiers, une cartographie des risques pour les actuaires pour le calcul des cotisations et des prestations.
Il est intéressant de souligner la prise en compte du RGPD, notamment au niveau du module de cartographie Métier et SI. Il permet notamment d'identifier les opérations de traitement nécessitant l'intégration de la protection des données et la contextualisation des usages des données, pour une mise en conformité.
Structure des modèles constituant la cartographie métier
Architecture Fonctionnelle - Applicative - Technique
WinDesign permet de cartographier avec ses propres éléments de modélisation les différents niveaux du cadre de référence de l’urbanisation du SI.
Nous présentons ici seulement la cartographie fonctionnelle, sachant que les cartographies applicatives et techniques suivent les règles standards de projection et de relations entre blocs de l'urbanisme du SI.
Exemple : la cartographie fonctionnelle reprend le découpage
en zones, quartiers et blocs du cadre de référence de l'urbanisme du SI
BPMN
WinDesign supporte les principaux types de diagrammes BPMN : Processus privés, Processus public ou Collaboration et Chorégraphies. Le diagramme BPMN de Conversation correspond à une vue particulière du diagramme de Collaboration.
Dans la version d’évaluation, nous n’avons pas trouvé de moteur de workflow ou la capacité d’intégration aux écosystèmes de BPM standards du marché comme Camunda, jBPM ou Bonita, pour les processus exécutables, ni de support pour la norme la norme BPSim de simulation (voir notre article : BPSim, la théorie et la pratique de la simulation de processus BPMN)
Extrait du processus modélisé en BPMN : “Gérer une déclaration standard”
Les artefacts sont complètement ou partiellement traduits en français (Event Début pour Start Event, Décision pour Gateway…), ce qui peut dérouter au premier abord le modélisateur habitué à la norme de l’OMG.
Nous avons quelque peu peiné pour changer le type de “Task” ou “Event Intermédiaire”, alors qu’il faut sélectionner l’élément, puis cliquer sur un pictogramme sans bulle d’aide qui affiche une fenêtre intitulée “Variante de style” dans laquelle on peut choisir le type.
Le monde assurantiel fait usage de nombreuses tables de décision et règles servant à déterminer entre autres les cotisations et les prestations. L'OMG a pour cela créé une norme DMN Decision Model and Notation (voir sur ce site la catégorie : DMN). Dommage que WinDesign n'ait pas implémenté cette norme, car l’OMG l’a tout particulièrement associé à BPMN pour expliciter les “Rules Tasks”.
Il existe peu ou pas de règles de syntaxe. En revanche, des contrôles pourront se faire a posteriori via des requêtes (toutes les requêtes peuvent être exécutées en même temps).
ArchiMate
Le cas de démonstration de la compagnie d’assurance Risquetout a été réalisé en suivant le cadre de référence de l’urbanisation de SI, en implémentant son propre métamodèle avec ses propres icônes de représentation des artefacts de modélisation graphique.
Malheureusement, le même cas n’a pas été repris pour illustrer l’utilisation d’ArchiMate.
Synoptique des artefacts ArchiMate fourni par WinDesign
et issu de l'outil open source Archi et l'Open Group
WinDesign implémente bien le métamodèle complet d’ArchiMate et fournit un ensemble de patterns prêt à l’emploi avec explications en français et couvrant toutes les couches.
Exemple d'un pattern ArchiMate, équivalent d'un processus BPMN avec swimlanes
UML
Exemples de diagrammes de séquence et de classe
Quelle version d’UML ? A priori la version 1, car on trouve un diagramme de collaboration qui n’existe plus en UML 2, puisqu’il a été remplacé par le diagramme de communication.
D’autre part, on ne retrouve pas, dans les exemples du diagramme de séquence, les fragments apparus en UML 2 avec les opérateurs (alt, loop, par…), équivalent de structures de contrôles, et qui évitent de faire de nombreuses extensions fastidieuses (extension "pas d’assuré trouvé", "extension pas de contrat trouvé"…)
Scénario nominal de saisie par internet de la déclaration :
diagramme de séquence UML sans fragment "alt"
obligeant à faire d'autres diagrammes pour les alternatives
Extension du diagramme de séquence précédent : “pas d’assuré trouvé”
Extrait de la norme de l'OMG UML 2.5.1 :
Diagramme de séquence avec fragment et l’opérateur alt
équivalent d’une structure de contrôle if.
Exemple de diagramme de classes
Une 2ème étude cas : un site de e-commerce de librairie
A noter que WinDesign fournit une 2ème étude de cas d’un site de e-commerce de libraire.
Puisqu’UML n’est pas une méthode, on reproche souvent aux outils de modélisation de ne pas en proposer. Avec cet exemple, WinDesign illustre les principaux diagrammes UML en présentant une démarche, allant des besoins utilisateurs (Use Cases) jusqu’à l’implémentation en code Microsoft .NET en passant par les classes du domaine, les classes participantes, les classes de conception .NET, le diagramme de séquence, d’activité…
ITIL
Le référentiel ITIL (Information Technology Infrastructure Library) a comme périmètre la mise sous contrôle de la production, grâce à l'application des meilleures pratiques et permet de développer l'aspect stratégique des services, ceci dès leur conception jusqu'à leur fonctionnement, en passant par leur mise en place et leur amélioration continue. Les cartes et les synoptiques ITIL sont implémentés et traduits en français. Cette intégration est une aide notable pour faire prendre conscience de l’importance d’une mise en œuvre de la gouvernance des services.
Cartographie des processus ITIL
Data Base
WinDesign implémente MERISE, ancienne méthode franco-française d'analyse, de conception et de gestion de projet. Quasiment disparue aujourd’hui, elle était très utilisée dans les années 1970 et 1980 pour l'informatisation massive des organisations, mais n’a pas su évoluer en intégrant notamment le paradigme objet et les nouveaux types d'architectures, malgré des tentatives toutes vouées à l’échec comme Merise/objet ou Merise/2. De nos jours, les méthodes agiles (Scrum, XP...), les bonnes pratiques de conception d'architectures (Domain Driven Design, Architecture Hexagonale) et de développement sont unanimement reconnues.
Les nouvelles générations de consultants non formés à MERISE et qui intègrent des entreprises où subsistent encore des applications conçues et documentées avec cette méthode, seront ravis d'apprendre que le cas de démonstration “Risquetout” illustre toutes les étapes de cette méthode : MCD (Modèle Conceptuel des Données), MLD (Modèle Logique des Données), MPD (Modèle Physique des Données)…
WinDesign permet de générer les scripts de création pour les bases de données SQL, ainsi que le reverse engineering pour transformer les scripts SQL en MLD.
Exemple de MLD issu de la transformation du MCD du cas de démonstration Risquetout
Les produits commerciaux concurrents et situés dans le même segment d'outils que WinDesign, comme par exemple Enterprise Architect de Sparx System (https://sparxsystems.com/), propose ce système de round trip (transformation bidirectionnelle) avec un modèle de diagramme de database anglo-saxon plus universel et permettant de générer les scripts SQL.
Exemple de diagramme de database dans Enterprise Architect de Sparx Systems
permettant de générer les scripts SQL
Génération de rapports
La production de documents sous différents formats, notamment sous forme de site web avec WinDesign, se fait facilement et rapidement avec possibilité de personnalisation.
Fiabilité, Robustesse et Ergonomie
A noter quelques petits désagréments. Nous avons eu plusieurs fermetures intempestives, lorsqu’on était par exemple en train de modifier le cas de démonstration, peut-être dû à notre version d’évaluation.
Côté ergonomie, il serait plus convivial que l’icône zoom arrière soit à côté de celle zoom avant et que l’on ne soit obligé de cliquer sur une liste déroulante, qui en plus part s’afficher avec une taille à peine visible sur un 2ème écran, alors qu’on ne s’y attend pas.
Conclusion
Indéniablement, l'urbaniste de SI trouvera avec l'outil WinDesign toutes les fonctionnalités pour cartographier les niveaux métier, fonctionnel, applicatif et technique.
Cette version d’évaluation intègre un cas concret extrêmement détaillé traitant de l’assurance automobile, qui devrait intéresser les néophytes en matière d’urbanisation de SI.
WinDesign étant produit par la société française CECIMA, il est normal qu'il intègre complètement le cadre de référence français d’urbanisation du SI, voire même l’ancienne méthode franco-française MERISE.
Les normes plus récentes de modélisation comme BPMN et UML sont prises en compte. Il en va de même pour ArchiMate, avec l’implémentation de son métamodèle et de nombreux patterns opérationnels fournis.
On regrette que l’Architecture d’Entreprise avec un framework comme TOGAF (voir notre article Urbanisation du Système d'Information vs Architecture d'Entreprise) ne soit pas plus présente. Pourquoi ne pas adapter le cas de démonstration de la compagnie Risquetout à TOGAF ?
À n'en pas douter, il n'y a aucun risque.
Note : 3,5/5
Nous regrettons :
- Pas de version Mac OS et Linux (Vous avez toujours la possibilité d'exécuter WinDesign sur
une VM gratuite comme Virtual Box dans laquelle au préalable vous aurez pris soin d'installer
Windows avec une licence payante)
- Le cas de démonstration ne porte que sur la cadre de référence de l'Urbanisation du SI,
mais pas sur l'Architecture d'Entreprise avec TOGAF et ArchiMate
- Son ergonomie un peu désuète pour cette version 19 testée dans cet article
- La version d'évaluation ne permet pas de sauvegarder les modèles
Nous aimons :
+ Mode SaaS collaboratif
+ Le cas de démonstration de l'assurance automobile, digne d'un projet de la vraie vie
+ La prise en compte du traitement de la mise en conformité du RGPD
+ Le métamodèle
+ L'outil et le langage de requêtage
+ Le dictionnaire
+ La traçabilité entre les objets
|
Rhona Maxwel @rhona_helena |
Le mélange du vrai et du faux est plus toxique que le faux
Paul Valery
Compléments de lecture
- Urbanisme SI : la nécessité d'un "espéranto"
- Urbanisation SI : comment marche le métamodèle ?
- Libérez-vous, laissez votre stratégie prendre le leadership"
- En cas d'évènements imprévus, votre SI doit savoir jouer les "Transformers" !
- Avec un peu de métier, métamodéliser la vue métier pour assurer la traçabilité avec la stratégie
- En urbanisation SI, comment définit-on la vue fonctionnelle et quels sont les liens avec la vue métier et applicative ?
- En urbanisation SI, comment met on en oeuvre la traçabilité entre la vue applicative et les vues fonctionnelle et infrastructure ?
- Urbanisation SI : la carte au trésor se dissimule t-elle dans le POS ?
- Le meilleur outil pour transformer, dériver, parcourir, requêter sur des modèles afin de mettre en œuvre MDA (Model Driven Architecture)
- Transformation de modèles et Ingénierie Dirigées par les Modèles (IDM ou MDE Model Driven Engineering ou bien encore MDA Model Driven Architecture)