Cahier des Charges SofTeam composée de : Présente

Transcription

Cahier des Charges SofTeam composée de : Présente
Cahier des Charges
SofTeam
composée de :
Auriau Florian Bettan Mickaël
Kauffmann Albin Savoye Rémi
Présente
1
KronenBase - Cahier des charges
Projet Epita Promo 2009
Table des matières
Introduction
3
1 Présentation du groupe et du projet
1.1 Le Groupe . . . . . . . . . . . . . . .
1.1.1 Florian Auriau . . . . . . . .
1.1.2 Mickaël Bettan . . . . . . .
1.1.3 Albin Kauffmann . . . . . .
1.1.4 Rémi Savoye . . . . . . . . .
1.2 Le Projet . . . . . . . . . . . . . . .
1.2.1 Nature . . . . . . . . . . . . .
1.2.2 Choix . . . . . . . . . . . . .
1.2.3 Intérêts . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
3
4
4
4
4
4
2 Découpage du projet
2.1 Gestion des données et de la mémoire . . . .
2.2 Algorithmes . . . . . . . . . . . . . . . . . . .
2.3 Multitâches . . . . . . . . . . . . . . . . . . .
2.4 Gestion du mode réseau . . . . . . . . . . . .
2.5 Accès à la base avec un client Web . . . . . .
2.6 Développement d’une application : EpitaBase
2.6.1 Le programme serveur . . . . . . . . .
2.6.2 Le programme client . . . . . . . . . .
2.6.3 La correspondance entre les deux . . .
2.7 Site web . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
6
6
7
7
7
7
7
8
3 Distribution des tâches et Planning
3.1 Répartition des tâches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Planning de réalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
8
4 Moyens mis en œuvre
4.1 Nos conditions de travail
4.2 Le Serveur et CVS . . .
4.3 Outils matériels . . . . .
4.4 Solution logiciel . . . . .
4.5 Aspect économique . . .
Conclusion
TABLE DES MATIÈRES
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
10
10
11
11
2/11
KronenBase - Cahier des charges
Projet Epita Promo 2009
Introduction
Dans le cadre de notre deuxième année à l’EPITA, il nous est demandé de développer un
logiciel sur la plateforme de notre choix (UNIX, Windows, . . .). Nous avons opté pour KronenBase, une librairie de gestion de base de donnée en réseau codée en C/C++, utilisable pour de
nombreuses structures de données, sous UNIX. Afin de montrer son fonctionnement, nous développerons en parallèle l’application EpitaBase. Elle permettra à toute personne faisant partie de
l’école d’avoir accès à un certain nombre de renseignements comme les notes, les emploi du temps
des professeurs et des élèves. . . EpitaBase utilisera donc toutes les fonctionnalités de KronenBase
et sera disponible aussi bien localement que sur le web. Ce cahier des charges va expliquer en
détails les différents points de notre projet.
1
Présentation du groupe et du projet
1.1
Le Groupe
Notre groupe, SofTeam, est constitué de quatre spé hyper motivé !
Albin Kauffmann, le chef de projet, est en A2 ainsi que Florian Auriau, tandis que Mickaël
Bettan et Rémi Savoye sont en C1. Cependant, nous étions tous dans la même classe l’année
dernière, ce qui implique que nous nous connaissons bien. La constitution de notre équipe SofTeam
s’est effectué en même temps que le choix du sujet, ceci afin d’être certain que chaque membre
travaille sur ce qu’il aime et donc qu’il se passionne à fond . . .
Voici une présentation non exhaustive de nous quatre :
1.1.1
Florian Auriau
J’ai 18 ans, j’habite dans le 15ème arrondissement en tant qu’étudiant mais ma famille est en
Normandie. L’an passé, je faisais parti du groupe de projet Plein Gaz. J’ai appris énormément de
choses grâce à ce projet et j’espère bien qu’il en sera de même cette année. Je vais principalement
m’occuper d’écrire les différents algorithmes de recherche, tri, ajout. . .
1.1.2
Mickaël Bettan
J’ai 19 ans. J’habite chez mes parents à Vanves. L’an dernier, je faisais partit du projet
SelFiShRaCeR. Je suis en spé C1. L’an dernier, le projet m’as beaucoup apporté dans mon
apprentissage informatique, le travail en équipe m’as montré qu’un projet informatique ne peut
pas se concevoir seul. Le travail en équipe est la clé de la réussite. De plus, lors de ces dernières
vacances scolaires, j’ai fait un logiciel de gestion de stock d’un magasin de chaussures. Pour créer
mon logiciel, j’ai utilisé une base de donnée (paradox) intégré dans delphi afin de pouvoir gérer
le stock de manière facile et efficace. Je ne connaissais pas du tout ce sytème de base de donnée
et cela m’a vraiment passionné. J’espère que ce projet va beaucoup m’apporter.
1.1.3
Albin Kauffmann
Ayant 19 ans, voici maintenant un an que je suis au Kremlin Bicêtre dans un studio de
17,74 m2 . Ceci explique le fait qu’il m’est très agréable de rentrer sur ma ville natale, à savoir
Nancy, là où j’ai notamment passé mes grandes vacances. Durant ces vacances, j’ai effectué
un stage dans un services de communications sur IP à France Telecom. J’ai ainsi découvert
l’importance des techniques de communication au sein de l’entreprise et cela m’a donc amené
vers la bonne idée de réécrire par nous même un système de gestion de base de données (SGBD).
1 PRÉSENTATION DU GROUPE ET DU PROJET
3/11
KronenBase - Cahier des charges
Projet Epita Promo 2009
La réalisation de ce projet concret nous amenera donc à découvrir des choses très intéressantes
sur des sytèmes que nous utilisons tous les jours sans vraiment le savoir.
1.1.4
Rémi Savoye
Originaire du Pas de Calais, j’ai intégré l’EPITA l’année dernière. J’ai toujours aimé l’informatique, et j’adore toucher à tout, autant la programmation que le graphisme, en passant par
le réseau. Que dire de plus, si ce n’est que j’adore EPITA, et plus particulièrement les projets
de prépa, parce qu’ils nous apprennent à travailler en équipe, et à apprendre les choses par nous
même. Durant les dernières vacances, j’ai fait un stage dans une entreprise de transports routiers,
et j’ai remarqué que les bases de données y étaient omniprésentes, d’où l’idée d’en refaire une
pour le projet.
1.2
1.2.1
Le Projet
Nature
KronenBase sera une librairie que les développeurs pourront obtenir sous forme de fichiers
sources, permettant ainsi une bien meilleur portabilité du projet entre les diférentes plate-formes
UNIX. Ces fichiers sources permetteront la compilation de deux ".so" (Shared Object), l’un étant
destiné aux fonctions de serveur et l’autre aux fonctions de client. Le développeurs devra en fait
inclure dans ses sources un fichier en-tête ".h" pour pouvoir utiliser toutes les fonctions du ".so"
concerné. Parmi ces fonctions, il trouvera tout ce qui est nécessaire pour pouvoir gérer sa base de
données et les échanges réseau entre les clients et le serveur. Il lui restera donc comme travail :
– la mise au point de la structure de la base de données ainsi que de la façon dont les
recherches se feront (permettant ainsi un personnalisation très poussée).
– le développement des contrôles d’accès des clients (accès par mot de passe, restriction des
droits pour certains utilisateurs ...)
– le développement d’une interface graphique permettant à un client d’accéder facilement
aux données de la base.
– ...
Au travers d’EpitaBase, c’est donc ce que notre groupe réalisera, le but de ceci étant de montrer
clairement les possibilité qu’offre KronenBase.
1.2.2
Choix
Etant donné que nous devons, sauf cas exeptionnels, réaliser non pas un jeu comme l’an passé
mais un logiciel, nous nous sommes tout de suite orienté vers ce type de projet. Le développement
d’un gestionnaire de base de donnée en réseau nous a tous plu. Ainsi, nous nous sommes lancés
dans cette aventure. Nous avons également choisi de développer ce projet sous UNIX et en langage
C/C++.
1.2.3
Intérêts
Notre projet a un réel intérêt pour les utilisateurs qui pourront adapter la gestion de base de
données à un problème particulier, ou, dans le cadre précis de notre application EpitaBase, avoir
accès à bon nombre d’informations. Ce projet a aussi de nombreux intérêts pour nous. Outre
le fait qu’il nous permettra une nouvelle fois d’acquérir une expérience informatique en équipe,
il nous fera découvrir UNIX et le langage C/C++ dont nous aurons une grande utilité l’année
prochaine.
1 PRÉSENTATION DU GROUPE ET DU PROJET
4/11
KronenBase - Cahier des charges
2
Projet Epita Promo 2009
Découpage du projet
2.1
Gestion des données et de la mémoire
Pour la réalisation de ce projet, nous allons utiliser deux types de mémoires :
– la mémoire vive à accès très rapide mais de taille limitée
– le disque dur à accès bien plus lent mais d’une taille bien plus importante (casi illimitée)
De plus, il faut ajouter que lors d’un plantage du serveur ou d’une coupure de courant, seul
les données stockées sur le disque dur sont "sauvées". Il faudra donc que les données présentes en
mémoire vive soit simplement une copie de données du disque dur. Ainsi, lorsqu’une modification
de la base sera faite, elle sera automatiquement transcrite sur le disque dur pour éviter toute
perte éventuelle.
En ce qui concerne le choix de charger des données dans la RAM, l’enjeux va être de taille.
En effet, il faudra trouver un bon compromis pour que les données auxquelles les utilisateurs
accèdent souvent soient dans cette mémoire vive et que les autres accès se fassent directement
sur le disque.
Quant aux données qui seront enregistrées sur le disque, elles se présenteront (très) grossièrement sous forme de tableaux à deux dimensions (à la manière d’une base de données relationnelles). Cependant, KronenBase permettera au développeur de personnaliser au maximum la
façon dont les algorithmes de recherche vont tourner (et donc d’optimiser ces recherches). Ceci
implique qu’il pourra :
– Demander des recherches d’attributs sur des structures arborescentes (ABR, AVL ou encore
arbres 2,3,4)
– Spécifier une fonction de hachage pour un attribut
– Demander une recherche dichotomique ou une recherche par interpolation linéaire
– ... (Je pense qu’on a encore beaucoup à apprendre)
Je m’explique un peu : En fait, le serveur pourra par exemple créer sur un attribut donné un
ABR de pointeurs vers le nième bit du fichier de données de la base. Ces pointeurs prennent certes
un peu de place à sauvegarder sur le disque dur mais permettent de limiter considérablement les
accès disques lors d’une recherche.
Cette personnalisation de la base (et tout d’abord sa structure) sera enregistrée dans un
fichier de configuration nommé « structure ». Il s’agit en fait d’un fichier texte interprété par
KronenBase. Le développeur devra donc créer lui même ce fichier à l’aide d’une syntaxe bien
particulière à notre projet. Ainsi, c’est ce fichier que KronenBase chargera en premier lors de son
démarrage. Pour être plus exact, l’ordinateur fera une copie de ce fichier dans le répertoire de la
base de données et pourra ainsi comparer l’ancien « .structure » avec le nouveau. En conséquence,
lors du redémarrage de KronenBase (ou de sa réinitialisation), le serveur pourra comparer les
éventuelles modifications que l’administrateur aurait pu faire et la mise à jour des fichiers de la
base de données sera automatique. Par exemple, si l’administrateur de la base rajoute un AVL
sur un attribut, cette AVL va automatiquement se créer lors de la réinitialisation de la base.
En conclusion, l’avantage de cette configuration « très » manuelle est de pouvoir faire tourner
le serveur dans un environnement UNIX sans interface graphique.
2.2
Algorithmes
Afin de gérer la base de données, il est important d’avoir à sa disposition des algorithmes de
tri, de recherche, d’ajout ou de suppression d’un élément. De plus nous comptons adapter notre
gestion de base de données en fonction du type de donnée qu’il traitera. Il faudra pouvoir utiliser
aussi bien des arbres de recherche, des arbres généraux, des tableaux de hachage, des listes. . .
2 DÉCOUPAGE DU PROJET
5/11
KronenBase - Cahier des charges
Projet Epita Promo 2009
Contrairement aux algorithmes que nous avons vu l’année dernière et que nous reverrons cette
année en cours, nos algorithmes devront impérativement gérer les redondances, et ainsi nos
fonctions pourront retourner une ou plusieurs valeur. Par exemple si l’on recherche dans la base
de données tous les élèves étant nés en janvier, nous pourrons retourner une liste complète de
ces élèves. Cette partie algorithmique sera donc assez conséquente.
2.3
Multitâches
Kronenbase devra être capable de gérer le multi-tâches et d’accomplir beaucoup plus de tâches
en parallèles. En effet, les differentes fonctions qui seront utilisées dans la base de données prendront un certain temps à s’accomplir, et certaines actions sur la bases nécessiteront l’exécution de
plusieurs de ces fonctions indépendamment les unes des autres. C’est pour cela que l’utilisation
du multitâches va nous permettre de faire de KronenBase une base de donnée rapide et efficace.
De plus, le fait de faire plusieurs tâches simultanément devra en aucun cas entrainer plusieurs
sources d’erreurs, comme une collision de donnée si deux clients essaient de modifier la même
donnée simultanément.
Le multithreading est le fait d’exécuter des tâches simultanément (multitâche). Les termes
multitâche et multithread ne sont pas totalement similaires. Le terme multithread indique une
application qui effectue différentes taches simultanément. Le terme de multitâche est un terme
plus général et plus commun pour parler d’un système capable de gérer plusieurs applications
simultanément.
Par mesure d’efficacité, nous utiliserons seulement le multithreading sur le serveur, le client
n’en ayant pas besoin.
De nombreux systèmes d’exploitation permettent aujourd’hui la programmation par threads.
Mais un problème de portabilité va se poser dès lors que les systèmes d’exploitations ne respectent
pas la norme POSIX. Dans le cas de Solaris, la bibliothèque de threads disponible est conforme
à la norme POSIX 1003.1c ce qui assure une certaine portabilité de l’applicatif en cas de portage
vers un autre système. Dans le cas des systèmes Microsoft, la bibliothèque utilisée est bien entendu
non conforme à cette norme POSIX.
Il existe aujourd’hui diverses bibliothèques permettant de manipuler des threads sous LINUX.
On dénombre deux principaux types d’implémentations de threads :
– Au niveau utilisateur (user-level). A ce moment la, la gestion des threads est entièrement
faite dans l’espace utilisateur.
– Au niveau noyau (kernel-level). Dans ce cas, les threads sont directement gérés par le noyau.
Nous essaierons d’utiliser des librairies à la norme POSIX sous linux.
2.4
Gestion du mode réseau
Le réseau dans KronenBase est d’une grande importance. En effet, de nombreux clients devront se connecter au serveur sous UNIX ou la base est gérée, pour demander des requêtes et
des modifications.
Pour cela, nous utiliserons des sockets. Nous devrons être en mesure de faire fonctionner
ces sockets aussi bien sous windows, que sous UNIX permettant une communication entre les
différents systèmes d’exploitations.
De plus, le fait que le client lise et écrive la base de donnée en réseau ne devra pas faire
ralentir la base de donnée.
En outre, nous avons décidé que la base de donnée pourrait être consultable par Internet à
travers d’un plugin PHP permettant de se connecter au socket UNIX et lire les données au fur
et à mesure.
2 DÉCOUPAGE DU PROJET
6/11
KronenBase - Cahier des charges
Projet Epita Promo 2009
Le mode de transfert TCP / UDP n’a pas encore été choisit mais de nombreux tests seront
effectués nous permettant de savoir lequel serait le plus rapide et adapté.
2.5
Accès à la base avec un client Web
Lorsque les utilisateurs d’une base de données sont en déplacement, il peut être très intéressant
pour eux d’y accéder à partir d’un simple client Web. Ainsi, avec KronenBase, le développeur
aura la possibilité d’inclure dans du code PHP des fontions d’accès à la base de données. Ces
accès se limiteront essentiellement à de la lecture pour des raisons de sécurité et de manque de
temps nécessaire à son développement (surtout qu’une fois la lecture implémenté, le reste ne sera
pas forcément très intéressant à développer).
Cette parti du projet est loin d’être la plus essentielle au fonctionnement d’EpitaBase. Cependant, elle nous permettra de se pencher plus en détail sur la « convergence des techniques
d’informations ». Quant à son développement, nous n’avons qu’une petite idée de la façon dont
elle fonctionnera : il faudra en fait installer sur le serveur KronenBase un serveur Apache et
ajouter des fonctionnalités au PHP. . . L’accès au site Web de la base se fera donc à l’aide de son
adresse IP ou d’un nom de domaine pointant vers cette adresse.
2.6
Développement d’une application : EpitaBase
Il s’agit d’une application se servant de la base de données Kronenbase. Dans un premier
temps, elle contiendra une liste d’élèves, celle de l’EPITA par exemple, et les classes de chacun.
Elle sera composée de deux parties : un programme serveur sous UNIX, sans interface, et des
programmes clients avec interface graphique.
2.6.1
Le programme serveur
Il tournera en continu sur un serveur UNIX. Il s’agira en fait d’une application faite à partir
de Kronenbase, à laquelle viendra s’ajouter un système d’utilisateurs expliqué un peu plus loin.
2.6.2
Le programme client
Ce programme servira à lire, modifier, ajouter, supprimer des données dans la base de données
du serveur à travers une interface graphique sous Linux.
Le choix de la librairie graphique oscille entre QT et wxWidget, qui sont des librairies graphiques gratuites et simples à utiliser. De plus, elles permettent de compiler une application sous
différentes plateformes, ce qui pourait être pratique si nous décidions de rendre l’aplication multi
plateformes.
De plus, l’application sera développée en français et en anglais, pour satisfaire un plus grand
nombre d’utilisateurs potentiels.
2.6.3
La correspondance entre les deux
Elle se fera par l’intermédiaire de requêtes, de la même manière que le php communique avec
les bases MySQL.
De plus, il ne faut pas que tout le monde puisse lire ou modifier la base. Epitabase comprendra
donc un système d’utilisateurs, différenciés par des login/mot de passe. Ces derniers se trouveront
sur le serveur, et seront cryptés, afin de dérouter les esprits malveillants.
2 DÉCOUPAGE DU PROJET
7/11
KronenBase - Cahier des charges
2.7
Projet Epita Promo 2009
Site web
Le site web se composera :
– d’une page d’accueil, avec un système de news afin de tenir informés les visiteurs,
– d’une présentation de nous quatre pour que les visiteurs nous connaissent,
– d’une page de contact pour les éventuels conseils, remarques ou critiques,
– de liens vers les sites qui nous ont apporté une aide quelconque pour l’avancement du
projet,
– d’une page de téléchargements où le projet, ses sources, et les soutenances pourront être
téléchargées,
– d’une page de projet, où les visiteurs pourront voir en détail l’avancement du projet, les
étapes en cours de réalisation, et des captures d’écran d’Epitabase.
L’hébergement est abordé dans la partie budget.
3
Distribution des tâches et Planning
3.1
Répartition des tâches
La répartition des tâches est un point important pour pouvoir travailler en équipe. En effet,
elle permet à chaque membre de s’orienter dans ses recherches et dans son travail. Pour notre
projet, les deux plus grosses tâches sont la gestion des données et les algorithmes de recherche :
ainsi, chaque membre du groupe participera à au moins une de ces deux grandes parties. Bien
sûr, cette répartition des tâches n’exclue pas un travail en groupe. Au contraire, nous devrons
beaucoup discuter ensemble pour mettre au point les différents point importants (types de donnée, prototypes de fonctions. . .). Voici donc cette répartition : ⊗ correspond à la tâche primaire
d’un membre, tandis que × correspond à une tâche secondaire.
Florian Auriau
Gestion des données
Michaël Bettan
Albin Kauffmann
Rémi Savoye
×
⊗
×
×
Algorithmes de recherche
⊗
×
Multitâches
×
⊗
⊗
Réseau
EpitaBase
×
3.2
⊗
⊗
Accès Web
Site Web
×
×
×
⊗
Planning de réalisation
Le planning de réalisation permet d’avoir une idée de l’enchaînement des différentes tâches
mais aussi de leur ampleurs. Comme nous l’avons déjà dit, la Gestion des données et les algorithmes de recherche prendront le plus de temps. Il faudra en parallèle, développer le réseau et
le multitâches. . . et bien évidemment EpitaBase.
3 DISTRIBUTION DES TÂCHES ET PLANNING
8/11
KronenBase - Cahier des charges
1ère soutenance
Nov
Déc
Projet Epita Promo 2009
2éme soutenance
Janv
Févr
3éme soutenance
Mars
Avril
Dernière soutenance
Mai
Juin
Gestion des données
Algorithmes de recherche
Rédac
Multitâches
cahier
Débogage
des
et
charges
finitions
Réseau
EpitaBase
Accès Web
Site Web
4
4.1
Moyens mis en œuvre
Nos conditions de travail
Afin de mener à bien ce projet, il est certain qu’il va falloir mettre au point une organisation
nous permettant à certain moments de travailler ensemble et à d’autres, de travailler individuellement. Travailler en équipe permet de mettre au point un certain nombre de choses comme la
façon dont fonctionnent les algorithmes très importants, les prototypes de fonctions, les types de
données . . . Lors de ce travail en équipe, nous nous retrouverons la plupart du temps dans les
locaux de l’EPITA afin de pouvoir disposer de salles de classe avec un tableau (très pratique pour
discuter « algorithme ») et d’un réseau informatique très important. Par ailleurs, il est fortement
possible que ces temps de travail se déroulent au Kremlin-Bicêtre, les locaux étant plus prêts
de chacun de nous. Quant au travail individuel, il a le mérite d’être plus productif (lorsque par
exemple, on devra écrire des algorithmes dont on connait déjà les spécifications . . .). De plus,
celui-ci seront facilité par la présence d’un serveur CVS.
4.2
Le Serveur et CVS
Le projet KronenBase necessitant un serveur UNIX pour tester le projet, nous avons décider
de mettre en place notre propre serveur UNIX. Un des membres a mis en place un de ses
ordinateurs sous une debian, afin d’effectuer tous les tests de serveurs UNIX. Ce serveur, placé
sur internet par un port ssh et ftp, va nous permettre d’effectuer tous les tests que nous aurons
besoin de faire. Ce serveur sera en ligne 24h/24 et 7j/7 pour pouvoir effectuer des tests et des
mises à jour à n’importe quel heure de la nuit ou du jour.
De plus, l’un des gros inconvénient que chacun des membres du groupe a rencontré l’an dernier
dans le projet de sup, était la mise en commun des sources du projet. Nous avons décidé ainsi
d’utiliser un utilitaire reconnu et utilisé dans le monde des developpeurs, CVS, afin de pouvoir
mettre à jour facilement les sources du projet. CVS (Concurrent Versions System) est un outil
d’aide au développement de logiciels. CVS permet une gestion efficace et riche des différentes
versions pour un projet logiciel. Cela passe notamment par la mise en place d’un suivi, et par
conséquent d’un historique, pour l’ensemble des fichiers appartenant au projet. L’un des autres
points forts de CVS est de permettre et de favoriser un développement en équipe. En effet, il
permet un stockage centralisé du code source sur un serveur et gère les accès concurrents sur les
fichiers de développement. Ainsi, nous avons mis en place un serveur CVS sur la machine en ligne
de l’équipe SoftTeam. Chacun des membres pourra alors se connecter pour modifier les differents
fichiers sources du projet.
4 MOYENS MIS EN ŒUVRE
9/11
KronenBase - Cahier des charges
4.3
Projet Epita Promo 2009
Outils matériels
L’équipe SoftTeam possède déjà une très bonne configuration matérielle lui permettant de
travailler en toute tranquilité.
Voici un tableau montrant les caractéristiques des ordinateurs de chacun :
Florian Auriau
Michaël Bettan
Albin Kauffmann
Rémi Savoye
AMD XP 2400+
512 DDR
Ati 9600 Pro
175 Go
CRT 17 pouces
AMD XP 3200+
2×512DDR dual channel
Leadtek Gforce 4 Ti 4400
200 Go
LCD 17 pouces
HP PSC 1215
centrino 1,7 Ghz
512 DDR
ATI Mobility 9700
60 Go
portable (1400*1050)
HP LaserJet 4L (Nancy)
AMD 64 3000+
2×512DDR dual channel
gigabyte gforce 6600 GT
360 Go
LCD 17 pouces
HP PSC 1310
Nos imprimantes étant toutes fonctionnelles et de qualité, il sera aiser d’imprimer nos rapports
de soutenances en temps et en heure.
D’autre part, l’hébergement du site web était un problème conséquent. Il nous fallait trouver
un nom de domaine facilement utilisable et étant hébergé sur un vrai hébergeur permettant à
des milliers d’utilisateurs de se connecter simultanément. Nous avons trouvé un service gratuit
1and1.fr permettant de créer un domaine en .info gratuitement et un hébergement complet
gratuit pendant 3 ans. Nous avons ainsi choisit www.kronenbase.info et avons configuré tous les
services de l’hébergement. Cet hébergeur étant totalement gratuit et proposant l’ensemble des
services que nous avions besoin, nous avons économisé de nombreuses dépenses.
De plus, nous devons faire honneur au nom de notre projet et sponsoriser les bières Kronenbourg
par quelques petits achats de bières chaque jour.
Le pack de 26×25 cl - Kronenbourg : 9.95 e × 365,25 jours × 4 personnes = 14536.95 e
Le prix total de l’aspect matériel revient donc à 14536.95 e, ce qui est une somme très
raisonnable pour un tel projet.
4.4
Solution logiciel
Deux types de logiciels vont être nécessaires : les systèmes d’exploitation et les logiciels. Pour
le système d’exploitation, nous possédions tous un système Microsoft Windows XP Professionnel
mais nous ne possédons pas de système UNIX/Linux.
KronenBase ayant un serveur fonctionnant sous UNIX/Linux, une distribution Linux est
nécessaire pour chacun.
Nos moyens étant limités, nous nous sommes tournés vers des distributions Linux, libre et
gratuites : Debian et Gentoo.
A l’heure actuel, nous avons tous testé ces deux distributions apportants des atouts et des
inconvénients différents.
Nom
Emacs
Dev C++
EasyPHP
Adobe Photoshop CS2
Macromedia Flash 8
Macromedia Dreamweaver 8
Libre
X
X
X
Descriptif
Développer sous Linux
Développer sous Windows
Montrer notre beau site
Faire des beaux dessins
Souriez, attention au flash !
Faire un beau site
Prix
0.00 e
0.00 e
0.00 e
501.88 e
645.00 e
519.00 e
Le prix total que nous couterons ces différents logiciels est de 1665,88 e.
4 MOYENS MIS EN ŒUVRE
10/11
KronenBase - Cahier des charges
4.5
Projet Epita Promo 2009
Aspect économique
L’aspect financier de ce projet est un point assez important. En effet, si nous ne pouvons pas
payer tous les moyens matériels et logiciels que nous necessitons, alors ce projet ne pourra pas
atteindre ses objectifs. En effet, un ordinateur trop long avec des logiciels inadaptés donnera un
résultat très médiocre.
Heureusement, nous possédons déjà des ordinateurs surpuissants afin de pouvoir passer des
nuits longues et exitantes à développer ce projet. Mais un trou financier dans notre budjet annuel
se fera forcément ressentir étant donné l’ampleur des futures dépenses. Nous envisageons de faire
une demande auprès de Mme Cavatorta pour rembourser ces investissements que nous allons
mettre de notre poche.
Conclusion
Pour conclure, nous pouvons dire que la réalisation de ce projet sera pour nous tous l’occasion
d’acquérir de multiples connaissances sur le C, le C++ et UNIX. Nous aurons une nouvelle fois
à gérer notre temps et à travailler en équipe. Nous espérons réussir à relever les difficultés que
comporte ce projet afin de le mener à terme en cette fin d’année.
4 MOYENS MIS EN ŒUVRE
11/11