Modéliser une architecture logicielle grâce aux modèle C4 ou C4 model en anglais

C'est quoi la modélisation d'une architecture logicielle à l'aide du modèle C4 ? Je connaissais bien UML et l'outil qui va avec Enterprise Architect alors C4 c'est quoi ? 

C4 c'est l'abréviation de Context, Container, Component and Code. Par rapport à UML qui donne différents moyens pour décrire l'architecture, l'approche C4 c'est d'introduite une notion de zoom avant et arrière suivant le niveau de détails que l'on veut avoir sur une modélisation du projet.

J'ai déjà vu cela quelque part il y a bien longtemps (30 ans environ) il existait un logiciel comme cela sur Macintosh qui permettait de "descendre" et de "remonter" dans la description d'un projet... Aujourd'hui ce serait un logiciel pour créer des Cartes Mentales.

Donc C4 Model c'est un peu comme le DDD une approche descente de la conception pour raffiner son niveau de connaissance du système à modéliser. Je vais très vite car tout cela ne m'amuse pas beaucoup, je trouve une description de poste à pourvoir avec "connaissance de la modélisation C4" obligatoire. Et je souri intérieurement d'imaginer tous ces gens faire de beaux petits dessin sans savoir où cela les mène.

L'outil :

Structurizr

Contexte

Description du contexte de l'utilisateur en situation

Conteneur

On raffine les grandes boite que l'on a dessiné au niveau du contexte

Composant

On raffine chacun des Conteneurs que l'on décompose en composants.

Code

Ils parlent de diagramme de classes UML. Moi j'opterai pour une description en pseudo code.

Conclusion

C'est du déjà vu, c'est même une façon de faire de la conception et pas tellement de la spécification, le raffinage des différents blocs de fonctionnalités c'est clairement de la conception. Peut-on spécifier avec ce modèle ? Vous verrez que dans les bonnes pages que le mot spécification n'est pas utilisé.

De bonnes pages :

C4 model : LA solution pour les diagrammes d'archi ?
Vous n'en apprendrez pas plus.

Pour approfondir l'architecture :

Architecture modulaire, microservices : on en est où ?
Le métier d'abord le découpage en microservices et un travail métier et non technique. Permet de revoir le DDD. Après le CCCC le DDD ;-)

Et pour aller plus loin rien de mieux que la source :

Microsoft - Concevoir une application orienté microservices
Là c'est du lourd, complet extrêmement détaillé, voyez le dessin :

Architecture en Microservices

Architecture en Microservices


Ce n'est pas du modèle C4, mais ça les vaut largement ! En un regard on a une vision complète et synthétique du logiciel.

C'est incroyable, il y a Simon Brown qui prétend détenir la licence du modèle C4 licence CC BY 4.0 ça me rappelle mais cours de méthodologie logicielle, il y a trente ans lorsque l'on avait subit au sein de la SAGEM une formation obligatoire où l'on apprenait à dessiner des boite et des flèches, elle devait avoir duré 3 jours ! Et à la fin pareil une licence d'utilisation du modèle MEF ?!

Avec mes collègues on se regardait et on se faisait la même réflexion, cette formation nous apprend à dessiner des boites et des flèches pendant trois jours !

 A l'époque cela pouvait peut-être se justifier, le logiciel était quelque chose de nouveau et d'un peu magique que nos managers souhaitaient qu'on leur explique, d'une façon ou d'une autre. Donc on a appris nombre de modèle de spécification conception etc merise et autre.

Aujourd'hui il y a une absolue nécessité de spécifier un logiciel, un SI. Il faut écrire pour combien d'utilisateurs à qui pourquoi comment et puis faire une conception pour répondre aux spécifications. Les moyens de description sont innombrables alors il faut simplement choisir le plus adapté.


Aucun commentaire:

Publier un commentaire