Skip to content
Snippets Groups Projects
Commit ada4bce2 authored by Hudelot's avatar Hudelot
Browse files

Update Conception

parent dd3abc47
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,24 @@ En lisant la [description du jeu sur Wikipedia](https://fr.wikipedia.org/wiki/20
Dans cette phase de reflexion sur la conception, pour favoriser le travail collaboratif et une compréhension commune entre tous les membres du projets, il est important de définir, dès le début du projet, un **vocabulaire commun** autour des termes métier. Dans le jargon du developpement de logiciel, on parle de [**ubiquitous language**](http://referentiel.institut-agile.fr/ubiquitous.html) ou **langage omniprésent**. C'est un principe issu de l'approche *Domain Driven Design* décrite dans l'[ouvrage](https://github.com/p0w34007/ebooks/blob/master/Eric%20Evans%202003%20-%20Domain-Driven%20Design%20-%20Tackling%20Complexity%20in%20the%20Heart%20of%20Software.pdf) du même nom et qui consiste à identifier et à définir un langage commun autour des termes métiers.
Dans le cas du jeu 2048, c'est un travail qui peut vous sembler fastidieux et très certainement inutile mais qui vous sera très utile pour de nombreux autres projets. Par exemple, dans le cas du jeu 2048, plusieurs termes sont utilisés pour parler de la grille de jeu : *plateau*, *grille*, *puzzle*...
Le déroulé consiste à produire ce que l'on appelle des [**User Stories**](https://en.wikipedia.org/wiki/User_story) (avec l'ensemble des parties prenantes du projet) qui représentent les besoins des utilisateurs à implémenter. Ce travail permet aussi de définir le langage partagé.
Une **user story** ce n'est rien d'autre qu'une phrase simple, en language naturel, qui permet de décrire le contenu d'une fonctionnalité à développer en précisant le *Qui?*, le *Quoi?* et le *Pourquoi?*
`En tant que <qui>, je veux <quoi> afin de <pourquoi>`
Ici, typiquement par exemple:
+ En tant qu'utilisateur, je veux pouvoir **initier un jeu** et **jouer avec mon clavier**
+ En tant que joueur, je veux pouvoir **revenir en arrière** dans le jeu.
+ En tant que joueur, je veux pouvoir **sauvegarder une partie** et la **recharger ensuite**
+ ...
Dans le cas du jeu 2048, c'est un travail qui peut vous sembler fastidieux et très certainement inutile mais qui vous sera très utile pour de nombreux autres projets.
Concernant le langage partagé, dans le cas du jeu 2048, plusieurs termes sont utilisés pour parler de la grille de jeu : *plateau*, *grille*, *puzzle*...
Pour la suite du projet, on choisit le nom de **grille** pour désigner le plateau de jeu et que nous définirons comme le conteneur de l'ensemble des tuiles du jeu.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment