Retour d’expériences : Qualité et co-développement au consortium ESUP

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Vers une généralisation du projet et évolution des fonctionnalités
des Structures de Santé
Point sur le CMS Web InfoGlue et nouveau canal « lecture des annonces » ESUP-days Journées du 22 et 23 juin à Paris.
Plan Portlets La norme JSR-168 Qu'est-ce qu'une Portlet ?
13/04/05 - RB1 Montpellier 24/03/2005 Les interactions entre le SSO ESUP et le mécanisme de propagation d'identité
Département Édition - Intégration SEMINAIRE SOA Migration du canal Esup MonDossierWeb Olivier Ziller / Charlie Dubois Université Nancy 2 16 octobre 2007.
Tomcat et son fonctionnement XML
ESUP-Days 4 5 Juillet 2007 Université de Paris 5.
Journée d’échange du 17 Novembre
Copyright 2008 © Consortium ESUP-Portail EsupDay /02/2009 Atelier stockage Raymond Bourges, Université de Rennes 1.
Copyright 2008 © Consortium ESUP-Portail ESUP-Days 7, Paris, 3 février 2009 La démarche projet Pascal Aubry.
Outils de communication. 17/11/2005Raymond Bourges2 Outils de communication Site Web Documentation (Bientôt gérée avec inJAC) Espace de téléchargement.
Présentation du portlet lecture ESUP-DAY du 05/07/2007 Raymond Bourges.
T. Bellembois - R. Bourges - Y. Colmant 1 Licence Vous êtes libres De reproduire, distribuer et communiquer cette création au public De modifier cette.
Copyright 2008 © Consortium ESUP-Portail EsupDay /02/2009 Points généraux.
Nouvelle version du canal Esup MonDossierWeb
Projet ORI-OAI Outil de Référencement et dIndexation Réseau de portails OAI ESUP-Day Paris, 5 juillet 2007.
Le consortium et la mutualisation entre les universités
Copyright 2012 © Consortium ESUP-Portail ESUP days, Paris, 8 février 2012 Portail ESUP Version 4 En avant Julien Marchal.
Projet ORI-OAI Outil de Référencement et dIndexation Réseau de portails OAI ORI-OAI pour le référencement des publications scientifiques CIUEN Bordeaux,
Etat d'avancement ORI-OAI Interaction avec les ENT.
Projet ORI-OAI Outil de Référencement et dIndexation Réseau de portails OAI ESUP-Day Paris, 26 janvier 2007.
Projet ORI-OAI Outil de Référencement et dIndexation Réseau de portails OAI Les formations ORI-OAI Jacques Brassart ORI-OAI Day 2 - Paris - 20 octobre.
Projet LAGAN Développement d’un programme de gestion d’ascenseurs
JXDVDTEK – Une DVDthèque en Java et XML
TER Gestionnaires de contenu en ligne
Guillaume KRUMULA présente Exposés Système et Réseaux IR3 Mardi 5 Février 2008.
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Projet Webase. I. La définition du projet 1. Lexistant : Webase 4 2. Cahier des charges 3. La répartition des données 4. Le modèle de données 5. Le choix.
Copyright 2008 © Consortium ESUP-Portail ESUP-Days 7, Paris, 3 février 2009 Evolutions de esup-helpdesk v3 Pascal Aubry.
ESUP-Portail Helpdesk : évolutions de la version 3
Copyright © – ESUP-Portail esup-commons : un framework de développement pour le projet ESUP-Portail Pascal Aubry sur-connaissant IFSIC / Université
Copyright © – ESUP-Portail esup-commons : un framework de développement pour le projet ESUP-Portail Pascal Aubry IFSIC / Université de Rennes.
Copyright © – ESUP-Portail esup-commons : où en est-on ? Pascal Aubry IFSIC / Université de Rennes 1
Atelier Portail SAP Durée : 2h.
Maîtrise des données et des métadonnées de l’ODS
Numérique à l’école Quelle place pour les ressources éditoriales ?
Interface Homme Machine IHM Pro
XML-Family Web Services Description Language W.S.D.L.
Collecte de données en ligne
Plugin B pour JEdit Matthias Meusburger Antoine Acquaviva
Sommaire Objectif de Peakup Principes de fonctionnement
Applications Chapitre B17 et C18
Principes de persistance dans les applications orienté objet
Solution e-Media Présentation Générale Direction du Système d’Information Opérateur Informatique ERDF Mars 2012.
IUT2 de Grenoble Université Pierre Mendès France
Mutualisation des plates-formes à travers le portail des IUFM Perspectives & Modalités EL BOUSSARGHINI Rachid Nantes,
Les plates-formes intégrées de gestion de développement, lexemple de GForge Florent Guilleux, Comité Réseau des Universités TutoJRES 01, Juin 2006.
Projet JAVA EE Approfondi
Configuration de Windows Server 2008 Active Directory
Saisie de l’Offre de Formation (SOF)
* Cete Nord Picardie, 9 septembre 2002
Rachid El Boussarghini
@SSR – Installation des applications eduscol.education.fr/securite - février 2007 © Ministère de l'Éducation nationale, de l'Enseignement supérieur et.
Projet de Master première année 2007 / 2008
Adaptée du cours de Richard Grin
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
Points généraux sur ESUP-Portail ESUP-DAY du 05/07/2007 Raymond Bourges.
Application de gestion de candidatures
Huseyin OZENICI Soutenu le 11 Septembre 2009 Soutenance des mémoires Apprentissage / Projet
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Supports de formation au SQ Unifié
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Le web service
Struts.
Chantier Factory Prototype Bankonet Cellule Architecture – Zoom Chantier Le pictogramme permet de rappeler rapidement la technologie concernée par le Zoom.
L’enseignement de spécialité SLAM
Esup Days – PStage - Apogée. Esup Days 2009 – 03 juillet Plan  Rappel du contexte  La collaboration et le partenariat ESUP/AMUE  Les engagements.
Transcription de la présentation:

Retour d’expériences : Qualité et co-développement au consortium ESUP Séminaire AMUE "Qualité logicielle et co-développements"   du 30/01/2008 Raymond Bourges

Licence Remarque : Vous êtes libres Ce travail est mis à disposition sous une licence Creative Commons Vous êtes libres De reproduire, distribuer et communiquer cette création au public De modifier cette création Cette création est mise à disposition selon le Contrat Paternité- NonCommercial-ShareAlike 2.5 disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.5/ Remarque : Les transparents présentés ici ont été réalisés par : Raymond Bourges (Université de Rennes 1) Certains contenus proviennent des présentations de : Pascal Aubry (Université de Rennes 1) 2

Plan Contexte La révélation Spring ESUP-Commons Bilan Avenir Historique ESUP-Portail Technique Réflexion sur les métiers La révélation Spring ESUP-Commons Bilan Avenir

Contexte historique Fin 2002 : Début du projet ESUP-Portail Début 2003 : Premiers chantiers Choix technologiques importants uPortal CAS Etc. Constitution de groupes de travail Dont un « outils, méthodologie et normes » 2005, 2006 : Le besoin de maintenir les développements ET le départ des contractuels ! Vers des postes de la fonction publique Vers des SSII

Contexte historique - Packaging Packaging (un des raisons du succès d’ESUP-Portail je crois) Oblige à formaliser La documentation Les sources Les fichiers de configuration Les procédures d’installation C’est un énorme travail mais se mettre dans cette logique est profitable à terme Maintenabilité Adaptabilité Acceptation Quelles formes de package Programme java existants (uPortal, CAS) Programme non java (Horde) Des développements propres (Dossier étudiant, Stockage, etc.)

Contexte historique - Normes Les premières documentations de principe : Conventions de codage Règles de nommage des packages Règles de nommage des fichiers de configuration Règles de nommage des livrables ESUP Règles concernant les caractères accentués Fichier de licence ESUP Portail Plus tard, les documents sur les outils : Normalisation des build.xml et build.properties de ant Framework MAG Utilisation de subversion Utilisation de sourcesup

Contexte historique – Premier bilan Des choses bien  La « chance » d’être obligés de travailler à distance avec des existants différents ! Oblige à communiquer Oblige à paramétrer Mais prend aussi beaucoup de temps… Synergie autour d’un langage commun (java) et d’outils communs (eclipse, ant, svn, sourcesup.cru.fr) Des choses moins bien  Chaque développement est fait par une personne qui a SA propre façon de faire Difficultés à maintenir et à faire évoluer Peu de mutualisation car peu de contribution

Contexte technique Langage Java Structurant L’expérience acquise est importante Mais tentaculaire Parfois difficile de savoir par où commencer Qu’est-ce qui est important ou pas ? SOA, Web Service, Développement en couches OK mais comment fait-on concrètement ? Le reste Internationalisation, accessibilité, etc. Beaucoup de questions…

Réflexions sur les métiers et le libre Un métier ou des métiers ? Développeur Interface, métier, base de données, … Exploitant Configuration, déploiement, optimisation Graphiste, ergonome, etc. Beaucoup de compétences, de transversalité Le libre dans le Sup. Beaucoup de consommateurs mais peu de producteurs Beaucoup d’actions de recensement mais peu d’incitations au développement Beaucoup de développements libres mais peu de diffusion

La révélation Spring Historique Les principes Premiers travaux ESUP fin 2005 Formation interne ESUP début 2006 Formations à la communauté avec l’aide de l’AMUE fin 2006 Les principes Simplifie la vie du développeur en gérant le cycle de vie des objets (moins de lignes de code = moins de bugs) Conteneur léger (tourne dans un simple Tomcat) Systématise l’utilisation d’interface (introduction par la pratique de la notion de développement en couches) Servira de base à ESUP-Commons

Esup-commons Un « environnement » pensé par des développeurs Pour eux-mêmes Pour les collègues développeurs Pour les exploitants C’est aussi une méthodologie Environnement de développement avec une suite d’outils de production Chaque élément à sa place (code métier, IHM, fichier de configuration) Prévoit la génération automatique des packages, de la documentation, l’utilisation d’un gestionnaire de version (sourcesup)

Les objectifs de esup-commons Simplifier la maintenance Faciliter l’adaptation aux configurations locales Permettre l’évolution des fonctionnalités Augmenter la productivité Faciliter la mobilité des développeurs Uniformiser les installations d’applications Faciliter les contributions Fiabiliser les applications Améliorer l’accessibilité

Les grands principes Utilise dès que possible des outils de haut niveau ! Sépare bien tes couches ! Abstrait tes objets ! Relis ton code deux semaines après !

L’idéal standard Présentation Logique applicative Logique métier Accès aux données Accès aux services Bases de données Autres sources

Dans la pratique ;-) Application Bases de données Autres sources

L’architecture de esup-commons Requêtes web Présentation Logique applicative ? Logique métier Données LDAP portail URLs I18n Cache Authentification domain beans Accès Persistance base

Portlet/servlet : même combat Nous ne développons pas des portlets ou des servlets, nous développons des applications Il est très intéressant de pouvoir faire tourner une application tantôt en servlet, tantôt en portlet Environnement de Développement plus simple en servlet NB : On est encore ici dans une logique de donner du confort au développeur Permet de séparer les problèmes inhérents aux portlets Publication, déploiement, interaction avec le portail Diffusion en quick-start

L’architecture de esup-commons Requêtes web web Présentation Gestion des beans Logique applicative Logique métier Données LDAP portail URLs I18n Cache Authentification data domain beans Accès Persistance base

Les « plus » de esup-commons Gestion des transactions Gestion des versions Cohérence entre la version développée et la base de données Gestion des exceptions Pour avoir des messages clairs et donc une correction rapide des problèmes Internationalisation native Et donc une externalisation des messages de l’application Envoi de courriers électroniques Commandes en ligne Web services

Les « plus » de esup-commons Gestion de l’authentification CAS, LDAP, etc. Accès au portail Accès à LDAP Pagination des données Taglib dynamique Aucun formatage en dur dans les pages Gestion des URLs directes (deep linking) Gestion de cache Encore un nid à bugs !

Un exemple d’un outil de production RBE pour l’édition des fichiers de messages Multilingue Gestion de l’encodage des accents ESUP-Commons fournit la mécanique pour lire les fichiers de messages ET l’outil d’édition de ces messages On n’est plus dans le « il faudrait faire » Comme les outils sont là cela devient naturel pour le développeur Mais aussi : CheckStyle Subclipse Etc.

Web services web Gestion des beans données requêtes web commandes en ligne web services web présentation Gestion des beans contrôleur web contrôleur batch contrôleur batch service métier service de données LDAP accès portail service d’URL i18n cache authentification données Gestion uniforme des exceptions et de l’accès aux données database

Bilan Plus de 80 Personnes formées à ESUP-Commons Un support de formation de plus de 150 pages Présentation JRES de Pascal Aubry http://2007.jres.org/planning/paperd5a2.html?pid=97 Utilisé pour les développements ESUP-Portail ORI-OAI Rennes 1 Ailleurs En perpétuelle évolution Besoin de suivre les technologies Besoin de maintenir l’effort de formation

Avenir Encore du travail et des questions… Faut-il définir un activité de « mainteneur d’environnement de développement » comme ESUP-Commons ? Ouverture à l’international Intégrer plus fortement d’autres outils TPTP (analyse l’utilisation et les performances du code) FindBugs (permet de détecter les nids à bugs) JUnit (intégrer dans la doc de formation la méthodologie à suivre pour les tests –bouchons de test, simulation de sessions Web–) Préparer demain Lien avec des outils de gestion de roadmap OSGI (plugins logiciels) Utilisation des annotations JAVA Passage à Seam

Conclusion Pour moi la qualité passe par l’humain C’est souvent vu comme une contrainte Il faut donc proposer des outils qui simplifient la vie des développeurs La qualité devient (plus) naturelle On a gagné quand ils ne peuvent plus se passer des outils Offrir ces outils demande un gros travail… A des personnes dont ce n’est pas l’activité première Alors même que ces outils sont stratégiques pour la communauté