Générateur de données universelles (partie1)

Explications

Lors de ma formation en licence professionnelle logiciel libre nous avons eu comme projet tutoré de réaliser un générateur de données universelle permettant de créer des données de test en les générant aléatoirement ou via des dictionnaires ou encore via des formules.

J’ai réalisé ce projet avec Alban Baumard, Corentin Couvry et Antoine Legoubé.

voici notre rapport de projet :

vous pouvez le télécharger ici : rapport-fin-de-projet-generateur-de-donnees-universel

pour voir ce qui est concrètement généré voici un exemple de génération :

La génération

Le fichier de Paramètre

nous allons utiliser ce fichier de paramétrage :

<?xml version="1.0" encoding="UTF-8"?>
<Generateur>
	  <Table>
		  <Champs>
			  <Donnee Type="Dictionnaire" NomColonne="Prenoms" ModeGeneration="unique"/>
			  <Donnee Type="Dictionnaire" NomColonne="noms" ModeGeneration="uniforme"/>
			  <Donnee Type="Numerique" NomColonne="Age" Min="15" Max="130" ModeGeneration="uniforme" Null="6%" Unite="ans"/>
			  <Donnee Type="Numerique" NomColonne="Poids" NbDecimale="1" Min="35.1" Max="300.9" ModeGeneration="uniforme" Null="52"/>
			  <Donnee Type="Numerique" NomColonne="Taille" NbDecimale="2" Min="1.01" Max="2.40" ModeGeneration="uniforme" Null="6%"/>
			  <Donnee Type="Numerique" NomColonne="CodeSexe" NomPerso="sexe" Min="1" Max="2" ModeGeneration="uniforme" codage="1;Homme;2;Femme"/>
			  <Donnee Type="Dictionnaire" NomColonne="villes" ModeGeneration="uniforme"/>
			  <Donnee Type="Numerique" NomColonne="Temperature" NomPerso="Celsius" NbDecimale="2" Min="0.00" Max="100" ModeGeneration="uniforme"/>
			  <Donnee Type="Formule" NomColonne="Fahrenheit" Formule= "Celsius 1.8 + 32" />
			  <Donnee Type="IMC" NomColonne="IMC" calcul="poids/(taille^2)"/>
		  </Champs>
		  <Parametre>
			  <Sortie  XML="True" CSV="True"/>
			  <Nbligne valeur="1000"/>
			  <NomTable nom="DonneesGenerales"/>
			  <Seed valeur="123" />
		  </Parametre>
	  </Table>

	  <Table>
		  <Champs>
			  <Donnee Type="Dictionnaire" NomColonne="Prenoms" ModeGeneration="unique"/>
			  <Donnee Type="Dictionnaire" NomColonne="noms" ModeGeneration="uniforme"/>
			  <Donnee Type="Numerique" NomColonne="Age" Min="15" Max="130" ModeGeneration="uniforme" Null="6%"/>
		  </Champs>
		  <Parametre>
			  <Sortie CSV="True" SQL="True"/>
			  <Nbligne valeur="60000"/>
			  <NomTable nom="Personne"/>
			  <Seed valeur="123" />
		  </Parametre>
	  </Table>
</Generateur>

Remarques :
1-On utilise la même seed du coup on a les mêmes générations pour les champs nom prénom et âge.
2-Nous aurons 4 fichier en sortie et un rapport de génération.

Les résultats de la génération

voici le rapport de génération :


Table n°1
==================================================
Prenoms : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
==================================================
noms : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
==================================================
Age : 
Les données sont exprimer en ans
Le nombre de Valeur null est de : 60 
Le pourcentage de valeur null est de : 6 % 
La valeur minimale est de : 15
La valeur maximale est de : 130
La valeur moyenne est de : 75.11
==================================================
Poids : 
Le nombre de Valeur null est de : 52 
Le pourcentage de valeur null est de : 5.2 % 
La valeur minimale est de : 35.1
La valeur maximale est de : 300.7
La valeur moyenne est de : 169.89
==================================================
Taille : 
Le nombre de Valeur null est de : 60 
Le pourcentage de valeur null est de : 6 % 
La valeur minimale est de : 1.01
La valeur maximale est de : 2.39
La valeur moyenne est de : 1.70
==================================================
sexe : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
Le nombre de "2" est de : 470 soit 47 % 
Le nombre de "1" est de : 530 soit 53 % 
==================================================
villes : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
==================================================
Celsius : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
La valeur minimale est de : 0.09
La valeur maximale est de : 99.87
La valeur moyenne est de : 50.64
==================================================
Fahrenheit : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
La valeur minimale est de : 32.162
La valeur maximale est de : 211.766
La valeur moyenne est de : 123.14
==================================================
IMC : 
Le nombre de Valeur null est de : 112 
Le pourcentage de valeur null est de : 11.2 % 
La valeur minimale est de : 7.3233983490394
La valeur maximale est de : 276.73757474757
La valeur moyenne est de : 71.26
==================================================
Données Générales : 
La seed de génération est : 123 
==================================================
Table n°2
==================================================
Prenoms : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
==================================================
noms : 
Le nombre de Valeur null est de : 0 
Le pourcentage de valeur null est de : 0 % 
==================================================
Age : 
Le nombre de Valeur null est de : 3600 
Le pourcentage de valeur null est de : 6 % 
La valeur minimale est de : 15
La valeur maximale est de : 130
La valeur moyenne est de : 72.22
==================================================
Données Générales : 
La seed de génération est : 123 
==================================================

 

les fichiers générés :

donneesgenerales.csv

personne.csv

generer.xml

generer.sql

L’interface Web

Personnellement en plus du générateur de données j’ai crée une interface web qui permettrais de créer un fichier xml et de retourner des fichiers générés.
Je m’explique, l’utilisateur remplie les champs qui l’intéresse sur l’interface web, puis cette dernière en fonction des entrée utilisateur génère un fichier XML qu’elle utilise en paramètre de generer.php, et pour finir l’utilisateur enregistre les fichiers sur ça machine.

Pour le moment l’interface ne permet que de saisir les informations il faut maintenant que j’ajoute le PHP chargé de générer le XML et d’exécuter le générateur. Cependant elle réagit dynamiquement au choix de l’utilisateur, en plus d’être responsive design et XHTML valide.

voici l’interface dans sont état actuel : interfaceweb

(suite du projet ici)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *