WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Développement d'une application de contrôle parental

( Télécharger le fichier original )
par Marouene et Malik Mzoughi et Kamoun
Université de la Manouba Tunisie - Licence fondamentale en informatique de gestion 2010
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

République Tunisienne

Ministère de l'enseignement supérieur

Et de la recherche scientifique et de la technologie

Université de la Manouba

251657728

Institut supérieur de la comptabilité et d'administration des entreprises

Licence Fondamentale en Informatique de Gestion

Projet de fin d'étude

Développement d'une application de contrôle parental

Réalisé par : Mzoughi Marouene

Kamoun Malik

Encadré par : Jalila Ben Ghorbel(ISCAE)

Abd Essabour Arous(ANSI)

Organisme d'accueil :

L'Agence Nationale de la Sécurité Informatique

Dédicace

De plus profond de mon coeur et avec le plus grand plaisir de ce monde, je dédie ce travail :

A mes chers parents pour tous les sacrifices qu'ils ont consentis pour mon éducation et pour tout ce qu'ils ont enduré pour satisfaire toutes mes sollicitations.

Que le dieu les préserve en bonne santé et longue vie

A toute la famille Mzoughi

A mes chers amis toujours la pour moi

Mzoughi Marouene

Dédicace

A mon père,

A ma mère,

Leurs sacrifices et leur amour

ont fait de moi ce que je suis.

Ce travail est une occasion pour

leur exprimer mon éternelle

reconnaissance.

Avec tous mes souhaits de

réussite et de bonheur à mon frère et à tous mes amis.

Kamoun Malik

Remerciements

Nous voulons adresser nos profonds remerciements et toute notre gratitude à nos honorables encadrant ;

Monsieur Abd Essabour Arous « l'ANSI »,

Mademoiselle Jalila ben Ghorbel, à l'Institut Supérieur De La Comptabilité et d'Administration des Entreprises pour la disponibilité, l'aide, l'encouragement et le témoignage ce qui nos a permis de mener ce projet dans des bonnes conditions.

Je tiens à remercier aussi mes professeurs et enseignants de l' institut supérieur de comptabilité et d'administration des entreprises de Tunis qui n'ont pas hésité durant notre formation de nous faire part de leurs connaissances et conseils.

Je ne peux pas oublier d'adresser mes remerciements à tous nos enseignants durant notre éducation de l'école primaire et secondaire.

Enfin, nous adressons vivement nos remerciements à tous ceux qui ont participé de près ou de loin à la réalisation de ce travail.

Sommaire

Introduction générale...............................................................................12

Chapitre 1 : contexte générale du projet

Introduction............................................................................................15

I Présentation du cadre du projet...................................................15

I.1 Contexte générale .........................................................................15

I.2 Présentation générale de l'agence nationale de la sécurité informatique .......16

I.3 Présentation général du projet .........................................................18

II Etude de l'existant .........................................................................................................19

II.1 Description de l'existant ................................................................19

II.2 Limite de l'existant ........................................................................20

III. Spécification des besoins ..................................................................22

III.1 Les besoins fonctionnels .................................................................22

III.2 Les besoins non fonctionnels ...........................................................23

Conclusion..............................................................................................24

Chapitre 2 : conception 

Introduction ...........................................................................................26

I. Conception...................................................................................26

II. Vue statique.................................................................................27

II.1 Modèles de cas d'utilisation............................................................27

III.1.1 Généralités ............................................................................27

II.1.1.1 Vue de cas d'utilisation ........................................................27

II.1.1.2 Acteur .............................................................................27

II.1.1.3 Cas d'utilisation .................................................................28

II.1.2 Identification des acteurs............................................................28

II.1.3 Diagramme de cas d'utilisation .....................................................28

II.1.3.1 Diagramme de cas d'utilisation général ....................................29

II.1.3.2 Identification des cas d'utilisation par paquetage ........................31

II.1.3.3 Descriptions des cas d'utilisation ............................................33

II.1.3.3.1 Cas d'utilisation  « Inscription » ............................................33

II.1.3.3.2 Cas d'utilisation « création d'un profil ».............................35

II.1.3.3.3 Cas d'utilisation « contrôler les plages horaires »..................37

II.1.3.3.4 Cas d'utilisation « édition du profil ».................................38

II.1.3.3.5 Cas d'utilisation « l'historique des sites visitées »..................39

II.1.3.3.6 Cas d'utilisation «  configuration des alertes ».....................40

II.1.3.3.7 Cas d'utilisation « choisir les fonctions activées ».................42

II.1.3.3.8 Cas d'utilisation «  blocage des applications ».......................43

II.1.3.3.9 Cas d'utilisation « définition des mots clés »........................44

II.1.3.3.10 Cas d'utilisation « édition des listes »...............................47

II.1.3.3.11 Cas d'utilisation « navigation sur internet ».......................48

II.3.3.12 Cas d'utilisation« utilisation des applications » ...................49

II.1.4 Diagramme de classe...............................................................50

III. Les vues dynamiques...................................................................51

III.1 Les diagrammes de séquences ........................................................51

III.1.1 Diagramme de séquence « inscription » ........................................52

III.1.2 Diagramme de séquence « configuration des alertes » .......................54

III.1.3 Diagramme de séquence « authentification »...................................55

III.1.4 Diagramme de séquence « alerte » ...............................................56

III.2 Diagramme d'activité....................................................................57

III.2.1 Diagramme d'activité « Alerte » ..................................................58

III.2.2 Diagramme d'activité « Edition profil » .......................................60

Conclusion..............................................................................................60

Chapitre 3 : Réalisation

Introduction:.....................................................................................................62

I. Environnement du travail ..........................................................62

I.1 Environnement matériel ................................................................62

I.2 Environnement Logiciels ................................................................63

I.3 Outils de développement .................................................................63

II. Interfaces de l'application ...........................................................63

II.1 Interface « Inscription »..................................................................63

II.2 Interface «  Authentification »...........................................................67

II.3 Interface «  Accueil »......................................................................68

II.4 Interface « Création du profil ».........................................................69

II.5 Interface « Edition profil » ..............................................................72

II.6 Interface « Fonctions activées ».........................................................74

II.7 Interface «  Option ».......................................................................75

II.8 Interface « Planification »................................................................78

II.9 Interface «  Configuration des alertes »................................................79

II.10 Interface « Edition des listes »...........................................................80

II.11 Interface « Mots clés » ...................................................................83

II.12 Interface « Blocage des applications »..................................................84

II.13 Interface «  site visités »...................................................................87

Conclusion ...........................................................................................88

Conclusion générale..........................................................................89

Bibliographie ....................................................................................91

Annexe A : Outils et techniques de programmations

I. Environnement Qt creator SDK .........................................................92

II. XML (eXtensible Markup Language) ..................................................94

III. Le langage C++ ..............................................................................95

Annexe B : Outils de conception 

I. Intérêt d'une méthode orienté objet ......................................................96

II. Pourquoi UML ...............................................................................96

III. Entreprise Architect (Sparx) ...............................................................97

Liste des figures

Figure 1 : « interface Log Protect ».............................21

Figure 2  « Cas d'utilisation général ».............................29

Figure 3  « Paquetage administrateur »..........................31

Figure 4 « Paquetage Enfant/adolescent »............................32

Figure 5 «  Cas d'utilisation Inscription »............................33

Figure 6 « cas d'utilisation création profil »..............................35

Figure 7 « cas d'utilisation contrôle plage horaire »....................37

Figure 8 « Cas d'utilisation Edition profil ».........................38

Figure 9 « Cas d'utilisation l'historique des sites visitées »....................39

Figure 10« Cas d'utilisation configuration alertes ».......................40

Figure 11 «  Cas d'utilisation fonctions activées »....................41

Figure 12 «  Cas d'utilisation Blocage des application »...................43

Figure 13 «  Cas d'utilisation mots clés »........................45

Figure 14 «  Cas d'utilisation Editions des listes »...................47

Figure 15 «  Cas d'utilisation navigation internet »......................48

Figure 16 «  Cas d'utilisation utilisation des application »..............49

Figure 17 «  Diagramme de classe ».............................50

Figure 18 «  Séquence inscription ».............................52

Figure 19 « Séquence activation Alerte»..........................54

Figure 20 « Séquence Authentification»..........................55

Figure 21 « Séquence Alerte»...................................56

Figure 22 « Activité Alerte».....................................58

Figure 23 « activité édition profil»..............................59

Figure 24« Interface inscription».................................64

Figure 25 « Interface inscription»................................65

Figure 26 « Interface inscription» ..............................66

Figure 27 « Interface Authentification» .........................67

Figure 28 « Interface accueil» ...............................68

Figure 29 « Interface création profil» ............................69

Figure 30 « Interface création profil» ............................70

Figure 31 « Interface création profil» ............................71

Figure 32 « Interface Edition profil» ..............................72

Figure 33 « Interface Edition profil» ..............................73

Figure 34 « Interface Fonctions activées» ..........................74

Figure 35 « Interface Fonctions surveillance» .......................75

Figure 36 « Interface Fonctions Authentification» ....................76

Figure 37« Interface Authentification» ..............................77

Figure 38 « Interface Plages horaires» .........................78

Figure 39« Interface alertes » ....................................79

Figure 40 « listes blanches » ...............................80

Figure 41« listes noires» ........................................82

Figure 42« listes mots clés» .................................83

Figure 43« listes Blocage des applications» ...........................86

Figure 44« Sites visitées» .......................................87

Figure 45« Qt multiplateforme» ..............................93

Figure 46« société de Qt» ....................................94

Figure 47« Sparx» ........................................98

Introduction générale

Internet est un gigantesque réseau qui utilise l'ensemble de câbles et de fils du réseau téléphonique, une immense toile d'araignée, qui relie près de 10.000.000 d'ordinateurs hôtes, ce qui permet à plus de 100.000.000 de personnes dans le monde de se relier à internet par modem à partir de leur micro-ordinateur.

Ce monde virtuel est le paradis pour ceux qui souhaitent apprendre, améliorer leur culture,

découvrir des nouveaux domaines, ou encore communiquer.
Mais, tout comme dans la vie réelle, Internet est aussi un monde peuplé de dangers. Si les adultes en sont, généralement, bien conscients, ce n'est malheureusement pas le cas des jeunes, pour qui Internet peut très vite se révéler dangereux puisqu'ils forment la population la plus exposée et la plus ciblée par les prédateurs et qui tombe le plus souvent dans leurs pièges.

En effet, c'est l'âge, où l'on commence à vouloir échapper à la surveillance des parents pour se faire des relations hors du cercle familial.

Trop confiants dans l'anonymat apparent d'Internet, les jeunes adolescents prennent souvent des risques dont ils ne comprennent pas réellement la portée.

D'où arrive la nécessité d'une solution pour contrôler et restreindre l'accès de nos enfants à l'internet en les limitant à certaines catégories de contenus, ces solutions sont généralement désigner par « logiciel de contrôle parental ». Et dans ce cadre, s'inscrit notre projet de fin d'étude intitulé « développement d'une application de contrôle parentale », réalisé au sein de l'organisme « Agence National de la Sécurité Informatique ». Ce projet a été encadré par « M. Abd Sabour AROUS » au sein de l'agence et par « Mlle  Jalila BEN GHORBEL » au sein de l'institut. La réalisation de ce projet a duré deux mois et demi

Pour l'élaboration de notre application, nous avons été amené à réalisé plusieurs étapes. Ces étapes nous ont permit d'acquérir des connaissances et des compétences pour mieux réaliser notre objectif. Pour cela nous avons suivi la méthodologie suivante :

Tout d'abord, dans un premier chapitre nous avons mis en évidence, les motivations, atouts, problématique qui nous a amené à réaliser ce projet. Ainsi, une description de l'état de l'art de notre projet.

Ensuite, après avoir réalisé une étude exhaustive du cadre général, nous avons entamé le deuxième chapitre qui va décrire la partie conception de notre projet. Pour cela, nous avons présenté des diagrammes de modélisation pour mieux gérer et concevoir notre projet.

Enfin, le dernier chapitre a été dédié a la partie réalisation où nous avons présenté la partie applicative du projet et les différentes interfaces de notre logiciels

Ce rapport a été conclu par une conclusion générale.

Chapitre 1:

Contexte général du projet

I. Présentation du cadre du projet

II Etude de l'existant

III Spécification des besoins 

Introduction:

Dans ce chapitre nous présentons l'organisme au sein duquel nous avons effectué notre projet de fin d'étude, ses activités et ses missions. Nous présenterons par la suite

Les spécificités de notre projet et son cadre général

I Présentation du cadre du projet:

I.1 Contexte générale:

En Tunisie, l'accès à internet, par les enfants et dans les familles a beaucoup augmenté depuis ces dernières années. Il est donc nécessaires que les parents prennent conscience de l'importance de protéger leurs enfants contre toute type d'agression sur internet ,alors l'agence national de la sécurité informatique désire proposer un logiciel de contrôle parental pour  convaincre les fournisseurs d'accès d'interne F.A.I en Tunisie de le proposer dans leurs packs en prenant exemple sur les fournisseurs d'accès à internet internationaux. , puisque ce produit représentent déjà une grande valeur pour ces derniers.il est même offert avec chaque packs ADSL.

Planification : 

I.2 Présentation générale de l'agence nationale de la sécurité informatique :

L'agence effectue un contrôle général des systèmes informatiques et des réseaux relevant des divers organismes publics et privés.

C'est en 1999 qu'à lieu le lancement, sur la base du décret n°99-2768 du 6 décembre 1999, d'une « unité de gestion par objectifs pour la réalisation du développement de la sécurité informatique » au sein du secrétariat d'État à l'informatique, dont le rôle est de suivre les derniers développements en matière de sécurité informatique et de veiller à l'amélioration de la sécurité des applications et infrastructures nationales critiques.

Le rôle et la structure de l'unité est modifiée en 2002 pour devenir une direction générale, en charge (en plus des fonctions précédentes) du développement d'une stratégie nationale et d'un plan national dans le domaine de la sécurité informatique et de la définition des instruments exécutifs pour une mise en oeuvre efficace. L'année suivante, un conseil des ministres restreint, présidé par le « président Zine el-Abidine Ben Ali », est dédié à l'informatique et à la sécurité des systèmes d'information.

Il prend les décisions suivantes :

· Création d'une agence nationale spécialisée dans la sécurité des systèmes d'information (outil exécutif de la stratégie et du plan national) ;

· Introduction d'un audit obligatoire et périodique dans le domaine de la sécurité informatique ;

· Création d'un corps d'auditeurs certifiés en sécurité des systèmes d'information.

C'est donc en 2004 qu'a lieu la création de « l'Agence nationale de la sécurité informatique »sur la base de la loi n°2004-5. [Ref06]

Mission:

L'agence est chargée des missions suivantes:

ü Veiller à l'exécution des orientations nationales et de la stratégie générale en systèmes de sécurité des systèmes informatiques et des réseaux

ü Suivre l'exécution des plans et des programmes relatifs à la sécurité informatique dans le secteur public à l'exception des applications particulières à la défense et à la sécurité nationale et assurer la coordination entre les intervenants dans ce domaine

ü Assurer la veille technologique dans le domaine de la sécurité informatique

ü Etablir des normes spécifiques à la sécurité informatique et élaborer des guides techniques en l'objet et procéder à leur publication

ü OEuvrer pour encourager le développement de solutions nationales dans le domaine de la sécurité informatique et à les promouvoir conformément aux priorités et aux programmes qui seront fixés par l'agence

ü Participer à la consolidation de la formation et du recyclage dans le domaine de la sécurité informatique

ü Veiller à l'exécution des réglementations relatives a l'obligation de l'audit périodique de la sécurité des systèmes informatiques et des réseaux. [Ref06]

I.3 Présentation général du projet :

L'arrivée d'internet est une immense opportunité, mais malheureusement il présente aussi des risques pour les mineurs, ce qui augmente la nécessité d'avoir des solutions adéquates pour sécuriser/contrôler la navigation des ces derniers sur internet.

Ce type de solution est souvent désigné par "Logiciel de contrôle parental». De ce fait, notre projet consiste à développer une application qui doit permettre aux parents de limiter l'accès à des sites internet pour adulte ou dont le contenu aborde la pornographie, les armes, les drogues ou incite a la violence ou a des sites dont le contenu peut provoquer une perte de temps (chat, jeux en ligne....).

Notre application offre à l'utilisateur un historique des sites visités sur le net, il protège l'ordinateur contre les infections informatiques par des fichiers malveillants, assure la vie privée des enfants par l'interdiction de transmettre ses coordonnées personnelles et surveille le comportement des enfants sur internet et même peut interdire l'accès à certain sites considéré comme « incorrecte » par les parents.

Notre problématique consiste à réaliser ces objectifs, donc nous avons opté pour des solutions professionnelles et complètes.

Les fonctionnalités sur lesquels nous avons travaillé sont :

· Blocage des applications

· Filtrage des sites

· Filtrage par mot clés (Interdire l'accès a des sites sensibles par mots clés)

· Limiter les heures de navigations

· Filtrer les téléchargements

L'objectif que nous avons fixé tout le long de ce stage est d'assurer le succès de l'application en offrant la qualité requise grâce, en premier lieu, à l'intégration d'une interface conviviale et ergonomique qui facilitera l'apprentissage du système, qui incitera l'utilisation et l'intégration des nouvelles technologies de l'information.

II Etude de l'existant

Cette partie est consacrée à l'étude de l'existant, qu'est une étape essentielle avant tout travail de développement dans le domaine informatique puisque elle représente le premier contact du concepteur avec le projet à réaliser. Nous allons passer ensuite à critiquer l'état présent en donnant une vue sur les différentes étapes conduisant à la réalisation de notre projet.

II.1 Description de l'existant :

Notre projet consiste à réaliser une application de contrôle parental qui permet pendant l'absence des parents de bloquer ou interdire l'accès a des sites, des applications et des téléchargements. L'apparition de cette idée est du a l'évolution de l'internet, qui a influé, d'une part sur la mentalité de la société et sur le comportement des jeunes, ce changement a modifié la vie familiale en général est surtout la communication entre les parents et les enfants qui est devenu presque absente. Et qui a rendu d'une autre part la surveillance et le contrôle de l'utilisation de cette technologie un peu difficile puisque les enfants passe beaucoup de temps sur Internet, principalement la nuit, et fréquente les salons de conversations. Il n'y a pas d'identification des personnes qui fréquentent ces zones réservées aux jeunes. Ceux-ci cherchent à entrer en contact avec des mineurs en dehors des heures scolaires et ils le font le soir et la nuit.

Il est donc nécessaire que les parents prennent conscience de l'importance de  protéger leurs enfants contre toute nature d'agression sur Internet d'où la création des solutions qui protège et limite l'accès a internet afin de garantir une bonne éducation et de profiter de cette ressource dans les bonnes conditions.

Plusieurs solutions sont disponibles aujourd'hui que se soit en open source, free ou payant.

Pour les contrôles parentaux commerciaux qui sont développé par une entreprise, dont le but est de gagner de l'argent sur l'utilisation du logiciel, On cite « Parental Filtre 2 ».

C'est le seul contrôle parental qui prend en compte tous les aspects de l'utilisation de l'ordinateur et d'internet, il filtre les contacts, protège les informations bloque les téléchargements des applications et surtout il offre aux utilisateurs l'administration et le suivi a distance .on peut dire que ce logiciel est presque parfait il possède une interface ergonomique et conviviale, ainsi que des fonctionnalités importantes qui garanti un contrôle efficace. [Ref13]

Nous pouvons parler aussi de « Windows Vista control » qui est intégrer avec Windows mais ce dernier reste un peut limiter. Nous ne pouvons pas dire vraiment que c'est un logiciel de contrôle parental.

Passant maintenant aux applications free qui sont des logiciel fourni avec l'autorisation pour quiconque de l'utiliser, de le copier, et de le distribuer, soit sous une forme conforme à l'original, soit avec des modifications, ou encore gratuitement ou contre un certain montant.

Parmi ces derniers on trouve « Log Protect » qui permet de bloquer des applications et des programmes, filtrer les informations personnelles .......Ce logiciel possède une configuration des alertes très efficace, en cas ou votre enfant essaye de faire une recherche avec un mot clé définit dans la liste des mots interdites, « Log Protect » le stoppe, affiche un message et ainsi de suite sur trois alertes. Puis il déclenche une action. Il permet aussi de définir des plages horaires pour chaque application. [Ref04]

Un autre contrôle gratuit « Free Angel », qui permet de créer ou éditer des profils adolescent et enfant pour personnaliser l'utilisation du logiciel en fonction de vos besoins, définir les plages horaire de connexion et plein d'autre fonctionnalités. [Ref05]

Ce logiciel a démontré son efficacité en termes de filtrage lors de test « ONG E-enfance »

et « Action Innocence ». En termes de fonctionnalité le logiciel a également été distingué par « Action Innocence » en se classant second sur le marché des logiciels de contrôle parental.

Apres cette étude globale de l'existant nous allons dégager les problématiques de contrôle parental et montré ses insuffisances et ses limites.

II.2 Limite de l'existant :

Plusieurs insuffisances sont constatées dans le fonctionnement des contrôles parentaux actuel, Nous allons essayer de traiter quelques unes (les insufficences majeurs qui peuvent gêner les utilisateurs) pour satisfaire les clients et atteindre la performance dans ce produit.

Nous commençons par « Log Protect » qui oblige les utilisateurs de crée un profil de contrôle standard c'est-à-dire que l'utilisateur n'a pas le droit de préciser a chaque enfant ces fonctionnalités (bloque tous, passe tous) en plus son interface graphique mal présenté et les couleurs sont mal choisi, elle manque de l'innovation et n'attire pas les utilisateurs

Figure 1 : « interface Log Protect »

Pour Free Angel, on constate des messages d'erreur indiquant l'impossibilité d'activé la protection parental qu'après la fermeture du  MSN Messenger, même si que ce dernier est fermé, ceci peut gêner énormément les utilisateurs.

Enfin, certains  contrôle parental offert ou proposé par les FAI (Orange Wanadoo.......) refusent les connexions a leur serveur SMTP donc ils sont paramétrer par default d'où ils impliquent ses choix aux clients, par contre les applications disponible sur internet donnent la liberté aux utilisateurs de les configurer selon leurs besoins.

III. Spécification des besoins :

Dans cette partie nous allons analyser les besoin fonctionnel ainsi que non fonctionnel de notre logiciel.

III.1 Les besoins fonctionnels :

Nous présentant dans cette partie les besoins fonctionnels classés par acteurs. Nous définissons un acteur comme étant une personne, un matériel ou un logiciel qui interagie avec le système dans le but de réaliser une plus value.

Dans notre application on a deux types d'acteurs à savoir:

-Administrateur

-Enfant/ Adolescent

v Administrateur:

Le système doit permettre aux parents de:

-Créer un profil administrateur identifie par un nom et un mot de passe.

-Créer, modifier et supprimer un profil d'enfant/ adolescent.

-Définir les règles de filtrage (une liste noire pour adolescent, une liste blanche pour enfant, téléchargement, application, mots-clés, de donner ses coordonnées personnels), ----fixer des plages horaires et consulter l'historique des sites visités.

v Enfant/ Adolescent:

Le système doit garantir:

-Une navigation sécurisée

-Organisation et gérer le temps de la navigation et l'utilisation de l'ordinateur

-Protection contre le contenue abusif et choquant de violence et de pornographie.

III.2 Les besoins non fonctionnels :

Les besoins non fonctionnels spécifient les propriétés du système telles que les contraintes d'environnement et d'implémentation, la performance, la maintenabilitè, l'extensibilité, la flexibilité et la sécurité des données.

-Temps de réponse:

Les interfaces de notre application doivent réagir en l'espace de deux secondes au maximum.

-Besoin d'une interface conviviale:

En effet, l'application devra être facile à comprendre, facile à gérer et à manipuler.

-L'implémentation :

Nécessite d'avoir une implémentation modulaire claire et simple pour permettre par la suite la maintenabilitè, l'extensibilité, et l'amélioration de l'application d'une manière facile. Il faut donc faire un développement par composition et se conformer à des standards.

-Confidentialité:

Les utilisateurs de notre application sont identifiés par le système en fonction de leur Pseudo (login), de leur mot de passe.

-Extensibilité:

L'application devra supporter des plugins dans lequel on peut ajouter des nouvelles fonctionnalités.

Conclusion:

Tout au long de ce chapitre nous avons présenté l'organisme d'accueil et les besoins nécessaires a la réalisation de notre projet en passant par plusieurs étapes commençons par l'étude de l'existant tout en comprenant les besoins de l'entreprise et déterminant les problématiques actuelles a fin de proposer les solutions adéquates ainsi que les technologies nécessaires pour la réalisation de nos objectifs.

Mais, avant d'entamer la phase de la réalisation de l'application, il est primordial de présenter une conception détaillée de notre travail qui fera l'objet du chapitre suivant

Chapitre 2:

Conception

I Conception 

II Vue statique 

III Les vues dynamiques 

Introduction :

L'étude conceptuelle est une phase importante du cycle de développement de tout système informatique. Dans ce chapitre, nous exposants les éléments conceptuels de notre travail et nous détaillons l'architecture retenue pour construire notre logiciel.

I Conception :

UML (Unified Modeling Langage) est une approche oriente objet de modélisation qui permet de modéliser un problème d'une manière standard. Le langage définit neufs diagrammes pour représenter les différents points de vue de la modélisation. Ils permettent de visualiser et de manipuler les éléments de la modélisation, ces diagrammes seront classifiés selon leur but en deux vues.

· Vue Statique : Représenter par des diagrammes qui définissent l'avis statique de conception (les diagrammes des cas d'utilisations, les diagrammes de classes, les diagrammes d'objet et les diagrammes de déploiement).

· Vue Dynamique : se décompose de quatre diagrammes : (les diagrammes de séquence, les diagrammes d'activité, les diagrammes de collaboration ainsi que les diagrammes d'états transitions).

II . Vue statique :

Les vues statiques représentent des schémas de conception à caractère stable ou immobile pour les différents processus de l'application. Nous allons s'intéresser au cas d'utilisation.

II.1 Modèles de cas d'utilisation:

II.1.1 Généralités

II.1.1.1 Vue de cas d'utilisation :

La vue de cas d'utilisation joue un rôle particulier en ce qui concerne l'architecture. Elle

contient quelques scénarios ou des cas d'utilisation qui sont utilisés initialement pour la découverte et la conception de l'architecture lors de la création et l'élaboration des phases, mais plus tard, ils seront utilisés pour valider les différentes vues du système.

Un scénario est un chemin particulier à travers la description abstraite et générale fournie parle cas d'utilisation.

Les cas d'utilisation donnent une vue d'altitude des interactions visibles d'un système, ils ne fournissent pas d'informations sur la structure interne. Ils mettent en évidence les rôles de ses utilisateurs, et contribuent à catégoriser ces derniers, définir leurs attentes (objectifs du système) et leurs obligations (pilotage du système). La recherche des cas d'utilisation permet, en particulier, de formaliser les réponses aux questions : "Pourquoi" (les intentions du système) et "Pour qui" (les acteurs).

II.1.1.2 Acteur :

Un acteur est une entité externe au système, en interaction avec ce dernier. L'entité est un rôle joué par un utilisateur, par exemple un comptable, ou par un autre système, un capteur par exemple.

Un acteur peut consulter et/ou modifier directement l'état du système, en émettant et/ou en recevant des messages susceptibles d'être porteurs de données.

II.1.1.3 Cas d'utilisation :

Un cas d'utilisation spécifie une séquence d'actions, avec variantes éventuelles, réalisée par le système en interaction avec ses acteurs.

Le cas d'utilisation décrit le comportement attendu des utilisateurs et du système.

II.1.2 Identification des acteurs:

-Un acteur représente l'abstraction d'un rôle joué par des entités externes (utilisateur, dispositif matériel ou autre système) qui interagissent directement avec le système étudié.

-Un acteur peut consulter et/ou modifier directement l'état du système, en émettant et/ou en recevant des messages éventuellement porteurs de données.

Dans le cadre de notre projet,, deux acteurs entre en jeu:

-Administrateur (parent) : il assure la configuration de l'application.

-Enfant/Adolescent : il utilise les applications et navigue sur internet

II.1.3 Diagramme de cas d'utilisation :

Les diagrammes de cas d'utilisations décrivent sous la forme d'actions et de réactions le comportement du système du point de vue utilisateurs .ils permettent de définir les limites et les relations entre le système et son environnement et ils recouvrent toutes les phases de développement depuis le cahier des charges jusqu'à l'implémentation .un cas d'utilisation représente l'utilisation et le fonctionnement du système

II.1.3.1 Diagramme de cas d'utilisation général :

Figure 2  « Cas d'utilisation général »

Dans notre projet le diagramme ci -dessus représente les différents cas d'utilisations offertes à l'utilisateur du contrôle parental (un administrateur ou un enfant/adolescent) et qui sont les suivants :

- Pour l'administrateur :

Ø L'inscription

Ø Les créations du profil

Ø L'édition du profil

Ø La consultation de l'historique des sites visités

Ø Le choix des fonctions activées

Ø L'édition des listes

Ø La configuration des alertes

Ø La configuration des blocages d'application

Ø La définition de mots clés

-Pour l'enfant/adolescent :

Ø La navigation sur le web

Ø L'utilisation des applications

II.1.3.2 Identification des cas d'utilisation par paquetage :

Figure 3  « Paquetage administrateur »

Ces paquetages représentent les interfaces accessibles par l'administrateur, en effet seul l'administrateur à le droit d'accéder à ces interfaces

Figure 4 « Paquetage Enfant/adolescent »

II.1.3.3. Descriptions des cas d'utilisation :

II.1.3.3.1 Cas d'utilisation  « Inscription » :

Figure 5 «  Cas d'utilisation Inscription »

Lorsque l'utilisateur installe le logiciel de contrôle, un formulaire de création d'un profil administrateur apparaît.

 La création de ce profil inclus :

- la saisie du nom

- la saisie du prénom

- la saisie d'un mot de passe

-la confirmation du ce mot de passe

Scenario principal :

§ L'utilisateur installe l'application

§ Le système affiche un formulaire d'inscription

§ L'utilisateur doit remplir le formulaire puis il valide

§ Le système l'ajoute dans la base de données (fichier), attribue à ce dernier un compte Administrateur

II.1.3.3.2 Cas d'utilisation « création d'un profil » :

Figure 6 « cas d'utilisation Création d'un profil »

Apres l'authentification l'administrateur peut crée les profils qui représentent les personnes à contrôler.

La création doit inclure la :

-Saisie du pseudo

-Saisie du mode de profil c'est à dire Enfant ou adolescent

-Saisie du mot de passes et la confirmation de ce dernier

Scenario principal :

§ L'administrateur s'authentifie

§ L'administrateur doit remplir le formulaire (les tous les champs sont obligatoires) puis enregistrer

§ Le système ajoute ce nouveau personnel dans la base de données (fichier)

II.1.3.3.3 Cas d'utilisation « Contrôler les plages horaires »

Figure 7 « cas d'utilisation contrôle plage horaire »

Après l'authentification, l'administrateur peut fixer les plages horaires pour l'utilisation de l'ordinateur

Scenario principal :

§ Authentification

§ Choix de la configuration de plages horaires

§ Fixer les heures

II.1.3.3.4 Cas d'utilisation « Edition du profil »

Figure 8 « Cas d'utilisation Edition profil »

L'application permet a l'administrateur de modifier les profils crée précédemment ou de supprimer totalement un profil

Scenario principal :

§ L'administrateur s'authentifie

§ L'administrateur doit choisir le pseudo du profil qui désire le modifier ou le supprimer

§ Après la modification des champs il valide

II.1.3.3.5 Cas d'utilisation « consultation de l'historique des sites visitées »

.

Figure 9 « Cas d'utilisation consultation de l'historique des sites visitées »

L'administrateur peut consulter les sites visités par ses enfants bien sur après l'authentification

II.1.3.3.6 Cas d'utilisation «  configuration des alertes »

Figure 10« Cas d'utilisation configuration alertes »

L'administrateur peut activer les alertes pour empêcher les enfants de ne pas utilisé des mots définit par les parents dans leurs recherches sur internet.

Scenario principal :

§ L'administrateur s'authentifie

§ Il active l'alerte

§ Puis il choisi l'action (arrêt de la connexion ou fermeture de la session)

II.1.3.3.7 Cas d'utilisation « choisir les fonctions activées »

Figure 11 «  Cas d'utilisation fonctions activées »

L'administrateur peut choisir les fonctions à activer il peut décocher ou cocher une fonctionnalité selon le profil et ses envies.

Scenario principal :

§ Authentification

§ Choix de pseudo

§ Décocher ou cocher une fonction

§ Enregistrement

II.1.3.3.8 Cas d'utilisation «  blocage des applications »

Figure 12 «  Cas d'utilisation Blocage des application »

L'administrateur peut bloquer des applications installé sur l'ordinateur. Il ajout des applications ou il supprime des applications de la liste.

Scenario principal :

§ L'administrateur s'authentifie

§ Il choisi l'onglet du blocage des applications

§ En cliquant sur ajouter, l'administrateur peut choisir des applications installer sur son poste a fin d'empêcher l'utilisation de cette dernière par son enfant ou supprimer une application de la liste en la sélectionnant puis en cliquant sur supprimer

II.1.3.3.9 Cas d'utilisation « définition des mots clés »

Figure 13 «  Cas d'utilisation mots clés »

L'application permet au profil administrateur de définir des mots pour interdire aux autres profils l'utilisation des ces derniers dans leurs recherches sur internet. En cas ou l'enfant/adolescent utilise une des ces mots une alertes apparaît déclarant qu'il faut arrêter la recherche immédiatement, s'il persiste et après 3 essaye successives une action est déclenché.

L'administrateur peut utiliser le dictionnaire c'est-à-dire pour un mot ajouter en français par exemple, l'application bloque l'utilisation de ce dernier même avec son synonyme en arabe

Scenario principal :

§ L'administrateur s'authentifie

§ Il écrit un mot dans la zone de texte puis clique sur ajouter, pour supprimer il sélectionne un mot de la liste puis il clique sur supprimer

§ Il peut aussi activer/désactiver le dictionnaire des mots clés

II.1.3.3.10 Cas d'utilisation « édition des listes »

Figure 14 «  Cas d'utilisation Editions des listes »

Après l'authentification, l'administrateur peut configurer les listes selon ses besoins mais la chose la plus importante c'est que la liste blanche pour les profils enfants c'est-à-dire que seulement les sites de cette liste sont autorisés, et la liste noire pour les adolescents c'est-à-dire ils peuvent utiliser tous le contenu de l'internet sauf les sites de la liste noire et pour mieux contrôler les adolescent l'application permet l'ajout des adresse IP a la liste noire

Scenario principal :

§ Authentification du profil administrateur

§ Ajout des sites a la liste blanche / suppression des sites de la liste blanche

§ Ajout/suppression des sites de la liste noire ou ajout/suppression des adresses IP des sites

II.1.3.3.11 Cas d'utilisation « navigation sur internet »

Figure 15 «  Cas d'utilisation navigation internet »

Acteur :

- Enfant

Scenario principal :

Apres la sélection du pseudo l'enfant doit s'authentifier par son pseudo et mot de passe

Puis il peu utiliser internet

II.3.3.12 Cas d'utilisation« utilisation des applications » :

Figure 16 «  Cas d'utilisation utilisation des application »

Acteur :

- Enfant

Scenario principal :

Après la sélection du pseudo l'enfant doit s'authentifier par son mot de passe

Puis il peut utiliser les applications autorisées.

II.1.4 Diagramme de classe :

Figure 17 « Diagramme de classe »

Notre diagramme de classe comporte 9 classes, la classe personne qui a comme attributs le nom, prénom mot_pass est la conf_mot_pass, les classes administrateur/enfant/adolescent qui héritent de la classe mère personne, la classe liste qui admet l'adresse de site comme attribut, les classes listes noire/blanche héritant de la classe liste et finalement les classes mots clés et application.

Le diagramme de classe n'a pas été utilisé à cette phase de réalisation mais nous l'avons conçu comme même car il va être utile dans un deuxième temps

III. Les vues dynamiques :

Les vues dynamiques représentent une vision microscopique du fonctionnement de l'application. Elles servent mettre en évidence les relations temporelles inter objets et la représentation sous forme d'un automate du comportement de chaque objet. Elles interviennent après la définition du modèle statique.

Dans cette partie, nous allons s'intéresser au diagramme de séquence et au diagramme d'activités.

III.1 Les diagrammes de séquences :

Les diagrammes de séquence sont la représentation graphique des interactions entre les acteurs et le système selon un ordre chronologique dans la formulation UML.

Les objets dans ce projet l'administrateur, l'enfant, l'interface et la base de données (fichier)

Les objets étudiés sont placés sur la première ligne et pour chaque objet, on lui associe une barre verticale en pointillée appelée « ligne de vie » de l'objet.

III.1.1 Diagramme de séquence « inscription »

Figure 18 «  Séquence inscription »

Le scenario inscription se déclenche par l'application, en effet un formulaire d'inscription s'affiche automatiquement suite à l'installation de l'application, après la saisie des informations le système déclenche un ensemble de vérification (les entrés de l'utilisateur).

En premier lieu, le système vérifie si tout les champs sont remplis si c'est le cas il vérifie la conformité des mots de passe. Puis une interface s'affiche indiquant que l'inscription est faite avec succès. Enfin il enregistre ces données dans un fichier XML.

III.1.2 Diagramme de séquence « Activation des alertes »

Figure 19 « Séquence Alerte»

Le scenario de configuration des alertes est déclenchée par l'administrateur, après l'authentification, l'administrateur demande la configuration, une interface affiche, s'il active les alerte le système fait apparaît la partie de l'activation de l'action.

III.1.3 Diagramme de séquence « authentification »

Figure 20 « Séquence Authentification»

Ce scenario est déclenché par l'administrateur ou par l'enfant. Un formulaire s'affiche en premier lieu contenant le pseudo et le mot de passe, âpres l'envoi de la requête le système vérifie le pseudo et le mot de passe dans la base de données, si ils sont conforme le contrôle s'active sinon le système affiche une interface indiquant que le mot de passe est invalide.

III.1.4 Diagramme de séquence « alerte » :

Figure 21 « Séquence Alerte»

Lorsque l'enfant essaye d'effectuer une recherche avec un mot enregistrer dans les mots interdite le système affiche une alerte indiquant qu'il faut s'arrêter, en cas ou il continue d'utiliser ce mot pour 3 fois successives le système déclenche l'action choisi par l'administrateur.

III.2 Diagramme d'activité :

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 variante des diagrammes d'états-transitions).

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).

III.2.1 Diagramme d'activité « Alerte »

Figure 22 « Activité Alerte»

Acteur :

-Enfant

Scenario :

Lorsque l'enfant ou l'adolescent mène une recherche a l'aide d'un moteur ou annuaire l'application vérifie ce mots dans la liste des mots clés, si ce mots est définit comme interdit un message d'alerte apparaît sinon l'enfant ou l'adolescent continue sa recherche

III.2.2 Diagramme d'activité « Edition profil »

Figure 23 « activité édition profil»

Acteur :

-Administrateur

Scenario :

L'administrateur commence par l'authentification, si le mot de passe est incorrect l'administrateur doit se re _authentifier sinon il choisi le pseudo puis modifie ou supprime le profil

Conclusion :

Dans ce chapitre nous avons essayé de modéliser notre application à l'aide d'UML, en nous intéressant d'une part aux vues statiques et d'autre part aux vues dynamiques. Nous finissons ainsi l'étape de conception élaboré dans ce chapitre et dans laquelle nous avons préparé tout ce qu'il fallait pour commencer la réalisation qui sera le sujet du chapitre suivant

Chapitre 3 :

Réalisation

I Environnement du travail

II Interfaces de l'application 

Introduction :

Cette partie constitue le dernier volet de notre rapport. Elle a pour objectif d'exposer notre travail achevé. Pour ce faire nous allons commencer tout d'abord par une description de l'environnement de travail .ensuite, nous allons présenter les outils de conception et de programmation .Nous terminons par mettre en relief le travail effectué, en se basant sur des figures d'illustration.

I Environnement du travail

I.1 Environnement matériel :

L'implémentation de cette application a été effectuée sur 2 machines ayant la configuration matérielle suivante :

Machine 1 :

- Modèle : HP pavillon dv6700

- Processeur : Intel ® Core™ 2 Duo CPU T7252 @ 2.00 GHz

- Mémoire vive : 2.00 GB

- Système d'exploitation : Microsoft Windows Vista

- Disque dur : 250 Go

Machine 2 :

- Modèle : HP Compaq 6830s

- Processeur : Intel ® Core™ 2 Duo CPU T5870 @ 2.00 GHz

- Mémoire vive : 4.00 GB

- Système d'exploitation : Microsoft Windows Vista Home Premium

- Disque dur : 250 Go

I.2 Environnement Logiciels :

Notre projet a été réalisé dans l'environnement logiciel suivant :

-Architect Entreprise

-Qt Creator Sdk

I.3 Outils de développement :

Les logiciel et les les environnements de développement utilisé dans ce stage sont :

-le langage de programmation orientée objet C++ avec l'environnement Qt faisant partie de la bibliothèque logicielle Qt

II. Interfaces de l'application :

Dans cette partie nous présentant les interfaces de notre application :

II.1 Interface « Inscription » :

Cette interface s'affiche après l'installation de l'application, elle permet a l'utilisateur de crée un profil administrateur, ce profil est crée qu'une seul fois et il donne a son créateur le droit de configurer et de créer des profils dans lesquels il définit les règle de filtrage et les configurations selon ses besoins.

L'inscription regroupe la saisie du nom, prénom, mot de passe et sa confirmation puis la validation.

Figure 24 « Interface inscription»

Si le remplissage des champs est incomplet, un message d'information apparaît indiquant qu'il faut remplir tous les champs

Figure 25 « Interface inscription»

-Si la confirmation du mot de passe est incorrecte, un message d'erreur apparaît indiquant qu'il faut confirmer le mot de passe

Figure 26 « Interface inscription»

II.2 Interface «  Authentification »

La phase d'authentification consiste à choisir le pseudo et le mot de passe du profil qui doit être déjà existant dans la base de données, si le pseudo correspond à l'administrateur, alors il peut utiliser l'application (configurer les paramètres....) si le pseudo correspond a un enfant ou un adolescent, son profil s'active.

En cas ou le mot de passe ne correspond pas au pseudo choisi, un message d'erreur apparaît indiquant que le mot de passe est incorrect.

Figure 27 « Interface Authentification»

II.3 Interface «  Accueil »

Une fois connecté, l'administrateur a accès a l'interface d'accueil qui lui présente les options de l'application ainsi que le récapitulatif des fonctions activées pour chaque pseudo choisi.

Figure 28« Interface accueil»

II.4 Interface « Création du profil »

Cette interface permet a l'administrateur de crée un profil enfant ou adolescent.

Ce profil est caractérisé surtout par son pseudo et son mot de passe puisqu' il va se connecter avec ses deux paramètres et pour que l'ajout d'un profil se fasse avec succès il faut remplir tous les champs puis il faut valider.

A ce stade, nous avons trouvé plusieurs difficultés techniques pour enregistrer le formulaire dans le fichier XML, puisque on n'a pas trouvé une fonction prédéfinis pour l'enregistrement sans écraser le contenue déjà existant dans le fichier.

Donc nous étions obligés de développer un algorithme.

Cet algorithme consiste à relire le fichier dans le slot et réécrire en parallèle les éléments dans un fichier temporaire jusqu'à arriver à la fin réécrire les nouvelle données, l'élément enfin remplacer le fichier d'origine par le fichier temporaire.

Figure 29 « Interface création profil»

-Si les champs sont incomplets, un message d'erreur apparaît indiquant qu'il faut remplir tous les champs. Il faut noter que la vérification se fait au niveau des interfaces.

Figure 30 « Interface création profil»

-Si la confirmation est différente du mot de passe saisi précédemment, un message d'erreur apparaît indiquant que la confirmation est incorrecte.

Figure 31 « Interface création profil»

II.5 Interface « Edition profil »

L'administrateur peut a travers cette interface modifier les profils déjà crée,

En choisissant le pseudo, le formulaire se charge automatiquement après la lecture à partir du document XML et l'administrateur peut modifier les champs.

Figure 32 « Interface Edition profil»

L'administrateur peut supprimer tout un profil après la sélection du pseudo.

Figure 33 « Interface Edition profil»

II.6 Interface « Fonctions activées »

Cette interface donne a l'administrateur la possibilité de choisir les fonctions a activées pour chaque pseudo d'un profil choisi.

Figure 34 « Interface Fonctions activées»

II.7 Interface «  Option »

Cette interface est composée de trois onglets :

-Surveillance : avec cette interface l'administrateur peut choisir les paramètres de surveillance.

Figure 35 « Interface Fonctions surveillance»

-Authentification : cette interface donne à l'administrateur la possibilité de modifier son ancien mot de passe après le saisi de l'ancien.

Figure 36 « Interface Fonctions Authentification»

Si l'administrateur tape une confirmation différente du nouveau mot de passe, un message d'erreur apparaît indiquant que la confirmation est incorrecte

Figure 37« Interface Authentification»

II.8 Interface « Planification »

L'administrateur peut à travers cette interface fixer des plages horaires pour chaque pseudo de profil choisi, il choisi les jours et l'heure de début et de fin de blocage ou d'utilisation de l'ordinateur et il enregistre.

Un message d'information apparaît indiquant que enregistrement est fait avec succès.

Figure 38 « Interface Plages horaires»

II.9 Interface «  Configuration des alertes »

Cette interface donne la possibilité à l'administrateur d'activer les alertes et de choisir une action après trois alertes successive.

La partie du choix d'action n'apparaît que si l'activation des alertes est cochée

Figure 39« Interface alertes »

II.10 Interface « Edition des listes »

A travers cette interface l'administrateur peut définir et configurer les listes.

Cette interface comporte deux onglets :

- liste blanche : (naviguer sur les sites autorisées, cette liste est associé aux enfants)

L'administrateur peut ajouter des adresses des sites ou supprimer des sites

Figure 40 « listes blanches »

- liste noire : (accès à tout le web sauf les sites interdits, la consultation de ces sites est interdit pour les profils adolescents).

L'administrateur peut ajouter ou supprimer des adresses sites ou des adresse IP

Pour le filtrage des sites, nous allons proposés des méthodes différentes. La première solution est d'éditer le fichier « host » de Windows en ajoutant l'adresse du site à bloquer, mais cette méthode ne résoudre pas complètement notre problème puisque elle ne définit qu'une liste noire. La deuxième méthode est d'intégrer un plugin dans notre application comme le plugin « BlockSite » est une extension pour « firefox » qui coupe l'accès aux sites inscrits dans une liste noire où autorise uniquement l'accès aux sites d'une liste blanche mais dans notre cas Qt n'a pas la possibilité d'intégrer un plugin, en effet Qt permet de créer un plugin mais la mise en place d'un système de plugin est parfois assez lourde et nécessite par exemple de vérifier dans le programme principal si un plugin contient telle ou telle fonction. .[Ref10]

La troisième méthode est la solution la plus satisfaisante à nos besoins, qu'elle consiste a éditer le fichier de configuration d'un proxy, ce fichier contient des règles de filtrages que nous allons les modifiés. Nous allons prendre le « SquidNT » comme un proxy a utiliser.

SquidNT est un proxy cachant le plus célèbre qui supporte les protocoles HTTP, FTP et SSL. Un proxy est un mandataire. Lorsque votre passerelle fait proxy, cela signifie que ses clients ne se connectent pas directement à Internet, mais demande au proxy de télécharger pour eux les pages dont ils ont besoin. Ce didacticiel n'a pas vraiment pour but l'installation d'un proxy transparent, mais plutôt la configuration d'un proxy avec « blacklist » et restriction d'accès par IP.

[Ref08] [Ref14] [Ref15] [Ref16]

Figure 41« listes noires»

II.11 Interface « Mots clés » 

L'administrateur peut ajouter ou supprimer des mots clés à travers cette interface.

On ajoutant un mot clés l'administrateur empêche les autres profils de les utilisé dans leurs recherche.

Pour supprimer un mot clés il suffit de sélectionner ce mot a partir de la liste puis cliquer sur supprimer.

L'utilisation du proxy SquidNT avec la manipulation de ses fichiers de configuration, nous permettons de filtrer les téléchargements par le blocage du port le protocole FTP.

Figure 42« listes mots clés»

II.12 Interface « Blocage des applications »

Cette interface propose à l'administrateur d'ajouter des applications a partir de son ordinateur pour empêcher ses utilisations.

Une fois qu'il clique sur parcourir une sous fenêtre apparaît dans laquelle il trouve les logiciels installé sur sa machine.

Pour la suppression il suffit de sélectionner une application dans la liste puis cliquer sur supprimer. Nous avons remarqué qu'il existe déjà des méthodes concernant le blocage des applications, cette méthode est activé d'une manière manuelle et représente plusieurs difficultés pour un simple utilisateur. Elle se base sur la méthodologie suivante : Un administrateur peut interdire l'exécution de certains logiciels dans d'autres comptes à accès limité. Il faut passer par le registre Windows et le modifier après avoir ouvert la session de l'utilisateur pour lequel nous souhaitons mettre en place ces restrictions. Voici comment on peut l'exécuter

Etape 1 : Donner temporairement les droits d'administration

Ouvrir le Panneau de configuration, double clique sur l'icône Compte d'utilisateurs puis sélectionner le compte à modifier.

Etape 2 : Appliqué la restriction

Appuyer sur la touche Windows et la touche R pour faire apparaître la fenêtre d'exécution, puis taper « regedit » pour lancer l'éditeur de base de registre.

Parcourir l'arborescence jusqu'à la clé « HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Policies Explorer ». Dérouler alors le menu Edition, Nouveau, Valeur « DWORD » pour créer une nouvelle valeur DWORD. Nommer-la « DisallowRun » puis double clique dessus pour lui affecter la valeur 1.

Dérouler ensuite le menu Edition, Nouveau, Clé. Nommer la nouvelle clé « DisallowRun ». Ouvrir ensuite la clé, le nouveau chemin devient : « HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Policies Explore0rDisallowRun ».
Cliquer sur le menu Edition, Nouveau, Valeur Chaîne. Nommer la nouvelle valeur 1. Double clique ensuite dessus puis saisir le nom du fichier exécutable que l'utilisateur n'aura pas l'autorisation d'exécuter. Valider enfin par OK. Pour interdire l'utilisation d'autres programmes pour cet utilisateur, il suffit alors de créer une valeur chaîne pour chaque exécutable et incrémenter le nom : 2, 3, 4, 5, .... [Ref12]

Alors pour utiliser cette méthode qui parait très performante et pour rendre son utilisation accessible par tout le monde, nous avons créé un raccourci, afin de manipuler cette procédure en code en utilisant l'environnement Qt. Nous avons utilisé la classe « QFile » pour stocker nos données dans un fichier « .bat » et utiliser la commande « reg  » qui est une console qui possède sa propre série de sous-commandes.

Elle permet d'ajouter, modifier et afficher les entrées du registre.

Les sous-commandes sont définit dans ce tableau : [Ref09]

Sous-commande

Fonction

add

Ajoute une nouvelle sous-clé ou valeur au Registre

delete

Supprime une sous-clé ou des valeurs du Registre

query

Affiche les données dans une sous-clé ou une valeur

compare

Compare les sous-clés ou valeurs spécifiées

copy

Copie une sous-clé dans une autre sous-clé

save

Enregistre une copie des sous-clés, entrées ou données spécifiées du registre dans un format binaire

restore

Réécrit les sous-clés et valeurs sauvegardées au format binaire dans le Registre

load

Réécrit les sous-clés et valeurs sauvegardées au format binaire dans une autre sous-clé

unload

Décharge une section du registre qui a été chargée avec reg load

export

Crée une copy des sous-clés, valeurs ou données spécifiées dans un fichier au format REG (texte)

import

Fusionne un fichier REG contenant des sous-clés ou valeurs dans le registre

Une autre méthode de manipulation est d'utiliser la classe « QSettings » qui a été spécialement créée pour enregistrer des options et elle persistante des paramètres d'application indépendant de la plateforme. Sur Windows systèmes, « QSettings » utilise le registre du système pour stocker des paramètres. [Ref01]

Figure 43« listes Blocage des applications»

II.13 Interface «  site visités »

Cette interface affiche tous les sites visités par les autres profils lorsque le contrôle parental est actif.

Figure 44« Sites visitées»

Conclusion :

Dans ce chapitre nous avons présenté l'environnement de développement matériel et logiciel avec lesquels notre application a été réalisée. Nous avons présenté aussi les différentes étapes de réalisation de l'application et cela à travers les interfaces et les scenarios d'execution, cette démonstration met en oeuvre l'intérêt de l'application et les choix adoptés pour sa réalisation.

Conclusion

Générale

Le stage que nous avons suivi dans le cadre de ce travail, nous a offert un grand apport à plusieurs niveaux.

Sur le plan technique, le stage a été une expérience enrichissante surtout au niveau des outils de développement que nous avons pu découvrir et maîtriser : il nous a permis de manipuler des outils de programmation tels que les Qt Creator.

Sur le plan professionnel, le stage a été une meilleure occasion permet de nous préparer pour la vie professionnelle et de mieux connaître notre rôle dans l'architecture générale de la société, et aussi d'être en contact avec les professionnels et les personnes les plus expérimentées ce qui nous a permis d'avoir une idée assez large sur le marché extérieur.

Dans ce contexte, et sous le souci d'apporter des services à valeurs ajoutées à leurs partenaires et clients tout en gardant son image de marque, l'agence nationale de la sécurité informatique nous a confié le développement d'une application de contrôle parental.

Notre rapport de projet de fin d'étude, a été élaboré selon la structure suivante :

Dans un premier chapitre, nous avant présenté les motivations, atouts, problématique qui nous a amené à réaliser ce projet. Ainsi, une description de l'état de l'art de notre projet.

Ensuite un deuxième chapitre a été dédié à décrire la partie conception de notre projet, présenté par des diagrammes de modélisation pour mieux gérer et concevoir notre projet.

Et nous avons conclus notre rapport par un troisième chapitre qui se réfère à la partie réalisation où nous avons présenté la partie applicative du projet et les différentes interfaces de notre logiciel

L'amélioration des fonctionnalités de notre application est toujours en cours pour répondre à des besoins futurs.

Nous pouvons encore envisager des options pour rendre notre application adaptable sur plusieurs navigateurs. Aussi on peut envisager l'ajout des modules complémentaires pour permettre à l'administrateur de contrôler les profils à distance.

Bibliographie :

[Ref01] http://doc.qt.nokia.com/

[Ref02] http://www.sparxsystems.com/

[Ref03] http://www.developpez.com/

[Ref04] http://www.logprotect.net/

[Ref05] http://www.freeangel.fr/

[Ref06] http://www.ansi.tn/

[Ref07] http://www.siteduzero.com/

[Ref08] http://fr.wikipedia.org/wiki/Squid

[Ref09] http://windows.developpez.com/cours/ligne-commande/?page=page_17

[Ref10] http://doc.qtfr.org/post/2007/02/18/Creation-de-plugin-avec-Qt

[Ref11] http://gsyka.blogspot.com/2008/01/blocksite-bloquer-laccs-un-site.html

[Ref12] http://www.pcinpact.com/astuces/windows-xp/68-windows-xp-interdire-logiciels.html

[Ref13] http://www.profiltechnology.com/fr/familles/parentalfilter2/index.aspx

[Ref14] http://www.squid-cache.org/Versions/v2/2.5/

[Ref15] http://www.bofi.camelot.de/squid.htm

[Ref16] http://doc.ubuntu-fr.org/tutoriel/comment_mettre_en_place_un_controle_parental

[Ref17] http://qt.nokia.com/downloads

Annexe A

Outils et techniques de programmations 

Devant la diversité des outils de développement , nous devant justifier les choix technique concernant les langages de programmation utilisées et les technologies adoptés pour la réalisation de notre projet

I. Environnement Qt creator SDK :

Qt est un environnement de développement intégré C++ multi plateforme faisant partie de la bibliothèque logicielle Qt, c'est un Framework développé initialement par la société « Trolltech », qui fut racheté par Nokia par la suite, son développement a commencé en 1991 et il a été dès le début utilisé par KDE, un des principaux environnements de bureau de Linux.

Qt signifie "Cute" (prononcez "Quioute"), ce qui signifie "Mignonne", parce que les développeurs trouvaient que la lettre Q était jolie dans leur éditeur de texte.

Qt est une bibliothèque multiplateforme pour créer des GUI (programme sous forme de fenêtre) écrite en C++ et faite pour être utilisée à la base en C++, mais il est aujourd'hui possible de l'utiliser dans d'autres langages comme Java, Python, etc.

Il est donc constitué d'un ensemble de bibliothèques, appelées "modules". On peut y trouver entre autres ces fonctionnalités:

· Module GUI : c'est toute la partie création de fenêtres. Nous nous concentrerons surtout sur le module GUI dans ce cours.

· Module OpenGL : Qt peut ouvrir une fenêtre contenant de la 3D gérée par OpenGL.

· Module de dessin : pour tous ceux qui voudraient dessiner dans leur fenêtre (en 2D), le module de dessin est très complet !

· Module réseau : Qt fournit une batterie d'outils pour accéder au réseau, que ce soit pour créer un logiciel de Chat, un client FTP, un client Bittorent, un lecteur de flux RSS...

· Module SVG : possibilité de créer des images et animations vectorielles, à la manière de Flash.

· Module de script : Qt supporte le Javascript (ou ECMAScript), que vous pouvez réutiliser dans vos applications pour ajouter des fonctionnalités, sous forme de plugins par exemple.

· Module XML : pour ceux qui connaissent le XML, c'est un moyen très pratique d'échanger des données avec des fichiers formés à l'aide de balises, un peu comme le XHTML.

· Module SQL : permet un accès aux bases de données (MySQL, Oracle, PostgreSQL...).

Qt est un Framework multiplateforme, voilà un schéma qui illustre le fonctionnement de Qt :

Figure 45« Qt multiplateforme»

Qt est utilisée par de nombreuses entreprises célèbre ce qui montre son sérieux.

Figure 46« société de Qt»

[Ref07] [Ref17]

II. XML (eXtensible Markup Language) :

Nous allons utiliser le fichier XML comme une base de données dans notre application

XML est l'abréviation d'Extensibles Markup Language. Il n'est pas un langage de programmation, on ne peut pas faire de tests, ni inclure un fichier dans un autre. En très gros, XML est simplement une méthode pour représenter les donnés .celles ci sont écrites entre des balises ou sous forme d'attributs, et l'ensemble est écrit sous forme d'un arbre

Pour la lecture et l'écriture d'un document XML nous allons utilisé la méthode SAX.

SAX (Simple API for XML) est une API basée sur un modèle événementiel, qui transforme un document XML en un flux d'évènements déclenchés par la lecture d'éléments syntaxiques XML (balise ouvrante, balise fermante, etc ...).Le modèle est un quelque peu calqué sur celui des interfaces graphiques, l'application cliente devenant un "écouteur d'événement". SAX a comme avantage, grâce à son fonctionnement, de ne lire le code que par petites portions, ce qui lui évite de le charger en mémoire intégralement.

Qt fourni, la classe « QXmlStreamReader » qui permet de lire rapidement des fichiers XML. Comme SAX, on parcourt l'arbre XML et l'on ne peut le remonter

Pendant son parcours. « QXmlStreamReader »  repose sur le principe d'une boucle dans laquelle on va parcourir le fichier à l'aide de la méthode « readNext () » et vérifier sur quel type de token on est positionné.

Pour écrire des fichiers XML, Qt fournit la classe « QXmlStreamWriter » pour. Celle-ci est relativement

Simple et fonctionne sur le même principe que « QXmlStreamReader » pour la lecture.

Qt, fournit la classe QXmlStreamWriter pour écrire des fichiers XML. Celle-ci est relativement simple et fonctionne sur le même principe que QXmlStreamReader pour la lecture.

III. Le langage C++ :

Le langage C++ est une « amélioration » du langage C (Le langage C a été mis au point par « M.Richie » et « B.W.Kernighan » au début des années 70) .Bjarne Stroustrup, un ingénieur considère comme l'interveneur du C++, a en effet décidé d'ajouter au langage C les propriétés de l'approche orienté objet .Ainsi, vers la fin des années 80 un nouveau langage, C « with » classes (traduisez « C avec des classes »), apparait. Celui-ci a ensuite été renommé en C++, clin d'oeil au symbole d'incrémentation ++ du langage C, a fin de signaler qu'il s'agit d'un langage C améliorer (langage C+1).

Le C++ reprend la quasi-intégralité des concepts présents dans le langage C, si bien que les programmes écrits en langage C fonctionnent avec un compilateur C++.En réalité le langage C++ est un sur ensemble du C, il y ajoute, entre autres, des fonctionnalités objet :

- L'encapsulation

- L'héritage (simple et multiple)

- Le polymorphisme

Ainsi qu'un ensemble de nouvelles fonctionnalités, parmi lesquelles :

- le contrôle de type

- les arguments par default

- la surcharge de fonctions

- les fonctions inline

Annexe B

Outils de conception 

I. Intérêt d'une méthode orienté objet :

Les langages orientés objet constituent chacun une manière spécifique d'implémenter le paradigme objet. En conséquence, une méthode objet permet de définir le problème a haut niveau sans rentrer dans les spécificités d'un langage.il représente ainsi un outil permettant de définir un problème de façon graphique, a fin par exemple de le présentera tous les acteurs d'un projet (n'étant pas forcement des experts en langage de programmation)

Pour notre application nous avons opté pour l'utilisation de la méthodologie UML de spécification et de conception (Unified Modeling Language) que nous avons jugé la plus adéquate et la mieux qualifiée pour le processus de spécification et de conception.

II. Pourquoi UML :

Par rapport a toutes les méthodes orientées objet utilisées (BOOCH, OOSSE....), seul UML (Unified Modeling Language) a la capacité de satisfaire tous les besoins de conception requises par les entreprises et les boites informatiques.

En effet, il unifie les notions nécessaires aux différentes activités d'un processus de développement et offre en plus, par ce biais, le moyen d'établir le suivi des décisions prises, depuis la spécification jusqu'au codage.

Enfin, UML (Unified Modeling Language) que l'on peut traduire par « le langage de modélisation unifié » est une notion permettant de modéliser un problème de façon standard .ce langage est né a la fusion de plusieurs méthode existantes auparavant, et est devenu désormais la références en termes de modélisation objet

.

III. Entreprise Architect (Sparx) :

Enterprise Architect est outil pour la conception et la construction de systèmes logiciels, la modélisation des processus d'affaires, et pour la modélisation généralisée.

Cet outil UML est basé sur la dernière spécification « UML 2.1 ».Enterprise Architect est un outil évolutif qui couvre tous les aspects du cycle de développement, offrant une traçabilité complète de la phase de conception initiale jusqu'au déploiement et la maintenance. Il fournit également un soutien pour les essais et le changement de contrôle.

Enterprise Architect fournit complète une modélisation complète du cycle de vie pour:

· systèmes commerciaux et informatiques

· Génie logiciel et des systèmes

· le développement en temps réel et embarqués

En effet, grâce à la capacité de gestion des exigences, Enterprise Architect nous permet de suivre les spécifications de haut niveau à l'analyse, la conception, la mise en oeuvre, d'essai et de maintenance en utilisant UML, Sys ML, BPMN et d'autres normes ouvertes pour la modélisation.

Enterprise Architect est un multiutilisateur, l'outil graphique conçu pour aider l'équipes de construire des systèmes robustes et maintenables et à l'aide de haute qualité, intégrés dans les rapports et la documentation, vous pouvez offrir une vision véritablement partagée facilement et avec précision. [Ref02]

Figure 46« Sparx»

Il soutien l'ingénierie inverse du code source pour de nombreux langages populaires, y compris:

· Action Script

· Ada

· C et C + +

· C #

· Java

· Delphes

· Verilog

· PHP

· VHDL

· Python

· Système C

· VB.Net

· Visual Basic

· et plus encore ...

Ce qui différencie Enterprise Architect à partir d'autres outils UML?

· Vaste projet de gestion de soutien, y compris les ressources, les mesures et les tests

· support de test: les cas de test, JUnit et le soutien NUnit

· · options flexibles de documentation: HTML et RTF (RTF)

· soutien technique de Code pour plusieurs langages

· environnement de modélisation extensible pouvant accueillir des profils définis par l'utilisateur et des technologies

· Utilisabilité

· Vitesse: Enterprise Architect est un artiste spectaculaire rapide

· Evolutivité: Enterprise Architect peut traiter des modèles extrêmement vastes et de nombreux utilisateurs simultanés avec une facilité

· Prix: Enterprise Architect est un prix pour équiper toute l'équipe, ce qui rend la collaboration et le développement en équipe une réelle possibilité.

Résumé

Ce présent travail s'inscrit dans le cadre du projet de fin d'étude pour l'obtention du diplôme de la « licence fondamentale en informatique de gestion » à l'institut supérieur de comptabilité et d'administrateur des entreprises. Le travail consiste à concevoir et à développer une application de contrôle parental

Mots clés : Qt creator, C++, XML

Abstract

The present work, achieved within the «National Security Agency computer», puts in details the different steps taken to design and realise our graduate final project named: «développement d'une application de contrôle parental ».

To lead this work, we used the C++ language for its realization.

Keywords: Qt creator, C++, XML






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Soit réservé sans ostentation pour éviter de t'attirer l'incompréhension haineuse des ignorants"   Pythagore