III.2 DIAGRAMME D'ETATS
Les diagrammes d'états décrivent tous les
états possibles d'un objet (vu comme une machine à états).
Ils indiquent en quoi ses changements d'états sont induits par des
événements.
Les diagrammes d'états identifient pour classe
données des comportements d'un objet tout au long de son cycle de vie
(de la naissance ou de l'état initial, symbolisée par le disque
plein noir, à la mort ou état final, disque noir couronné
de blanc).
DEBUT
FIN
Si amende = payer
Diagramme d'état d'un payement d'amende
Figure 7 : Diagramme
d'état
III.3 DIAGRAMME D'ACTIVITE
UML permet de représenter graphiquement le comportement
d'une méthode ou le déroulement d'un cas d'utilisation, à
l'aide de diagrammes d'activités.
Une activité représente une exécution
d'un mécanisme, un déroulement d'étapes
séquentielles. Le passage d'une activité vers une autre est
matérialisé par une transition.
Les transitions sont déclenchées par la fin
d'une activité et provoquent le début immédiat d'une autre
(elles sont automatiques).
Payer amende
Impression reçu
Enregistrement PV
Présence de l'accusé
Payer
Diagramme d'activité : Payer ses amendes
Figure 8 : Diagramme
d'activité
III.4 DIAGRAMME DE SEQUENCE
Les diagrammes de séquences permettent de
représenter des collaborations entre objets selon un point de vue
temporel, on y met l'accent sur la chronologie des envois de messages.
Contrairement au diagramme de collaboration, on n'y
décrit pas le contexte ou l'état des objets, la
représentation se concentre sur l'expression des interactions.
: Système
: Agent police
(Niveau constat)
: Policier
(Niveau saisi)
: Caisse
: Accusé
Constat
Etablissement ticket de payement
Remet le ticket à l'accusé
En état d'Infraction
Remet le PV
Enregistre le PV
Imprime le reçu
Traitement
Transmission reçu à la caisse
Valide le reçu
Payer
Encaissement
Dresse états de la journée
Figure 9 : Diagramme
de séquence
TROISIEME PARTIE : PRODUCTION DE LA PLATE
FORME DE DONNEES
I. ENVIRONNEMENT
LOGICIEL/MATERIEL
I.1. Environnement Logiciel
1. Système d'exploitation
(S.E)
Notre plate forme de données peut fonctionner sur le
système d'exploitation suivant : Windows 98, 2000, XP,2003
Server, Linux.
2. Base de données : MySQL
du serveur WEB WAMPSERVER
MySQL dérive directement de SQL (Structured Query
Language) qui est un langage de requête vers les bases de données
exploitant le modèle relationnel.
Il en reprend la syntaxe mais n'en conserve pas toute la
puissance puisque de nombreuses fonctionnalités de SQL n'apparaissent
pas dans MySQL (sélections imbriquées, clés
étrangères...)
Le serveur de base de données MySQL est très
souvent utilisé avec le langage de création de pages web
dynamiques : PHP.
3. Langage de Script : PHP
Il a été créé en 1994 par Rasmus
Lerdorf pour les besoins des pages web personnelles (livre d'or, compteurs,
etc.). A l'époque, PHP signifiait Personnal Home Page.
C'est un langage incrusté au HTML et
interprété (PHP3) ou compilé (PHP4) côté
serveur. Il dérive du C et du Perl dont il reprend la syntaxe. Il est
extensible grâce à de nombreux modules et son code source est
ouvert. Comme il supporte tous les standards du web et qu'il est gratuit, il
s'est rapidement répandu sur la toile.
En 1997, PHP devient un projet collectif et son
interpréteur est réécrit par Zeev Suraski et Andi Gutmans
pour donner la version 3 qui s'appelle désormais PHP : Hypertext
Preprocessor (acronyme récursif à l'exemple du système
Open Source Linux : Is Not UniX).
Il existe par ailleurs des applications web prêtes
à l'emploi (PHPNuke, PHP SPIP, PHPSlash...) permettant de monter
facilement et gratuitement son portail. En juillet 2000 plus de 300.000 sites
tournaient déjà sous PHP !
4. Navigateur
Internet Explorer 6 ; Mozilla Firefox ; ...
I.2 Environnement Matériel
Pour notre plate forme nous citerons comme
matériels :
- un serveur de base de données ;
- un ordinateur de bureau ;
- un onduleur pour la sécurité
électrique ;
- une petite configuration réseau.
II. LA SECURITE
II.1- Sécurité Globale
de la plate forme
Nous avons utilisé dans le cas de cette
implémentation le MD5 qui est très pratique. De nombreuses
implémentations de cet algorithme sont disponibles dans pratiquement
tous les langages. De plus, On peut l'utiliser librement. Son niveau de
sécurité offert est suffisant pour quasiment toutes les
applications.
La page login.php permet à l'utilisateur
d'entrer son login et son mot de passe. Cette page utilise le fichier de script
login.js. C'est dans ce fichier que sont inclus les scripts javascripts
nécessaires (et notamment MD5). .
- La page logout.php doit être appelée si
l'utilisateur désire se déconnecter.
- La page auth-config.php contient les informations de
configuration du système.
- La page auth.php est appelée par login.php lorsqu'un
utilisateur se connecte. C'est cette page qui vérifie si l'utilisateur
est autorisé ou non à se connecter.
- La page authcheck.php doit être incluse en
début de chaque page que vous désirez protéger. Cette page
vérifie si l'utilisateur s'est préalablement identifié. Si
ce n'est pas le cas, l'utilisateur sera redirigé vers la page
login.php.
Lorsqu'un utilisateur navigue sur un site, il est difficile de
passer des informations de page en page. PHP permet de faire cela grâce
aux sessions. La création d'une session permet d'assigner des valeurs
à des variables, puis de faire passer ces valeurs aux pages que
l'utilisateur verra ensuite.
Lorsque vous créez une session, PHP renvoie au
navigateur un cookie de session. C'est un identifiant que le navigateur
renverra à chaque page visitée. Les variables que vous utilisez
sont stockées sur le serveur. En fonction de l'identifiant qu'il
reçoit, le serveur détermine quelle session est associée
avec l'utilisateur et passe les variables correspondantes au script.
En principe, les identifiants de session ne sont pas
stockés sur le disque, ou seulement temporairement. La fermeture du
navigateur entraîne généralement la destruction de ces
identifiants. Un utilisateur ne peut donc pas se reconnecter avec la même
session s'il ferme son navigateur.
Toutefois, tous les navigateurs ne procèdent pas de la
même façon. Il faut donc supposer qu'il est possible à un
utilisateur de récupérer la même session après avoir
fermé son navigateur. Si un utilisateur se connecte depuis un ordinateur
public, une personne peut donc utiliser sa session après qu'il soit
parti, pour avoir accès au site. La fonction de 'logout' permet
d'éviter cela. Elle détruit explicitement la session. Si le
navigateur tente d'utiliser le même identifiant de session, cela ne
fonctionnera pas. Etant donné que beaucoup d'utilisateurs ne se
déconnectent pas, nous introduirons ici un système de 'timeout',
qui permet de détruire la session après un certain temps
d'inactivité de l'utilisateur.
II.2 Gestion des comptes :
Le système est constitué des comptes (Login, mot
de passe et profil).
Le profil de l'Administrateur est défini
de la manière suivante :
L'Administrateur est l'organe suprême du système.
Il défini les comptes utilisateurs et s'occupe du paramétrage
général de plateforme. A cet effet, il accède à
toutes bases de données. Il assure la sauvegarde, la maintenance et la
mise à jour des données.
Le profil de l'utilisateur est défini
comme suit :
L'utilisateur peut solliciter certaines informations et a la
possibilité de saisir les données. Il veille à
l'entrée correcte des données.
Le profil de l'invité
est défini comme suit:
L'invité ne peut que consulter l'information et s'il
est intéressé pourra s'adresser au personnel du commissariat de
la circonscription qui est l'utilisateur. Il peut également s'adresser
directement à la source principale de l'Information.
NB: Ici un Administrateur sera
considéré comme un super administrateur qui définira les
autres comptes administrateurs
III. REQUETES SQL
III.1. Exemple Requêtes SQL de
la gestion des comptes Utilisateurs
CREATION DE LA BASE DE DONNEES DE
PROTECTION
CREATE DATABASE `protection`;
CREATION DE LA TABLE MESSAGE
CREATE TABLE `messages` (
`CODE_MESSAGES` bigint(20) NOT NULL auto_increment,
`CODE_AUTEUR` varchar(4) NOT NULL,
`NOM_AUTEUR` varchar(80) NOT NULL,
`SUJET` varchar(120) NOT NULL,
`CONTENU` text NOT NULL,
`DATE_MESSAGE` date NOT NULL,
PRIMARY KEY (`CODE_MESSAGES`)
) TYPE=InnoDB AUTO_INCREMENT=4 ;
CREATION DE LA TABLE UTILISATEUR
CREATE TABLE `utilisateur` (
`CODE_UTILISATEUR` char(4) NOT NULL,
`NOM_PRENOMS` char(80) NOT NULL,
`FONCTION_UTILISATEUR` char(80) default NULL,
`LOGIN_UTILISATEUR` char(80) NOT NULL,
`MOT_PASSE` char(80) NOT NULL,
`DATE_CREATION` date default NULL,
`DATE_EXPIRATION` date default NULL,
`TYPE_UTILISATEUR` char(80) default NULL,
`LAST_ACCESS` date default NULL,
`LAST_ACCESS_TIME` time NOT NULL
) TYPE=InnoDB;
III.2. Structure de table la table
Message et Utilisateur
La table Message est la table qui stockera les messages qui
seront misent à la disposition de l'administrateur par l'utilisateur. Le
massage peut avoir pour objet la validité d'un compte utilisateur qui
s'expirera soit dans deux jours, soit dans un mois.
Ne vous fiez pas au fait que normalement
« CODE_AUTEUR » fait référence à
l'utilisateur de la table « utilisateur » ayant
écrit le message, créez simplement ce champ, l'application
gère elle même la contrainte, toute fois vous pouvez ajouter la
contrainte si nécessaire.
La table Utilisateur est une table qui stockera les informations
par rapport aux comptes utilisateurs.
IV. QUELQUES CODES
SOURCES
Exemple : Le code php pour un Nouveau
compte.
<?php
include "config/auth-config.php";
include "templates/authcheck.php";
include "templates/auth_admin.php";
include "templates/auth_expiration.php";
require 'parametres_base_donnees.php';
$bdd='protection';
//on va dans la base des données effectuer les
différentes modifications si les données sont valides.
if ( isset($_POST['passwd']) && isset($_POST['login'])
&& isset($_POST['code_utilisateur']) ){
list($jour2, $mois2, $annee2) = explode('/',
$_POST['expiration']);
$_POST['expiration']=$annee2.'-'.$mois2.'-'.$jour2;//rearangement de la date au
format compatible MySQL
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter au moteur SGBD");
@mysql_select_db("$bdd")
or die("Impossible de se connecter à la Base des
données");
$date_creation = date("Y-m-d");
$requete="INSERT INTO `utilisateur` ( `CODE_UTILISATEUR` ,
`NOM_PRENOMS` , `FONCTION_UTILISATEUR` , `LOGIN_UTILISATEUR` , `MOT_PASSE` ,
`DATE_CREATION` , `DATE_EXPIRATION` , `TYPE_UTILISATEUR` , `LAST_ACCESS` ,
`LAST_ACCESS_TIME` )
VALUES('".$_POST['code_utilisateur']."','".$_POST['nom_prenoms']."','".$_POST['fonction_utilisateur']."','".$_POST['login']."','".$_POST['passwd']."','".$date_creation."','".$_POST['expiration']."','".$_POST['message']."','NULL','NULL');";
mysql_query($requete);
mysql_close();
}
?>
<html>
<head>
<title>Création nouvel utilisateur</title>
<style type="text/css">
DIV.all { width: 60%; height: 80%; border: groove #888888 3px;
margin-left: auto; margin-right: auto; text-align: left; background-color:
#EDEDED; padding: 10; font-family: Arial, Helvetica, sans-serif; font-size:
12px; font-style: normal; font-weight: normal; color: #000000;}
</style>
<meta http-equiv='Content-Type' content='text/html;
charset=iso-8859-1' />
<script language="javascript" type="text/javascript"
src="scripts/login.js"></script>
</head>
<body background="./images/fond03[2].jpg" style="text-align:
center;">
<div class="all" style="width: 433px; height: 397px">
<form id='log' method='post' action='nouveau_compte.php'
onSubmit="return verif_modif_pass_usr();">
<input type='hidden' name='message' />
<input type='hidden' name='md5' />
<table border="0" cellpadding="0" cellspacing="0">
<tr align='center'>
<td valign="middle" height="300" width="628">
<fieldset style="padding: 2;">
<legend ><font color="#0000FF"><b>Nouvel
utilisateur</b></font></legend>
<table align='center' id="table1">
<td colspan="2" ><font
color="#000080"><b>Code :</b></td><td><input
name='code_utilisateur'/></td></tr>
<td colspan="2" ><font
color="#000080"><b>Noms et prénoms
:</b></td><td><input
name='nom_prenoms'/></td></tr>
<td colspan="2" ><font
color="#000080"><b>Fonction utilisateur
:</b></td><td><input
name='fonction_utilisateur'/></td></tr>
<td colspan="2" ><font
color="#000080"><b>Login utilisateur :</b></td><td
><input name="login" size="20"></td></tr>
<td colspan="2" ><font
color="#000080"><b>Date expiration :</b></td><td
><input name="expiration" size="20" value='<?php
print(date('d/m/Y'));?>'></td></tr>
<td colspan="2" ><font color="#000080"><b>Mot
de passe :</b></td><td ><input name="passwd"
type='password' size="20"></td></tr>
<td colspan="2" ><font
color="#000080"><b>Confirmer le mot de passe
:</b></td><td ><input name="passwd_confirm"
type='password' size="20"></td></tr>
<td colspan="2" ><font
color="#000080"><b>Type utilisateur :</b></td><td
><select size="1" name="type_utilisateur">
<option
value="administrateur">Administrateur</option>
<option value="utilisateur" selected=true
>Utilisateur</option>
</select></td></tr>
<tr><td align='center'><input type='submit'
value='Valider !' /></td><td align='center'><input
type='reset' value='Retablir !' /></td></tr>
</table>
</fieldset></td>
<b>Retour à la <a
href='index_administrateur.php' TARGET='_top'>page
personnelle</a><br></b>
<?php if (isset($_POST['message'])) print('Les modifications
ont été effectuées avec succès
!');unset($_POST['message']);?>
</tr>
</table>
</form>
</div>
</body>
V. PRESENTATIONS DES QUELQUES
MAQUETTES
1- Accueil
(A) représente l'entête de notre plate forme de
données qui contient : le message de bienvenue et logos ;
(B) représente le menu de notre plate forme qui nous
servira d'élément de pilotage de cette dernière ;
(C) représente la fenêtre où s'afficheront
nos pages quand nous cliquerons sur le menu.
Entête (A)
Menu (B)
- ...
- ...
- ...
- ...
-
-
-
-
- Connexion avec mode (*)
(C)
Fenêtre où s'afficheront nos pages quand nous
cliquerons sur le menu ...
Quand on clique sur Connexion avec mode la
fenêtre de connexion s'affiche dans l'espace (C) et le résultat
est :
2- Fenêtre de connexion
(*)
Bienvenue à la plate forme
Login :
Mot de passe :
Valider
3- Présentation des menus
A l'accueil de la plate forme de données (Base de
données de contravention) le menu par défaut est celui de
l'invité (a). Ici l'Administrateur et Utilisateur
peuvent se connectés via la fenêtre de connexion. Et sur leurs
pages personnelles ils verront un changement automatique de menu :
§ si l'on est utilisateur nous verrons le Menu
Utilisateur (b) s'afficher et
§ si l'on est administrateur c'est le Menu Administrateur
(c) qui s'affichera.
Menu Administrateur (c)
- Paramètres personnels
- Modifier 1 compte
- Nouveau compte
- Gestion des comptes
- Consulter les messages
- ...
- Fermer la session
Menu Utilisateur (b)
- Ecrire à l'administrateur ;
- Formulaire ;
- ...
-
-
-
-
-
- - Fermer la session
Menu Invité (a)
- Accueil
- Contravention de classe 1
- Contravention de classe 2
- Contravention de classe 3
- Liste des accusés
- ...
-
- Connexion avec mode
4- Exemple d'un Formulaire
Toutes les entrées des données seront identiques
à ce formulaire ci-dessous :
Formulaire Caisse
Code de la Caisse :
Montant :
Nom agent caisse :
Date de versement :
Code pénalité :
Enregistrer
Annuler
QUATRIEME PARTIE : PROCEDURE D'INSTALLATION ET
AIDE A L'UTILISATION DE LA PLATE FORME DE DONNEES
I. Procédures
d'Installation
Voir le fichier installation.pdf qui
se trouve dans le paquet CD d'installation de la plate forme de
données.
II. Aide à
l'utilisation de la plate forme de données
La page d'accueil de la plate forme SYSCONTRA se
présente ainsi qu'il suit :
II-1.
Quelques scénarios relatifs aux comptes administrateur et
utilisateur.
1° CONNEXION.
Lors de la première installation, on doit
accéder à la page de définition de l'administrateur qui
n'est pas encore présent dans la base des données et le
définir.
On clique sur « connexion avec
code » et on accède à l'écran
suivant :
On doit alors remplir le formulaire qui s'affiche et le soumettre
par validation, si tout se passe bien on aura :
Lorsqu'on clique ultérieurement sur
« connexion avec code », on a l'écran
suivant :
On rentre ainsi le « login » et mot de
passe.
- Si la date d'expiration du mot de passe n'est pas à
sont terme, on est alors identifié et on peut aller à sa page
d'accueil ;
- Si la date d'expiration est expirée et qu'on est
« utilisateur », on a la possibilité de laisser un
message à l'administrateur ;
- Si la date d'expiration est expirée et qu'on est
« administrateur », on a la possibilité de mettre
à jour immédiatement ses paramètres.
Illustrations :
o 1er cas : Identification
correcte et mot de passe non expiré.
Nous pouvons alors cliquer sur « Page
personnelle » pour voir affiché l'environnement de
l'utilisateur : dans ce cas précis c'est un administrateur et son
menu correspond à :
Nous détaillerons les scénarios relatifs à
chaque rubrique plus bas.
- 2ème cas : On est
administrateur mais le mot de passe est expiré (permet à l'admin
de mettre souvent à jour ses infos personnelles pour plus de
sécurités).
- Vous pouvez alors cliquer sur « modifier vos
paramètres » pour réactiver le compte.
o 3ème cas : Votre compte
est expiré et vous êtes
« utilisateur » :
On peut choisir de laisser un message à l'administrateur
pour lui demander par exemple de mettre à jour ses paramètres ou
alors lui donner un nouveau compte.
Il faut cliquer alors sur « Envoyer » et le
message sera à la disposition de l'administrateur. Nous parlerons de la
« lecture des messages » par l'administrateur un peu plus
bas.
2° DESCRIPTION DES SCENARIOS DE
L'ADMINISTRATEUR.
On rappelle simplement que lorsqu'on est logué comme
administrateur, le menu devient le suivant :
On doit aussi signaler que lorsque l'écran est inactif
pendant plus de cinq minutes, il y a déconnexion automatique de la
session en cours.
2.1 On clique sur « Paramètres
personnels ».
Ceci permet à l'administrateur de contrôler ou de
modifier ses propres paramètres :
2.2 Modifier un compte.
Lorsqu'on clique sur cette rubrique, on peut afficher la liste
des utilisateurs du système. On peut ainsi supprimer certains comptes ou
les modifier. L'écran se présente ainsi qu'il suit :
2.3 Nouveau compte.
Lorsqu'on clique sur « Nouveau compte », on a
la possibilité d'ajouter un utilisateur.
2.4 Remplir un formulaire.
Voir l'exemple de maquette remplissage à la
troisième partie du mémoire.
2.5 Consulter messages.
Principalement les messages de ceux qui ont vu leur compte
expiré. Lorsqu'on clique dessus on a :
Par défaut, seuls les messages de la journée
sont affichés. Mais comme on peut le constater, on peut indiquer la
plage de la période utile.
Pour chaque message, on peut soit le supprimer, soit afficher
le contenu. Par exemple dans le cas précédent, si nous cliquons
sur « Détails » en ce qui concerne le message soumis
le 16-01-2008 et dont l'objet est « Réactivation de mon
compte. », nous verrons l'écran suivant :
On peut alors décider de « supprimer »
ce message ou alors de cliquer sur « Paramètres
utilisateur » en vu de modifier ses paramètres personnels.
2.6 Fermer la session.
Il est important de cliquer sur « Fermer la
session » en vu, non seulement de restituer immédiatement les
ressources du serveur, mais aussi de limiter le « vol de
sessions ». Toutefois, en cas d'inactivation de la page pendant cinq
minutes, la session est automatiquement libérée. Nous pouvons
revoir à la hausse ou à la baisse cette valeur.
|