Successfully reported this slideshow.

Entrepôt'Lytech JM2L

678 views

Published on

  • Be the first to comment

  • Be the first to like this

Entrepôt'Lytech JM2L

  1. 1. DÉVELOPPEMENT WEB EN ENVIRONNEMENT HOSTILE RETOUR D'EXPÉRIENCES SUR UNE ÉTUDE DE CAS Sébastien Mosser* & Karim Matrah** Université de Nice - Sophia Antipolis, CNRS, I3S, Equipe Modalis (*) Polytech’Nice-Sophia (**) JM2L, 28 Novembre 2009
  2. 2. PROBLÉMATIQUE : RENDU DE «DEVOIR»
  3. 3. PROBLÈME : ENVIRONNEMENT HOSTILE
  4. 4. AGENDA • Vers un entrepôt ... • Choix (technos & méthodo) • Mise en oeuvre • Démonstration • Conclusions
  5. 5. VERS UN ENTREPÔT DES PROJETS 5
  6. 6. RENDRE UN PROJET : OUI, MAIS ... • Comment ? • Réseau, mail, papier, ... • Quand ? • Deadline, changement, ... •A qui ? • Intervenants extérieurs, ... 6
  7. 7. EXEMPLE D’UTILISATION : ENSEIGNANT • Déclarer un travail • Quoi ? Quand ? • Suivre son évolution • Qui ? Quand ? • Récupérer les livraisons • Comment ? 7
  8. 8. EXEMPLE D’UTILISATION : ÉTUDIANT • Savoir • Quoi faire ? Pour Quand ? • Être informé • Changements, nouvelles infos, ... • Rendre un travail • Cohérence, validation, automatisation, ... 8
  9. 9. HOSTILITÉ DE L'ENVIRONNEMENT • Peu de moyens • Stage, projets, ... • Peu de ressources • Encadrement «bénévole» • Peu de temps • Durée allouée très limitée 9
  10. 10. UTILISATEURS FINAUX INFORMATICIENS • Je sais faire • Pas besoin de lire la doc • Je devine comment faire • Toujours sans lire la doc • Je n’ai pas réussi à faire • Il est vraiment trop nul cet outil 10
  11. 11. UTILISATEURS FINAUX NON SPÉCIALISTES • Je ne sais pas faire • Lisons la documentation • Je ne devine rien • Et fait uniquement ce qu’on m’a dit • Je n’ai pas réussi à faire • Il est vraiment trop nul cet outil 11
  12. 12. CHOIX EFFECTUÉS
  13. 13. UNE APPLICATION WEB ? • Facilité de développement • Tout le monde «fait» du Web • Outillage existant • Normal, tout le monde en fait • Documentation «fournie» • Même si très aléatoire selon les projets 13
  14. 14. CHOISIR UN FRAMEWORK ?
  15. 15. « AS SIMPLE AS GOOGLE ... » • Google «Web Framework» : 38 600 000 résultats hier • ok, super ... • Comparateur de Framework ? • 1101 framework référencés ... «what else ?» • Prendre un produit a la mode ? • Ok. Et je fais quoi quand c’est plus la mode ? 15
  16. 16. ET MÊME QUAND ON EN CHOISIT UN ... • «Joomla documentation» : 17 000 000 résultats • N’oublions pas ... «what else» ... • «Drupal documentation» : 2 770 000 résultats • «Bon, ben c’est déjà mieux ...» • Le framework ultime n’existe pas • «Ouais, mais souvent, c’est libre, adapte, vas y ...» 16
  17. 17. COÛT DE L’ADAPTATION ? • Cas concret : «Un enseignant déclare ses travaux» • => L’utilisateur final va créer ses propres «types» • Problème associé: «Métaprogrammation» • Manipulation des entités via des métaclasses • Support dans le framework : •« to the best of the authors knowledge ... » • «Ouais, mais souvent, c’est libre, adapte, vas y ...» 17
  18. 18. COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème 18 Temps
  19. 19. COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème 18 Temps
  20. 20. COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème 18 Temps
  21. 21. COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème 18 Temps
  22. 22. UNE ROUE CARRÉE ?
  23. 23. PAS FRANCHEMENT CARRÉE ... DISONS, OVALE ... • Garder les concepts • MVC, DAL, CRUD, ... • Mettre en oeuvre ce dont on à besoin • e.g., un MVC avec plus de C que de V, une CRUD dédiée, ... • Et surtout, le faire intelligemment • Rigueur dans le développement 20
  24. 24. AGILITÉ (SPIRALE) 21
  25. 25. KISS : KEEP IT STUPIDLY SIMPLE ... • Un outil simple • Quand c’est compliqué, c’est mort d’avance ... • Ne faisant qu’une seule chose • En l'occurrence, rendre des projets • Et très rapidement utilisable • Pour pouvoir tester l’application «as soon as possible» 22
  26. 26. N’OUBLIONS PAS: STUPIDEMENT SIMPLE ... 23
  27. 27. MISE EN OEUVRE
  28. 28. MODÈLE DE SCRIPTS Script 25
  29. 29. MODÈLE DE SCRIPTS Couche Effectue les Processus traitements applicatifs Script 25
  30. 30. MODÈLE DE SCRIPTS Couche Effectue les Processus traitements applicatifs Génère les Couche interfaces utilisateur Vue Script 25
  31. 31. MODÈLE DE SCRIPTS Couche Effectue les Processus traitements applicatifs Données Zone « tampon » Génère les ! VC Couche interfaces utilisateur du M Vue qu e» pres « ’e st Script C 25
  32. 32. COUCHE PROCESSUS par un événement • Déclenché utilisateur • Exécute les traitements applicatifs • Manipule les objets métiers les données à la • Fournit couche VUE => Spécialisation du «C» de MVC 26
  33. 33. LES OBJETS MÉTIERS les entités • Représente du domaine (e.g., scolaire) • Matières, Travaux, Groupes, Rendus, ... • Misen oeuvre via des classes PHP 27
  34. 34. PERSISTANCE DES OBJETS MÉTIERS <<OM>> Travail <<OM>> Matière 28
  35. 35. PERSISTANCE DES OBJETS MÉTIERS <<Table>> <<OM>> Travaux Travail <<OM>> SqLite <<Table>> Matière Matières 28
  36. 36. PERSISTANCE DES OBJETS MÉTIERS C <<Table>> <<OM>> R Travaux Travail U D C <<OM>> R SqLite <<Table>> Matière Matières U D 28
  37. 37. PERSISTANCE DES OBJETS MÉTIERS Métaclasse C <<Table>> <<OM>> R Travaux Travail U D C <<OM>> R SqLite <<Table>> Matière Matières U D 28
  38. 38. PERSISTANCE DES OBJETS MÉTIERS (IRL) 29
  39. 39. COUCHE PROCESSUS : «LE RETOUR» <<Table>> Travail Travaux Script (process) Matière <<Table>> Matières • Orchestre la lecture, l’écriture, la MAJ et les suppression des données dans l’application 30
  40. 40. COUCHE PROCESSUS : «LE RETOUR» C <<Table>> Travail R Travaux U D Script (process) C R Matière U <<Table>> D Matières • Orchestre la lecture, l’écriture, la MAJ et les suppression des données dans l’application 30
  41. 41. COUCHE VUE • Accès aux données fournie par les processus • Génère l’interface utilisateur • HTML & Javascript => Spécialisation du «V» de MVC 31
  42. 42. REPRÉSENTATION DES DONNÉES DANS LES VUES Couche Vue 32
  43. 43. ARCHITECTURE DU SITE 33
  44. 44. ARCHITECTURE DU SITE 33
  45. 45. ARCHITECTURE DU SITE Header Menu Footer index.php?page=MesTravaux 33
  46. 46. ARCHITECTURE DU SITE Table de Header correspondances Menu Footer index.php?page=MesTravaux 33
  47. 47. ARCHITECTURE DU SITE Table de Header correspondances Menu Footer index.php?page=MesTravaux 33
  48. 48. ARCHITECTURE DU SITE Table de Header correspondances Menu Footer index.php?page=MesTravaux 33
  49. 49. LE SITE WEB • Site (stupidement) simple •1 page par fonctionnalité • Code couleur clair et uniforme •2 espaces : étudiants & enseignants • Avec notification & journalisation des événements 34
  50. 50. DU COTÉ DES ÉTUDIANTS • Consultation des travaux • Gestion des groupes de rendus (n-ômes) • Livraison des travaux • Agenda iCal des deadlines Avantage : Centralisation de l’information !!!! 35
  51. 51. DU COTÉ DES ENSEIGNANTS • Gestion des promotion et des groupes • Gestion des matières et des travaux • Téléchargement «one-click» des rendus • Tableau de bord de suivi des étudiants Avantage : Centralisation de l’information !!!! 36
  52. 52. DÉMO
  53. 53. CONCLUSIONS
  54. 54. RÉSULTATS OBTENUS • Une application web opérationnelle • Utilisé @Polytech’Nice Sophia Antipolis • Code disponible sur GoogleCode • Publié sous licence LGPL 39
  55. 55. PERSPECTIVES • Amélioration de l’outil existant • Mise en oeuvre de «plug-ins» (triche, impression, ...) • Mais toujours en environnement hostile • Sujets de projets, de stage, ... 40
  56. 56. «A VOULOIR TROP EN FAIRE ...» 41
  57. 57. RÉFÉRENCES (WEB) • PHP : • http://www.php.net • SQLite : • http://www.sqlite.org • Images : (banque d’image -- presque -- libre) • http://www.sxc.hu 42

×