• 6 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 16/01/2024

Formalisez vos conceptions à l'aide d'outils standard

Dans le chapitre précédent, nous avons vu quelques bonnes pratiques et des exemples concrets pour représenter votre architecture.

Dans ce chapitre, nous allons voir quelques outils standard pour documenter votre projet et son architecture, afin de rendre votre documentation formelle et professionnelle.

Décrivez votre système en fonctionnement

Commençons par un exemple :

Vous et votre équipe allez développer une nouvelle application logicielle pour la Direction de l'immigration dans votre pays. Un sérieux problème se pose dans la zone réservée à l'immigration dans le principal aéroport du pays : lorsque les voyageurs présentent leur passeport à l'arrivée, si celui-ci provient d'un certain groupe de pays, le douanier doit changer d'écran et effectuer une recherche dans un autre système pour y récupérer certaines données spécifiques. Cela retarde considérablement la procédure d'entrée dans le pays, et se traduit par de longues files d'attente dont les usagers se plaignent, et expriment généralement leur mécontentement en dénonçant « l'inefficacité » du service.

Vous et votre équipe allez développer la version 2 du système, qui consistera en une mise à niveau qui fonctionnera dans tous les aéroports du pays. Elle devra résoudre ce problème et ajouter des fonctionnalités supplémentaires.

Vous allez rédiger la documentation du nouveau système. Celle-ci sera utilisée par les développeurs, les administrateurs de bases de données, les concepteurs d'expérience utilisateur et les responsables du produit.

Êtes-vous censé y faire apparaître le problème précédent, que nous venons de décrire ?

Absolument ! Vous devez inclure le problème actuel, ainsi que la façon dont la version 2 devrait le résoudre.

Mettez votre équipe en prise avec le monde extérieur, expliquez-lui les problèmes que vous allez résoudre lorsque le système sera opérationnel.

Utilisez des schémas pour représenter les systèmes

Utilisez une convention, le langage UML

UML permet de visualiser les composants architecturaux d'un système, notamment des éléments tels que les suivants :

  • activités du système ;

  • composants individuels du système et façon dont ils interagissent avec d'autres composants logiciels ;

  • façon dont le système fonctionnera ;

  • façon dont les entités interagissent avec d'autres (composants et interfaces) ;

  • interfaces utilisateur externes.

Voici comment on représente une classe en UML :

Classe représentée en UML
Classe représentée en UML
  • Voici une classe appelée Compte bancaire.

  • Cette classe comporte deux attributs : le propriétaire du compte, de type « chaîne », et le solde du compte, un champ numérique exprimé en dollars des États-Unis.

  • La classe comporte deux méthodes : dépôt d'un montant sur le compte et retrait d'un montant.

Voici comment une interaction entre composants est représentée en UML :

Interaction entre composants représentée en UML
Interaction entre composants représentée en UML

Voici un schéma pour un restaurant. Il comporte deux acteurs : le critique gastronomique et le chef. Les ellipses à l'intérieur du rectangle représentent les processus exécutés dans le restaurant.

Pouvez-vous décrire le système logiciel que vous et votre équipe allez développer à l'aide de ce type de composants visuels ? Cette description prend du temps, mais une fois achevée, elle permettra à toutes les personnes impliquées de comprendre très clairement votre système. Lorsque vous expliquez votre système de façon visuelle, vous parvenez à mieux le comprendre… Cela vaut donc la peine d'essayer !

Utilisez votre créativité pour des schémas plus personnalisés

Je voudrais vous montrer une deuxième façon de documenter un système, plus naturelle, plus facile, mais qui nécessite davantage de créativité.

Si vous souhaitez esquisser rapidement vos idées, vous pouvez bien sûr utiliser un crayon et du papier...

Esquisse de schéma d'architecture faite à la main
Esquisse de schéma d'architecture faite à la main

Mais, une fois votre dessin terminé, vous devez en faire une version numérique plus propre pour pouvoir la communiquer à vos collègues. Cela pourra donner ceci :

Le même schéma d'architecture reproduit au propre en numérique
Le même schéma d'architecture reproduit au propre en numérique

Utilisez les User Stories pour décrire les fonctionnalités

Les User Stories sont souvent rédigées du point de vue de l'utilisateur final d'un système, et sont largement utilisés dans le cadre de projets agiles. Elles sont souvent notées sur des fiches bristol, des post-it ou des logiciels de gestion de projet, et présentent la syntaxe suivante :

En tant que (RÔLE), je veux (ACTION) afin de (OBJECTIF).

Par exemple :

En tant que client, je veux voir la liste de mes précédentes commandes sur le site web et afficher le détail de chacune d'entre elles, afin de visualiser mon historique de commandes.

Nous pouvons ainsi dire que la fonctionnalité d'un système est une série de « fiches » comme celle-ci, qui sont remises aux développeurs. Dans les projets agiles, les User Stories sont très souvent présentées et gérées dans des storyboards.

Prenons ce schéma simple d'un système d'envoi de messages :

Exemple de schéma d'une application d'envoie de messages
Exemple de schéma d'une application d'envoi de messages

Nous avons un utilisateur et un e-mail. Le message est stocké dans un serveur de messagerie. Ce serveur envoie et reçoit des messages en provenance de smartphones, de tablettes, de PC et d'ordinateurs portables.

Comment décrire cette situation à l'aide d'une User Story ?

Comme ceci :

En tant qu'utilisateur du système, je veux écrire un message à un contact et l'envoyer afin de lui permettre de le lire immédiatement sur n'importe quel appareil.

Les User Stories sont en général écrites sur des fiches ou des post-it, mais peuvent se faire sur des outils digitaux comme Miro :

User Story sur Miro
User Story sur Miro

Dans un projet agile, un ensemble de User Stories d'utilisateurs s'appelle un Product Backlog (ou carnet du produit). Chaque User Story est attribuée à un membre de l'équipe, ici Alex.

Expliquez la fréquence et le type des flux de données

Un autre élément à prendre en compte est la fréquence de ces interactions entre composants : Quand le processus commence-t-il ? Comment se termine-t-il ? Que se passe-t-il au milieu ?

Voici la séquence d'événements qui crée un flux de données avec des données réelles :

Exemple de schéma de flux de données
Exemple de schéma de flux de données

Quand le processus commence-t-il ? Un client navigue sur un site WebStreet et affiche une liste d'articles. Il est intéressé par l'un des articles de la liste et clique dessus.

Que se passe-t-il au milieu ?

  1. Le client clique sur le bouton Quitter.

  2. Le client clique sur l'un des articles de la liste. Dans ce cas, l'écran de passage en caisse s'affiche, et l'article est acheté.

Comment se termine-t-il ? Le flux de données peut s'achever de deux façons :

  1. Le client a cliqué sur le bouton Quitter.

  2. Le client a acheté un article.

Dans ce cas, nous dirons que l'utilisateur déclenche le processus : ce processus est initié par l'utilisateur lorsqu'il clique sur l'article qu'il souhaite acheter. Ce processus est asynchrone. Inversement, il existe des processus synchrones, par exemple des processus par lots qui s'exécutent tous les soirs à la même heure. 

Ça y est, ce cours touche à sa fin ! J'espère que vous avez pu y découvrir de nombreux bons conseils pour faire votre propre code autodocumenté et documenté, afin de le communiquer à vos collaborateurs. Rendez-vous au dernier quiz de ce cours pour tester vos connaissances.

En résumé

  • Utilisez des schémas : un schéma est une représentation symbolique d'informations, à l'aide de techniques de visualisation.

  • Utilisez l'Unified Modeling Language (UML, langage unifié de modélisation) : un langage généraliste de modélisation du développement, qui permet de visualiser la conception d'un système de façon standardisée.

  • Utilisez des schémas dessinés à la main.

  • Utilisez des User Stories pour décrire les fonctionnalités d'un système : le comportement entre des entrées et des sorties à travers une interface utilisateur :
    "En tant que (RÔLE), je veux (ACTION) afin de (OBJECTIF)."

  • Expliquez comment les interactions et les données figurant sur les schémas évoluent avec le temps.

  • Indiquez dans votre documentation si votre processus est synchrone ou asynchrone. Documentez les déclencheurs.

Exemple de certificat de réussite
Exemple de certificat de réussite