Rédiger correctement un Cahier des Charges

Formation

En Semi-présenciel Paris

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En semi-présentiel

  • Lieu

    Paris

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Les sites et dates disponibles

Lieu

Date de début

Paris ((75) Paris)
Voir plan
7 Cité Paradis, 75010

Date de début

Consulter

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Les matières

  • Cahier des charges

Le programme

Introduction du cours

Bonjour à tous ;

Si vous êtes là, c'est soit parce que vous avez du mal à vous organiser dans vos projets, soit parce que vous avez été intrigués par le titre.
J'ai pour objectif de vous aider à mieux vous organiser dans le cadre de vos projets (informatiques, ça va de soi ;) ). Pour ça, je vais vous parler des Cahiers des Charges. Nous verrons notamment :

  • ce qu'est un Cahier des Charges ;

  • à quoi ça sert ;

  • comment en rédiger un pour les sites Web et les programmes.

Allez, c'est parti !

Qu'est-ce qu'un Cahier des Charges ?

Cahier des Charges. En effet, ça semble un peu barbare au premier abord. C'est en fait l'abréviation de Cahier des Charges Fonctionnel, que l'on note également CDCF.

Généralités concernant les CDCDéfinitions

Je vais essayer de vous définir plus en détail ce qu'est un CDC. Voici ce que nous dit Wikipédia à ce propos :

Citation : Wikipédia

Le cahier des charges fonctionnel (CdCF) est un document formulant le besoin du client, au moyen de fonctions détaillant les services rendus par le produit et les contraintes auxquelles il est soumis.

Je vais essayer d'étayer un peu tout ça. :)

On voit donc que le CDCF a pour rôle de définir le besoin du client. Plus simplement, il explique à quoi va servir le produit final. Nous verrons plus tard qu'il existe des outils à la disposition du concepteur pour l'aider à définir tout ça.
Pour formuler le besoin du client, on utilise des fonctions détaillant les services rendus par le produit et les contraintes auxquelles il est soumis. Ça fait très dictionnaire comme définition, mais c'est assez simple au fond. Pour répondre au besoin du consommateur, le produit effectuera différentes actions : c'est le nom qu'on donne aux fonctions. Cependant, ces actions ne peuvent pas être effectuées n'importe quand et n'importe comment. J'ai un exemple simple : un portail à ouverture automatique. La commande d'ouverture a été activée. A priori, le portail s'ouvre. Imaginez qu'un enfant se trouve dans le champ d'ouverture du portail ! Cette situation peut se révéler dangereuse. Il faut donc contraindre le portail à ne pas s'ouvrir, pour éviter d'éborgner ce pauvre enfant.
On comprend ainsi nettement mieux ce que sont les contraintes : elles fixent un cadre auquel doit se conformer le produit avant d'exercer sa fonction (souvenez vous, la fonction indique à quoi le produit sert). On les appelle des contraintes, car justement elles sont contraignantes pour le concepteur : il est obligé de les prendre en compte, même si elles ne servent pas directement à la réalisation de la fonction du produit. En général, une des contraintes est le respect des normes de fabrication. Nous y reviendrons plus tard.

A quoi ça sert ?

Question fatidique. :p En effet, à première vue, un cahier des charges n'est pas indispensable. C'est vrai pour les petits petits projets réalisés par des particuliers comme vous et moi. Cependant, pour les entreprises, avoir un cahier des charges qui tient la route est indispensable. En effet, le concepteur doit savoir, avant même de réfléchir à la façon dont il va mettre en place le fonctionnement du produit en question, son rôle, etc.
L'objectif ici n'est pas de vous faire un cours complet sur la réalisation d'un CDC en entreprise, mais de vous donner les outils pour en créer lors de vos projets personnels. Cependant, connaitre un minimum la façon dont il est rédigé est toujours intéressant.
Nous allons maintenant voir quelles informations fournir dans un cahier des charges dans le cadre de vos projets personnels, et nous nous attarderons ensuite sur les outils à votre disposition à cette fin.

Que mettre/ne pas mettre dans un cahier des charges ?

Le cahier des charges à un rôle bien précis : définir dans quel environnement un objet fonctionne et quelle(s) fonction(s) il doit réaliser. Il doit se contenter de définir cet environnement et ces fonctions, et uniquement les définir.
Il ne faut en aucun cas apporter des solutions pour les effectuer.
Un exemple concret : une tondeuse à gazon. Sa fonction est facile à trouver : tondre la pelouse (comment ça, elle est pas originale, ma fonction :D ), une contrainte pourrait être de ne pas pouvoir couper un objet d'une épaisseur supérieure à 0.5mm (pour un brin d'herbe, c'est déjà beaucoup). Il est tentant d'essayer d'expliquer comment on réalisera cette fonction et se pliera à cette contrainte. Cependant, c'est typiquement ce qu'il ne faut pas faire.
Je le dis et je le répète : dans le Cahier des Charges, on ne doit pas apporter de solutions de conception, mais uniquement expliquer clairement le rôle de l'objet en question. Il existe de nombreux outils pour le faire correctement, nous apprendrons à les exploiter très bientôt.

Une démarche normalisée

Encore un mot barbare. On aime bien donner des noms compliqués à des notions très simples. La démarche de réalisation d'un cahier des charges est dite normalisée, car elle est régie par des normes. Ce sont des sortes de loi, que tous les concepteurs respectent afin de se comprendre entre eux.
Bien entendu, il existe un grand nombre de normes. Les normes françaises sont régies par L'AFNor. Elles peuvent sembler contraignantes, mais limitent en fait le risque de se planter dans son cahier des charges (ce qui peut se révéler catastrophique pour les entreprises qui investissent de grosses sommes d'argent dans un projet).
Elles définissent un nombre assez important de règles, et proposent notamment une méthode pour présenter le Cahier des Charges rédigé. Cela force les concepteurs à suivre un raisonnement rigoureux et à se poser les bonnes questions au bon moment. La démarche de rédaction du Cahier des Charges Fonctionnel compte grosso modo 3 étapes principales :

  1. L'introduction au problème posé

  2. L'expression fonctionnelle du besoin

  3. Les solutions proposées pour répondre à ce besoin

Chacune de ses parties est accompagnée d'outils qui aident le concepteur à structurer sa démarche et son raisonnement. Ils permettent en plus d'éviter d'avoir à écrire des pages et des pages de textes, car tout est schématisé, comme nous allons le voir.

Introduction au problème posé

Ici, l'idée est simple : il faut donner une description succincte du projet. Expliquer en quoi il consiste, son objectif, une éventuelle prévision des dépenses et bénéfices s'il y a lieu, etc.
Il faut aussi lui donner un contexte : sa situation par rapport à d'autres au sein de l'entreprise, les études effectuées et celles à effectuer, ainsi qu'une liste exhaustive des personnes concernées par le projet si elles sont connues à l'avance.

Expression fonctionnelle du besoin

C'est la partie clé du Cahier des Charges, il ne faut absolument pas la rater. En effet, c'est là qu'on définit les fonctions et les contraintes.
Chaque fonction et chaque contrainte est définie par un certain nombre d'informations la concernant :

  • Son nom (il est très important celui-là :p )

  • Ses critères : ils indiquent dans quelles conditions la fonction en question est considérée comme réalisée. Par exemple, avec notre tondeuse à gazon, une contrainte pourrait être "Ne pas mettre l'utilisateur en danger". Cette fonction est importante, mais il faut la préciser : dans quels cas peut-on considérer que l'utilisateur est en sécurité ? Un des critères pourrait être "La lame de la tondeuse doit être inaccessible". Ainsi, si l'utilisateur ne peut pas toucher la lame, il est clair qu'il ne risque pas de se blesser avec. En général, une fonction est accompagnée de plusieurs critères.

  • Son niveau : si le critère de la fonction est défini d'une façon numérique, le niveau est la valeur qui est associée à ce critère. Toujours avec notre tondeuse, une contrainte pourrait être "Correspondre à l'énergie disponible". Le critère est la nature de l'énergie (en général, énergie électrique). Par conséquent, le niveau est la quantité d'électricité avec laquelle fonctionnera la tondeuse (on parle de tension) : 230V si la tondeuse est commercialisée en France

  • Sa flexibilité : il est possible, dans certains cas, d'accorder une tolérance au niveau de réalisation d'une fonction. Si la tension d'alimentation de la tondeuse est de 224V (Volts) au lieu de 230V, ça n'a rien de dramatique : on donne une flexibilité au niveau, qui précise jusqu'à quelles limites la fonction est considérée comme réalisée même si son niveau n'est pas strictement égal à celui défini préalablement. On peut par exemple accorder une flexibilité de +/-12% à la tension d'alimentation. Comme ça, si on a une tension de 224V, ça marche quand même. Le tout est de trouver une flexibilité cohérente en fonction du résultat souhaité. Bien entendu, la flexibilité n'est pas indispensable : pour le respect des normes, elle n'a pas lieu d'être (les normes doivent être respectées dans tous les cas)

Solution proposée pour répondre au besoin

Cette partie est un peu la transition entre la rédaction du Cahier des Charges et la conception. En effet, on commence ici à proposer des pistes de recherche pour la réalisation de chacune des fonctions.
L'objectif est d'organiser au mieux la suite du projet, en le découpant en "sous projets". Pour cela, une connaissance parfaite des fonctions du produit en question est indispensable, pour connaitre la teneur en travail qu'elles nécessiteront.

Il y a peu à dire. C'est un peu la zone du gros brainstorming ou tous les génies trollent joyeusement pour faire aboutir leurs idées. :D

Les outils au service du concepteur

La rédaction d'un Cahier des Charges qui tient la route se révélant particulièrement difficile et la probabilité de plantage assez importante, de nombreux outils ont été mis au point pour aider les concepteurs dans leurs recherches.

La bête à cornes

Son objectif est simple : Elle indique à quoi sert le produit. Elle se présente sous cette forme (image tirée de la Wikipédia) :

La matière d'œuvre est ce sur quoi le produit doit agir (pour une tondeuse, il s'agit de... l'herbe :D ).

Le diagramme pieuvre

Je sais, il y a beaucoup d'animaux dans les bureaux d'études. :p

Il permet de relier simplement le produit à son environnement extérieur (c'est-à-dire tout ce qui est susceptible d'influer sur son fonctionnement).
Voici un exemple de diagramme pieuvre pour une voiture (toujours tiré de Wikipédia) :

Voici la liste des fonctions et des contraintes :

  • FP1 : Permettre aux utilisateurs de se déplacer sur le sol, rapidement et sans se fatiguer

  • C1 : Ne pas influer ni être par le revêtement au sol

  • C2 : Respecter l'environnement, résister à la corrosion

  • C3 : Être esthétique

  • C4 : Résister au milieu extérieur

  • C5 : S'adapter aux énergies disponibles, limiter la consommation

  • C6 : Respecter toutes les lois et règlementations

  • C7 : Être confortable, s'adapter à toutes les corpulences

Comme vous le voyez, chaque contrainte est reliée à un élément du milieu extérieur, alors que chaque fonction relie le produit à deux éléments extérieurs.

Il n'existe pas, à ma connaissance, d'outil normalisé visant à lier les fonctions à leurs critères et niveaux. Cependant, si vous en connaissez un, n'hésitez pas à me le signaler. En général, on se contente de créer un tableau avec une ligne par fonction et/ou par contrainte.

Cependant, vous verrez que faire tout ça pour un petit projet amateur est généralement inutile. Je vous ai expliqué globalement comment ça fonctionne en entreprise pour votre culture et pour vous aider à réfléchir sur votre projet, mais cela ne vous sera sans doute pas utile à 100% dans le cadre de vos projets, surtout s'il n'a pas de visée commerciale.
En général, votre CDC est assez court : environ 3/4 pages devraient être amplement suffisantes. Bien sûr, si vous en utilisez davantage, ça n'est pas un problème, mais si vous avez écrit un document de 100 pages, vous devriez essayer de le retravailler. :p

Un Cahier des Charges en programmation

Ici, nous allons voir comment rédiger un CDCF correct en programmation, avec pour exemple le langage C.
Bien entendu, la démarche est similaire pour tous les langages.

Quelques explicationsQuelles sont les particularités des CDCF en programmation ?

Il y a quelques différences entre un CDCF pour un objet et un CDCF pour un programme.
En effet, un objet ne doit pas «réagir» en fonction de ce que fait l'utilisateur. Un stylo, qu'on l'utilise avec la main droite ou la main gauche, c'est pareil, alors qu'un programme, si on appuie sur Tab et si on appuie sur Espace, c'est totalement différent.

Que mettre dans le CDCF d'un programme ?

Comme dans un CDCF «normal», il ne faut pas mettre de solution de conception, mais uniquement ce que doit pouvoir ou non faire le programme.

Il faudra lister étape par étape ce qui se passe lorsque l'utilisateur fait quelque chose (appuyer sur une touche, cliquer avec sa souris, donner un coup de marteau sur son unité centrale [dans ce cas, il faudra afficher un message d'erreur, si c'est encore possible :D ] ).
C'est assez long, mais si vous pensez à tout, cela simplifiera grandement votre travail au moment de coder. ;)
Je vous conseille d'ailleurs pour cette étape de prendre une feuille de papier et de faire une sorte de brouillon de votre algorithme.

Qu'est-ce qu'un algorithme ?

C'est exactement ce que vous êtes en train de faire. C'est-à-dire le listing des différentes «réactions» de votre programme en fonction des actions des utilisateurs.
Je vous conseille le tutoriel rédigé par bluestorm : Algorithmique pour l'apprenti programmeur, qui explique bien mieux que moi ce qu'est l'algorithmique.
Il faut absolument penser à tout en faisant l'algorithme. Les événements si vous faites de la SDL, et ce qui va se passer lorsque l'utilisateur appuiera sur Suppr alors que vous ne l'aviez pas prévu.

C'est un peu le code de votre programme, mais rédigé en français : vous ne vous souciez pas des if et des else, ou même des while; (ou autres, selon le langage dans lequel vous codez) et encore moins des fonctions de votre programme.

Si vous codez un jeu, il faudra aussi énumérer toutes les interactions possibles (débuter un dialogue, prendre un objet, tomber, sauter, acheter un objet, tuer quelqu'un, ...), et dans quelles conditions ces interactions doivent avoir lieu.

Vous pouvez aussi, si vous réalisez des fenêtres, mettre les images nécessaires ainsi que ce qu'elles représentent.

Si vous réalisez un jeu avec des personnages, vous pouvez aussi ajouter une brève présentation de ceux-ci (en indiquant leurs particularités, par exemple), s'il y a des objets, décrivez à quoi ils servent, etc.

Vous pouvez aussi, si votre projet est particulièrement conséquent, préciser quelle quantité de RAM et de CPU le programme devra utiliser au maximum. Ne donnez cependant cette indication que si vous êtes sûrs de votre coup, uniquement si vous avez l'habitude de programmer et que l'utilisation de la mémoire et du processeur n'ont pas de secret pour vous.

Indiquez aussi sur quel(s) OS votre programme devra être utilisable.

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Rédiger correctement un Cahier des Charges

Prix sur demande