Période du stage : du 01/04/2010 au 31/05/2010
ETABLI PAR : Mlle ALOZADE Ghizlane
ENCADRE PAR : Mme ELALAMI Naima
2
I. Partie introductive :
a. Fiche de stage
b. Remerciement
c. Avant propos
d. Introduction
II. Partie présentative:
a. Présentation du groupe Scolaire AHMED CHAOUKI
b.Outils de travail
III. Partie thématique :
a. Cahier des charges
b. Modélisation
c. Réalisation
d. Conclusion
IV. Annexe :
4
NOM : ALOZADE
PRENOM : Ghizlane
ETABLISSEMENT : ISTA Ntic Sidi Maarouf
OPTION : technicienne spécialisée en
Développement informatique
Lieu de stage : G.S AHMED CHAOUKI
PERIODE DE STAGE : 01/04/2010 – 31/05/2010
5
Dans un premier temps je tiens à remercier
généralement toute personne qui a contribué de
prés ou de loin à l'élaboration de ce document et
à ma formation en me fournissant l'occasion de
passer un stage pour mettre en application mes
connaissances acquises durant cette période.
Je remercie également Madame ELALAMI Naima
pour son aide et ses conseils concernant les
missions évoquées dans ce rapport, qu’elle m'a
apporté lors de différentes séances d'encadrement.
J'adresse particulièrement mes remerciements
aux personnes suivantes, pour l'expérience
enrichissante et pleine d'intérêt qu'elles m'ont
fait vivre durant ces deux mois au sein du Groupe
scolaire AHMED CHAOUKI:
Messieurs Slaoui, Tazi Fondateurs du groupe
scolaire AHMED CHAOUKI pour leur accueil et
la confiance qu'ils m'ont accordé dés mon
arrivée.
Madame Sarhane Directrice de l'école AHMED
Chaouki2 pour m’avoir accordé toute sa
confiance ; pour le temps qu’elle m’a
consacré tout au long de cette période,
sachant répondre à toutes mes interrogations
; sans oublier sa participation au
cheminement de ce rapport.
Messieurs Fnouni, ElHouassli, Nourlile ainsi
que l’ensemble du personnel des écoles
ALMANHAL, OUADNILE, AHMED Chaouki1, AHMED
6
Chaouki3 pour leur accueil sympathique et
leur coopération professionnelle tout au long
de ces deux mois.
Finalement, je voudrai bien exprimer mes
remerciements à mes parents pour leur confiance,
leur aide et leur soutient précieux et à mes
collègues pour les bons moments qu'on a passé
ensemble durant ces deux dernières années
scolaires.
7
A LA FIN DE LA 2EME ANNEE DE FORMATION ET
POUR QUE CELLE CI SOIT ENRICHIE L’OFPPT NOUS OBLIGE
DE PASSER UN STAGE PRATIQUE QUANT A MOI J’AI
EFFECTUE UN STAGE AU SEIN DU GROUPE SCOLAIRE
AHMED CHAOUKI DURANT LA PERIODE 02/04/07 AU
26/05/07 POUR AVOIR UNE EXPERIENCE PRATIQUE ET FAIRE
UNE COMPARAISON ENTRE CE QUE J’AI APPRIS DURANT MA
FORMATION (EN 1ERE ET EN 2EME ANNEE FILIERE TDI) ET
CE QUE J’AI PRATIQUE EN TANT QUE STAGIAIRE.
8
J’ai été accueilli du 01 Avril au 31 Mai 2010 au sein du Groupe
Scolaire Ahmed CHOUKI.
Pendant ce stage, j’ai conçu puis réalisé une application permettant la
gestion scolaire.
Tout d’abord, je vais présenter dans la partie présentative le groupe
scolaire Ahmed Chaouki dans lequel j’ai effectué mon stage, ainsi que
les outils du travail.
J’exposerais ensuite dans la partie thématique le cahier des
charges, les différentes étapes de la modélisation, pour terminer, je
détaillerais les différentes étapes de la réalisation de l’interface.
Cette étude sera suivie d’une annexe.
.
10
Le Groupe Scolaire Ahmed Chaouki constitué de cinq
établissements : OuadNil, Ahmed CHOUKI 1, Ahmed
CHOUKI 2, Ahmed CHOUKI 3, ElManhal.
A la capitale économique, Casablanca est une ville portuaire
située à l’Ouest du Maroc.
Le Groupe Scolaire Ahmed Chaouki (le poète arabe des
temps modernes et le prince des poètes), grâce à une
pédagogie novatrice capable de former des citoyens
solidaires, respectueux de l’environnement, scolarise les
enfants marocains, français et d’autres nationalités de la
Maternelle à la Troisième. Les programmes sont conformes
aux programmes français et aux accords franco-marocains.
1980 : Ouverture de l’école OuadNil.
1985 : Ouverture de l’école Ahmed CHOUKI 1.
1989 : Ouverture de l’école Ahmed CHOUKI 2.
1991 : Ouverture de l’école Ahmed CHOUKI 3.
2000 : Ouverture de l’école ElManhal.
Enseignement des langues :
Arabe dès la Moyenne Section
Français
Espagnol dès la 4ième de Collège
11
Anglais dès la Grande Section
Structure :
Ahmed Chaouki 3
6 salles de classes maternelles
10 salles de classes élémentaires
1 salle de repos pour les Petites Sections
2 salles de psychomotricité
1 BCD (bibliothèque)
1 salle d’informatique *
1 salle des maîtres
1 cour de récréation
ElManhal
24 salles de classes
3 salles d’Histoire-Géographie
1 salle d’Arts Plastiques
2 salles d’informatique*
2 laboratoires de langues
4 laboratoires de Physique
3 laboratoires de S.V.T
1 salle de Technologie
1 cour de récréation
*L’entretien et la gestion du parc informatique est assuré
par un technicien spécialisé.
Equipe pédagogique :
12
Les enseignants du Groupe Scolaire Ahmed Chaouki sont des
professeurs détachés du Ministère marocain de l’Éducation
nationale. Chaque professeur de l’école maternelle est
accompagné d’une assistante.
Pour le Secondaire (Collège), la Vie Scolaire est animée par
un Conseiller Principal d’Éducation, aidé par des Assistants
d’Éducation. L’équipe pédagogique du Primaire est animée par
un Directeur, Chef d’établissement.
Planning horaire :
Aide personnalisée : lundi, mardi, jeudi et vendredi de 13h45
à 14h15 Le mercredi de 11h45 à 12h15
Maternelle et CP
Lundi, mardi, jeudi, vendredi
8h15 – 12h15
14h15 – 16h15
le mercredi de 8h15 à 11h45
Du CE1 au CM2
Lundi, mardi, jeudi, vendredi
8h15 – 12h15
14h15 – 16h15
Le mercredi de 8h15 à 11h45
13
Collège
Lundi, mardi, jeudi, vendredi
8h – 12h
14h00 – 17h ou 18h
Le mercredi de 8h à 12h
Inscriptions :
Admission SANS TEST en Maternelle
Pour l’Élémentaire et le Secondaire, une évaluation de
niveau est obligatoire.
Le projet d’établissement :
Le projet d’établissement du Groupe Scolaire Ahmed
Chaouki se donne pour mission de former , grâce à un
enseignement solide et diversifié , des élèves qui seront des
citoyens de demain disposant des atouts indispensables pour
respecter et s’impliquer pleinement dans les environnements
sociaux , économiques , culturels et écologiques de leur pays
ou d’ailleurs .
Les axes prioritaires de ce projet sont :
La maîtrise des langues
L’éducation à la citoyenneté
14
L’acquisition d’une culture par l’observation et
l’expérimentation scientifique et technologique de la
communication et de l’information.
Le développement de l'établissement s'est naturellement
accompagné d'un accroissement des effectifs:
1991: 180 élèves
1995: 247 élèves
1998: 283 élèves
2003: 310 élèves
15
Voici les logiciels utilisés dans le cadre de ce stage:
Adobe Photoshop pour l'édition graphique et la
retouche d'images.
NetBeans 6.0.1 pour le développement en java.
Pour le développement voici les langages que j'ai utilisés:
UML
Oracle
JAVA
17
Objectif du projet:
Depuis ses débuts, le Groupe Scolaire Ahmed Chaouki
accueille des élèves, marocains et étrangers. La gestion de
ces élèves implique de nombreux documents papier circulant
entre beaucoup de personnes. Enfin, il n'y a aucune
cohérence entre toutes les données qui circulent. Le but de
ce projet est donc de limiter les documents papier et
d'assurer une certaine cohérence des données.
Fonctionnalités requises:
Cette application devra permettre au directeur :
La gestion et la consultation des employés
La mise à jour et l’affichage des comptes
Cette application devra permettre aux secrétaires:
La gestion du calendrier scolaire (année scolaire,
semestres, les jours et les demi-journées non ouvrés,
les jours fériés).
L’affichage et la maintenance des fiches d’élèves(les
informations personnelles, la vie scolaire(les absences
et les sanctions) et le suivi(les notes et la décision de la
fin d’année).
La gestion des emplois du temps.
La mise à jour du paiement des frais scolaire.
La consultation des archives.
19
D’après ce diagramme de cas d’utilisation on conclut qu’il y a
deux acteurs dans notre système de gestion de scolarité :
Secrétaire:
Une secrétaire peut consulter et gérer la liste des
enseignants, des unités, des matières, des salles, des
niveaux, des groupes et en plus créer une année scolaires et
ses semestres, maintenir la liste des paiements des frais
scolaires, gérer les jours et les demi-journées non ouvrés et
afficher l’archive des employés et des élèves et elle a aussi
la possibilité de maintenir et visualiser les coordonnées, la
vie scolaire et le suivi d’un élève.
Toute opération doit être précédée d’une authentification.
Directeur:
Un directeur peut effectuer toutes les taches d’une
secrétaire et aussi gérer et consulter la liste des employés
et des comptes.
Toutes ces taches doivent être précédées d’une
authentification lors de laquelle un directeur précise un
login et un password.
20
Scenario nominal:
Acteur principal :
Secrétaire.
Résumé :
Secrétaire ajoute un nouvel élève.
Déroulement de l’interaction :
1. Secrétaire accède à l’application.
2. Le système demande à l’utilisateur de s’identifier.
3. Secrétaire saisie son identifiant et son mot de passe.
4. Le Système affiche une fiche à remplir.
5. Secrétaire remplie la fiche et choisit un niveau
6. Le système affiche la liste des groupes disponibles
concernant le niveau choisi par l’utilisateur.
7. Secrétaire choisit un groupe.
8. Le système affiche la confirmation de l’ajout de cet
élève.
Exception:
• Si l’utilisateur saisie un login ou un mot de passe
invalides le système lui redemande de s’identifier.
Ajouter un nouvel élève :
22
Scenario nominal:
Acteur principal :
Secrétaire.
Résumé :
Secrétaire crée une nouvelle séance.
Déroulement de l’interaction :
1. Secrétaire accède à l’application.
2. Le système demande à l’utilisateur de s’identifier.
3. Secrétaire saisie son identifiant et son mot de passe.
4. Le système affiche une fiche à remplir.
5. Secrétaire remplie la fiche en saisissant les
coordonnées concernant la séance.
6. Le système enregistre la séance et affiche une
confirmation.
Exception:
• Si l’utilisateur saisie un login ou un mot de passe
invalides le système lui redemande de s’identifier.
• Si l’horaire de la séance saisie par le secrétaire est
invalide le système lui redemande de choisir un nouveau
horaire.
• Si la séance déjà existe c'est-à-dire l’enseignant, la
salle ou le groupe choisis sont indisponibles, le système
demande au secrétaire de remplir la fiche ou de
remplacer l’ancienne séance.
Ajouter une nouvelle séance :
24
Diagramme de classe :
Ce diagramme de classe a pour but de schématiser les
différentes règles de gestion, il contient en général 26
classes qui sont liés entre eux par des relations.
26
Page d’identification :
L’identification de l’utilisateur se fait à travers la fenêtre
d’identification, l’utilisateur est invité à saisir l’identifiant et le mot
de passe et choisir un mode parmi « Mode Administratif
>> et « Mode Secrétaire>> selon sa fonction ou son intention.
27
Si l’utilisateur a cliqué sur le boutton « Se Connecter>> avant
de cocher un mode un message d’erreur s’affiche dans lequel le
systeme lui invite de choisir un mode.
28
Si l’identifiant ou le mot de passe saisies par l’utilisateur sont
invalides un message d’erreur s’affiche dans la fenêtre
d’identification, sinon la page principale s’affiche selon le mode
choisi.
29
Mode Secrétaire :
La fenêtre principale est composée de trois objets, le premier objet
contenant les différents services offrant par le système par
exemple « Emploi du temps», « Notes» et« Archives»…
La sélection de l’un des services permet la visualisation des sous-
services, le contenu de la fenêtre principale varie selon le sous-
service sélectionné du deuxième objet.
Le sous-service <<Calendrier>> contient quatre parties :
la première partie permet l’ajout d’une année scolaire en
choisissant un nom, une date de début et une date de fin.
30
La seconde partie permet l’ajout des semestres en choisissant
un nom, une date de début et une date de fin *.
La troisième partie permet la création des jours et des demi-
journées non ouvrés de l’établissement à partir des cases à
cocher *.
La dernière partie permet l’ajout des jours fériés en
choisissant un nom, une date de début et une date de fin, la
modification et la suppression se fait à partir de la table *.
*le système affecte les semestres, les jours et les demi-
journées non ouvrés et les jours fériés automatiquement à
l’année scolaire courante.
31
Le sous-service <<Matière & Unité>> offre la possibilité de maintenir
la liste des matière et des unités.
La mise à jour se fait à partir de la table.
32
Le sous-service <<niveau>> permet la gestion de la liste des niveaux.
Toute opération de mise à jour se fait à partir de la table par
exemple pour ajouter un nouveau niveau il faut remplir la dernière
ligne vide en saisissant le nom, les frais de scolarité, les frais de
transport, les frais de la cantine et les frais d’assurance avant de
cliquer sur « ajouter>>.
33
Le sous-service <<groupe>> permet de maintenir la liste des groupes.
Toute opération de mise à jour se fait à partir de la table par
exemple pour supprimer un groupe il suffit de sélectionner sa ligne
avant de cliquer sur « supprimer>>.
34
Le service offre la possibilité de consulter et gérer la liste des
enseignants de l’établissement à partir de la table.
L’utilisateur a aussi la possibilité de filtrer cette liste en saisissant
une chaine de caractère dans la zone de texte, la liste se varie selon
la chaine saisie dans la zone.
35
Le sous-service « salle>> permet la visualisation et la gestion de la
liste des salles, la fenêtre contient aussi des boutons de navigation.
36
La fenêtre ci-dessus permet de visualiser la liste des séances.
Elle permet aussi l’ajout d’une nouvelle séance en choisissant un
professeur, un niveau, un groupe, une unité, une salle, un horaire et un
jour avant de cliquer sur le bouton « vérifier la disponibilité>>.
37
Si le professeur, le groupe ou la salle sont indisponibles, le
système demande à l’utilisateur de remplacer la séance à partir d’une
boite de dialogue.
38
Si l’horaire de nouvelle séance est invalide c’est-à-dire l’horaire
appartient aux jours ou demi-journées non ouvrés de l’établissement,
le système affiche un message d’erreur.
39
L’utilisateur a la possibilité de supprimer une séance à partir d’une
liste qui contient toutes les séances de l’établissement en affichant
le numéro de la séance, le professeur, la salle, l’unité, le groupe, le
jour, l’heure de début et l’heure de fin.
40
La fenêtre ci-dessus permet la visualisation dans une table
l’agenda d’un groupe choisi à partir d’une liste déroulante.
Le contenu de la deuxième liste déroulante se varie à partir du niveau
sélectionné dans la première liste déroulante.
41
La fenêtre ci-dessus offre la possibilité de consulter dans une
table l’agenda d’un enseignant choisi à partir d’une liste déroulante.
La fenêtre possède aussi un calendrier.
42
La fenêtre ci-dessus possède une table contient la liste des
élèves de l’établissement, l’utilisateur a la possibilité de filtrer cette
liste par niveau ou groupe à partir des listes déroulantes ou bien par
nom à partir d’une zone de texte, la fenêtre a aussi des boutons de
navigation et des liens vers les fenêtres de la création ,la
modification, la vie scolaire et le suivi des élèves.
Cette interface permet aussi la suppression d’un élève en
sélectionnant sa ligne, le système ajoute automatiquement cet élève à
l’archive des élèves.
43
Pour ajouter un élève il faut saisir ses coordonnées, les informations
concernant son responsable, lui affecter à un niveau et à un groupe(le
système affiche seulement la liste des groupes disponibles c’est-à-
dire dont le nombre des élèves est inferieur à la capacité) et ajouter
son image.
45
En cliquant sur le bouton Parcourir une nouvelle fenêtre s’affiche
contient la liste des dossiers permettant à l’utilisateur de choisir une
image, l’image choisie dans la nouvelle fenêtre s’affiche
automatiquement dans la fenêtre de l’ajout.
Le bouton <<annuler>> permet de fermer cette fenêtre.
46
La fenêtre de modification contient les informations courantes de
l’élève sélectionné dans la page principale, l’utilisateur a la possibilité
de modifier ces coordonnées.
Le bouton <<annuler>> permet de fermer cette fenêtre.
47
Pour modifier l’image d’un élève il suffit de choisir une autre image à
partir de la liste des dossiers.
48
En cliquant sur <<vie scolaire >> une nouvelle fenêtre s’affiche
contenant les informations concernant les absences et les sanctions
de l’élève sélectionné.
49
La fenêtre de la vie scolaire contient une liste des sanctions et
des absences et les informations personnelles d’un élève choisi.
La fenêtre permet aussi la gestion des sanctions et la mise à jour et
la justification des absences.
Le bouton « annuler>> permet la fermeture de la fenêtre.
50
L’utilisateur peut ajouter, modifier ou supprimer une justification
pour une absence choisi à partir de la fenêtre principale.
51
Une absence ne doit avoir qu’une seule justification, si ce n’est pas le
cas le système demande à l’utilisateur de remplacer l’ancienne
justification.
52
En cliquant sur <<suivi élève >> une nouvelle fenêtre s’affiche
contenant les informations concernant les notes et les bulletins de
l’élève sélectionné.
53
L’utilisateur a la possibilité de visualiser les notes d’un élève choisi
et les filtrer par matière, année scolaire ou semestre.
Les lignes contenant les notes qui sont inferieurs à 5 sont en rouge.
Les lignes contenant les notes entre 5 et 6 sont en orange.
Les lignes contenant les notes qui sont supérieurs à 6 sont en vert.
54
L’utilisateur a la possibilité de visualiser les bulletins d’un élève
choisi, si la note est inferieure à 5 le système affecte
«Non Admis>> à sa décision, si la note entre 5 et 6 l’utilisateur à la
possibilité d’affecter une décision, si la note est supérieure à 6 le
système affecte «Admis>> à sa décision.
Les lignes dans lesquels la décision est « non Admis>> sont en rouge.
Les lignes dans lesquels la décision est « Admis>> sont en vert.
55
La fenêtre ci-dessus permet la consultation la gestion et la filtration
par matière, niveau et date des devoirs et elle permet aussi la
gestion des notes d’un devoir sélectionné.
56
Pour créer un nouveau devoir il faut choisir sa matière, son niveau,
son type, son horaire et sa date.
La fenêtre contient aussi un bouton permet de revenir à la sélection
des devoirs.
57
Cette interface permet l’affectation des notes d’un devoir choisi à un
groupe choisi à partir d’une liste déroulante contient les groupes
concernant le niveau de ce devoir
Les lignes contenant les notes qui sont inferieurs à 5 sont en rouge.
Les lignes contenant les notes entre 5 et 6 sont en orange.
Les lignes contenant les notes qui sont supérieurs à 6 sont en vert.
58
L’interface ci-dessous permet la visualisation et le paiement des
frais scolaires pour le mois courant, le système supprime
automatiquement les élèves qui n’ont pas payé les frais scolaires du
mois précédent.
59
L’utilisateur visualise la liste des élèves archivés et il a aussi
la possibilité de filtrer cette liste par le nom saisie dans une zone de
texte.
60
L’utilisateur visualise la liste des employés archivés et il a aussi
la possibilité de filtrer cette liste par le nom saisie dans une zone de
texte.
La fenêtre principale contient un menu qui permet de quitter ou de se
déconnecter.
61
Mode administratif :
Pour accéder au mode administratif l’utilisateur doit saisir son
identifiant et son mot de passe.
62
L’utilisateur visualise, gère la liste des employés et il a aussi la
possibilité de filtrer cette liste par le nom saisie dans une zone de
texte.
63
L’utilisateur visualise, gère la liste des comptes et il a aussi la
possibilité de filtrer cette liste par le nom saisie dans une zone de
texte.
La fenêtre principale contient un menu qui permet de quitter
l’application, se déconnecter ou passer au mode secrétaire.
64
Un stage de fin de formation est pour moi la première
expérience professionnelle dans le domaine de
l'informatique, c’est pour cela ce projet était une étape très
importante dans mon cycle de formation vu qu'il était une
occasion très intéressante et bénéfique pour savoir
comment appliquer, sur le plan pratique, des connaissances
théoriques déjà acquises.
Grâce à un environnement favorable pour le travail et avec
un encadrement encourageant et permanent, j’ai pu réaliser
mon projet de fin de formation suivant un plan organisé.
Cependant mon stage ne se termine pas avec la soutenance,
il me reste en effet encore deux mois à effectuer qui vont
me permettre de voir non seulement la finalisation du
projet, mais également de pouvoir diversifier ma fonction.
Quoiqu'il en soit ce stage aura été une aventure
enrichissante, que cela soit du point de vue technique que de
l'humain.
66
Les requêtes SQL
i. Create table employee(id_emp number primary key, nom varchar2(50),
prenom varchar2(50),datenaissance date, adresse varchar2(50), sexe
varchar2(20),salaire number,tel varchar2(50),email varchar2(50), date_debut
date,fonction varchar2(20) ) ;
ii. Create table compte(login varchar2(20) primary key,password varchar2(20)
,idemp number ,foreign key (idemp) references employee(id_emp) on delete
cascade);
iii. Create table annscol (id_ann varchar2(50) primary key ,date_debut
date,date_fin date);
iv. Create table semestre (id_semestre number primary key ,date_debut
date,date_fin date,libelle varchar2(20), id_ann varchar2(20), foreign key
(id_ann) references annscol(id_ann) on delete cascade);
v. Create table responsable(id_resp number primary key ,nom varchar2(50),
prenom varchar2(50), adresse varchar2(50),sexe varchar2(20),tel
varchar2(50),email varchar2(50)) ;
vi. Create table niveau(id_niveau varchar2(20) primary key,frais_scolarite
number,frais_transport number,frais_cantine number,assurance number);
vii. Create table groupe(id_grp varchar2(20) primary key , id_niveau
varchar2(20),foreign key(id_niveau) references niveau(id_niveau) on delete
cascade,max_elve number);
viii. Create table eleve(id_eleve number primary key ,nom varchar2(50), prenom
varchar2(50),datenaissance date, adresse varchar2(50),lieunaiss
varchar2(20),sexe varchar2(20), date_scolarite date ,date_affiliation
date,id_resp number,transport varchar2(20),restaurant varchar2(20),image
blob,id_grp varchar2(20),foreign key (id_resp) references responsable
(id_resp) on delete cascade, foreign key (id_grp) references groupe (id_grp) on
delete cascade) ;
ix. Create table frais (id_frais number primary key,id_eleve number,mois
number,id_ann varchar2(50), foreign key (id_ann) references annscol(id_ann) on
delete cascade, foreign key (id_eleve) references eleve (id_eleve) on delete
cascade);
x. Create table decision(id_decision number primary key,id_eleve number,id_ann
varchar2(50), decision varchar2(20),foreign key (id_ann) references
annscol(id_ann) on delete cascade, foreign key (id_eleve) references eleve
(id_eleve) on delete cascade);
67
xi. Create table prof(id_prof number primary key ,nom varchar2(50), prenom
varchar2(50), datenaissance date, adresse varchar2(50), sexe varchar2(20),
salaire number,tel varchar2(50),email varchar2(50)) ;
xii. Create table arch_employee(id_emp number primary key, nom varchar2(50),
prenom varchar2(50),datenaissance date, adresse varchar2(50), sexe
varchar2(20),tel varchar2(50),email varchar2(50), date_debut date,date_fin
date,fonction varchar2(20) ) ;
xiii. Create table arch_eleve(id_eleve number primary key ,nom varchar2(50),
prenom varchar2(50),datenaissance date, adresse varchar2(50),sexe
varchar2(20) , date_debut date,date_fin date ) ;
xiv. Create table sall(id_sall number primary key,libelle varchar2(20),nbre_place
number);
xv. Create table unite(id_unit number primary key,libelle varchar2(20));
xvi. Create table matiere(id_mat number primary key,id_unit number,libelle
varchar2(20),foreign key(id_unit) references unite(id_unit) on delete cascade);
xvii. Create table devoir(id_devoir number primary key,id_mat number,id_smstr
number, type varchar2(20),date_dev date,id_niveau varchar2(20),h_deb
varchar2(5) , h_fin varchar2(5) ,foreign key(id_mat) references
matiere(id_mat) on delete cascade,foreign key(id_smstr) references
semestre(id_semestre) on delete cascade,foreign key(id_niveau) references
niveau(id_niveau) on delete cascade);
xviii. Create table note(id_devoir number,id_eleve number,note number,primary
key(id_devoir,id_eleve),foreign key(id_devoir) references devoir(id_devoir) on
delete cascade,foreign key(id_eleve) references eleve(id_eleve) on delete
cascade);
xix. Create table seance (id_seance number primary key,id_prof number,id_sall
number,id_mat number,id_grp varchar2(20) , jour varchar2(20), h_deb
varchar2(5) , h_fin varchar2(5) ,foreign key (id_prof) references prof
(id_prof) on delete cascade, foreign key (id_sall) references sall (id_sall) on
delete cascade, foreign key (id_mat) references matiere (id_mat) on delete
cascade, foreign key (id_grp) references groupe (id_grp) on delete cascade);
xx. Create table abscent (id_abt number primary key,id_eleve number,date_debut
date,h_debut varchar2(5),date_fin date, h_fin varchar2(5) ,foreign
key(id_eleve) references eleve(id_eleve) on delete cascade);
xxi. Create table sanction (id_sanct number primary key ,id_eleve number,date_sanct
date,sanction varchar2(50),motif varchar2(50),commentaire varchar2(50)
,foreign key(id_eleve) references eleve(id_eleve) on delete cascade);
68
xxii. Create table justification_abt (id_just number primary key,id_abt number,motif
varchar2(200),moyen varchar2(200) ,commentaire varchar2(50) ,foreign
key(id_abt) references abscent(id_abt) on delete cascade);
xxiii. Create table joursFerie(id number primary key,date_debut date,date_fin
date,libelle varchar2(20),id_ann varchar2(50), foreign key (id_ann) references
annscol(id_ann) on delete cascade);
xxiv. Create table joursNonOuvert(id number primary key,Jour varchar2(20),d_h
varchar2(20) ,d_f varchar2(20),id_ann varchar2(50), foreign key (id_ann)
references annscol(id_ann) on delete cascade);
xxv. Create sequence semp start with 1 increment by 1;
xxvi. Create sequence ss start with 1 increment by 1;
xxvii. Create sequence sj start with 1 increment by 1;
xxviii. Create sequence sv start with 1 increment by 1;
xxix. Create sequence sm start with 1 increment by 1;
xxx. Create sequence su start with 1 increment by 1;
xxxi. Create sequence sp start with 1 increment by 1;
xxxii. Create sequence ssall start with 1 increment by 1;
xxxiii. Create sequence sse start with 1 increment by 1;
xxxiv. Create sequence se start with 1 increment by 1;
xxxv. Create sequence sabt start with 1 increment by 1;
xxxvi. Create sequence ssan start with 1 increment by 1;
xxxvii. Create sequence sjust start with 1 increment by 1;
xxxviii. Create sequence sr start with 1 increment by 1;
xxxix. Create sequence s_frais start with 1 increment by 1;
xl. Create sequence s16 start with 1 increment by 1;
xli. Create sequence s17 start with 1 increment by 1;
xlii. Create sequence s18 start with 1 increment by 1;
xliii. Create sequence s19 start with 1 increment by 1;
xliv. Create sequence s20 start with 1 increment by 1;
xlv. Create sequence s21 start with 1 increment by 1;
xlvi. Create sequence s22 start with 1 increment by 1;
xlvii. Create sequence s23 start with 1 increment by 1;
xlviii. Create sequence s24 start with 1 increment by 1;
xlix.
l. create or replace trigger archelv before delete on eleve for each row
begin
insert into arch_eleve values(:old.id_eleve ,:old.nom , :old.prenom
,:old.datenaissance ,:old.adresse ,:old.sexe , :old.date_scolarite ,sysdate ) ;
end;
69
/
li. create or replace trigger arch_emp before delete on employee for each row
begin
insert into arch_employee values ( :old.id_emp , :old.nom , :old.prenom ,
:old.datenaissance , :old.adresse , :old.sexe , :old.tel , :old.email ,
:old.date_debut ,sysdate , :old.fonction ) ;
end;
/
lii. create or replace trigger arch_prof before delete on prof for each row
begin
insert into arch_employee values ( :old.id_prof , :old.nom , :old.prenom ,
:old.datenaissance , :old.adresse , :old.sexe , :old.tel , :old.email ,’’ ,sysdate
,’Enseignant’) ;
end;
/
70
UML :
UML (Unified Modeling Language, que l'on peut traduire par "langage de
modélisation unifié) est une notation permettant de modéliser un problème de
façon standard. Ce langage est né de la fusion de plusieurs méthodes existant
auparavant, et est devenu désormais la référence en terme de modélisation
objet, à un tel point que sa connaissance est souvent nécessaire pour obtenir un
poste de développeur objet.
La notion d'objet
La programmation orientée objet consiste à modéliser informatiquement un
ensemble d'éléments d'une partie du monde réel (que l'on appelle domaine) en un
ensemble d'entités informatiques. Ces entités informatiques sont appelées
objets. Il s'agit de données informatiques regroupant les principales
caractéristiques des éléments du monde réel (taille, la couleur, ...).
La difficulté de cette modélisation consiste à créer une représentation
abstraite, sous forme d'objets, d'entités ayant une existence matérielle (chien,
voiture, ampoule, ...) ou bien virtuelle (sécurité sociale, temps, ...).
Les méthodes objets
La modélisation objet consiste à créer une représentation informatique des
éléments du monde réel auxquels on s'intéresse, sans se préoccuper de
l'implémentation, ce qui signifie indépendamment d'un langage de programmation.
Il s'agit donc de déterminer les objets présents et d'isoler leurs données et les
fonctions qui les utilisent. Pour cela des méthodes ont été mises au point. Entre
1970 et 1990, de nombreux analystes ont mis au point des approches orientées
objets, si bien qu'en 1994 il existait plus de 50 méthodes objet. Toutefois seules
3 méthodes ont véritablement émergé :
La méthode OMT de Rumbaugh
La méthode BOOCH'93 de Booch
La méthode OOSE de Jacobson (Object Oriented Software Engineering)
A partir de 1994, Rumbaugh et Booch (rejoints en 1995 par Jacobson) ont unis
leurs efforts pour mettre au point la méthode unifiée (unified method 0.8),
incorporant les avantages de chacunes des méthodes précédentes.
La méthode unifiée à partir de la version 1.0 devient UML (Unified Modeling
Language), une notation universelle pour la modélisation objet.
71
UML n'est pas une méthode dans la mesure où elle ne présente aucune
démarche. A ce titre UML est un formalisme de modélisation objet. Le
mot méthode parfois utilisé par abus de langage dans les pages suivantes
ne doit donc pas être entendu comme une "démarche".
UML 1.0 est soumise à l'OMG (Object Management Group) en janvier 1997, mais
elle ne sera acceptée qu'en novembre 1997 dans sa version 1.1, date à partir de
laquelle UML devient un standard international.
Voici le récapitulatif des évolutions de ce langage de modélisation :
En 1995: Méthode unifiée 0.8 (intègrant les méthodes Booch'93 et OMT)
En 1995: UML 0.9 (intègrant la méthode OOSE)
En 1996: UML 1.0 (proposée à l'OMG)
En 1997: UML 1.1 (standardisée par l'OMG)
En 1998: UML 1.2
En 1999: UML 1.3
En 2000: UML 1.4
En 2003: UML 1.5
Cette méthode représente un moyen de spécifier, représenter et construire les
composantes d’un système informatique.
Avec la méthode UML, un objet est par exemple représenté de la façon
suivante :
Intérêt d'une méthode objet
Les langages orientés objet constituent chacun une manière spécifique
d'implémenter le paradigme objet. Ainsi, une méthode objet permet de définir le
problème à haut niveau sans rentrer dans les spécificités d'un langage. Il
72
représente ainsi un outil permettant de définir un problème de façon graphique,
afin par exemple de le présenter à tous les acteurs d'un projet (n'étant pas
forcément des experts en un langage de programmation).
De plus, le fait de programmer à l'aide d'un langage orienté objet ne fait pas
d'un programmeur un concepteur objet. En effet il est tout à fait possible de
produire un code syntaxiquement juste sans pour autant adopter une approche
objet. Ainsi la programmation orientée objet implique
en premier lieu une conception abstraite d'un modèle objet (c'est le rôle
de la méthode objet)
en second plan l'implémentation à l'aide d'un langage orienté objet (tel
que C++/Java/...)
Une méthode objet est donc d'une part une méthode d'analyse du problème (afin
de couvrir toutes les facettes du problème), d'autre part un langage permettant
une représentation standard stricte des concepts abstraits (la modélisation) afin
de constituer un langage commun.
Qu'est-ce qu'un modèle ?
La modélisation consiste à créer une représentation simplifiée d'un problème: le
modèle.
Grâce au modèle il est possible de représenter simplement un problème, un
concept et le simuler. La modélisation comporte deux composantes :
L'analyse, c'est-à-dire l'étude du problème
la conception, soit la mise au point d'une solution au problème
Le modèle constitue ainsi une représentation possible du système pour un point
de vue donné.
La modélisation UML
Le méta modèle UML fournit une panoplie d'outils permettant de représenter
l'ensemble des éléments du monde objet (classes, objets, ...) ainsi que les liens
qui les relie.
Toutefois, étant donné qu'une seule représentation est trop subjective, UML
fournit un moyen astucieux permettant de représenter diverses projections
d'une même représentation grâce aux vues.
73
Une vue est constituée d'un ou plusieurs diagrammes. On distingue deux types
de vues :
Les vues statiques, c'est-à-dire représentant le système physiquement
o diagrammes d'objets
o diagrammes de classes
o diagrammes de cas d'utilisation
o diagrammes de composants
o diagrammes de déploiement
Les vues dynamiques, montrant le fonctionnement du système
o diagrammes de séquence
o diagrammes de collaboration
o diagrammes d'états-transitions
o diagrammes d'activités
Les cas d'utilisation
Les cas d'utilisation (en anglais use cases) permettent de représenter le
fonctionnement du système vis-à-vis de l'utilisateur, c'est donc une vue du
système dans son environnement extérieur.
Oracle :
Oracle est un SGBD (système de gestion de bases de données) édité par la
société du même nom (Oracle Corporation - http://www.oracle.com), leader
mondial des bases de données.
La société Oracle Corporation a été créée en 1977 par Lawrence Ellison, Bob
Miner, et Ed Oates. Elle s'appelle alors Relational Software Incorporated (RSI)
et commercialise un Système de Gestion de Bases de données relationnelles
(SGBDR ou RDBMS pour Relational Database Management System) nommé
Oracle.
En 1979, le premier prototype (RDBMS - RSI1) intégrant la séparation des
espaces d'adressage entre les programmes utilisateurs et le noyau Oracle est
commercialisé. Cette version est entièrement développée en langage assembleur.
La seconde version (RDBMS - RSI2) est un portage de l'application sur d'autres
plates-formes.
En 1983 la troisième version apporte des améliorations au niveau des
performances et une meilleure prise en charge du SQL. Cette version est
74
entièrement codée en langage C. A la même époque RSI change de raison sociale
et devient Oracle.
En 1984 la première version d'Oracle (Oracle 4) est commercialisée sur les
machines IBM.
En 1985 Oracle 5 permet une utilisation client-serveur grâce au middleware
SQL*Net.
En 1986 Oracle a été porté sur la plateforme 8086.
En 1988 Oracle 6 est disponible sur un grand nombre de plates-formes et
apporte de nombreuses nouvelles fonctionnalités ainsi qu'une amélioration
notable des performances.
En 1991, Oracle 6.1 propose une option Parallel Server (dans un premier temps
sur la DEC VAX, puis rapidement sur de nombreuses autres plates-formes).
En 1992, Oracle 7 sort sur les plates-formes UNIX (elle ne sortira sur les
plates-formes Windows qu'à partir de 1995). Cette version permet une meilleure
gestion de la mémoire, du CPU et des entrées-sorties. La base de données est
accompagnée d'outils d'administration (SQL*DBA) permettant une exploitation
plus aisée de la base. En 1997, la version Oracle 7.3 (baptisée Oracle Universal
Server) apparaît, suivie de la version 8 offrant des capacités objet à la base de
données
Oracle est écrit en langage C et est disponible sur de nombreuses plates-formes
matérielles (plus d'une centaine) dont :
AIX (IBM)
Solaris (Sun)
HP/UX (Hewlett Packard)
Windows NT (Microsoft)
Oracle depuis la version 8.0.5 est disponible sous Linux
Les versions d'Oracle
Oracle se décline en plusieurs versions
Oracle Server Standard, une version comprenant les outils les plus
courants de la solution Oracle. Il ne s'agit pas pour autant d'une version
bridée...
75
Oracle Server Enterprise Edition
Les fonctionnalités d'Oracle
Oracle est un SGBD permettant d'assurer :
La définition et la manipulation des données
La cohérence des données
La confidentialité des données
L'intégrité des données
La sauvegarde et la restauration des données
La gestion des accès concurrents
Les composants d'Oracle
Outre la base de données, la solution Oracle est un véritable environnement de
travail constitué de nombreux logiciels permettant notamment une
administration graphique d'Oracle, de s'interfacer avec des produits divers et
d'assistants de création de bases de données et de configuration de celles-ci.
On peut classer les outils d'Oracle selon diverses catégories :
Les outils d'administration
Les outils de développement
Les outils de communication
Les outils de génie logiciel
Les outils d'aide à la décision
Les outils d'administration d'Oracle
Oracle est fourni avec de nombreux outils permettant de simplifier
l'administration de la base de données. Parmi ces outils, les plus connus sont :
Oracle Manager (SQL*DBA)
NetWork Manager
Oracle Enterprise Manager
76
Import/Export : un outil permettant d'échanger des données entre deux
bases Oracle
Outils de développement d'Oracle
Oracle propose également de nombreux outils de développement permettant
d'automatiser la création d'applications s'interfaçant avec la base de données.
Ces outils de développement sont :
Oracle Designer
Oracle Developer
SQL*Plus : une interface interactive permettant d'envoyer des requêtes
SQL et PL/SQL à la base de données. SQL*Plus permet notamment de
paramétrer l'environnement de travail (formatage des résultats, longueur
d'une ligne, nombre de lignes par page, ...)
Oracle Developper : il s'agit d'une suite de produits destinés à la
conception et à la création d'applications client-serveur. Il est composé de
4 applications :
o Oracle Forms (anciennement SQL*Forms) : un outil permettant
d'interroger la base de données de façon graphique sans
connaissances préalables du langage SQL. SQL*Forms permet ainsi
de développer des applications graphiques (fenêtres, formulaires,
...) permettant de sélectionner, modifier et supprimer des données
dans la base.
o Oracle Reports (SQL*ReportWriter) : un outil permettant de
réaliser des états
o Oracle Graphics : un outil de génération automatique de graphiques
dynamiques pour présenter graphiquement des statistiques
réalisées à partir des données de la base
o Procedure Builder : un outil permettant de développer des
procédures, des fonctions et des packages
JAVA
Java est un langage objet ressemblant au langage C++. Il a été mis au point en
1991 par la firme Sun Microsystems. Le but de Java à l'époque était de
constituer un langage de programmation pouvant être intégré dans les appareils
électroménagers, afin de pouvoir les contrôler, de les rendre interactifs, et
surtout de permettre une communication entre les appareils. Ce programme de
77
développement se situait dans un projet appelé Green, visant à créer une
télécommande universelle (Star 7) comprenant un système d'exploitation capable
de gérer l'ensemble des appareils électroménagers de la maison. Etant donné que
le langage C++ comportait trop de difficultés, James Gosling, un des acteurs du
projet (considéré désormais comme le père de Java) décida de créer un langage
orienté objet reprenant les caractéristiques principales du C++, en éliminant ses
points difficiles, et en le rendant moins encombrant et plus portable (il devait
pouvoir être intégré dans n'importe quel appareil...). Ainsi, ce langage fut baptisé
dans un premier temps Oak (Oak signifiant chêne). Toutefois, puisque ce nom
était déjà utilisé, il fut rebaptisé Java en l'honneur de la boisson préférée des
programmeurs, c'est-à-dire le café, dont une partie de la production provient de
l'île Java.
A la même époque, le Web faisait son apparition, or Java possédait toutes les
caractéristiques faisant de lui un langage approprié pour le Web :
Le réseau des réseaux rassemblant sur une même structure des machines
différentes, il fallait un langage capable de fonctionner sur chacune
d'entre-elles: Java était conçu pour être portable
Le web était limité en bande passante: Java était conçu pour être petit
Ainsi, en 1994, l'équipe décida de mettre au point un navigateur (baptisé
HotJava) intégrant Java et capable de faire fonctionner des applets (des
petites applications fonctionnant dans un navigateur). C'est ainsi que fin 1995
Java eut un terrible essor avec le soutien de Netscape, qui ne tarda pas à inclure
Java dans son navigateur...
Comparaison de Java et de C++
Java est très proche du langage C++ étant donné qu'il a quasiment la même
syntaxe. Toutefois Java est plus simple que le langage C++ bien qu'il s'en inspire,
car les caractéristiques critiques du langage C++ (celles qui sont à l'origine des
principales erreurs) ont été supprimées. Cela comprend :
Les pointeurs
La surcharge d'opérateurs
L'héritage multiple
La libération de mémoire est transparente pour l'utilisateur (il n'est plus
nécessaire de créer de destructeurs)
Une meilleure gestion des erreurs
Les chaines et les tableaux sont désormais des objets faisant partie
intégrante du langage
78
Toutefois Java est beaucoup moins rapide que le langage C++, il perd en rapidité
ce qu'il gagne en portabilité