INF2 – PROJET DE G´
ENIE LOGICIEL 2010-2011
EMMANUEL BRUNO
1. Objectifs et organisation
1.1. Objectifs. Ce projet a pour objectif pratique de r´ealiser un outil simple
d’autoformation `a l’algorithmique et `a la programmation de base. Cet outil est
destin´e `a deux cat´egories d’utilisateurs : les enseignants qui pourront ajouter des
algorithmes (une description et le code source) `a la base existante et suivre les
progr`es des ´etudiants, les ´etudiants qui pourront consulter les algorithmes mais
aussi tester leur propre solution.
L’objectif p´edagogique principal est la mise en pratique des concepts ´etudi´es en
cours et appliqu´es en TP dans le cadre d’un projet complet :
Analyse du probl`eme et conception d’une solution simple moelis´ee avec
un diagramme de classe UML.
Implantation de la solution en Java en utilisant :
Les concepts de base fournis par java (Interfaces, classes abstraites,
h´eritage, r´eutilisation, la documentation avec javadoc, . . . )
Les fonctionnalit´es des paquetages classiques (interface graphique avec
Swing, connexion via JDBC au SGBDR Postgresql, chargement et
ex´ecution dynamique de classe, . . . ).
Les extension classiques (les tests unitaires avec Junit, la gestion des
logs avec log4j ou le jdk . . . )
Ce projet est compos´e de deux parties. La premi`ere comprend la gestion
classique de donn´ees en Java (Cr´eation et consultation des algorithmes
dans un SGBDR via une IHM). La seconde est d´edi´ee `a la v´erification de
l’implantation d’un algorithme propos´ee par un ´etudiant par rapport `a une
solution de r´ef´erence.
1.2. Organisation du projet. Cette section d´ecrit les deux parties du projet. La
premi`ere est une application directe du cours et la seconde demande un peu plus
de recherche personnelle.
2. Gestion des donn´
ees
La premi`ere partie du travail consiste `a fournir un outil permettant la gestion des
algorithmes (une liste d’algorithmes est disponible ici :http://zanotti.univ-tln.
fr/ALGORITHMIQUE/).
Un algorithme est d´ecrit par un code `a trois champs : le domaine (NUM pour
num´erique, GRA pour graphe, DON pour traitement de donn´ees,. . . ), le type (ITR
pour it´eratif, REC pour recursif), et le niveau de difficult´e (de 0 `a 3). Pour chaque
algorithme on disposera au moins de son nom, d’une description en HTML et d’un
pseudo-code. On pourra aussi avoir le programme en langage C correspondant.
Les utilisateurs de cette application sont de deux types : Les enseignants et les
´etudiants. Les enseignants ajoutent des algorithmes ou les modifient. Les ´etudiants
consultent les algorithmes. La formation des ´etudiants est d´ecoup´ee en ´etapes
(L1,L2,L3,M1,M2), et chaque ´etudiant appartient `a une promotion (une ´etape et
Date: d´ecembre 2010.
1
2 E. BRUNO
une ann´ee par exemple M1-2010). Pour chaque ´etape, il existe trois ensembles
d’algorithmes : obligatoires, conseill´es, facultatifs. Chaque ´etudiant devra pouvoir
indiquer les algorithmes qu’il a ´etudi´e, les enseignants pourront consulter l’´etat
d’avancement des ´etudiants.
Proposer un diagramme de classe UML qui repr´esente cette application.
D´ecider quelle partie sera g´er´ee dans la base de donn´ees et quelle partie par
du code Java.
Proposer un sch´ema relationnel pour la base de donn´ees.
D´efinir les interfaces, et les classes pour l’application Java.
D´efinir des tests unitaire `a mettre en place.
Proposer une organisation pour l’IHM de l’application.
3. Evaluation des r´
eponses
Cette partie se propose de permettre `a l’´etudiant de tester une implantation
de l’algorithme directement dans l’application. Pour cela, on associe `a chaque
algorithme, en plus du code en langage C, le prototype des fonctions qui composent
l’implantation et plusieurs solutions ´ecritent dans un langage simple : java−−.
3.1. Prototypes Java−−.La d´efinition d’un algorithme Apropos´ee par un en-
seignant est compl´et´ee par :
(1) une liste de prototypes de fonctions de la forme suivante :
< type > nom(< type > nom, ...)
o`u nom est un identificateur et < type > est un type primitif Java ou
un tableau. Cela d´efinit donc l’interface IA de l’algorithme A. L’une des
fonctions doit ˆetre d´esign´ee comme le point d’entr´ee.
(2) une liste de tests compos´es chacun d’un couple (liste de valeurs correspon-
dants aux param`etres de la fonction d’entr´ee, r´esultat attendu de la fonc-
tion).
3.2. Implantations Java−−.Chaque utilisateur pourra proposer une implan-
tation Java−− d’un algorithme A. Une implantation Java−− d’un algorithme
est compos´ee du code java pour les d´eclarations globales (du texte contenant des
d´eclarations et affectations de variables) et le corps de chacune des fonctions de
l’interface IA. Il est donc imm´ediat de cr´eer le code source d’une classe Java A
qui implante l’interface IA. Grˆace aux m´ecanismes d’´edition de lien dynamique
de Java, il possible de compiler et d’instancier Apendant l’ex´ecution. Finalement,
il est possible d’invoquer la m´ethode d´eclar´ee comme le point d’entr´ee avec les
param`etres de test pour v´erifier que le r´esultat est correct.
D´
epartement d’Informatique - UFR de Sciences et Techniques - USTV
E-mail address :[email protected]
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !