Académique Documents
Professionnel Documents
Culture Documents
IGA Rabat
Ecole d’Ingénierie
LICENCE FONDAMENTALE
Méthodes Informatiques Appliquées à la Gestion des Entreprises
1
Année universitaire : 2014-2015
REMERCIEMENTS
Au terme de ce travail, nous tenons à exprimer notre profonde gratitude de nos sincères
remerciements à notre professeur encadrant M. BAIDADA Mohammed pour tout le temps qu'il
nous a consacré, ses directives précieuses, et pour la qualité du suivi durant toute la période de
réalisation de ce projet.
2
SOMMAIRE
REMERCIEMENTS ...................................................................................................................... 2
INTRODUCTION .......................................................................................................................... 4
1. CAHIER DES CHARGES ................................................................................................. 5
1.1 Contexte général ............................................................................................................... 5
1.2 Objectif Du Projet ............................................................................................................ 5
1.3 Problématique Soulevé .................................................................................................... 5
1.4 Expression fonctionnelle du besoin ................................................................................ 6
1.4.1 Fonctions de service principales ................................................................................. 6
1.4.2 Fonctions de service complémentaires ...................................................................... 7
1.5 Diagramme de GANT ...................................................................................................... 7
1.6 La bête à corne ................................................................................................................. 8
2. CONCEPTION DU PROJET ............................................................................................ 9
2.1 Méthodes et démarche ..................................................................................................... 9
2.2 Conception générale ....................................................................................................... 10
2.3 Conception détaillée ....................................................................................................... 11
2.3.1 Modèle conceptuel des données ................................................................................ 11
2.3.2 Modèle logique des données ...................................................................................... 12
2.3.3 Modèle Physique des données ................................................................................... 13
2.4 Conception de l’application Android ........................................................................... 15
2.4.1 Présentation d’Android ............................................................................................. 15
2.4.2 Cycle de vie d'une activité ......................................................................................... 15
2.4.3 Interaction avec la base de données sous MySQL .................................................. 16
3 REALISATION DU PROJET ......................................................................................... 18
3.1 Choix des langages et outils de développement ........................................................... 18
3.1.1 Langages ..................................................................................................................... 18
3.1.2 Outils ........................................................................................................................... 20
3.2 Environnement de développement d’Android ............................................................ 21
3.3 Interfaces et description des fonctionnalités réalisées ................................................ 23
3.3.1 Interfaces du site web ................................................................................................ 23
3.3.2 Interfaces de l’application Android ......................................................................... 30
PERSPECTIVES .......................................................................................................................... 33
CONCLUSION ............................................................................................................................. 34
REFERENCES ET BIBLIOGRAPHIE ..................................................................................... 35
Table des figures ........................................................................................................................... 36
3
INTRODUCTION
4
1. CAHIER DES CHARGES
Ce projet s’inscrit dans le cadre de notre formation à l’IGA plus particulièrement en 3eme
année d’étude où un projet de fin d’année se doit être réalisé. Ce projet vise le développement des
compétences socioprofessionnelles par l’apprentissage en contexte réel mais aussi mettre en
pratique les connaissances théoriques acquises en cours durant ces années d’étude.
L’objectif de notre projet de fin d’année est d’inciter les étudiants à suivre en temps réel les
activités à l’IGA et d’être au courant des évènements et actualités de leur école par une optimisation
de l’affichage au sein de l’école.
Grâce à un site web et une application Android dédiés à cet effet, tout étudiant sera enfin
habilité à recevoir les actualités de l’école le concernant ce qui permettra ainsi une communication
rapide et simplifié entre direction, professeurs et étudiants.
Afin de tenir informé les étudiants des évènements et actualités de leur école, la direction
de l’IGA souhaite réfléchir aux principes à mettre en œuvre pour une efficacité optimale des
affichages, leur emplacement et de leur gestion au sein de l’école. A l’issue cette réflexion, de
nombreuses questions ont émergé :
Leur emplacement n’est-il pas pertinent ? Auquel cas cela pourrait expliquer que les
étudiants ne dirigent pas leur regard vers ces derniers.
Sont-ils mal agencés entre eux ou n’évoluent-ils pas au bon moment et à bon escient ?
Auquel cas cela expliquerait qu’ils ne soient pas consultés par les étudiants.
Ces questions ainsi posées notre travail est donc de proposé une optimisation et une
meilleure visibilité de ces affichages.
5
1.4 Expression fonctionnelle du besoin
1
Fonction Principale
6
1.4.2 Fonctions de service complémentaires (qui améliorent, facilitent ou
complètent le service rendu)
FC2 : Les étudiants pourront consulter les informations le concernant après une authentification
par login et un mot de passe de façon simple et sécurisé.
FC : L’application doit permettre d’apporter des corrections.
FC : Tout étudiant a par défaut accès au fil d’actualités.
FC : L’application doit être ergonomique pour l’utilisateur.
FC : Les rôles des différents acteurs sont séparés au niveau de l’application
FC : L’application dispose d’interfaces d’administration.
2
Fonction complémentaires
7
Figure 1: Diagramme de GANT
La bête à corne est un outil d’analyse fonctionnelle du besoin, elle indique à quoi sert le
produit. Pour notre projet, elle se présente sous cette forme :
8
A qui rend-t-il service ? Sur quoi agit-il ?
Application de gestion
Des affichages
2. CONCEPTION DU PROJET
La conception d'un système d'information n'est pas évidente car il faut réfléchir à l'ensemble
de l'organisation que l'on doit mettre en place. La phase de conception nécessite donc des méthodes
permettant de mettre en place un modèle sur lequel on va s'appuyer. La modélisation consiste à
9
créer une représentation virtuelle d'une réalité de telle façon à faire ressortir les points auxquels on
s'intéresse : Ce type de méthode est appelé analyse.
Il existe plusieurs méthodes d'analyse tels que : UML, MERISE et nous avons opté pour la
méthode MERISE pour la réalisation de ce mini projet car c’est l’une des méthodes la plus
utilisée pour la modélisation d’architecture logicielle et de conception de système d’information,
en plus elle est basée sur la séparation des données et des traitements à effectuer en plusieurs
modèles conceptuels.
Pour mener à bien le projet, nous avons dû faire recours à un formalisme de conception à
savoir la méthode MERISE qui est une méthode d'analyse, de conception et de réalisation de
systèmes d'informations qui permet de comprendre et de décrire les besoins, de spécifier et
documenter les systèmes ainsi que d'esquisser les architectures logicielles.
Conceptuellement notre application sera divisée en des modules offrant des interfaces
utilisateur différentes avec des fonctionnalités différentes selon les utilisateurs.
Les différents acteurs seront donc les suivants :
L’utilisateur :
- Il a la possibilité de voir l’absence et évènements de son groupe
L’administrateur :
- Il a la possibilité d’ajouter des étudiants
- Il a la possibilité d’ajouter des professeurs
- Il a la possibilité d’ajouter des administrateurs
- Il a la possibilité d’afficher les étudiants
- Il a la possibilité d’afficher les professeurs
- Il a la possibilité d’afficher les administrateurs
- Il a la possibilité de supprimer les étudiants
- Il a la possibilité de supprimer les administrateurs
- Il a la possibilité de supprimer les professeurs
- Il a la possibilité de modifier le contenu du site pour étudiants
- Il a la possibilité d’ajouter des absences
10
2.3 Conception détaillée
Dans cette partie nous présenterons les niveaux conceptuels en explicitant leurs rôles. Nous
allons principalement présenter le modèle conceptuel des données, le modèle logique des données
et le modèle physique des données.
Cette modélisation s'appuie sur l'ensemble des données manipulées par l'organisation
étudiée et sur les règles de gestion. Le modèle conceptuel de données (MCD) aide à analyser la
structure conceptuelle d'un système d'information, afin d'identifier les principales entités à
représenter, leurs attributs et les relations entre ces attributs.
Pour pouvoir assurer les tâches de gestion on va préciser les règles de gestions, ce sont des
règles qui déterminent des contraintes que doit respecter le modèle conceptuel des données. Celles
utilisées lors de la conception de ce modèle sont les suivantes :
– Les actualités peuvent concerner un ou plusieurs groupes
– Une ou plusieurs actualités avoir un type
– Une filière appartient à un ou plusieurs groupes
– Les absences peuvent concerner un ou plusieurs groupes
– Un professeur peut effectuer des absences
– Un ou plusieurs professeurs enseigne un ou plusieurs groupes
– Un ou plusieurs professeurs enseigne un ou plusieurs métiers
– Un professeur peut être affiche dans des actualités
– Une salle peut être affiche dans des actualités
– Un étudiant peut envoyer des messages
– Un administrateur peut envoyer des messages
11
Figure 3 : Modèle conceptuel des données
12
Figure 4: Modèle logique des données
Un modèle physique de données(MPD) aide à analyser les tables, les vues et autres objets
d'une base de données, il est plus concret qu’un modèle conceptuel de données (MCD) ou un
modèle logique de données (MLD).
13
Le modèle conceptuel réalisé ci-dessus donne ainsi un aperçu global des données et de leurs
relations. Cependant, sa finalité ne s’arrêtant pas là, il doit être traduit en un schéma de base de
données relationnelle qui contiendra la description de la base de données, plus précisément, la
spécification de la structure des données et de leurs contraintes d’intégrité.
14
2.4 Conception de l’application Android
2.4.1 Présentation d’Android
Android est un système d'exploitation édité par Google pour appareils embarqués ou
mobiles, comme les smartphones ou les tablettes. On le retrouve aussi dans certains GPS,
ordinateurs de bord de voitures, dans des télévisions, et même des montres. C'est un système open
source utilisant le noyau Linux. Android comporte une machine virtuelle nommée Dalvik, qui
permet d'exécuter des programmes prévus pour la plate-forme Java. C'est une machine virtuelle
conçue dès le départ pour les appareils mobiles et leurs ressources réduites (peu de puissance de
calcul et peu de mémoire).
Une activité est la composante principale d'une application sous Android. L'activité est le
métier de l'application et possède généralement une view au minimum, c'est à dire un écran
graphique.
Android fonctionnant sur des appareils ayant de faibles ressources, il est nécessaire de
mettre en place un mécanisme pour gérer les activités. Chacune d'entre elle a son propre cycle de
vie, rythmé par des appels à des méthodes bien définies. La figure ci-dessous représente ce cycle.
Une activité peut se trouver dans trois états qui se différencient surtout par leur visibilité
Active (running) - Suspendue (paused) - Arrêtée (stopped)
15
onCreate() : l'activité se créé.
C'est dans cette méthode qu'on
définit l'interface graphique.
onStart() : appelée lorsque
l'activité démarre.
onResume() : l'activité démarre
ou sort de pause. C'est ici qu'on
peut lancer ou relancer les
différents threads.
onPause() : l'activité est
suspendue, c'est à dire qu'une
autre activité vient au premier
plan, recouvrant en partie l'activité
de notre application. Il faut
stopper les traitements qui
consomment beaucoup de
ressources.
onStop() : l'activité n'est plus
visible et passe en arrière-plan. Il
faut libérer les écouteurs et arrêter
les threads.
onDestroy() : le cycle de vie de
notre activité est terminé.
Dans cette partie, nous allons expliquer comment intégrer PHP et MYSQL avec
l’application Android. Ceci pour pouvoir accéder à la base de données du site sur l’application
Android.
16
Une application Android et une base de données MySQL ne peuvent pas communiquer
directement ensemble, il faut donc implémenter un processus qui va faire la connexion entre les
deux : le langage PHP.
Tous les appels entre l’application et la base de données passeront donc par un web service
en PHP qui se chargera de réceptionner la requête, la transmettre au SGBD et renvoyer une réponse
à l’application au format JSON3.
Notre application va ainsi communiquer avec la page PHP avec des paramètres nécessaires
(1) puis PHP communique à son tour avec la base de données MySQL et va chercher le résultat (2
et 3) et enfin retourner les résultats sous une forme donnée JSON (4 et 5).
Requête 1
Requête
Réponse 2
Réponse
5 4
3
Base de données
MySQL
3
JavaScript Object Notation
17
3 REALISATION DU PROJET
3.1.1 Langages
3.1.1.1 PHP
HyperText Préprocesseur, plus connu sous son sigle PHP (acronyme récursif), est
un langage de programmation libre principalement utilisé pour produire des pages Web
dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe
quel langage interprété de façon locale. PHP est un langage impératif orienté objet comme C++.
PHP a permis de créer un grand nombre de sites web célèbres, comme Facebook, YouTube,
Wikipédia, Google, etc.
Il est aujourd'hui considéré comme la base de la création des sites Internet dits dynamiques.
3.1.1.2 JAVA
Le langage Java est un langage de programmation informatique orienté objet créé par James
Gosling et Patrick Naughton.
La particularité et l'objectif central de Java est que les logiciels écrits dans ce langage
doivent être très facilement portables sur plusieurs systèmes d’exploitation tels que UNIX,
Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications.
Java permet de développer des applications client-se veu . Côté clie t, les applets so t à l’o igi e
de la oto iété du la gage. C’est su tout côté se veu ue Java s’est i posé da s le ilieu de l’entreprise
18
grâce aux servlets, le pendant serveur des applets, et plus récemment les JSP (Java Server Pages)
qui peuvent se substituer à PHP, ASP (Active Server Pages) etASP.NET.
Le langage Java reprend en grande partie la syntaxe du langage C++, très utilisée par les
informaticiens, il a été épuré des concepts les plus subtils du C++ et à la fois les plus déroutants,
tels que les pointeurs et références, ou l’héritage multiple contourné par l’implémentation des
interfaces.
3.1.1.3 SQL
Le SQL (Structured Query Language) est un langage permettant de communiquer avec une
base de données. Ce langage informatique est notamment très utilisé par les développeurs web pour
communiquer avec les données d’un site web. SQL.sh recense des cours de SQL et des explications
sur les principales commandes pour lire, insérer, modifier et supprimer des données dans une base.
3.1.1.4 CSS
Le concept de feuilles de style est apparu en 1996 avec la publication par le W3C d'une
nouvelle recommandation intitulée « Cascading StyleSheets » (feuilles de style en cascade), notée
CSS. Le principe des feuilles de style consiste à regrouper dans un même document des
caractéristiques de mise en forme associées à des groupes d'éléments. Il suffit de définir par un
nom un ensemble de définitions et de caractéristiques de mise en forme, et de l'appeler pour
l'appliquer à un texte. Il est ainsi possible de créer un groupe de titres en police Arial, de couleur
verte et en italique.
Les feuilles de style ont été mises au point afin de compenser les manques du langage
HTML en ce qui concerne la mise en page et la présentation. En effet, le HTML offre un certain
nombre de balises permettant de mettre en page et de définir le style d'un texte, toutefois chaque
élément possède son propre style, indépendamment des éléments qui l'entourent. Grâce aux feuilles
de style, lorsque la charte graphique d'un site composé de plusieurs centaines de pages web doit
être changée, il suffit de modifier la définition des feuilles de style en un seul endroit pour changer
l'apparence du site tout entier.
19
3.1.1.5 HTML
Le HTML (« HyperText Mark-Up Language ») est un langage dit de « marquage » (de «
structuration » ou de « balisage ») dont le rôle est de formaliser l'écriture d'un document avec des
balises de formatage. Les balises permettent d'indiquer la façon dont doit être présenté le document
et les liens qu'il établit avec d'autres documents.
3.1.1.6 JavaScript
Le JavaScript est un langage de script incorporé dans un document HTML. Historiquement
il s'agit même du premier langage de script pour le Web. Ce langage est un langage de
programmation qui permet d'apporter des améliorations au langage HTML en permettant
d'exécuter des commandes du côté client, c'est-à-dire au niveau du navigateur et non du serveur
web. Ainsi le langage JavaScript est fortement dépendant du navigateur appelant la page web dans
laquelle le script est incorporé, mais en contrepartie il ne nécessite pas de compilateur,
contrairement au langage Java, avec lequel il a longtemps été confondu.
3.1.2 Outils
3.1.2.1 Dreamweaver
Est un éditeur de site web WYSIWYG pour Microsoft Windows, et Mac OS X créé en
1997, commercialisé par Macromedia puis Adobe Systèmes sous licence utilisateur final.
Dreamweaver fut l'un des premiers éditeurs HTML de type « tel affichage, tel résultat »,
mais également l'un des premiers à intégrer un gestionnaire de site (Cyber Studio Go Live étant le
premier). Ces innovations l'imposèrent rapidement comme l'un des principaux éditeurs de site web,
aussi bien utilisable par le néophyte que par le professionnel.
3.1.2.2 ECLIPSE
Est un projet, décliné et organisé en un ensemble de sous-projets de développements
logiciels, de la Fondation Eclipse visant à développer un environnement de production de
logiciels libre qui soit extensible, universel et polyvalent, en s'appuyant principalement sur Java.
Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant
les activités de programmation (notamment environnement de développement
intégré et Framework) mais aussi d'AGL recouvrant modélisation, conception, testing, gestion de
20
configuration, reporting… Son EDI, partie intégrante du projet, vise notamment à supporter
tout langage de programmation à l'instar de Microsoft Visual Studio.
Power AMC est un logiciel de conception créé par la société SDP, qui permet de modéliser
les traitements informatiques et leurs bases de données associées. Il permet de réaliser tous les
types de modèles informatiques et d'améliorer la modélisation, les processus, le coût et la
production d'applications. Il reste un des seuls qui permet de travailler avec la méthode Merise.
3.1.2.4 Photoshop
Un SDK, pour Software Development Kit est un ensemble d'outils logiciels permettant de
faciliter le développement d'un logiciel sur une plateforme donnée (par exemple, il existe un SDK
pour Android, un pour iOS, etc.). Le SDK d'Android est multiplateforme, et se compose d'un plugin
s'intégrant à Eclipse et d'un émulateur permettant de tester son application sur plusieurs versions
différentes d'Android avec plusieurs tailles d'écran, et ce, même si on n'a pas d'appareil physique.
Pour notre teste nous avons utilisé l’émulateur Genymotion qui permet de simuler un terminal
Android sur un PC. Cet émulateur plus rapide a surtout été conçu pour les développeurs pour les
permettre de tester leurs applications.
Pour le projet Android doit toujours respecter une arborescence bien précise, Nous
présentons ci-dessous l’arborescence de notre projet.
21
Figure 7 : Emulateur et structure du programme Android
22
3.3 Interfaces et description des fonctionnalités réalisées
3.3.1 Interfaces du site web
23
Figure 9 : Ajout d'administrateurs
24
Figure 10 : Profil d'administrateur connecté
25
Figure 12 : Ajout des étudiants
26
Figure 13 : Boite de réception
27
Figure 15 : Liste des étudiants
28
Figure 16 : Slider des absences
29
Figure 18 : Les informations récentes
Les interfaces graphiques d’Android sont définies soit directement dans le code soit dans
des fichiers XML ; cela permet de bien séparer la vue du contrôleur. Le plugin Eclipse, fourni par
Google, permet au développeur de construire graphiquement son interface : il suffit ainsi de faire
glisser les composants disponibles vers l'écran du téléphone. Cela génère le fichier XML où chaque
composant possède différents attributs, et notamment un ID (qui sera utilisé pour retrouver le
composant depuis le code de l'application).
30
Figure 19 : Interface d’accueil et page de connexion
31
Figure 20 : Accueil Mangement et Menu des options
32
PERSPECTIVES
1 Partie Etudiant
- Un espace étudiant pour consulter les absences concernant le groupe auquel il appartient.
- La vérification du mot de passe incorrect de l’étudiant
- La vérification de non-existence de l’étudiant
- L’affichage du programme de chaque année pour chaque groupe des filières
- L’affichage des activités et son filtrage par mois
- L’affichage de la liste des professeurs absents
- L’affichage du programme des examens
2 Partie Etudiant
- Le fonctionnement de la boite de réception interne
- La gestion des réglages d’un compte
- L’ajout de nouvelles pages et menus
33
CONCLUSION
Nous avons pu constater à travers cette étude que la notion d’affichage, leur conception, leur
rôle d’outil, la place et la gestion de ces derniers, en dépit de leur apparente évidence et simplicité,
n’est pas si facile à cerner. Nous avons également pu à travers ce mini projet étudier plusieurs
langages de programmation et des technologies autour des ceux-ci en développant un site internet
et une application Android.
Nous avons vu les bases de la programmation mobile, les éléments du SDK d'Android,
comment construire une interface graphique, ce qu'étaient les activités et leur cycle de vie.
Nous avons vu qu’aujourd'hui pour la création d'applications pour mobiles on a le choix entre
3 plateformes : Android, iOS (iPhone) et Windows Mobile mais développer sous Android a
l'avantage de toucher un large public, et ne nécessite pas de devoir apprendre un nouveau langage
si l'on connaît déjà le Java.
Cependant, comme tout projet, nous avons dû faire face à de nombreuses difficultés car la
réalisation de certaines parties nécessitaient la connaissance et la maîtrise de certains outils pour y
arriver. En effet, ce sont ces difficultés qui ont fait l’intérêt de ce mini-projet car cela nous a permis
d’apprendre de nombreuses notions.
Malgré quelques contraintes techniques et de réalisation, ce projet s’est avéré très intéressant
et enrichissant car Il nous a apporté des nouvelles connaissances tant organisationnelles que
techniques et nous a permis de consolider et d’approfondir nos connaissances dans différents
langages et outils de programmation.
34
REFERENCES ET BIBLIOGRAPHIE
1 http://infocenter.sybase.com/archive/index.jsp?topic=/com.sybase.stf.poweramc.docs_12.1.0/
html/mcgu/mcgup180.htm
2 http://fr.wikipedia.org/wiki/Adobe_Photoshop
3 http://www.nicetocodeyou.com/2015/04/13/mysql-sous-android-fonctionnement-avantages-
et-inconvenients/
4 http://www.enis-android-club.com/2014/04/tutoAndroidMysql.html
5 http://fr.wikipedia.org/wiki/Adobe_Dreamweaver
6 http://fr.wikipedia.org/wiki/Eclipse_(projet)
7 http://phpcodechecker.com/
8 http://openclassrooms.com/
35
Table des figures
36