L'application de synthèse a pour but de mettre en application les connaissances acquises dans l'UE4, mais aussi de mettre en œuvre les bonnes pratiques de projet de programmation vues en UE1.

Public :

  • Licence professionnelle Système d'Information - Intégration et Maintenance
  • Licence professionnelle Système d'Information - Intégration et Maintenance - Alternants

Pré-requis :

  • Cours de programmation Java
  • Cours de programmation Mobile (Android)
  • Cours de programmation Web (PHP)

Résultats attendus :

Découverte de l'application existante DARTIES1-2015

Un rapport de compréhension est rédigé par chaque groupe. Le plan de ce document est défini avec le client.

Le projet Darties-20151 Oracle 12c, portail Apache/PHP 5.3.3 hébergé sur le serveur chelidae connecté via PDO/OCI Oracle pour générer en PHP les filtres basés sur les données relationnelles avec du code javascript pour la gestion des dépendances entre filtres. Le site PHP est basé sur une architecture MVC utilisant un modèle PARIS, l'active record au dessus de l'ORM IDIORM étendu pour supporter Oracle via PDO et le moteur de templates TWIG. L'extension cURL de PHP invoque via le web scrapper goutte les processus stockés SAS via la SAS Stored Processes Web Application et qui modifie les tableaux produits par SAS à la volée. Les Jobs Talend pour alimenter la base Oracle sont exportés en tant que web services dans une application war dérivée du moteur SOAP Apache Axis1 déployée sur un serveur d'application web tomcat hébergé sur le serveur chelidae. Les web services Talend sont invoqués via un formulaire html et ouvre une fenêtre pour afficher le résultat. La carte des régions commerciales est colorée par la proc GMAP de SAS à partir des contours des départements fournis par l'application gratuite IGN GEOFLA Départements simplifiés via les fonctions topologiques introduites dans la version 2.0 de la surcouche PostGIS du serveur PostgreSQL. La carte a été ensuite exportée en shapefile en vue de son importation sous SAS. La carte est rendue via la proc GMAP de SAS. Le placement des magasins se base sur le Répertoire Géographique des Communes édition 2015 fournis par l'IGN, aussi un fichier gratuit. Les tables avec attributs géographiques departements et rgc_2015 partagent sous PostGIS/PostgreSQL le même système de référence. Les logos des enseignes sont placés sur la carte via un dataset annotate.

Concernant la qualité du code PHP, outre les approches SonarQube/Jenkins, l’auteur de l’application web signale le PHP-FIG (PHP Framework Interoperability Groupement) qui édite les PSR (PHP Standard Recommendation). PSR, pour PHP Standard Recommendation, est un ensemble de normes pour PHP qui permet de faciliter l’interopérabilité des composants entre eux. Elles sont éditées par le php-fig : PHP Framework Interoperability Groupement. C’est un groupement de personnes qui travaillent autour de ces recommandations. Tout le monde peut faire partie de ce groupement. Mais seuls certains membres avec le droit de vote peuvent voter sur les nouvelles recommandations. Les membres votants sont généralement des représentants de projets tels que Doctrine, Composer ou Symfony. Il y a actuellement 7 normes validées qui sont prises en compte par les développeurs PHP :

  • PSR-4 est la norme pour l’auto chargement des classes. PSR-1 étant déprécié.
  • PSR-1 et PSR-2 vont se concentrer sur la forme du code
  • PSR-3 est pour la mise en forme de log.
  • PSR-6 pour la mise en cache d’objets (Redis, memcached)
  • PSR-7 pour les requêtes/réponses HTTP

Toutes ces normes vont permettre de bien structurer le code, d’avoir les mêmes interfaces, et de permettre aux autres développeurs de contribuer plus facilement.

Contrainte globale sur tout le projet : Respect du Top 10 OWASP.

Sprint 0

On récupère le code depuis un dépot Git, on reconstruit dans un eclipse avec maven l'application existante. On étudie les classes annotée JPA 2.0 utilisées par le framework de persistance EclipseLink. On enrichit le jeu de données. On construit le product backlog.

Sprint 1

Les étudiants en formation initiale de la LP S2IMa sont durant 4 semaines en projet à plein temps à l'IUT en salle B304. Ils termineront le 11 février 2015 avec la recette finale. Une soutenance finale a lieu le lendemain.

Sprint 1

On va adjoindre aux classes annotées des tests avec jUnit. De plus, on va mettre en place une interface à base de web services avec le framework Apache Axis2 pour publier les données nécessaires à une future application Android.

Sprint 2 Responsive Design ou Android

Sprint 3 Nouvelles fonctionnalités

Sprint 4 Nouvelles fonctionnalités, NoSQL et BI

Ce projet écrit en PHP puis en langage java et utilise une chaine d'intégration continue avec Jenkins éventuellement doté de ses plugins relatifs à la qualimétrie PHP (Phing, PHP Depend, PHP Mess Detector, phpcpd, phploc, PHP_CodeSniffer, phpDocumentor, PHP_CodeBrowser / Ant, Template for Jenkins Jobs for PHP Projects) et Maven (Android & Java Web) et utilise SonarQube muni des modules pour les langages Web/JavaScript/PHP pour la qualimétrie.

Ils développent sous Eclipse via le Git.

Le projet est géré entièrement en mode agile avec SCRUM et XP

Ce cours a été mis en ligne en 2016-2017.

Accéder au cours en ligne : NetUBS

Se connecter "en tant qu'invité" : Aide à la connexion