Entrepôt'Lytech JM2L

605 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
605
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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

    ×