diff --git a/CDC.md b/CDC.md
new file mode 100644
index 0000000000000000000000000000000000000000..0c7389e0729ac6a9c4b09ed170ce6f945b8163ff
--- /dev/null
+++ b/CDC.md
@@ -0,0 +1,114 @@
+# Projet : FOC21
+
+- Rédacteur: Pierre Lenertz
+- URL GIT : https://git.unistra.fr/deleted_user_177013/t4-foc21
+
+## Description des objectifs pédagogiques du jeu
+
+### Objectif pédagogique général
+
+Montrer comment les exercices de morphologie dérivationnelle peuvent permettre aux enfants dyslexiques de déduire la signification de mots inconnus et de développer leur vocabulaire.
+
+### Description des objectifs pédagogiques
+
+#### Comprendre les principes de la morphologie dérivationnelle
+
+- De nombreux mots sont composés de plusieurs parties appelées morphèmes.
+- Les morphèmes peuvent être catégorisés selon leur utilisation : Préfixes, radicaux et suffixes.
+- Chaque morphèmes d'un mot apporte à sa signification. 
+
+#### Comprendre les difficultés des dyslexiques
+
+- Les enfants dyslexiques éprouvent des difficultés de lecture et se retrouvent souvent face à des mots inconnus.
+- L’étude de la morphologie peut servir d’astuce pour comprendre des mots compliqués en subdivisant la tâche en tâches plus faciles.
+
+## Description du jeu
+
+- **Type de jeu**: Jeu éducatif
+- **Incarnation du joueur**: Un enfant dyslexique
+
+### Déroulement d’une partie
+
+A chaque tour de partie sera présenté au joueur un mot généré par combinaison de morphèmes, qu’il existe ou non.<br>
+Le joueur va alors pouvoir découper le mot selon les phonèmes reconnus.<br>
+Le joueur peut se tromper et découper le mot comme il le souhaite.<br>
+Le joueur peut alors valider son choix pour passer au tour suivant.<br>
+En fin de partie, le joueur verra une récapitulation de ses tours ainsi qu’une correction. Pour chaque morphème d’un mot sera affichée une courte description de son sens.
+
+### Paramétrage d’une partie
+
+- nombre de mots : nombre de mots(tours) pour cette partie
+- complexité des mots: nombre de morphèmes moyen dans les mots générés pour la partie
+
+## Modèle conceptuel applicatif
+
+Liste decrivant les classes et entités du jeu :
+- Model
+  - Tables 
+    - Radical: <u>id</u>, rad, terminaison, desc
+    - Prefixe: <u>id</u>, pre, desc
+    - Suffixe: <u>id</u>, suf, desc
+  - Partie(int nbMots, float complexite):
+    - correction:  List<[string]> liste des mots générés servant de correction
+    - decoupage:  List<[string]> propositions de découpage donnés par l’utilisateur 
+    - motCourant : int
+    - genererMots(int nb, float complexite): List<[string]> génère les mots à partir de la base de données 
+    - formaterPropositions() initialise une version collée des mots se trouvant dans la correction
+    - getMot(int nb) : [string] récupère un mot prêt à être découpé par l’utilisateur
+    - setMot(int nb, [string]) sauvegarde la proposition de découpage de l’utilisateur
+    - compterPoints() : int compte le nombre de découpage correct
+    - getCorrection(int nb): [string] récupère la correction pour un mot
+    - getMotCourant() : [string] recupere le mot courant
+    - validerMotCourant([string] mot) valide le mot courant et incremente le mot courant
+- Controleur
+  - PartieCtrl (Partie model):
+    - model : Partie
+    - getMotSuivant() : [string] mot à découper
+    - validerMot[string] mot) valide le découpage d’un mot
+    - getMot(int nb) : [string] récupère une proposition de mot donnée prealablement
+    - getCorrection(int nb) : [string] récupère la correction d’un mot
+- Vues:
+  - DecoupageMot(PartieCtrl ctrl):
+    - ctrl: PartieCtrl contrôleur de la partie
+    - mot: [string] découpage du mot
+    - afficheMot() affiche le mot à découper en créant un label par lettre des string, et entre les tring ajoute un espace cliquable pour lancer la fonction de recolage de mot
+    - decouperMot(int index) découpe le mot à un indice donné du mot total
+    - recolletMot(int index) recole la partie d’indice index à la partie suivante
+    - valider() valide le mot au contrôleur et ferme cette vue
+  - Resultats(PartieCtrl ctrl)
+    - ctrl: PartieCtrl contrôleur de la partie
+    - afficherCorrection() afficher le découpage correct comparé à celui donné pour chaque mot de la partie
+    - fin() : Validation finale pour finir la partie
+
+## Description des fonctionnalités
+
+### Entrée
+
+#### Gestion des tours
+
+- **Valider** : Valide le choix de découpage et passe au tour suivant
+
+#### Découpage des mots
+
+- **Couper** : En passant la souris sur le mot, le joueur pourra séparer le mot, en cliquant il pourra couper le mot à l'endroit sélectionné. L'action peut être répétée.
+- **Annuler** : En cliquant sur un espace créé par découpage, celui-ci peut être annulé pour recoller le mot.
+
+### Sorties
+
+#### Progression
+
+- **TotalMots** : nombre de mots total générés pour la partie.
+- **NumMotActuel** : progression actuelle dans la partie
+
+#### Mots
+
+- **Mot** : Le mot à découper
+
+#### Fin de partie
+
+- **Decoupage** : Le mot découpé par l’utilisateur
+- **Correction** : le découpage correct pour le mot, (vert si juste, rouge si faux)
+
+### Moteur interne
+
+