Rapport de projet de fin d'étude - Odoo 8, Android app -

5 593 vues

Publié le

Conception, développement et mise en ligne d’une plateforme Odoo et d’une application Android destinée à la gestion d’une société spécialisée dans les métiers de l’offshoring ICT.

Publié dans : Ingénierie
0 commentaire
9 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
5 593
Sur SlideShare
0
Issues des intégrations
0
Intégrations
13
Actions
Partages
0
Téléchargements
723
Commentaires
0
J’aime
9
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport de projet de fin d'étude - Odoo 8, Android app -

  1. 1. Ecole Nationale des Sciences Appliquées de Tétouan 1 Mémoire de fin d’étude Conception et développement d’une plateforme Odoo et d’une application Android destinée à la gestion d’une société spécialisée dans les métiers de l’offshoring ICT Par : ELOUASSINI Oumaima et KHATTABI Ghita Soutenance le 20 Juin 2015 Membres du Jury : - Pr. Youness Tabii Encadrant pédagogique (ENSATE) - Pr. CHRAYAH Mohamed Professeur à l’ENSATE - Pr. LAZAAR Mohamed Professeur à l’ENSATE Année universitaire : 2014/2015 Pour l’obtention du diplôme D’Ingénieur d’Etat Génie Informatique
  2. 2. Ecole Nationale des Sciences Appliquées de Tétouan 2 Dédicace A la plus belle perle du monde…ma tendre mère Tout ce que je peux t'offrir ne pourra exprimer l'amour et la reconnaissance que je te porte, En témoignage, je t'offre ce modeste travail pour te remercier pour tes sacrifices et pour l'affection dont tu m'as toujours entourée. A mes chères sœurs Sajida et Soukaina, vous m'avez toujours soutenue durant toutes mes études, je vous souhaite une vie pleine de joie, de bonheur et de réussite, A mes grands-parents, mes proches et à ceux qui me donnent de l'amour et de la vivacité, A ma chère binôme Ghita, A tous mes amis, A tous ceux que j'aime. Merci ! Oumaima.
  3. 3. Ecole Nationale des Sciences Appliquées de Tétouan 3 Dédicace À mes très chers parents, Je ne pourrais exprimer l'étendue de ma gratitude en ces quelques lignes. Toutefois je vous remercie pour votre soutien continuel, pour vos sacrifices et pour l'excellent modèle que vous avez été pour moi le long de toutes ces années. Je vous dédie ce travail. À ma très chère sœur, Je te remercie pour les encouragements sincères que tu n'as pas manqué de m'offrir tout au long de mon parcours et pendant les moments où j'en avais le plus besoin. À ma famille, Pour leur soutien continuel, leur foi en mes capacités, et leur façon de m'insuffler leur joie de vivre. Je remercie particulièrement Sara, pour son immanquable vitalité et sa confiance en mes capacités. À Oumaima, Pour avoir été une coéquipière travailleuse, persévérante, mais qui s'est également révélée être une grande amie. À tous mes amis, et à tous mes proches, Je vous remercie. Ghita.
  4. 4. Ecole Nationale des Sciences Appliquées de Tétouan 4 Remerciements Avant d'entamer ce rapport, nous tenions à exprimer nos remerciements à tous les acteurs du projet qui, au long de tous ces mois, nous ont apporté une aide précieuse pour la réalisation de celui-ci. Ainsi, nous commencerons par manifester notre profonde gratitude à toute l'équipe d'OpenCorp SA, plus précisément notre encadrant de stage M. Khalid BENTALEB, pour son soutien, sa générosité et ses conseils prodigués tout au long de la période de notre stage au sein de l'entreprise. Ensuite, nous tenons à remercier sincèrement Dr. Youness TABII, notre encadrant à l'École Nationale des Sciences Appliquées de Tétouan, pour ses directives, ses conseils et son soutien tout au long du stage. Nous vous remercions pour votre suivi et votre encadrement durant ces mois-ci. Nous aimerions également remercier M. Jérémie VANDER MEUTER, pour son soutien, ses conseils et son encouragement pendant toute la durée de notre stage dans OpenCorp. Nous saisissons également l'occasion pour remercier le corps professoral de l'ENSATé dans son intégralité, pour son enseignement le long de ces cinq années. Enfin, nous remercions les membres du jury pour avoir eu l'amabilité d'accepter de juger notre travail.
  5. 5. Ecole Nationale des Sciences Appliquées de Tétouan 5 Résumé Le présent rapport est le fruit d'un travail effectué au sein de l'entreprise OpenCorp SA, dans le cadre de notre projet de fin d'études en vue de l'obtention du diplôme d'ingénieur d'état en informatique. De nos jours, l'entreprise a besoin de faire sans cesse évoluer ses activités et ses processus. C'est effectivement le cas de l'entreprise OpenCorp SA qui souhaite étendre ses activités vers l'ensemble des pays francophones, et ainsi arrêter de se limiter au territoire belge. Pour réaliser ce but, l'entreprise a besoin de faire évoluer son progiciel de gestion intégré, d'une nouvelle interface pour son site web, mieux adaptée aux nouveaux objectifs de l'entreprise, et pour finir, d'une application mobile, permettant une gestion flexible en tout temps et en toute heures de différents services. L'intitulé de notre projet est le suivant : « Conception, développement et mise en ligne d’une plateforme Odoo destinée à la gestion d’une entreprise spécialisée dans les métiers de l’offshoring ICT » Notre projet consiste à mettre en place un nouveau module pour l'ERP, ainsi que le développement d'une application mobile mettant en place les différentes fonctionnalités ajoutées en back-end. Le projet s'articule autour de deux modules principaux : le module des ressources humaines et le module des ventes. Pour mettre au point ce projet, il a fallu passer par une étape d'analyse des besoins, et d'une conception détaillée du projet, avant de passer à l'étape de développement. Celle-ci a été effectuée en sprints, de manière à ce que les résultats du développement soient régulièrement testés afin de garantir l'intégrité et l'efficacité du produit. Ensuite, une fois que le module à développer était prêt, il a fallu passer au développement de l'application mobile permettant l'accès aux fonctionnalités mêmes mises au point précédemment, cette étape a été, bien entendu, également ponctuée de tests unitaires afin de garantir un produit final « zéro défaut ». Ce rapport a donc pour but de détailler les étapes par lesquelles est passé le projet afin d'atteindre la solution actuelle. Mots-clés : Odoo, ERP, Android, Ressources Humaines, Ventes.
  6. 6. Ecole Nationale des Sciences Appliquées de Tétouan 6 Abstract This report is the result of four months of work carried out within the company OpenCorp SA, as part of our final project in order to obtain the engineering degree in computer science. In the present day, the company needs to continually evolve its activities and processes. This is the case of the company OpenCorp SA that wishes to extend its activities to all French-speaking countries, and to stop being limited to Belgium only. To achieve this goal, the company needs to upgrade its ERP system, a new interface for its website that will be more adapted to the new objectives of the company, and finally, a mobile application, allowing flexible management at all times and in all hours of different services. The title of our project is: "Design, development and implementation of an Odoo online platform for the management of a company specializing in the business of ICT offshoring" Our project is to implement a new module for the ERP and to develop a mobile application by implementing various features added in the back-end section. The project consists of two main modules: the human resources module and the sales module. To develop this project, we had to go through a stage of requirements analysis, and a detailed project design, before moving on to the development stage. This was done in sprints, so that development results are regularly tested to ensure the integrity and effectiveness of the product. Then, once the module to be developed was ready, we had to move on to the development of the mobile application which allows access to the same features developed earlier, this step was, of course, also punctuated by unit tests to ensure a final product with "zero defects". This report therefore aims to detail the steps that the project went through in order to achieve the current solution. Keywords: Odoo, ERP, Android, Human Resources, Sales.
  7. 7. Ecole Nationale des Sciences Appliquées de Tétouan 7 Liste des tableaux Tableau 1- Cahier de charges Back-end ................................................................................................ 19 Tableau 2- Cahier de charges mobile.................................................................................................... 21 Tableau 3- Acteurs du système ............................................................................................................. 29 Tableau 4- Description textuelle : Créer Timesheet............................................................................. 44 Tableau 5- Description textuelle : Soumettre Timesheet .................................................................... 44 Tableau 6- Description textuelle : Approuver Timesheet .................................................................... 45 Tableau 7- Description textuelle : Rejeter Timesheet.......................................................................... 45 Tableau 8- Description textuelle : Créer employé................................................................................ 46 Tableau 9- Description textuelle : Modifier les informations d'un employé ....................................... 46 Tableau 10- Description textuelle : Créer contrat................................................................................ 47 Tableau 11- Description textuelle : Modifier contrat........................................................................... 48 Tableau 12- Description textuelle : Créer Sales Order ......................................................................... 48 Tableau 13- Description textuelle : Modifier Sales Order.................................................................... 49 Tableau 14- Description textuelle : Générer rapports ......................................................................... 49 Tableau 15- Description textuelle : Split les contrats........................................................................... 50 Tableau 16- Description textuelle : Créer facture................................................................................ 51 Tableau 17- Tableau détaillé des classes, entités et méthodes............................................................ 62 Liste des figures Figure 1- Logo d'OpenCorp SA............................................................................................................... 14 Figure 2- Exemple du développement en Scrum .................................................................................. 22 Figure 3- Aperçu des tâches effectuées ................................................................................................ 23 Figure 4- Diagramme de Gantt équivalent............................................................................................ 24 Figure 5- Diagramme des paquetages................................................................................................... 28 Figure 6- Diagramme de contexte........................................................................................................ 30 Figure 7- Logo d'Odoo ........................................................................................................................... 30 Figure 8- Structure modulaire d'Odoo .................................................................................................. 32 Figure 9- Logo d'Android....................................................................................................................... 36 Figure 10- Cycle de vie d'une application Android................................................................................ 37 Figure 11- Logo d'Ubuntu...................................................................................................................... 38 Figure 12- Logo de PostgreSQL.............................................................................................................. 39 Figure 13- Diagramme de cas d'utilisation : Ressources Humaines...................................................... 52 Figure 14- Diagramme de cas d'utilisation : Ventes............................................................................. 52 Figure 15- Diagramme d'activité : Timesheets...................................................................................... 53 Figure 16- Diagramme d'activité : Ventes............................................................................................. 55 Figure 17- Diagramme de séquence : Authentification ........................................................................ 56 Figure 18- Diagramme de séquence : Création d'une timesheet.......................................................... 57 Figure 19- Diagramme de séquence : Modifier et/ou approuver une timesheet................................. 58 Figure 20- Diagramme de séquence : Split un contrat.......................................................................... 59 Figure 21- Diagramme de classe du système........................................................................................ 60 Figure 22- Diagramme des composants................................................................................................ 63 Figure 23- Diagramme de déploiement ................................................................................................ 64 Figure 24- Cycle de vie d'un test ........................................................................................................... 66
  8. 8. Ecole Nationale des Sciences Appliquées de Tétouan 8 Figure 25- Architecture du système...................................................................................................... 67 Figure 26- Timesheets : Vue d'ensemble .............................................................................................. 68 Figure 27- Timesheets : Création d'une nouvelle timesheet ................................................................ 69 Figure 28- Timesheets : Insertion des informations.............................................................................. 69 Figure 30- Timesheets : Timesheets à valider....................................................................................... 70 Figure 31- Timesheets : Vue validation................................................................................................. 70 Figure 29- Timesheets : Message d'erreur-Description ........................................................................ 70 Figure 32- Contrats : Vue d'ensemble................................................................................................... 71 Figure 33- Contrats : Vue contrat.......................................................................................................... 71 Figure 34- Contrats : Vue sous-contrat ................................................................................................. 72 Figure 35- Contrats : Split...................................................................................................................... 73 Figure 36- Contrats : Timesheet concernée par projet......................................................................... 73 Figure 37- Contrats : Total to invoice avant fonction split.................................................................... 73 Figure 38- Contrats : Total to invoice après fonction split.................................................................... 74 Figure 39- Contrats : Timesheet modifiée après split ........................................................................... 74 Figure 40- Contrats : Aperçu des prix d'achat et de vente après split .................................................. 74 Figure 41- Contrats : Aperçu du sous-contrat à facturer ...................................................................... 75 Figure 42- Contrats : Timesheets à facturer.......................................................................................... 75 Figure 43- Contrats : Facture................................................................................................................. 76 Figure 44- Emails : Aperçu d'email de rappel........................................................................................ 76 Figure 45- Reporting : Aperçu de la page des rapports......................................................................... 77 Figure 46- Reporting : Aperçu du rapport généré................................................................................. 77 Figure 47- Page de connexion ............................................................................................................... 78 Figure 48- Menus : Employé ordinaire.................................................................................................. 79 Figure 49- Menus : Administrateur ....................................................................................................... 79 Figure 50- Employés : Détails d'un employé ......................................................................................... 79 Figure 51- Employés : Liste des employés............................................................................................. 79 Figure 52- Timesheets : Nouvelle Timesheet et nouvelle ligne ............................................................ 80 Figure 53- Timesheets : Soumission de la feuille de temps .................................................................. 81 Figure 54- Timesheets : Vérification par le responsable....................................................................... 81 Figure 55- Contrats : Détails d'un contrat............................................................................................. 82 Figure 56- Rapports : Aperçu des rapports par projet .......................................................................... 83 Figure 57- Rapports : Aperçu d'un rapport ........................................................................................... 83 Figure 58- Notifications : Aperçu d'une notification de validation ....................................................... 84 Figure 59- Page d'accueil....................................................................................................................... 92 Figure 60- Créer timesheet.................................................................................................................... 92 Figure 61- Validation de la création ...................................................................................................... 93 Figure 62- Liste et détails des timesheets............................................................................................. 93 Figure 63- Modifier Saved timesheet.................................................................................................... 94 Figure 64- Liste et détails des contrats.................................................................................................. 95 Figure 65- Nouvelle activité................................................................................................................... 95 Figure 66- Ajouter un Sous-contrat....................................................................................................... 96 Figure 67- Liste et détails des factures.................................................................................................. 96 Figure 68- Reporting: Vue par utilisateur.............................................................................................. 97
  9. 9. Ecole Nationale des Sciences Appliquées de Tétouan 9 Table des matières Dédicace .............................................................................................................................................. 2 Dédicace .............................................................................................................................................. 3 Remerciements ................................................................................................................................... 4 Résumé................................................................................................................................................ 5 Abstract ............................................................................................................................................... 6 Liste des tableaux................................................................................................................................ 7 Liste des figures................................................................................................................................... 7 Table des matières .............................................................................................................................. 9 Introduction générale........................................................................................................................ 12 Chapitre 1.............................................................................................................................................. 13 1- Présentation de l’organisme d’accueil ....................................................................................... 14 1.1 Présentation d'OpenCorp.................................................................................................. 14 1.2 Prestations et services....................................................................................................... 15 1.3 Clients................................................................................................................................ 16 2- Présentation générale du projet ............................................................................................... 17 2.1 Étude de l'existant............................................................................................................. 17 2.2 Problématique................................................................................................................... 17 2.3 Présentation du projet OpenCorp Offshore...................................................................... 18 3- Démarche et planification......................................................................................................... 22 3.1 Méthodologie de travail :.................................................................................................. 22 3.2 Planification du projet :..................................................................................................... 23 Conclusion ......................................................................................................................................... 26 Chapitre 2.............................................................................................................................................. 27 1- Étude fonctionnelle................................................................................................................... 28 1.1 Diagramme des paquetages.............................................................................................. 28 1.2 Diagramme de contexte.................................................................................................... 29 2- Étude technique ........................................................................................................................ 30 2.1 Odoo.................................................................................................................................. 30 2.2 Proxmox VE........................................................................................................................ 33 2.3 SSH (Secure Shell).............................................................................................................. 33 2.4 SSL (couche de sockets sécurisée)..................................................................................... 33 2.5 Service Web...................................................................................................................... 34
  10. 10. Ecole Nationale des Sciences Appliquées de Tétouan 10 2.6 Android.............................................................................................................................. 36 3- Outils et technologies utilisés.................................................................................................... 38 3.1 Système d'exploitation Ubuntu :....................................................................................... 38 3.2 Environnements de développement................................................................................. 38 3.3 Système de gestion de base de données PostgreSQL....................................................... 39 3.4 Visual Paradigm................................................................................................................. 40 3.5 Les langages de développement utilisés........................................................................... 40 Conclusion......................................................................................................................................... 41 Chapitre 3.............................................................................................................................................. 42 1- Conception détaillée du projet.................................................................................................. 43 1.1 Cas d’utilisation ................................................................................................................. 43 1.2 Diagrammes d'activité....................................................................................................... 53 1.2 Diagrammes de séquence ................................................................................................. 55 1.4 Diagramme de classe......................................................................................................... 59 1.5 Diagramme de composants............................................................................................... 62 1.6 Diagramme de déploiement.............................................................................................. 63 Conclusion ......................................................................................................................................... 64 Chapitre 4.............................................................................................................................................. 65 1- Tests........................................................................................................................................... 66 2- Architecture du système ........................................................................................................... 67 3- Réalisation du module opencorp_timesheet :.......................................................................... 68 3.1 Gestion des timesheets..................................................................................................... 68 3.2 Gestion des contrats .......................................................................................................... 71 3.3 Facturation sur la base des contrats clients...................................................................... 75 3.4 Service email...................................................................................................................... 76 3.5 Reporting........................................................................................................................... 76 4- Réalisation de l'Application OpenCorp mobile pour Android:.................................................. 78 4.1 Présentation de l'application :........................................................................................... 78 4.2 Gestion des timesheets :................................................................................................... 80 4.3 Gestion des contrats et factures: ...................................................................................... 81 4.4 Reporting........................................................................................................................... 82 ....................................................................................................................................................... 83 Notifications .................................................................................................................................. 83 Conclusion ......................................................................................................................................... 84
  11. 11. Ecole Nationale des Sciences Appliquées de Tétouan 11 Conclusion générale.......................................................................................................................... 85 Webographie..................................................................................................................................... 86 Annexe............................................................................................................................................... 87 Installation du serveur sur Proxmox ............................................................................................. 87 Captures de l'application mobile (Android) .................................................................................. 92
  12. 12. Ecole Nationale des Sciences Appliquées de Tétouan 12 Introduction générale Compte tenu de l'évolution rapide des besoins du marché ainsi que l'ascension fulgurante des moyens technologiques, une entreprise se doit de gérer ses flux de manière à rester à jour avec le monde qui l'entoure. Pour se faire, celle-ci est prête à déployer d'importants moyens pour garantir sa compétitivité et son évolutivité. Cela se fait surtout à l'aide de l'implantation de technologies logicielles, dont les plus répandues dernièrement ont connues sous le nom d'ERP ou Progiciel de Gestion Intégré (PGI) Les flux de la société OpenCorp sont gérés à travers le progiciel de gestion intégré Open Source Odoo, cependant, vu les aspirations d'expansion de celle-ci, les fonctionnalités proposée par la plateforme lambda ne sont plus suffisantes. La société souhaite cependant gérer l'ensemble de ses activités sur cette même plateforme. C'est dans ce cadre que s'inscrit notre projet, il vise à doter la société de l'ERP souhaité en développant des modules supplémentaires, notamment pour la gestion des timesheets, des contrats et de la facturation, ainsi que de mettre en place une application mobile (basée sur Android) permettant l'accès à ces fonctionnalités par l'employé ou le manager afin d'élargir la marge de manœuvre de ceux-ci, enfin, la mise en place d'une partie front-end destinée au commerce Business-to-Business. Ce rapport comporte donc plusieurs chapitres. Un premier chapitre destiné à cerner le contexte du projet, contenant une présentation de l’organisme d’accueil, une présentation générale du projet et la planification de celui-ci, afin de permettre une vision optimale de l’environnement de celui-ci. Ensuite, un second chapitre est composé de l’étude fonctionnelle, suivie de l’étude technique. Ce chapitre contient des diagrammes, des présentations des plateformes et technologies utilisées. Un troisième chapitre est entièrement consacré à la conception du projet. De ce fait, il contient l’ensemble des diagrammes nécessaires à la bonne compréhension et cohésion du système, du diagramme de cas d’utilisation au diagramme de classe. Le tout accompagné des scénarios et descriptions nécessaires. Un dernier chapitre, pour finir, détaille la réalisation des applications, et propose des aperçus de celles-ci.
  13. 13. Ecole Nationale des Sciences Appliquées de Tétouan 13 Chapitre 1 Contexte général du projet Dans ce chapitre, nous présenterons le contexte général du projet. Nous allons commencer par présenter l’organisme d’accueil et ses prestations, pour passer ensuite à une présentation générale du projet contenant une étude de l’existant, la problématique et la présentation du projet, pour détailler la planification de celui-ci et sa méthode de développement.
  14. 14. Ecole Nationale des Sciences Appliquées de Tétouan 14 1- Présentation de l’organisme d’accueil Nous procéderons à la présentation de l’organisme d’accueil, à savoir, OpenCorp SA, ainsi que ses prestations, ses services et ses clients. 1.1 Présentation d'OpenCorp Figure 1- Logo d'OpenCorp SA OpenCorp est une société de services IT spécialisée dans l’intégration de solutions open source hébergées dans le cloud à destination des PME, TPE, startups et des professions libérales. Au vu des avancées technologiques qui ont modifié en profondeur les attentes des utilisateurs et des pressions toujours plus importantes sur les budgets, OpenCorp a pour but d'atteindre le niveau d'exigence de ses clients, qui n'a jamais été aussi élevé. Fort de plus de 20 années d’expérience dans les systèmes d'informations, les fondateurs d'OpenCorp se sont donné comme mission de bousculer le marché en s'appuyant sur un catalogue de solutions efficaces, stables et abordables afin de permettre à ses clients de gagner en compétitivité. C'est dans cette optique qu'OpenCorp est aujourd'hui un des premiers revendeurs de la solution OpenERP 7.0 en mode SaaS. L'objectif d'OpenCorp est d'améliorer la vie des entreprises grâce à la mise en place d'un système s'adaptant parfaitement à leur processus ou à la transformation de leur système existant. L'entreprise travaille sur la solution Odoo afin d'améliorer les problématiques business de ses clients. Les services d'OpenCorp sont destinés aux sociétés souhaitant optimiser leurs performances. L'entreprise a pour programme élargi d’assistance technologique aux PME qui a pour objectif de faire évoluer l'entreprise en profitant des dernières révolutions technologiques en se basant sur 3 axes : - Diagnostic technologique de l'entreprise - Implémentation sur mesure du projet - Suivi et conseil
  15. 15. Ecole Nationale des Sciences Appliquées de Tétouan 15 1.2 Prestations et services OPENCORP revendique son expertise dans trois secteurs d'activités: la Communication, la Distribution et les Ressources Humaines. - Communication : OpenCorp propose à ses clients des outils afin de gérer leurs activités liées à la communication. Grâce à un système totalement intégré, toutes les informations sont partagées d'une manière efficace en interne. De plus, les personnes qui doivent se déplacer régulièrement pourront profiter du fait que le système est web-based et accessible depuis n'importe quel support. Toutes les informations sur les contacts, les évènements, les projets, les newsletters et les enquêtes sont en ligne. Enfin, la sécurisation de la base de données est de mise. - Distribution : Pour les entreprises de distribution, une solution puissante regroupe les fonctionnalités nécessaires à la gestion efficace des opérations, quel que soit la nature du produit ou sa zone géographique de distribution. Le but est de diminuer votre temps d’entrée de données. De nombreuses fonctions permettent de simplifier la gestion des produits : les multi unités, l’achat en série, les seuils minimums et maximums, l’inventaire matriciel, la gestion de la limite de crédit par client, etc. - Ressources Humaines : Grâce à l'ajout d'un module ressources humaines, les dirigeants d’une société ont une meilleure visibilité sur le suivi de leurs salariés et des tâches qui leur sont affectées. Le module RH propose un compte-rendu des notes de frais, en permettant à chaque salarié d’accéder à un espace personnel qui lui permettra de transmettre rapidement ses factures à la comptabilité tout en permettant aux ressources humaines de fixer des barèmes et des plafonds. Il est possible par exemple de gérer les congés et les absences de chaque collaborateur avec des fonctionnalités qui permettent à chacun de connaître son solde de congés. La direction peut, quant à elle, valider rapidement une demande de congés ou gérer les heures supplémentaires ou encore le nombre de tickets restaurants à commander, par exemple. Enfin, dernier point à aborder, c’est le suivi RH, toutes les données des dossiers salariés peuvent être très facilement dématérialisées pour être accessibles rapidement via le web : contrats de travail, avenants, entretiens annuels, visites médicales… Toutes les données d’un salarié peuvent se retrouver très rapidement pour un meilleur suivi par les équipes de ressources humaines.
  16. 16. Ecole Nationale des Sciences Appliquées de Tétouan 16 1.3 Clients Parmi les clients de la société OpenCorp SA, on peut citer :
  17. 17. Ecole Nationale des Sciences Appliquées de Tétouan 17 2- Présentation générale du projet Nous procédons maintenant à une présentation générale du projet : elle contiendra une étude de l’existant, qui nous permettra de cerner la problématique et de présenter le projet. Une présentation de la planification suivra. 2.1 Étude de l'existant La société OpenCorp SA est basée sur Bruxelles, et propose donc la quasi-totalité de ses services à des petites et moyennes entreprises sur tout le territoire belge. Cependant, OpenCorp travaille régulièrement avec des développeurs de Tétouan au Maroc, vu la présence de son centre de développement dans la ville. L'entreprise OpenCorp SA a pour progiciel de gestion intégré une version standard de l'ERP Odoo (anciennement OpenERP), celui-ci est utilisé pour gérer les fonctionnalités générales de l'entreprise. On peut citer par exemple : l'utilisation d'un module de ressources humaines permettant une gestion simplifiée des feuilles de temps, l'utilisation d'un module de ventes permettant la gestion également simplifiée des projets et de la facturation. D'un autre côté, l'insertion et l'utilisation des modules de l'ERP est limitée à celle disponible à travers l'interface web du serveur, c'est-à-dire sur ordinateur à travers un explorateur web quelconque. Enfin, le site web dédié de l'entreprise ne permet pas une grande interaction entre le client potentiel et OpenCorp SA. On peut donc déduire que la marge d'activité de l'entreprise se trouve réduite à cause du manque de réactivité de son système d'information, et que celui-ci est efficace mais insuffisant pour une gestion optimale des processus métiers, notamment ceux reliés aux ressources humaines et aux ventes. L'entreprise rencontrera également des difficultés à contacter ou intéresser des clients potentiels étrangers. 2.2 Problématique Comme nous l'avons spécifié précédemment, le domaine d'activité de la société OpenCorp SA se limite au territoire belge. Ce qui nous amène à la problématique suivante : La société OpenCorp SA souhaite élargir ses activités et sa clientèle en visant les marchés francophones en général (c'est-à-dire : la France, le Canada francophone et certains pays africains). Cependant, la structure du PGI et du site web actuels n'est pas propice à l'expansion de ces activités. Pour ce qui est du PGI (aussi connu sous le nom d'ERP), celui-ci n'est pas compatible, d'un côté, avec les réalités économiques des autres pays visés. Il présente également quelques lacunes au niveau du module ressources humaines, le remplissage des timesheets n'est pas optimisé, et les tarifs selon le consultant travaillant sur le projet ne sont pas spécifiés.
  18. 18. Ecole Nationale des Sciences Appliquées de Tétouan 18 Il n'existe également aucune liaison entre le contrat et le bon de commande afin de permettre la facturation de celui-ci. D'un autre côté, le site web est essentiellement orienté vers une clientèle se situant sur le territoire belge. De ce fait, un client potentiel visitant d'un autre pays peut négliger de faire appel aux services d'OpenCorp SA. Pour finir, l'employé ne pouvant accéder au système d'information que depuis un poste ordinateur, et l'interface de celui-ci n'étant pas adaptée au mobile, il reste difficile, sinon très peu pratique, la consultation ou gestion d'affaires sur mobile. Ainsi, il s'avère important de trouver une solution pour le problème se présentant. 2.3 Présentation du projet OpenCorp Offshore OpenCorp a décidé de créer un centre offshore dédié où les développeurs pourront se rassembler et se former afin qu’OpenCorp utilise ses services ou les propose à d’autres entreprises. Afin de mener cette mission à bien, l'entreprise aura besoin de mener à bien 3 projets semi- indépendants : - Une partie back-end, - Une partie front-end, - Une partie mobile. La partie back-end permettra de remédier aux problèmes cités précédemment. On procédera à l'optimisation du procédé des timesheets, de la facturation et des sale orders. La partie front-end permettra de mettre au point un site B2B permettant de mettre à la disposition des clients potentiels un site à la manière d'un site d'e-commerce leur laissant la liberté de choisir le consultant à travailler sur leur projet, son tarif, sa disponibilité et ainsi de suite. Enfin, la partie mobile sera une implémentation des éléments de la partie back-end rectifiés en première partie du projet. Elle permettra à un employé de consulter, modifier, confirmer ses feuilles de temps, ainsi que d'afficher les contrats, etc.
  19. 19. Ecole Nationale des Sciences Appliquées de Tétouan 19 Cahier de charges : Back-end Objectif Fonctionnalités Gestion des ventes - Consulter la liste des clients, - Gérer les projets, - Gérer les sous-contrats, - Gérer les bons de commande, - Gérer les paiements, - Gérer les produits, - Gérer les devis, - Gérer les opportunités, - Gérer les activités, - Suivre des prix des feuilles de temps validées. Gestion des ressources humaines - Gérer les employés, - Gérer les timesheets. Gestion des factures - Gérer les factures. Service de messagerie - Envoi des emails. Reporting - Imprimer les rapports (factures), - Imprimer les rapports (timesheets). Tableau 1- Cahier de charges Back-end Ensemble des tâches demandées : Pour ce qui est de la gestion des timesheets (ou feuilles de temps), il est nécessaire de créer les menus des éléments : Saved Timesheets, Submitted Timesheets, Approved Timesheets, Rejected Timesheets. Par la suite, il faut bien évidemment créer les vues correspondantes à ces menus. Pour ce qui est de l’encodage par semaine, lors du remplissage des timesheets, il faut définir celui-ci de samedi à vendredi, et ce au lieu de lundi à dimanche. Il faut également mettre au point plusieurs garde-fous, un employé ne doit pas travailler moi de huit heures par jour (sauf samedi et dimanche), ne doit pas travailler moins de cinq jours par semaine également, enfin, il doit nécessairement renseigner une description lors du remplissage des lignes. Il faut
  20. 20. Ecole Nationale des Sciences Appliquées de Tétouan 20 également ajouter un onglet « project activity », celui-ci permet de spécifier l’activité effectuée lorsque l’employé a travaillé sur un contrat donné (par exemple : développement, conception, etc.) celle-ci est également nécessairement liée au contrat sélectionné. Ensuite, lors de la soumission de la feuille de temps, celle-ci doit être validée par le supérieur hiérarchique défini dans la fiche de l’employé, ce supérieur peut également modifier ces timesheets s’il le juge nécessaire. Pour les ressources humaines, on doit pouvoir assigner un supérieur hiérarchique à un employé donné. Pour les contrats clients, il faut non seulement imputer les timesheets aux contrats parents correspondants mais également pouvoir ajouter des sous-contrats non associés au timesheets. Il faut également ajouter l’onglet « project activity » des activités correspondantes au contrat. La facturation doit se faire à l'aide du Sales Order. Le Sales Order est relié au sous-contrat correspondant. Le sous-contrat prend le nom du contrat parent suivi du numéro du Sale Order correspondant. La modification du prix d’achat et du prix de vente à déduire des timesheets selon la valeur Start Cost (qui spécifie la date de début de l'application du tarif du service) disponibles dans le sous-contrat correspondant. Egalement, la mise en place d’une fonction split : elle permet d'attribuer les timesheets imputés à un contrat parent à un sous-contrat donné selon la disponibilité de la quantité à facturer. Elle permet également le passage du Sales Order depuis un état de brouillon à un état de confirmé. Enfin, il faut ajouter un champ No Description, il permet de spécifier si le contrat n'a pas de description par défaut. Si oui, l'employé n'est pas tenu de remplir une description lors de la création de la feuille de temps. Pour la facturation, il faut passer de l'état du Sales Order de confirmé à terminé lors de la facturation. Et pour le reporting, il faut pouvoir afficher des rapports relatifs aux timesheets selon la date, les employés et les contrats, et la mise au point de filtres permettant l'affichage des contrats dont le montant à facturer est supérieur à zéro, les contrats à splitter, etc. Il faut également pouvoir imprimer les rapports générés. Pour finir, le service e-mail doit se charger de l'envoi d'un e-mail à chaque employé, afin de les rappeler à remplir la timesheets, de manière hebdomadaire. Cahier de charges : Mobile (Android) Objectif Fonctionnalités Gestion des ventes - Gérer les projets, - Gérer les sous-contrats, - Gérer les activités, - Suivre les prix des timesheets approuvées.
  21. 21. Ecole Nationale des Sciences Appliquées de Tétouan 21 Gestion des ressources humaines - Gérer les timesheets, - Consulter et contacter les employés. Gestion des factures - Consulter les factures. Service de notification - Envoyer notification lors de validation de timesheet. Reporting - Générer les rapports (timesheets) Tableau 2- Cahier de charges mobile Le travail qui nous a été demandé a été de développer une application mobile sous Android, permettant une gestion efficace des différents services. La principale fonctionnalité étant de gérer les timesheets : l'affichage de l'ensemble des timesheets de l'employé connecté, regroupées par état (timesheet enregistrée, soumise à validation, approuvée, etc.), la création, l'enregistrement, la modification et la soumission de timesheets également soumises aux contraintes spécifiées dans le cahier de charges de la partie back-end. Pour le manager, permettre la validation, ou la modification suivie de validation des timesheets soumises par les employés, ainsi de recevoir des notifications lors de la validation de sa feuille de temps par le manager. La gestion des employés : l'affichage de la liste des employés et la disponibilité des informations de base, telle que le département, le titre, le manager et le supérieur hiérarchique, aussi la possibilité de contacter un employé donné par téléphone ou par email, si ces coordonnées sont présentes. La gestion des ventes (pour l'administrateur/manager) : l'affichage des projets sous forme de liste. Parmi les informations à afficher : le nom du projet, le client concerné, le responsable chargé du contrat, et le montant à facturer. L'affichage des détails du projet : Contenant les informations citées précédemment, en plus de la date de signature du contrat, la référence, le temps restant. Également consultables : les sous-contrats et les activités de projet. La création des sous contrats, et des activités reliées aux projets, l'ajout du prix pour chaque utilisateur dans les sous-contrats, le manager doit avoir aussi la possibilité de la consultation des rapports et leur génération sous format PDF à partir de l'application mobile. La gestion des factures : La consultation des détails des factures.
  22. 22. Ecole Nationale des Sciences Appliquées de Tétouan 22 3- Démarche et planification 3.1 Méthodologie de travail : La nature du projet incite à suivre une méthode agile et plus précisément la méthode Scrum. En effet les spécifications du projet n’ont pas cessé d’être modifiées tout au long du projet et les outils et les technologies n’ont pas été explicitées depuis le départ. Scrum permet d’entamer le projet avec un minimum d’informations sur les travaux à faire et qui seront ajustées régulièrement au cours du projet. Le cycle de vie de la méthode Scrum se décompose en plusieurs Sprint successifs : - Product Backlog ou « Le carnet de commandes » Scrum est une liste des caractéristiques jugées prioritaires, contenant de courtes descriptions de toutes les fonctions désirées dans le produit. Lorsque l'on suit le processus Scrum, il n'est pas nécessaire de démarrer un projet avec une longue liste de toutes les exigences. Typiquement, une équipe Scrum et son propriétaire commencent par écrire tout ce qu'ils peuvent penser pour spécifier les priorités. Ce backlog de produit agile est presque toujours plus que suffisant pour un premier sprint. Le backlog de produit Scrum est alors autorisé à grandir et à changer plus on apprend sur le produit et ses clients. - Sprint Backlog est une liste des tâches identifiées par l'équipe Scrum devant être achevée à la fin du sprint. Au cours de la réunion de planification de sprint, l'équipe sélectionne un certain nombre d'éléments produits du carnet de commandes, et identifie les tâches nécessaires pour compléter chacune. La plupart des équipes estiment également combien d'heures chaque tâche aura chaque membre de l'équipe pour terminer. - Le Sprint dure au maximum 4 semaines, et pendant ce cycle des réunions quotidiennes sont menées pour faire le point sur le travail accompli et les obstacles rencontrés depuis la dernière réunion. Des livraisons fréquentes sont attendues à la fin du Sprint. Figure 2- Exemple du développement en Scrum
  23. 23. Ecole Nationale des Sciences Appliquées de Tétouan 23 - Working increment of the software : L'incrément (ou incrément potentiellement livrable, potentially shippable increment, PSI) est la somme de tous les articles produits du carnet de commandes réalisées au cours d'un sprint et tous les sprints précédents. À la fin d'un sprint, la tâche doit être complète, et dans un état utilisable indépendamment du fait que le propriétaire du produit décide de réellement la livrer. 3.2 Planification du projet : Diagramme de Gantt : Le diagramme de GANTT est un outil permettant de modéliser la planification de tâches nécessaires à la réalisation du projet, il visualise dans le temps les diverses tâches liées composant le projet en fournissant une représentation graphique de son avancement. Figure 3- Aperçu des tâches effectuées
  24. 24. Ecole Nationale des Sciences Appliquées de Tétouan 24 Figure 4- Diagramme de Gantt équivalent
  25. 25. Ecole Nationale des Sciences Appliquées de Tétouan 25 - Formation Back-end : Le but de cette phase est de garantir un savoir optimal sur la manière de développer des modules sur la plateforme Odoo. Elle permet ainsi de débuter le projet sur un rythme soutenu. - Conception et développement, Back-end : L'objectif de cette phase est d'obtenir le service back-end cible, et les tâches associées à cette étape sont :  Mise au point de la gestion des Timesheets,  Mise au point de la gestion des contrats et des factures,  Gestion du reporting. - Formation Android : Le but de cette phase est de se préparer au développement sur Android, ainsi que de maitriser les outils concernés. - Conception et développement, Android : L'objectif de cette phase est d'implémenter les fonctionnalités développées et celles utiles disponibles dans la back-end, et de les rendre disponibles sur mobile, les tâches qui y sont associées sont les suivantes :  Gestion des timesheets,  Gestion des contrats, des employés et des factures,  Reporting,  Différenciation entre application destinée à l'employé et celle destinée au manager.
  26. 26. Ecole Nationale des Sciences Appliquées de Tétouan 26 Conclusion Dans ce chapitre, nous avons présenté le contexte général du projet, en introduisant l’organisme d’accueil : OpenCorp. Nous avons ensuite effectué une étude de l'existant, grâce à laquelle nous avons pu cerner les problématiques se présentant. Par la suite, nous avons présenté les cahiers de charge fonctionnels, et nous avons parlé de la méthode de développement suivie, qui est Scrum. Pour finir, nous avons donné un aperçu de la planification du projet à l'aide d'un diagramme de Gantt.
  27. 27. Ecole Nationale des Sciences Appliquées de Tétouan 27 Chapitre 2 Etude fonctionnelle et technique Dans ce chapitre, nous présenterons l’étude fonctionnelle et technique du projet. Pour la première, nous allons présenter un diagramme des paquetages du système, ainsi qu’un diagramme de contexte. Pour la seconde, nous allons parler de la plateforme Odoo, de la plateforme Android et des outils et techniques utilisés.
  28. 28. Ecole Nationale des Sciences Appliquées de Tétouan 28 1- Étude fonctionnelle L’étude fonctionnelle regroupera quelques diagrammes : un diagramme de paquetages et un diagramme de contexte. 1.1 Diagramme des paquetages Les diagrammes de paquetages sont la représentation graphique des relations existant entre les paquetages (ou espaces de noms) composant un système, dans le langage Unified Modeling Language (UML). Le diagramme suivant représente le diagramme de paquetage de notre système. Celui-ci est constitué des paquets principaux suivants : - Gestion des ventes, - Gestion des achats, - Gestion comptable, - Gestion de la relation clientèle, - Gestion des ressources humaines. Figure 5- Diagramme des paquetages
  29. 29. Ecole Nationale des Sciences Appliquées de Tétouan 29 1.2 Diagramme de contexte Le domaine étudié est le suivant : Conception, développement et mise en ligne d’une plateforme Odoo destinée à la gestion d’une entreprise spécialisée dans les métiers de l’offshoring ICT Les activités internes de la plateforme : - Gestion des employés, - Gestion des feuilles de temps, - Gestion des contrats, - Gestion de la facturation. Les acteurs du système Acteur Description Employé Peut créer et soumettre des timesheets ainsi que visualiser celles le concernant. Peut également consulter les employés. Manager Peut effectuer les tâches citées précédemment, en plus de la validation et de la modification des timesheets soumises pour validation. Administrateur Peut effectuer les tâches citées précédemment, en plus de la création des contrats, des factures et des bons de commandes. Client Peut signer des contrats, peut choisir un employé à associer au contrat. Tableau 3- Acteurs du système
  30. 30. Ecole Nationale des Sciences Appliquées de Tétouan 30 Figure 6- Diagramme de contexte 2- Étude technique L’étude technique mettra en relief les principales plates-formes utilisées, et parlera également des différentes techniques utilisées pour la sécurisation lors du déploiement. 2.1 Odoo Fondé en 2005 en Belgique par Fabien Pinckaers, Odoo (anciennement OpenERP) est un progiciel de gestion d'entreprise (ERP) destiné à intégrer l'ensemble des données opérationnelles et de gestion de l'entreprise dans une base de données unique, accessible par une interface web. Cette base de données centrale est associée à une couche fonctionnelle très innovante qui met en relation des informations d'origines diverses et assure un déroulement efficace des processus transversaux de création de valeur ajoutée de l'entreprise. Des centaines de modules fonctionnels sont assis sur cette fondation technique robuste et performante. Ils apportent les applications métier dont chacun a besoin dans l'entreprise. Cette approche modulaire facilite l'intégration de nouvelles fonctionnalités sous la forme de modules complémentaires. L’ERP Odoo gère toutes les grandes fonctions de l’entreprise. Il propose aussi plus de 500 applications spécialisées qui facilitent la gestion et améliorent la productivité.  Gestion et création de site web: Odoo V8 est à ce jour le seul ERP qui propose un CMS intégré. Cette solution est particulièrement efficace pour les projets d’e-boutique, de portail clients, de site d’annonces spécialisées.  Gestion Commerciale : Odoo V8 couvre toutes les fonctions de la gestion commerciale (CRM – Devis – Commande – Facturation - Comptabilité). Figure 7- Logo d'Odoo
  31. 31. Ecole Nationale des Sciences Appliquées de Tétouan 31  Marketing : Permet la gestion des campagnes de prospection et le suivi de portefeuille de sondage clients ...  Ressources Humaines : Odoo V8 assure la gestion du recrutement via le site web jusqu’à la gestion administrative des employés. Il permet à chaque collaborateur de s’abonner à un événement et d’être notifié. Le chat et le réseau social d’entreprise sont autant de fonctionnalités qui facilitent le travail quotidien des utilisateurs. Historique et notes de sorties :  Le 20 janvier 2011, OpenERP SA annonçait le lancement de la version 6.0 du logiciel. Son approche modulaire permet aux utilisateurs de commencer avec une application, puis d'ajouter d'autres modules selon leurs besoins.  En décembre 2012, la version 7.0 d'OpenERP est lancée et peut être testée en ligne, téléchargée ou vue en version de démonstration. Mai 2014: OpenERP change de nom et devient Odoo.  Été 2014, Odoo lance la version 8. Cette version enrichit principalement le logiciel de nouvelles applications qui font d’Odoo un logiciel allant au-delà d'un ERP. Ces applications sont: Marketing (gestion d'événements, d'enquêtes de satisfactions, campagnes de mails auprès de la CRM,...), CMS (construction d'un site internet - front-end lié au back-end - grâce au déplacement rapide et simple de 'blocs" d'éditions), e-commerce (application pour vente en ligne),... Architecture modulaire : Outre le fait que la solution est Open Source, la grande force d'Odoo (OpenERP) réside dans son architecture modulaire permettant de s’adapter à l’évolution des besoins dans le temps. Il s'agit de la faculté de construire des applications informatiques de manière modulaire (modules indépendants entre eux) tout en partageant une base de données unique, ceci élimine les saisies multiples et élimine l’ambiguïté des données de même nature
  32. 32. Ecole Nationale des Sciences Appliquées de Tétouan 32 Structure modulaire Figure 8- Structure modulaire d'Odoo Un module Odoo est composé des éléments principaux suivants : - Les vues, sous forme de fichiers XML. Ces vues sont sous forme de formulaires, listes, graphes, calendriers, ou de diagrammes. La partie vue inclut également ce qu'on appelle les actions et les éléments de menus. - Les objets, sous forme de code python pour la plupart, contiennent les business objects et se chargent des traitements effectués par le module. Les objets peuvent également être sous la forme de fichiers XML, pour les données par exemples mais aussi pour des besoins de démonstration. - Les workflows, sont des fichiers XML, permettant de modéliser les flux d'un état à l'autre. (Par exemple : passage d'un contrat de l'état en cours à l'état terminé, etc.) - Les wizards, permettent l'affichage de fenêtres de dialogues, elles-mêmes contenant des vues ou des objets. - Les rapports, quant à eux sont composés de fichiers XML pour la partie statique, de code python pour la partie dynamique et la mise en page se fait, pour sa part, à l'aide d'OpenOffice. Pour finir le module a un fichier nécessaire : __openerp__.py qui définit les dépendances du module. Modèle vue contrôleur : Un système Odoo est basé sur une architecture 3 tiers: 1. Un serveur de base de données PostgreSQL (qui peut contenir plusieurs bases de données),
  33. 33. Ecole Nationale des Sciences Appliquées de Tétouan 33 2. Un serveur d'applications (contenant les objets de gestion, le moteur de workflow, le générateur d'édition, etc.), développées en langage Python, qui accède au SGBD via un ORM (couche de mapping objet-relationnel) 3. Un serveur de présentation (appelé Odoo WEB), qui communique avec le serveur d'applications grâce à une interface XML-RPC Gestion électronique des processus métier(Workflow) Un Workflow est la représentation sous forme de flux des opérations à réaliser pour accomplir l'ensemble des tâches ou activités regroupées en un même processus métier. Le workflow permet la modélisation des processus métier dans le cadre d'une démarche plus globale BPM Business Process Management. Buts :  Description de l’évolution du document dans le temps  Déclenchement automatique d'actions si certaines conditions sont remplies  Gestion des rôles de l'entreprise et les étapes de validation  Gestion des interactions entre les différents objets/modules 2.2 Proxmox VE Proxmox VE (Virtual Environment) est un logiciel libre de gestion de la virtualisation de serveur dédié. L'outil Proxmox permet de virtualiser un serveur sans avoir besoin d'installer un système d'exploitation auparavant. Cet outil gère les machines virtuelles, le stockage, et les réseaux virtualisés. Proxmox a été créé en 2008 par la société Proxmox Server Solutions Gmbh, il est disponible pour Linux et Windows. 2.3 SSH (Secure Shell) C'est un protocole qui permet de se connecter à une machine distante avec une liaison sécurisée. Les données sont cryptées entre machines. Il permet d’exécuter des commandes sur un serveur distant. Nous avons utilisé le programme OpenSSH, qui est la version libre du client et du serveur SSH. 2.4 SSL (couche de sockets sécurisée) C'est un système qui permet d'échanger des informations entre 2 ordinateurs de façon sûre. SSL assure 3 choses:
  34. 34. Ecole Nationale des Sciences Appliquées de Tétouan 34  Confidentialité: Il est impossible d'espionner les informations échangées.  Intégrité: Il est impossible de truquer les informations échangées.  Authentification: Il permet de s'assurer de l'identité du programme, de la personne ou de l'entreprise avec laquelle on communique. Il repose sur un procédé de cryptographie par clef publique afin de garantir la sécurité de la transmission de données sur internet. Son principe consiste à établir un canal de communication sécurisé (chiffré) entre deux machines (un client et un serveur) après une étape d'authentification. Une fois le certificat SSL installé sur un site, les visiteurs pourront accéder à celui-ci à travers une connexion « https » où le "s" signifie bien évidemment secured (sécurisée).Qui indique au serveur qu'il doit établir une connexion sécurisée avec le navigateur. Pourquoi SSL ? SSL est standardisé. Il existe une version libre OpenSSL que vous pouvez utiliser dans vos programmes sans payer de droits d’auteur. SSL a été cryptanalysé : SSL a été passé en revue par de nombreux spécialistes en cryptographie. On peut donc le considérer comme sûr. Il est répandu: on peut facilement créer des programmes qui dialogueront avec d'autres programmes utilisant SSL. 2.5 Service Web Un Web service est une interface d’échange de données entre deux applications (API) qui s’effectue par le biais d’inter ou intra Net. Il transfère les données vers les applications clientes via des fichiers XML. Le dialogue à distance entre ces applications se fait indépendamment des plateformes et des langages sur lesquelles elles reposent. Pour ce faire, les services web s’appuient sur un ensemble de protocoles internet très répandus (SOAP, REST), afin de communiquer. Cette communication est basée sur le principe de demandes et réponses. Les services web s’appuient sur un ensemble de protocoles standardisant les modes d’invocation mutuels de composants applicatifs. XML-RPC vs. SOAP Présentons les deux API : Informations générales : XML-RPC : XML-RPC est "... un ensemble d'implémentations qui permettent aux logiciels fonctionnant sur les systèmes d'exploitation disparates, d’être exécuté dans des environnements différents pour faire les appels de procédure sur Internet. C’est une procédure distante appelée en utilisant HTTP comme transport et XML comme encodage. XML-RPC est conçu pour être aussi simple que possible, tout en
  35. 35. Ecole Nationale des Sciences Appliquées de Tétouan 35 permettant des structures de données complexes d'être transmises, traitées et renvoyées ". - xmlrpc.com Objectifs de XML-RPC : « Nous voulions un format propre, extensible et très simple. Il devrait être possible pour un codeur de HTML pour être en mesure de regarder un fichier contenant un appel de procédure XML-RPC, de comprendre ce qu'il fait, et être en mesure de le modifier et de le faire travailler sur le premier ou le deuxième essai ... Nous voulions aussi que le protocole soit facile à mettre en œuvre et rapide à adapter pour fonctionner dans d'autres environnements ou sur d'autres systèmes d'exploitation. » - xmlrpc.com La spécification elle-même contient à peu près sept pages, y compris des exemples et une FAQ, et est extrêmement facile à comprendre. Tout programmeur compétent ne devrait trouver aucune difficulté dans l'application de XML-RPC dans leur logiciel après avoir lu ses spécifications. SOAP : "SOAP est un protocole léger d'échange d'informations dans un environnement décentralisé et distribué. C'est un protocole basé sur XML qui se compose de trois parties: Une enveloppe qui définit un cadre pour décrire ce qui est dans un message et comment le traiter, un ensemble des règles de codage pour exprimer des instances de types de données définis par l'application, et une convention pour représenter les appels et les réponses de procédure à distance ". - La spécification SOAP. Objectifs de SOAP : SOAP tente de reprendre là où XML-RPC est arrêté par la mise en œuvre des types de données définis par l'utilisateur, la possibilité de spécifier le destinataire, un message de contrôle de traitement spécifique, et d'autres caractéristiques. À plus de 40 pages la spécification SOAP est complexe et rejette la caractéristique la plus importante de XML-RPC, sa facilité d'utilisation. Caractéristiques et avantages XML-RPC : Structures: XML-RPC permet de définir un ensemble anonyme de paires nom-valeur. "A contient s et chacun contient a et a." La valeur (s) peut être de tout type de données Tableaux: Tableaux dans XML-RPC définissent un groupe anonyme d'éléments sans limitation de mélange des types de données comme les entiers et les chaînes dans le même tableau. "A contient un seul élément, qui peut contenir un nombre quelconque de s" Stabilité : Bien que XML-RPC ne soit pas maintenu par un comité de normalisation, il est stable et ouvert à la participation de la communauté. Simplicité : La simplicité de XML-RPC est sa plus grande caractéristique. Il est extrêmement facile à comprendre, mettre en œuvre, et à déboguer. La syntaxe est si simple qu'il est très facile de trouver, et d'éviter, des erreurs.
  36. 36. Ecole Nationale des Sciences Appliquées de Tétouan 36 SOAP : Structures: SOAP définit un ensemble de paires nom-valeur. Les structures peuvent être nommées. Tableaux: les tableaux SOAP définissent un regroupement d'éléments sans limitation de mélange des types de données comme les entiers et les chaînes dans le même tableau. Les tableaux peuvent être nommés. Tableau d'octets: Un tableau d'octets peut être codé comme une référence unique ou une valeur multi-référence. Les règles pour un tableau d'octets sont semblables à ceux d'une chaîne de caractères. En particulier, l'élément contenant du tableau de la valeur des octets peut avoir un attribut "id". Des éléments accesseurs supplémentaires peut alors avoir correspondant attributs "href" ". Types de données définies par l'utilisateur : les développeurs peuvent définir leurs propres types de données simples ou complexes. 2.6 Android Android est un système d'exploitation mobile, développé par Google. Celui-ci met à disposition un kit de développement (SDK) basé sur le langage Java. C'est un gros programme qui gère le matériel sur lequel il s'exécute (smartphone, tablette, ordinateur ou d'autres) de manière à pouvoir exécuter des logiciels. Android a pris une place importante dans la vie quotidienne de millions de personnes, au point qu'il s'agit du système d'exploitation mobile avec le plus d'applications en circulation. Figure 9- Logo d'Android
  37. 37. Ecole Nationale des Sciences Appliquées de Tétouan 37 onCreate() : cette méthode est appelée à la création d’une activité. Elle permet de l’initialiser. C’est ici que l’interface graphique est spécifiée. onStart() : Cette méthode est appelée quand l’application est démarrée. onResume() : Cette méthode est appelée quand l’application passe (ou repasse) en avant- plan. Figure 10- Cycle de vie d'une application Android
  38. 38. Ecole Nationale des Sciences Appliquées de Tétouan 38 onPause() : Appelée quand l’application passe en arrière-plan et qu’une autre application se met devant. onStop() : Appelée quand l’application n’est plus visible. onRestart() : Appelée quand l’application redevient visible. onDestroy() : Appelée quand l’application est fermée par le système à cause d’un manque de ressources, ou par l’utilisateur à l’utilisation d’un finish(). 3- Outils et technologies utilisés Ce chapitre décrit les différentes technologies adoptées et utilisées pour la réalisation de ce projet, à commencer par le système d’exploitation Linux, tout en passant le système de gestion de bases de données PostgreSQL, les langages nécessaires pour le développement, à savoir le langage Python et XML et Java Android pour la version mobile et enfin les environnements de développement Eclipse et Android Studio. 3.1 Système d'exploitation Ubuntu : Ubuntu est un système d’exploitation libre commandité par la société Canonical et une marque déposée par cette même société. Fondé sur la distribution Linux Debian et utilisant le bureau Unity, Ubuntu se veut « convivial, intuitif et sûr ». Il est constitué de logiciels libres, est disponible gratuitement y compris pour les entreprises, et bénéficie d'une nouvelle version (appelée « mise à niveau ») tous les six mois. Avec une utilisation globale estimée à plus de 25 millions d'utilisateurs, il est principalement conçu pour une utilisation sur des ordinateurs personnels (portables et fixes), bien que d'autres versions consacrées aux netbooks et aux serveurs existent aussi. Depuis Ubuntu 11.04, la version Netbook a fusionné avec la version Desktop. Cette dernière étant passée à l'interface Unity, il n'y avait plus de raison de maintenir deux branches distinctes. 3.2 Environnements de développement Nous avons utilisé les environnements de développement suivants : Eclipse Eclipse est un projet de la Fondation Eclipse visant à développer un environnement de développement intégré libre, extensible, universel et polyvalent. Son objectif est de produire et fournir des outils pour la réalisation de logiciels, englobant les activités de programmation (notamment au moyen d’un environnement de développement intégré) mais aussi de modélisation, de conception, de test et de reporting. Son environnement de développement intégré vise à supporter tout langage de programmation. Dans notre projet l’utilité d’Eclipse Figure 11- Logo d'Ubuntu
  39. 39. Ecole Nationale des Sciences Appliquées de Tétouan 39 consiste à développer certaines tâches en utilisant le plugin python développement (pydev) et XML. Android Studio Android Studio est l'environnement de développement que Google propose à ses développeurs pour créer des applications Android. Android Studio permet principalement d'éditer les fichiers Java et les fichiers de configuration d'une application Android. Il propose entre autres des outils pour gérer le développement d'applications multilingues et permet de visualiser la mise en page des écrans sur des écrans de résolutions variées simultanément 3.3 Système de gestion de base de données PostgreSQL PostgreSQL est un système de gestion de base de données relationnelle et objet (SGBDRO). C'est un outil libre disponible selon les termes d'une licence de type BSD. Ce système est concurrent d'autres systèmes de gestion de base de données, qu'ils soient libres (comme MySQL et Firebird), ou propriétaires (comme Oracle, Sybase, DB2, Informix et Microsoft SQL Server). Comme les projets libres Apache et Linux, PostgreSQL n'est pas contrôlé par une seule entreprise, mais est fondé sur une communauté mondiale de développeurs et d'entreprises. PostgreSQL peut stocker plus de types de données que les types traditionnels entiers, caractères, etc. L'utilisateur peut créer des types, des fonctions, utiliser l'héritage de type etc. PostgreSQL est pratiquement conforme (de plus en plus conforme) aux normes ANSI SQL 89, SQL 92 (SQL 2), SQL 99 (SQL 3), SQL:2003 et SQL:2008. Il fonctionne sur diverses plates- formes matérielles et sous différents systèmes d'exploitation. PostgreSQL fonctionne sur Solaris, SunOS, Mac OS X, HP-UX, AIX, Linux, IRIX, Digital Unix, BSD, NetBSD, FreeBSD, OpenBSD, SCO unix, NeXTSTEP, UnixWare et toutes sortes d'Unix. Depuis la version 8.0, PostgreSQL fonctionne également nativement sur Windows. Avant la version 8, il fallait un émulateur de type cygwin pour faire fonctionner PostgreSQL sur ce système d'exploitation. PostgreSQL est largement reconnu pour son comportement stable, proche d’Oracle. Mais aussi pour ses possibilités de programmation étendues, directement dans le moteur de la base de données, via PL/SQL. Le traitement interne des données peut aussi être couplé à d'autres modules externes compilés dans d'autres langages. Figure 12- Logo de PostgreSQL
  40. 40. Ecole Nationale des Sciences Appliquées de Tétouan 40 3.4 Visual Paradigm Visual Paradigm pour UML (VP-UML) est un outil de support UML 2, SysML et Business Process Modeling Notation (BPMN) à partir de l'Object Management Group (OMG). En plus du support de la modélisation, il permet la génération de rapports et des capacités d'ingénierie de code, y compris la génération de code. Il peut inverser les schémas de code, et de fournir des générations de code pour différents langages de programmation. 3.5 Les langages de développement utilisés Pour ce qui est des langages, nous avons utilisé les langages suivants : Python Python est un langage de programmation multi-paradigme. Il favorise la programmation impérative structurée, et orientée objet. Il est doté d'un typage dynamique fort, d'une gestion automatique de la mémoire par ramasse-miettes et d'un système de gestion d'exceptions ; il est ainsi similaire à Perl, Ruby, Scheme, Smalltalk et Tcl. Le langage Python est placé sous une licence libre proche de la licence BSD et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix en passant par Linux et Mac OS, avec Java ou encore .NET. Il est conçu pour optimiser la productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Il est également apprécié par les pédagogues qui y trouvent un langage où la syntaxe, clairement séparée des mécanismes de bas niveau, permet une initiation plus aisée aux concepts de base de la programmation. Python est un langage conçu pour produire du code de qualité, portable et facile à intégrer : grâce à sa syntaxe claire, cohérente et concise, Python permet aux développeurs de produire du code de qualité, lisible et maintenable. Fourni dès le départ avec des modules de tests, Python est un langage agile. Le terme agile est originellement issu de la méthodologie de programmation agile, très proche de la programmation itérative. Cette méthodologie, qui réduit les risques liés à la conception de logiciels, introduit entre autres des principes de tests continus du code. · De haut niveau, orienté objet et totalement libre : même si elle n’est pas imposée, Python permet la programmation orientée objet. Tous les mécanismes objet essentiels sont implémentés et toutes les données manipulées sont des instances de classes, comme pour les langages SmallTalk ou Ruby. Python est également dynamique : dans la plupart des implémentations, le code source n’est pas compilé contrairement à des langages comme C ou Pascal, mais exécuté à la volée. On parle alors de langage interprété. Ce mode de fonctionnement rend la programmation beaucoup plus souple puisqu’il est possible de changer un programme en cours d’exécution. XML (eXtensibleMarkupLanguage) XML est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement d'un langage permettant de mettre en forme des documents grâce à des balises (markup). Contrairement à HTML, qui est considéré comme un langage défini et figé (avec un nombre de balises limité), XML peut être considéré comme un métalangage permettant de définir d'autres langages, c'est-à-dire définir de nouvelles balises permettant de
  41. 41. Ecole Nationale des Sciences Appliquées de Tétouan 41 décrire la présentation d'un texte. La force de XML réside dans sa capacité à pouvoir décrire n'importe quel domaine de données grâce à son extensibilité. Il va permettre de structurer, poser le vocabulaire et la syntaxe des données qu'il va contenir. En réalité les balises XML décrivent le contenu plutôt que la présentation (contrairement à HTML). Ainsi, XML permet de séparer le contenu de la présentation, ce qui permet par exemple d'afficher un même document sur des applications ou des périphériques différents sans pour autant nécessiter de créer autant de versions du document que l'on nécessite de représentations. XML a été mis au point par le XML Working Group sous l'égide du World Wide Web Consortium (W3C) dès 1996. Depuis le 10 février 1998, les spécifications XML 1.0 ont été reconnues comme recommandations par le W3C, ce qui en fait un langage reconnu. XML est un sous ensemble de SGML (Standard Generalized Markup Language), défini par le standard ISO8879 en 1986, utilisé dans le milieu de la Gestion Electronique Documentaire (GED). XML reprend la majeure partie des fonctionnalités de SGML, il s'agit donc d'une simplification de SGML afin de le rendre utilisable sur le web, XML fait partie du code des modules composants OpenERP, les vues par lesquelles sont représentés les différents objets sont écrites en XML, ainsi nous y trouvons la description détaillée de l’affichage des arbres, formulaires, menus et autres actions. Java Android Le langage Java est un langage de programmation informatique orienté objet, créé par James Gosling et Patrick Naughton. Le langage reprend en grande partie la syntaxe du langage C++, très utilisé par les informaticiens. Néanmoins, Java a été épurée des concepts les plus subtils du C++ et à la fois les plus déroutants, tels que l'héritage multiple remplacé par l'implémentation des interfaces. Les concepteurs ont privilégié l'approche orientée objet de sorte qu'en Java, tout est objet à l'exception des types primitifs (nombres entiers, nombres à virgule flottante, etc.). Conclusion Au cours de ce chapitre, nous avons pu nous familiariser d’un côté avec le système est ses paquets, mais également d’avoir plus d’informations sur les technologies utilisées (ici, Odoo et Android) en plus de l’ensemble des environnements de développement utilisés, et des langages à maîtriser.
  42. 42. Ecole Nationale des Sciences Appliquées de Tétouan 42 Chapitre 3 Conception détaillée du projet Dans ce chapitre, nous présenterons la conception détaillée du projet. Nous commencerons par spécifier les cas d’utilisation, ensuite les diagrammes d’activité et de séquence, et enfin, un diagramme de composants et un diagramme de déploiement.
  43. 43. Ecole Nationale des Sciences Appliquées de Tétouan 43 1- Conception détaillée du projet Nous procéderons maintenant à une conception détaillée du projet. 1.1 Cas d’utilisation Commençons par les cas d’utilisation. Nous allons d’abord identifier les acteurs, puis les cas d’utilisation pour finir avec des diagrammes. Identification des acteurs Un acteur représente une entité externe qui interagit avec le système (fournir, recevoir, échanger de l’information). En observant les utilisateurs directs du système ainsi que les autres systèmes qui interagissent avec le système que nous tentons de définir, nous trouvons ces acteurs qui opèrent avec le système : Employé, Manager, Administrateur. - Employé : Utilisateur aux rôles et permissions restreints, n’a pas beaucoup de privilèges au sein de l’application, - Manager : Utilisateur également, ayant plus de privilèges et une plus grande marge d’action, - Administrateur : Utilisateur ayant tous les privilèges, pouvant se charger du paramétrage et de l’ensemble de la gestion de l’application. Identification des cas d’utilisation Un cas d’utilisation définit une manière d’utiliser le système et permet d’en décrire les exigences fonctionnelles. Chaque cas d’utilisation contient un ou plusieurs scénarios qui définissent comment le système devrait interagir avec les utilisateurs (appelés acteurs) pour atteindre un but ou une fonction spécifique d’un travail. Un acteur d’un cas d’utilisation peut être un humain ou un autre système externe à celui que l’on tente de définir. Les cas d’utilisation tentent d’éviter tout jargon technique et essayent au contraire d’adopter le langage de l’utilisateur final ou de l’expert du domaine. Cas d’utilisation « Créer Timesheet » Acteurs Administrateur, Manager, Employé Pré-conditions L’utilisateur doit avoir accès au serveur, L’utilisateur doit s’authentifier. Scénarios Étapes Règles de Gestion 1. Choisir la date de début et la date de fin 1. La date de début et la date de fin de chaque timesheet reliée à un utilisateur ne doivent pas chevaucher celle d’une timesheet précédente.
  44. 44. Ecole Nationale des Sciences Appliquées de Tétouan 44 2. Choisir le/les projet(s) concernés 3. Choisir la date et le nombre d’heures passés sur le projet 4. Insérer la description du projet ainsi que l’activité concernée 5. Enregistrer la feuille de temps Post-conditions Une fois que l’utilisateur a ajouté sa feuille de temps, il peut y accéder à nouveau, la modifier ou la soumettre au manager pour la valider. Tableau 4- Description textuelle : Créer Timesheet Cas d’utilisation « Soumettre Timesheet » Acteurs Administrateur, Manager, Employé Pré-conditions L’utilisateur doit avoir accès au serveur, L’utilisateur doit s’authentifier, L’utilisateur doit avoir préalablement enregistré une timesheet sur le serveur. Scénarios Étapes Règles de Gestion 1. Effectuer des modifications si nécessaire 2. Soumettre la feuille de temps 1. Le nombre d’heures où l’employé a travaillé par jour doit être supérieur ou égal à 8, 2. La description du projet est nécessaire, 3. L’activité du projet doit être renseignée. Post-conditions Une fois que l’utilisateur a soumis sa feuille de temps, il peut la consulter sans la modifier. Tableau 5- Description textuelle : Soumettre Timesheet
  45. 45. Ecole Nationale des Sciences Appliquées de Tétouan 45 Cas d’utilisation « Approuver Timesheet » Acteurs Administrateur, Manager Pré-conditions L’utilisateur doit avoir accès au serveur, L’utilisateur doit s’authentifier, L’utilisateur doit consulter les timesheets à valider Scénarios Étapes Règles de Gestion 1. Vérifier les informations de la feuille de temps 2. Effectuer des modifications si nécessaire 3. Approuver la feuille de temps Post-conditions Une fois que l'utilisateur a approuvé la feuille de temps, il peut approuver d'autres feuilles de temps et l'employé concerné par la validation peut consulter sa feuille dans le menu des timesheets approuvées. Tableau 6- Description textuelle : Approuver Timesheet Cas d'utilisation « Rejeter Timesheet » Acteurs Administrateur, Manager Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit consulter les timesheets à valider Scénarios Étapes Règles de Gestion 1. Vérifier les informations de la feuille de temps 2. Rejeter Post-conditions Une fois que le manager a rejeté la feuille de temps, il peut approuver ou rejeter d'autres feuilles de temps Tableau 7- Description textuelle : Rejeter Timesheet
  46. 46. Ecole Nationale des Sciences Appliquées de Tétouan 46 Cas d'utilisation « Créer employé » Acteurs Administrateur, Manager Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit consulter la liste des employés Scénarios Étapes Règles de Gestion 1. Remplir les informations sur l'employé 1. L'utilisateur doit obligatoirement renseigner le nom de l'employé modifié 2. Valider les informations Post-conditions L'employé peut créer des feuilles de temps Tableau 8- Description textuelle : Créer employé Cas d'utilisation « Modifier les informations d'un employé » Acteurs Administrateur, Manager Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit consulter la liste des employés Scénarios Étapes Règles de Gestion 1. Choisir un employé parmi ceux de la liste 2. Effectuer les modifications sur les informations souhaitées 1. L'utilisateur doit obligatoirement renseigner le nom de l'employé modifié 3. Enregistrer les modifications Post-conditions Les nouveaux rôles sont appliqués à l'employé. Tableau 9- Description textuelle : Modifier les informations d'un employé
  47. 47. Ecole Nationale des Sciences Appliquées de Tétouan 47 Cas d'utilisation « Créer contrat » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des contrats Scénarios Étapes Règles de Gestion 1. Renseigner les informations nécessaires 1. L'utilisateur doit obligatoirement renseigner le nom du contrat 2. Ajouter les sous-contrats 2. L'utilisateur doit obligatoirement renseigner le nom du sous-contrat, 3. L'utilisateur doit obligatoirement renseigner le numéro du SO relatif à la facturation 3. Ajouter les activités du projet 4. Enregistrer le nouveau contrat Post-conditions Une fois que le contrat est créé, il est possible de commencer à créer des feuilles de temps relatives à celui-ci. Tableau 10- Description textuelle : Créer contrat Cas d'utilisation « Modifier contrat » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des contrats Scénarios Étapes Règles de Gestion 1. Consulter les contrats
  48. 48. Ecole Nationale des Sciences Appliquées de Tétouan 48 2. Effectuer les modifications nécessaires 1. L'utilisateur doit obligatoirement renseigner le nom du contrat 3. Valider les modifications Post-conditions Une fois que le contrat est modifié, les informations altérées impactant les feuilles de temps sont validées. Tableau 11- Description textuelle : Modifier contrat Cas d'utilisation « Créer sales order » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des SO Scénarios Étapes Règles de Gestion 1. Renseigner les informations nécessaires 1. L'utilisateur doit obligatoirement spécifier le client, 2. L'utilisateur doit obligatoirement renseigner la date 3. L'utilisateur doit obligatoirement renseigner les lignes du SO 2. Enregistrer le sale order Post-conditions Une fois que le sale order est créé, il est possible de le relier à un sous-contrat. Tableau 12- Description textuelle : Créer Sales Order Cas d'utilisation « Modifier sales order » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des SO
  49. 49. Ecole Nationale des Sciences Appliquées de Tétouan 49 Scénarios Étapes Règles de Gestion 1. Choisir un SO parmi les SO disponibles 1. Le SO ne doit pas être relié à un sous-contrat. 2. Effectuer les modifications nécessaires 2. L'utilisateur doit obligatoirement spécifier le client, 3. L'utilisateur doit obligatoirement renseigner la date 4. L'utilisateur doit obligatoirement renseigner les lignes du SO 3. Enregistrer les modifications Post-conditions Une fois que le sale order est modifié, il reste possible de le relier au sous-contrat Tableau 13- Description textuelle : Modifier Sales Order Cas d'utilisation « Générer rapports » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des SO Scénarios Étapes Règles de Gestion 1. Consulter le menu timesheets approuvées 2. Choisir la/les feuille(s) de temps souhaitée 3. Générer le rapport Post-conditions Une fois que le rapport est généré, il est possible d'imprimer ce dernier. Tableau 14- Description textuelle : Générer rapports
  50. 50. Ecole Nationale des Sciences Appliquées de Tétouan 50 Cas d'utilisation «Diviser (split) les contrats » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des contrats Scénarios Étapes Règles de Gestion 1. Consulter les contrats 2. Choisir le contrat à diviser 1. Le contrat doit obligatoirement avoir un/des sous-contrat(s) 2. Le contrat doit être relié à au moins une feuille de temps validée, 3. Choisir le sous-contrat 3. La valeur du champ 'Expected' doit être supérieure à la valeur du champ 'To Invoice' 4. Diviser le contrat 4. La division se fait de la date la plus ancienne à la plus récente. Post-conditions Une fois que le contrat est divisé, la valeur du projet des feuilles de temps concernées par le split prennent le nom du sous-contrat choisi. Tableau 15- Description textuelle : Split les contrats Cas d'utilisation « Créer Facture » Acteurs Administrateur Pré-conditions L'utilisateur doit avoir accès au serveur, L'utilisateur doit s'authentifier, L'utilisateur doit avoir les privilèges nécessaires pour la gestion des contrats Scénarios Étapes Règles de Gestion 1. Consulter les contrats
  51. 51. Ecole Nationale des Sciences Appliquées de Tétouan 51 2. Choisir le contrat à facturer 1. Le contrat doit obligatoirement avoir un/des sous-contrat(s) 2. Le contrat doit être relié à au moins une feuille de temps validée, 3. Le contrat doit être relié à un SO 3. Choisir 'Invoice' 4. Choisir les feuilles de temps à facturer 4. Il faut choisir au moins une feuille de temps 5. Renseigner les informations de la facture 5. Il faut absolument renseigner la description, 6. Il faut absolument renseigner le contrat concerné, 7. Il faut absolument renseigner la date. Post-conditions Une fois que la facture est créée, il est possible de l'imprimer. Tableau 16- Description textuelle : Créer facture Diagramme de cas d’utilisation : Ressources Humaines Pour ce qui est du diagramme suivant : il présente les cas d’utilisation du module ressources humaines, les deux acteurs principaux sont l’employé et le manager. Un employé peut consulter les employés, créer une feuille de temps, la soumettre, et consulter celles déjà enregistrées. Pour un manager, celui-ci consulte les timesheets à valider, les approuve ou les rejette, et il peut également modifier les informations des employés. Toutes ces activités nécessitent l’authentification de l’utilisateur.
  52. 52. Ecole Nationale des Sciences Appliquées de Tétouan 52 Figure 13- Diagramme de cas d'utilisation : Ressources Humaines Diagramme de cas d’utilisation : Ventes Pour ce qui est du module de ventes, l’administrateur est l’acteur principal. Il peut créer un contrat, avec ses sous-contrats, ses activités etc. Il peut également modifier ceux-ci, les consulter, et les splitter. Il peut également créer des factures, consulter les bons de commande, les créer et les modifier. Enfin, il peut consulter les rapports (Approved Timesheets). Toutes les activités citées nécessitent l’authentification de l’administrateur. Figure 14- Diagramme de cas d'utilisation : Ventes
  53. 53. Ecole Nationale des Sciences Appliquées de Tétouan 53 1.2 Diagrammes d'activité Le diagramme d’activité est un moyen graphique pour donner cette vision d’ensemble des cas d’utilisation de l’application, voici deux diagrammes d’activité du déroulement des différentes utilisations de l’application, le premier dans le module timesheets, le second dans le module ventes. Diagramme d'activité du module des Timesheets Le diagramme suivant est représentatif de ce qui se passe au sein du module des timesheets : L'employé remplit un timesheet avec les informations qui lui paraissent pertinentes. Ensuite, si les informations sont correctes (c'est-à-dire qu'elles ne se heurtent à aucune des contraintes mentionnées précédemment), il peut par la suite modifier le brouillon obtenu ou le soumettre au responsable. Une fois que le responsable consulte la feuille de temps, il se trouve face à deux possibilités : les informations insérées sont correctes, il peut donc valider la feuille de temps. Si elles sont incorrectes, le responsable peut rejeter ou modifier et ensuite valider la timesheet. Si la timesheet est rejetée, elle est renvoyée à l'employé qui doit effectuer les modifications nécessaires, et la soumettre à nouveau. Figure 15- Diagramme d'activité : Timesheets Diagramme d'activité du module des ventes Le diagramme suivant est représentatif d'un scénario lambda au sein du module des ventes : On commence par la création d'un contrat. Par la suite, il faut non seulement créer un ou plusieurs sous contrats, mais également approuver les feuilles de temps relatives à celui-ci afin de pouvoir accéder à la fonctionnalité split.
  54. 54. Ecole Nationale des Sciences Appliquées de Tétouan 54 Si les deux conditions sont avérées, la fonction split confie au système la mission de vérifier le montant attendu des sous-contrats, spécifié lors de la création de ceux-ci, il affiche ensuite les sous-contrats dont le montant attendu est supérieur à zéro. Le manager choisit ensuite un contrat parmi ceux que le système retourne. Ce dernier compare la date des timesheets avec celles les lignes spécifiant le prix d'achat et de vente des services (également insérés lors de la création des sous-contrats.), le système calcule ensuite le prix d'achat et de vente des heures insérées dans les feuilles de temps et calcule le montant attendu dans le sous-contrat à celui à facturer depuis la feuille de temps. Si la soustraction de ceux-ci est nulle, l'on procède directement à la modification des feuilles de temps concernant le contrat à splitter, en replaçant le contrat en cours au sous-contrat sélectionné, ainsi qu'en remplaçant les valeurs de prix d'achat et de vente par celles calculées. Si elle est, par contre, supérieur à 0, la boucle recommence et effectue les calculs pour la ligne de la timesheet suivante. Enfin, si elle est inférieure à zéro, le système calcule le reste obtenu ainsi que le prix d'achat et de vente. Il modifie ensuite la timesheet, en remplaçant la ligne concernée par deux lignes, l'une contenant l'activité reliée au contrat courant, l'autre reliée au sous-contrat choisi, le nombre d'heures travaillées coïncidant avec le montant nécessaire pour faire coïncider le montant attendu et facturé. Après modification des timesheets, le bon de commande concerné par le sous-contrat choisi passe de l'état brouillon à l'état « Sales Order » Pour finir, l'on procède à la création de la facture, si le montant est le même que le sale order relié au sous contrat, ce dernier passe à l'état « done ».
  55. 55. Ecole Nationale des Sciences Appliquées de Tétouan 55 1.2 Diagrammes de séquence Les diagrammes de séquence suivant détailleront quatre scénarios principaux : L’authentification, la création d’une feuille de temps, la modification et/ou l’approbation d’une feuille de temps, et le split d’un contrat. Figure 16- Diagramme d'activité : Ventes
  56. 56. Ecole Nationale des Sciences Appliquées de Tétouan 56 Diagramme de séquence du scénario « Authentification » Le diagramme qui suit présente le scénario d'authentification de l'utilisateur à l'application. Figure 17- Diagramme de séquence : Authentification Détails du scénario : 1- L'utilisateur insère son login ainsi que son mot de passe, 1.1- Le système procède à la comparaison des identifiant et mot de passe soumis à ceux stockés dans la base de données. 1.1.1, 1.1.1.1- Si les identifiants sont équivalents à ceux présents dans la base de données, l'utilisateur accède à la page d'accueil. 1.1.2, 2- Sinon, l'utilisateur reçoit un message d'erreur.
  57. 57. Ecole Nationale des Sciences Appliquées de Tétouan 57 Diagramme de séquence du scénario « Création d'une feuille de temps » Le diagramme qui suit présente le scénario de création d'une feuille de temps (ou timesheet.) Figure 18- Diagramme de séquence : Création d'une timesheet Détails du scénario : 1- L'utilisateur insère les données dans la feuille de temps, 1.1- Le système procède à la vérification de l'existence de chevauchement de la date de début et de la date de fin, 1.1.1- Si les dates ne se chevauchent pas, les données sont enregistrées dans la base de données, 2- L'utilisateur soumet les données pour leur vérification et leur validation par le supérieur hiérarchique, 2.1, 2.2, 2.3- Le système vérifie que les descriptions du projet sont bien présentes, que l'employé travaille au moins huit heures par jour (sauf samedi et dimanche) et que les activités du projet sont renseignées, 2.3.1- Si toutes les conditions sont vérifiées, la modification se fait dans la base de données, et la feuille de temps passe de l'état de brouillon à l'état de soumis. 2.3.2- Si au moins une des conditions n'est pas vérifiée, l'utilisateur reçoit un message d'erreur et es invité à rectifier ses données. 2.3.3- Si les date de début et date de fin se chevauchent, l'utilisateur reçoit un message d'erreur et est invité à les modifier.

×