Les documents de votre projet

Il est nécessaire de créer un certain nombre de documents pendant le développement de votre projet. Il n’y a pas de liste « officielle » des documents qui doivent accompagner votre projet. Je présente ci-dessous une liste non-exhaustive de documents. Elle peut quasiment être infinie.

Les documents nécessaires

Les spécifications fonctionnelles

Créer un document traduisant le cahier des charges en spécification à l’aide de schéma d’écrans et de use-case (détailler les cas les plus fréquents). Vous pouvez faire une arborescence des pages, détaillez l’enchainement des pages.

Pour ceux qui veulent aller plus loin :

Il y des dizaines de programmes pour réaliser des mock-up (maquette des sites) par exemple balsamiq.com (pas gratuit).

Les spécifications techniques

Créer un document détaillant la plateforme technique (schéma réseau), tous les outils que vous allez utiliser (langage, éditeur, bdd…). Vous pouvez expliquer vos choix (pourquoi ne pas utiliser un framework, une architecture MVC, la programmation objet).

Partie BDD :

Schéma entité-assocation (JMerise…), schéma relationnel (MySQLWorkbench…).

Partie code :

Norme de développement. Faire un lien avec le document. Vous pouvez reprendre celui présent dans GSB sur le site du Certa (répertoire application frais) et le renommer avec votre contexte.

Les diagrammes UML

Vous pouvez ajouter des diagrammes de classe, de séquences, d'états-transitions... On peut utiliser ArgoUML pour réaliser les schémas.

Tests unitaires :

Décrire les outils utilisés. (PHPUnit, JUnit…)

Revue de code :

Ajouter les documents qui vous ont servi lors de vos revues de code.

Gestion des bugs :

Décrire le logiciel utilisé (Mantis Bug Tracker, GLPI…). On peut aussi décrire le workflow.

Gestion de version :

Décrire le logiciel utilisé (Git , GitHub, Team Foundation Server…). Ajouter la stratégie de travail en groupe.

Les tests

Tests fonctionnels :

Joindre quelques tests. Vous pouvez créer un document à part.

Les tests peuvent être des tests manuels (plus simples) mais ils peuvent aussi être automatisés avec des outils comme Selenium par exemple.

Planning

Joindre un diagramme de Gantt. Vous pouvez le faire avec un logiciel de dessin.

Le nombre de logiciels à maitriser pour réaliser ces documents est impressionnant, la plupart ne sont pas d’une prise en main aisée. MySQLWorkbench est beaucoup plus complexe qu’il n’y parait. GitHub est une véritable usine à gaz qui va beaucoup plus loin que la simple gestion de versions.

Si vous ne maîtrisez pas encore bien la programmation, il est inutile de rajouter tous ces outils, il faut rester simple, un simple schéma-entité, un use-case, un diagramme de classe, quelques tests manuels seront suffisants.

Pour votre code, rajouter des commentaires devant chaque fonction, ne mélanger pas trop le code HTML et le code PHP, faites des fonctions qui retournent des tableaux qui vont être affichés ensuite. Isoler au maximum le code PHP des balises HTML.

La question reste en suspens: peut-on demander à un élève de niveau bac+2 de maîtriser tous ces outils?