Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Diagramme de contexte C4 : votre système et son environnement

Par mis à jour le

Améliorer cette page

Le diagramme de contexte C4 montre votre système comme une seule boîte, au milieu des personnes qui l'utilisent et des systèmes extérieurs avec lesquels il échange. C'est le niveau 1 du modèle C4, celui que lisent aussi les personnes non techniques : chef de projet, client, nouvel arrivant. Cette leçon s'adresse à toute personne qui doit expliquer un système sans en détailler l'intérieur. Vous apprendrez à trier ce qui y figure, à écrire des relations lisibles, puis à construire votre propre contexte en cinq étapes.

  • Situer le diagramme de contexte dans le modèle C4 et nommer son public.
  • Décoder le contexte de la boutique en ligne, boîte par boîte et flèche par flèche.
  • Trier ce qui entre au contexte et ce qui attend le niveau conteneurs.
  • Rédiger une relation avec un sens, un verbe et un protocole.
  • Construire puis relire le contexte d'un outil de réservation de salles.

Cette leçon suppose la leçon Modèle C4 : clarifiez vos architectures, qui définit les mots personne, système logiciel, relation, titre et légende.

À quoi sert le diagramme de contexte et qui le lit ?

Section intitulée « À quoi sert le diagramme de contexte et qui le lit ? »

Le diagramme de contexte répond à une seule question : qui utilise mon système, et avec quels autres systèmes échange-t-il ? Selon c4model.com, son périmètre (le scope, ce que le diagramme dessine) est un seul système logiciel. Autour de lui, les éléments de support sont les personnes et les systèmes externes directement liés à lui.

Son public est « tout le monde », technique ou non, et c4model.com le recommande à toutes les équipes. D'où sa sobriété : le site résume l'esprit du niveau par « Detail isn't important here » et précise que « The focus should be on people (actors, roles, personas, etc) and software systems rather than technologies, protocols and other low-level details ».

C'est aussi le diagramme qui vieillit le plus lentement. La FAQ de c4model.com indique qu'il change très lentement, là où les conteneurs changent lentement, les composants souvent et le code très vite. Il reste juste tant que vous n'ajoutez pas un partenaire ou un nouveau type d'utilisateur : peu d'effort d'écriture, longue durée de vie.

Le contexte de la boutique en ligne, le fil rouge (l'exemple unique repris à chaque niveau) du module, tient en cinq boîtes : deux personnes, le système modélisé et deux systèmes externes, c'est-à-dire des systèmes que d'autres équipes développent et dont vous dépendez. Les conteneurs de la boutique sont ouverts dans la leçon Diagramme de conteneurs C4.

Regardez d'abord la boîte mise en avant au centre, puis les deux boîtes atténuées : vous les connaissez par leur rôle, pas par leur contenu. Lisez ensuite chaque flèche : elle porte un verbe et, entre parenthèses, le protocole, la convention de communication entre les deux parties.

Contexte de la boutique en ligne : le Client consulte le catalogue et commande, et le Gestionnaire de boutique gère le catalogue et les stocks, tous deux en HTTPS, vers la Boutique en ligne au centre, qui débite la carte auprès du Service de paiement en JSON/HTTPS et envoie les e-mails de commande au Service de mail en SMTP.Client[Personne]Parcourt le catalogue, passecommande et suit sa livraisonGestionnaire de boutique[Personne]Met à jour le catalogue etles stocks, suit les commandesBoutique en ligne[Système logiciel]Vend le catalogue etencaisse les commandesService de paiement[Système externe]Encaisse les cartes bancairesService de mail[Système externe]Envoie les e-mails transactionnelsConsulte le catalogueet commande (HTTPS)Gère le catalogueet les stocks (HTTPS)Débite la carte(JSON/HTTPS)Envoie les e-mailsde commande (SMTP)
Niveau 1 de la boutique en ligne : une seule boîte pour le système, aucune technologie interne. Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Le Client et le Gestionnaire de boutique sont les deux personnes. Le Client « Consulte le catalogue et commande » et le Gestionnaire « Gère le catalogue et les stocks », tous deux en HTTPS (le protocole du web chiffré). La boutique « Débite la carte » auprès du Service de paiement en JSON/HTTPS (des messages au format JSON portés par HTTPS) et « Envoie les e-mails de commande » au Service de mail en SMTP, le protocole d'envoi de courrier électronique.

Remarquez ce qui n'y est pas : ni la base de données, ni Node.js, ni les serveurs. Ce sont des choix internes à la boutique. Les montrer obligerait le chef de projet à lire des détails qui ne l'aident pas, et ferait changer le diagramme à chaque migration technique. La base et Node.js apparaissent au niveau conteneurs, les serveurs au diagramme de déploiement.

Un élément entre au contexte s'il s'agit d'une personne qui utilise le système ou d'un système externe que vous ne développez pas et qui échange avec lui. Tout le reste en sort : ce qui appartient à votre système se montre au niveau conteneurs, et les détails techniques au niveau conteneurs ou au déploiement.

L'arbre ci-dessous se lit de haut en bas : posez la question du haut à chaque élément candidat et suivez la branche qui correspond. Les feuilles disent où l'élément doit finir, y compris « hors du diagramme » lorsqu'il n'a sa place nulle part.

Arbre de décision pour le contexte : une personne qui utilise le système entre au contexte ; un système que vous ne développez pas et qui échange avec le vôtre entre comme système externe ; une base de données, une application ou un service qui fait partie de votre système va au niveau conteneurs ; un serveur, une technologie ou un protocole va aux conteneurs ou au déploiement ; le reste reste hors du diagramme.Une personne qui utilisele système ?Oui, au contexte :une personneouiUn système que vous ne développezpas et qui échange avec le vôtre ?nonOui, au contexte :un système externeouiUne base, une application ouun service DE votre système ?nonNon : c'est un conteneur,il attend le niveau suivantouiUn serveur, une technologie,un protocole ?nonNon : niveau conteneursou déploiementouiNon : il n'a rien à fairesur ce diagrammenon
Où placer un élément candidat : contexte, conteneurs, déploiement ou nulle part. Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Trois repères évitent la plupart des hésitations :

  • La base de données de la maison est un conteneur, pas un système externe : si votre équipe la développe, l'exploite ou la déploie avec la boutique, elle fait partie du système.
  • Un système externe est un système que vous ne développez pas : un service de paiement, un annuaire d'entreprise, un fournisseur de courrier. Même s'il appartient à votre entreprise, vous n'en maîtrisez pas l'intérieur.
  • Préférez un rôle à un prénom. « Client » ou « Gestionnaire de boutique » plutôt que « Camille » : un rôle survit aux départs et aux embauches.

Le contexte est aussi l'endroit naturel pour repérer une frontière de confiance, la limite entre ce que vous contrôlez et ce que vous ne contrôlez pas. Le guide de modélisation des menaces Threat modeling avec STRIDE montre comment l'exploiter.

Une bonne relation tient en une flèche, un sens et un verbe. Selon c4model.com, chaque ligne est unidirectionnelle et étiquetée, et l'étiquette « Uses » seule est à éviter, comme le rappelle la leçon Modèle C4. Au contexte, le protocole est un conseil de cette leçon, pas une règle du modèle : gardez-le discret, et omettez-le s'il est inconnu.

Le verbe doit décrire l'intention. La FAQ de c4model.com précise qu'une ligne peut représenter une dépendance ou un flux de données, au choix, à condition que la description corresponde au sens de la flèche. Gardez le même choix dans tout le diagramme, c'est le conseil de cette leçon.

Prenons le trait entre la boutique et le service de paiement. En dépendance, la flèche part de la boutique et dit « Débite la carte » : la boutique dépend du service. En flux de données, elle dit « Envoie les paiements à » : la donnée circule dans le même sens. À éviter dans les deux cas : « Paiements » sans verbe, ou « Reçoit » sur une flèche qui pointe vers le service.

Pour deux échanges en sens inverse, tracez deux flèches, chacune avec son verbe, plutôt qu'une flèche à deux pointes dont le sens reste ambigu.

Comment construire votre diagramme de contexte en cinq étapes ?

Section intitulée « Comment construire votre diagramme de contexte en cinq étapes ? »

On construit un contexte en cinq étapes, dans cet ordre : nommer le système, lister les rôles, lister les systèmes externes, écrire les relations, puis titrer et relire. Chaque étape produit une liste courte.

  1. Nommez le système et sa responsabilité. Une phrase : « Boutique en ligne : vend le catalogue et encaisse les commandes ». Si vous n'arrivez pas à la formuler, le périmètre est flou.
  2. Listez les rôles. Qui utilise ce système : clients, gestionnaires, administrateurs ? Un rôle par type d'usage.
  3. Listez les systèmes externes. De quels systèmes que vous ne développez pas dépend le vôtre, ou lesquels dépendent de lui ?
  4. Écrivez les relations. Une flèche par échange, avec un verbe et, s'il est connu, le protocole. Vérifiez que le sens de la flèche colle au verbe.
  5. Ajoutez un titre et une légende, puis relisez. Le titre dit le type et le périmètre : « Diagramme de contexte du système Boutique en ligne ». La légende explique les formes et les couleurs.

La relecture s'appuie sur la checklist de c4model.com. Quatre de ses questions suffisent à ce niveau : « Does the diagram have a title? », « Do you understand what the diagram scope is? », « Does every element have a name? » et « Does every arrow have a label describing the intent of that relationship? ». Faites-les passer à une personne qui ne connaît pas le système : si elle hésite, c'est le diagramme qu'il faut corriger, pas son lecteur.

Pour dessiner la liste ou l'écrire en texte et la versionner, la leçon Diagrammes as code le fait en Mermaid et en D2. Ajoutez un texte alternatif qui décrit le diagramme en phrases, comme l'explique la leçon Montrer : captures et texte alternatif.

Exercice guidé : le contexte d'un outil de réservation de salles

Section intitulée « Exercice guidé : le contexte d'un outil de réservation de salles »

Cet exercice vous fait appliquer les cinq étapes à un cas neuf, que la leçon Diagramme de conteneurs C4 ouvre ensuite. Lisez la consigne, construisez votre propre liste, puis comparez avec le corrigé.

Consigne. Une entreprise développe un outil de réservation de salles. Un salarié y réserve une salle. Un gestionnaire des locaux crée et gère les salles. L'outil lit l'annuaire d'entreprise, un système existant qui contient les comptes, pour authentifier les salariés. Il envoie les invitations et les rappels au service de calendrier de l'entreprise, un autre système existant.

Le corrigé compte cinq éléments : deux personnes, le système et deux systèmes externes.

ÉlémentTypeDescription
SalariépersonneCherche une salle libre et la réserve
Gestionnaire des locauxpersonneCrée les salles et gère leur disponibilité
Outil de réservation de sallessystème logicielPropose les salles libres et enregistre les réservations
Annuaire d'entreprisesystème externeGarde les comptes des salariés
Service de calendriersystème externeGère les agendas et envoie les invitations

Il compte quatre relations, chacune avec son sens :

  • Salarié vers l'outil : « Réserve une salle » (HTTPS).
  • Gestionnaire des locaux vers l'outil : « Gère les salles » (HTTPS).
  • Outil vers l'annuaire : « Lit les comptes » (LDAP).
  • Outil vers le service de calendrier : « Envoie les invitations et les rappels » (JSON/HTTPS).

Le schéma ci-dessous dessine ce corrigé. Comparez-le à votre liste : l'outil est la seule boîte mise en avant, les deux systèmes de l'entreprise sont atténués comme n'importe quel externe, et chaque flèche porte son verbe et son protocole dans un seul sens.

Contexte de l'outil de réservation de salles : le Salarié réserve une salle et le Gestionnaire des locaux gère les salles, tous deux en HTTPS, vers l'outil au centre, qui lit les comptes dans l'Annuaire d'entreprise en LDAP et envoie les invitations et les rappels au Service de calendrier en JSON/HTTPS.Salarié[Personne]Réserve une salle pourune réunionGestionnaire des locaux[Personne]Crée et modifie les sallesOutil de réservation de salles[Système logiciel]Permet de réserver une salleet d'inviter les participantsAnnuaire d'entreprise[Système externe]Garde les comptes des salariésService de calendrier[Système externe]Tient les agendas des salariésRéserve une salle(HTTPS)Gère les salles(HTTPS)Lit les comptes (LDAP)Envoie les invitations et les rappels (JSON/HTTPS)
Corrigé de l'exercice : cinq boîtes, quatre relations, aucune technologie interne. Source · SVG
Échap pour fermer, + et − pour zoomer, défilement pour se déplacer. 100 %

Ces protocoles sont des choix d'exemple, repris tels quels au niveau conteneurs. LDAP (Lightweight Directory Access Protocol) est le protocole d'accès aux annuaires. Si vous ignorez celui de votre annuaire, laissez-le de côté : le contexte n'en a pas besoin.

Trois points de vérification avant de passer au niveau conteneurs :

  • L'outil est une seule boîte : aucune base de données ni application web n'apparaît.
  • L'annuaire et le calendrier sont des systèmes externes, bien qu'ils appartiennent à la même entreprise.
  • Chaque flèche porte un verbe et un seul sens ; aucune ne se contente de « Utilise ».

Les erreurs de contexte viennent presque toujours d'un excès de détail ou d'un manque de précision sur les flèches. Le tableau relie chaque erreur à sa raison et à sa correction.

ErreurPourquoi c'est un problèmeCorrection
La base de données au contexteElle appartient au système : c'est un conteneurLa retirer du contexte, la montrer au niveau conteneurs
Des technologies dans les boîtes (Node.js, PostgreSQL)Le lecteur non technique décroche, le diagramme change à chaque migrationGarder le rôle, reporter la technologie au niveau suivant
Des flèches sans verbeLe lecteur doit deviner ce qui circuleÉcrire un verbe qui dit l'intention
Deux sens sur une flècheImpossible de savoir qui appelle quiDeux flèches, chacune avec son verbe
Pas de titre ni de légendeOn ne sait ni le type de diagramme ni son périmètreTitrer « Diagramme de contexte de … » et ajouter une légende
Trop de systèmes externesLe système principal disparaît dans le décorNe garder que les systèmes directement liés ; le reste va dans une vue paysage
  • Le diagramme de contexte est le niveau 1 du modèle C4 : un système, vu de l'extérieur, lisible par tous.
  • Il montre le système au centre, les personnes qui l'utilisent et les systèmes externes directement liés.
  • Selon c4model.com, « Detail isn't important here » : les technologies et les protocoles internes attendent le niveau conteneurs.
  • Une personne est un rôle ; un système externe est un système que vous ne développez pas ; la base de données de la maison est un conteneur.
  • Une relation a un sens, un verbe précis et, si utile, un protocole entre parenthèses ; on évite « Uses ».
  • Les cinq étapes : nommer le système, lister les rôles, lister les externes, écrire les relations, titrer et relire avec la checklist.
  • Selon la FAQ de c4model.com, le contexte change très lentement : c'est le diagramme le moins coûteux à garder à jour.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

6 questions
6 min.
70% requis

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn