DESCRIPTION TECHNIQUE DU PROJET

De Coclico.

Sommaire

Description générale

Le projet est composé de sept sous-projets, cinq liés à chacun des principaux objectifs techniques, un relatif à l'ensemble du projet pour la promotion et le soutien d'un écosystème autour des forges libres, et un qui constitue les activités de coordination et gestion du projet.

Structure du projet

Sous projet
Titre
Partenaire leader
Sous-projet n° 1 Sous-projet n° 1: Gestion d'identités et politiques de confidentialité ORA
Sous-projet n° 2 Sous-projet n° 2: Interopérabilité et échange de données ITS
Sous-projet n° 3 Sous-projet n° 3: Adaptation des outils et méthodologies XER
Sous-projet n° 4 Sous-projet n° 4: Traçabilité et intégration continue XER
Sous-projet n° 5 Sous-projet n° 5: Intégration avec le poste client BUL
Sous-projet n° 6 Sous-projet n° 6: Promotion et écosystème ITS
Sous-projet n° 7 Coordination du projet BUL

Les relations entre les différents sous-projets peuvent être illustrées de la façon suivante:

Image:WPs.pngSchéma d’interaction entre les sous-projets

Description des sous-projets

Sous-projet n° 1: Gestion d'identités et politiques de confidentialité

N° de Sous-projet
1
Coordinateur
ORA
Objectifs

Le contenu de ce sous-projet part des nécessités rencontrées lors de l'intégration de nouveaux outils dans une Forge. Une Forge est définie comme un ensemble d'outils nécessaire dans notre cas à une activité de développement de logiciel.

La particularité d'une Forge est de rendre le plus homogène possible l'accès à ces outils en unifiant un certain nombre de fonctions. Parmi ces fonctions on identifie la gestion des utilisateurs et des sessions, les notions de projets et de groupes, les problématiques de permissions et de contrôle d'accès. On peut également ajouter les problématiques de suivi des accès (logging) et de statistiques.

Dans les Forges existantes, de même que dans les outils que l'on désire leur adjoindre, ces différentes notions parfois existent, parfois n'existent pas. Elles sont souvent instanciées de façons différentes et parfois peu ou mal définies.

L'objectif de ce sous-projet est donc l'amélioration de la capacité d'intégration d'outils hétérogènes, en traitant les points de complexité rencontrés pour la gestion des utilisateurs en s'appuyant sur les techniques modernes de fédération d'identité. L'innovation consiste à proposer la fédération des notions de groupe et de contrôle d'accès, en prenant dès le début en compte les problèmes concrets des outils existants ou fortement demandés.

-Le résultat attendu est la fourniture aux outils d'un ensemble complet et cohérent de gestion des utilisateurs, des groupes et des accès. Cet ensemble pourra se décliner avec des interfaces pour les langages de programmation les plus utilisés dans les environnements de type Forge à savoir : PHP, Perl, et Java. Cet ensemble devra permettre aux fonctions citées plus avant d'être fournies par un ensemble de serveurs distribués, administrés par des entités différentes et mis en réseau afin de partager ces fonctions. Cet ensemble devra de plus s'intégrer simplement à un ensemble le plus complet possible de système d'authentification.

Ce sous-projet est divisé en différentes tâches prenant en charge les différents aspects de la problématique d'intégration de ces différents outils. L'implémentation devra être faite en collaboration par les différents acteurs des Forges avec une modification unique des différents outils concernés.


Tâches et livrables

Livrable Fichier Contributeurs
Tâche 1 : Convergence ORA,ITS,XER
L1.1.1: Implémentation communes entre forges Livrable_wp1.1.1.pdf(pdf/odt)
Tâche 2 : Gestion des utilisateurs, authentification et session ORA,ITS,XER
L1.2.1: Compte rendu d'étude Livrable_wp1.2.1.pdf(pdf/odt)
L1.2.2: Implémentation d'un système de session unifié pour Mantis, Bugzilla et Mailman et proposition de cette implémentation upstream. Livrable_wp1.2.2.pdf(pdf/odt)
L1.2.3: Exemple d'authentification avec un des système (CAS, Kerberos, OpenID, ...) Livrable_wp1.2.3.pdf(pdf/odt)
Tâche 3 : Gestion des projets et notion de groupe ORA,ITS
L1.3.1: Compte rendu d'étude Livrable_wp1.3.1.pdf(pdf/odt)
L1.3.2: Plugin Wiki unique multiforge Livrable_wp1.3.2.pdf(pdf/odt)
Tâche 4 : Contrôles d'accès et implémentations ORA,ITS,XER
L1.4.1: Compte rendu d'étude Livrable_wp1.4.1.pdf(pdf/odt)
L1.4.2: Système autonome pluggable de Gestion de Rôles et de droits d'accès Livrable_wp1.4.2.pdf(pdf/odt)
Tâche 5 : Espace de nommage ORA,XER,ITS
L1.5.1: Compte rendu d'étude Livrable_wp1.5.1.pdf(pdf/odt)
L1.5.2: Système unifié d'hyperliens Livrable_wp1.5.2.pdf(pdf/odt)
Tâche 6 : Suivi des accès et statistiques ORA,BUL,ITS,XER
L1.6.1: Compte rendu d'étude Livrable_wp1.6.1.pdf(pdf/odt)
L1.6.2: Système unifié de logging et d'analyse de charge s'appuyant sur des technologies SNMP pour le temps réel Livrable_wp1.6.2.pdf(pdf/odt)
L1.6.3: Infocentre d'analyse des usages Livrable_wp1.6.3.pdf(pdf/odt)

Sous-projet n° 2: Interopérabilité et échange de données

N° de Sous-projet
2
Coordinateur
ITS
Objectifs

L'objectif de ce sous-projet est d'établir une proposition de standard d'interopérabilité pour les échanges de données entre forges de développement logiciel.

Tout projet de collaboration et de développement de logiciels (libres ou non) hébergé sur une forge est constitué par une communauté de participants qui partagent sur la même plate-forme l'ensemble des informations du projet (archives des communications électroniques, documents, source de logiciels, paquets logiciels, base de données de bugs, site web, listes de tâches, rôles affectés aux participants, etc.).

Pourtant, une fois les projets établis dans une forge, l'adhérence à cette forge est très grand. La vie des projets nécessiterait parfois de restructurer le périmètre d'une communauté, donc des outils qu'elle utilise : subdivision d'un projet, ou agrégation de projets, changement d'outils (donc de forge) pour répondre à des besoins nouveaux, restructuration des organisatons hébergeant les projets, etc.

Cette trop grande rigidité est aujourd'hui un problème aussi bien pour les projets utilisateurs de forges, que pour les organisations qui souhaitent déployer des forges et anticiper sur l'évolution des plate-formes. Les forges existantes manquent de fonctions d'administration permettant l'import, l'export, la migration de projets et d'équipes entre forges.

L'intéropérabilité entre forges logicielles est donc fondamentale pour rendre beaucoup plus flexibles les liens établis entre un projet et une forge donnée.

Les données d'un projet sont stockées dans les formats spécifiques des différentes bases de données et fichiers de stockage des différents logiciels composant les forges. Ces formats de stockage, internes, ne sont donc pas adaptés en vue d'un format d'échange unifié, standardisé, pivot de l'interopérabilité entre différentes plate-formes.

L'enjeu est donc de définir un format d'échange standardisé, ouvert, capable de représenter avec une sémantique commune l'ensemble des données d'un projet, d'une communauté, et de proposer des implémentations minimales pour au moins deux forges afin de valider techniquement cette proposition.

Le sous-projet 2 tiendra compte des travaux réalisés dans le cadre de QualiPSo sur les ontologies pour la définition du format d'échange et s'appuyera dans la mesure du possible sur les guides pratiques et recommandations pour l’interopérabilité émises par ce projet. Le sous-projet 2 tirera également profit de l'expérience du démonstrateur mis en place dans QualiPSo pour montrer comment utiliser les technologies sémantiques pour la recherche entre les forges BerliOS et GForge et évaluera les mécanismes réutilisables pour être généralisés dans les forges.


Tâches et livrables

Sous-projet n° 3: Adaptation des outils et méthodologies

N° de Sous-projet
3
Coordinateur
XER
Objectifs

Ce sous-projet vise à faciliter la mise en oeuvre de méthodologies de développement pour les projets hébergés dans une forge logicielle.

Aujourd'hui, les forges fournissent les outils nécessaires au développement: gestion de code source, outils de suivi, outils de communication, mais ne précisent pas un cadre précis pour l'utilisation de ces outils. C'est aux chefs de projet de personnaliser leur environnement pour répondre aux besoins de leur projet, et de l'adapter, quand c'est possible, à la méthodologie utilisée par leur équipe.

Par exemple, si l'équipe projet implémente une méthodologie de développement agile comme Scrum, la forge va devoir gérer le « backlog produit » via un outil de suivi dédié, et proposer un rapport graphique de suivi de l'itération courante (« Burndown Chart »).

Si une autre équipe veut mettre en oeuvre la méthodologie CMMI, elle voudra gérer le suivi et la traçabilité des exigences, via un outil de suivi et des rapports adaptés.

Ce sous-projet va donc proposer des solutions permettant de faciliter la mise en oeuvre de méthodologies en travaillant sur deux axes:

  1. La mise en oeuvre de modèles dans la forge: modèles de projets, d'outils de suivi, de documents, permettant de facilement créer un nouveau projet configuré pour répondre immédiatement aux besoins de la méthodologie de développement.
  2. Un travail sur la flexibilité des outils, afin de les personnaliser pour répondre à des besoins méthodologiques différents: gestion des exigences, des risques, des cas d'utilisation (use case), rapports élaborés (reporting): couverture des exigences, rapports temporels, etc.

Ce sous-projet prendra en compte les travaux effectués dans le cadre du projet Qualipso, notamment sur la qualification du niveau de qualité d'un processus de développement OSS. Qualipso définit en effet le modèle QuOMM comme une liste de critères complémentaires à CMMI et spécifiques au monde Open Source. Des outils associés sont également développés sur la base du logiciel Spago4Q pour l'analyse statistique des données collectées pour évaluer les écarts par rapport au modèle.

Tâches et livrables

  • Tâche 1 : Convergence et mise à niveau des implémentation pour le moteur de modèle – XER
  • Tâche 2 : Evolution du moteur de modèle – XER
    • L3.2.1 Livrable_3.2.1.pdf (pdf/odt) - En lien avec le sous projet 2 (L2.2.1) : un compte-rendu décrivant un format de description de projet pour les forges (partiellement en anglais)
    • L3.2.2 Livrable_3.2.2.pdf (pdf/odt) - Une mise en oeuvre de l'import export des trackers
    • L3.2.3 Livrable_3.2.3.pdf (pdf) - Un rapport d'étude sur la possibilité de suivre l'évolution du modèle de projet au cours du temps
  • Tâche 3 : Fournir un support pour la méthodologie Scrum – XER,OBJ
  • Tâche 4 : Indexation et recherche - XER,CEL
    • L3.4.1 Livrable_3.4.1.pdf (pdf) - Paramétrage de Lucene par rapport aux besoins spécifiques des forges
    • L3.4.2 Livrable_3.4.2.pdf (pdf) - Paramétrage et packaging de SOLR pour un déploiement facile par les administrateurs des forges
    • L3.4.3 Livrable_3.4.3.pdf (pdf/odt) - Fourniture de clients adaptés à interagir avec la logique de fonctionnement des forges

Sous-projet n° 4: Traçabilité et intégration continue

N° de Sous-projet
4
Coordinateur
XER
Objectifs


L'objectif de ce sous-projet est d'assurer la traçabilité des artefacts projet mis en jeu dans le contexte d'un développement logiciel et d'en automatiser la collecte dans le cadre d'un processus d'intégration continue (Continuous Integration).


L'intégration continue est un processus de développement visant à automatiser les tâches récurrentes d'un développement logiciel telles que la construction (build), les tests et la génération de rapports. Son principal intérêt est de détecter au plus tôt toute régression dans le cas de modification du code source.


Les principes d'architecture d'un environnement Forge sont basés sur un dépôt central contenant l'ensemble des artefacts projet. Bien que cette architecture favorise la navigation entre les artefacts projets, l'intégration des différents outils (outil de suivi, tâche, code source, livraisons, wiki, discussions) est aujourd'hui insuffisamment élaborée pour permettre la traçabilité des exigences au code source, en passant par leur modélisation UML , cas de tests, demandes de changement et livraisons.


L'idée est de supporter l'approche MDA en modélisant les exigences dans un outil de modélisation UML. Ces exigences seront ensuite associées à des cas d'utilisation (Use Case), qui deviendront des cas de test lesquels serviront à vérifier que l'exigence est couverte. A partir des Use Case on peut décliner les services métiers nécessaires à leurs réalisations. A partir des services métiers on pourra décliner les objets métiers qui seront modélisés par des diagrammes de classes.

A partir de ces diagrammes de classes on peut passer à l'environnement de développement et générer le code applicatif correspondant à la modélisation UML.


La traçabilité des artefacts projet dans le cycle de développement est un facteur important et déterminant pour la qualité du logiciel produit. Elle commence aux exigences jusqu'aux livraisons. L'intérêt de cette chaine de liaison est que l'on puisse avoir la vue de l'exigence ou des exigences implémentées sur chacune des phases (Use Case, Service métier, code applicatif, tests unitaires et tests fonctionnels).


Dans ce sous-projet, on s'intéressera à l'historisation des livraisons produites par le système d'intégration continue comprenant la traçabilité entre la livraison produite, le code source, la modélisation UML, les tâches, la gestion des changements (exigences, bugs), la couverture de tests et les exigences implémentées.


Ce sous-projet réutilisera les livrables du projet HELIOS: sélection des outils de gestion de campagne de tests fonctionnels, système d'intégration continue, et traçabilité campagne de tests et intégration continue.

Tâches et livrables

  • Tâche 1 : Convergence et mise à niveau des implémentation pour le moteur de modèle – ITS,ORA
  • Tâche 2 : Intégration d'un outil de gestion de campagne de tests fonctionnels – ORA,XER
  • Tâche 3 : Liens entre les artefacts projets gérés dans une Forge – ITS,XER
  • Tâche 4 : Interface entre le système d'intégration continue et la Forge - ITS,BUL,ORA,XER
  • Tâche 5 : Tableau de bord de l'intégration continue - BUL,OBJ,XER
  • Tâche 6 : Approche MDA : traçabilité des exigences de la modélisation à la livraison - BUL,ITS,OBJ
    • L4.6.1 Livrable_4.6.1.pdf (pdf/odt) - Définition d'un modèle de données pour les exigences
    • Livrable_4.6.2_et_3.pdf (pdf/odt) - L4.6.2 - Export des exigences depuis un outil de modélisation UML et L4.6.3 - Tracker amélioré pour la gestion des exigences
    • L4.6.4 Livrable_4.6.4.pdf (pdf/odt) - Proposition d'une méthodologie permettant d'assurer la traçabilité entre les exigences et le code

Sous-projet n° 5: Intégration avec le poste client

N° de Sous-projet
5
Coordinateur
BUL
Objectifs

Ce work-package a pour objectif de faire le lien entre les différents interfaces offerts aux utilisateurs de forge, en particulier les interfaces Web offerts par les serveurs de forge et les interfaces utilisés par les développeurs, reposant sur des environnements de développement intégrés, comme Eclipse. Ces derniers environnements offrent des accès à un ensemble de fonctions nécessaires pour le développement de logiciel, tels que la modélisation UML, les environnements de développements de code proprement dit, de tests, de build, ... mais peu d'accès à des outils complémentaires permettant de positionner le travail du développeur dans le cadre complet du projet, avec, notamment, les accès à des outils de gestion de projet (gestion de tâches, reporting des temps passés, saisi du reste à faire, ...).

Un premier pas dans cette direction a été accompli avec l'outil Mylyn qui interface depuis Eclipse les gestionnaires d'anomalies mais il est nécessaire d'aller plus loin dans l'accès aux autres fonctions de gestion de projet offertes par les forges.

L'intégration de ces fonctions dans le poste développeur, accessibles aujourd'hui depuis le serveur de forge en interface web, permettra d'accroître la productivité des développeurs et une meilleure transmission de l'information entre les activités de développment et de gestion de projet.

Les forges rencontrent des difficultés à percer au sein des environnements Microsoft à cause de l'intégration généralement proposée entre les différents outils Microsoft. Nous proposons donc de poser certaines briques afin de faciliter l'accès aux fonctionnalités des forges depuis les outils Microsoft (suites Office, MS Project, Visual Studio).

Dans le cadre d'une approche “gestion de processus” du projet, il faut inclure la gestion et le contrôle du document technique du projet, et par conséquent l'intéropérabilité avec les suites bureautiques (Microsoft, OpenOffice.org, Adobe) utilisé par le développeur.

Une approche phasée est proposée, permettant de disposer rapidement de résultats utilisables.

Ce sous-projet étudiera les synergies possibles avec le projet MIND qui propose des outils intégrés dans Eclipse d'aide à la conception de composants pour construire des OS embarqués. Les axes de coopération à évaluer se situent notamment sur la tâche 6 et l'interface avec les trackers.


Tâches et livrables

Livrable Fichier Contributeurs
Tâche 1 : Convergence XER, ITS
L5.1.1: Mise à disposition du plugin Eclipse d'accès à Codendi Coclico_SP5_L.5.1.1(pdf/odt)
Tâche 2 : Création de poste de développement de base BUL
L5.2.1: Spécification du contenu du package développeur de base Coclico_SP5_L.5.2.1(pdf/odt)
L5.2.2: Fichier archive installable sur poste de développement Windows Archive installable
Tâche 3 : Réalisation d'un interface utilisateur “Ma page” BUL,ITS
L5.3.1: Etude d'architecture du plugin s'appuyant sur Mylyn et sur le plugin Eclipse pour Codendi Coclico_SP5_L.5.3.1(pdf/odt)
L5.3.2: Spécifications du plugin Eclipse permettant d'accèder à l'onglet “Ma Page” Coclico_SP5_L.5.3.2(pdf/odt)
L5.3.3 et L5.3.4: Plugin Eclipse intégrable dans le poste développeur Coclico_SP5_L.5.3.4(pdf/odt)
Tâche 4 : Extension de l'interface utilisateur aux informations de pilotage projet BUL,ITS
L5.4.1: Spécification des informations de pilotage disponibles dans les forges et pouvant être accédées depuis le plugin Eclipse Coclico_SP5_L.5.4.1(pdf/odt)
L5.4.2 et L5.4.3: Plugin Eclipse de la tâche 2 étendu et connecteur de forge Coclico_L5.4_L5.6(pdf/odt)
Tâche 5 : Création de poste de développement BUL,ORA
L5.5.1: Spécification des différents composants susceptibles d'être intégrés dans le poste développeur et de leurs dépendances Coclico_SP5_L.5.5.1(pdf/odt)
L5.5.2: Onglet de définition et de constitution du package Coclico_SP5_L.5.5.2(pdf/odt)
Tâche 6 : Interface avec le poste de développement Eclipse BUL, XER, OBJ, ITS
L5.6.1: Spécification de l'ensemble des informations de pilotage disponibles dans les forges et pouvant être accédées depuis le plugin Eclipse Coclico_SP5_L.5.6.1(pdf/odt)
L5.6.2 et L5.6.3: Plugin Eclipse de la tâche 3 étendu et connecteur de forge Coclico_L5.4_L5.6(pdf/odt)
Tâche 7 : Intégration des forges avec un poste de développement .Net OBJ
L5.7.1 et L5.7.2: Adds-in pour Microsoft Office & Visual Studio et Encapsulation d'un add-in existant pour pouvoir lié un commit à une tâche L5.7.1_IntegrationSuiteOffice(pdf/odt)
L5.7.3: API WebServices côté forge pour converser avec l'add-in L571_L572_L573_AddinVisualStudio(pdf/odt)

Sous-projet n° 6: Promotion et écosystème

N° de Sous-projet
6
Coordinateur
ITS
Objectifs

Les objectifs de ce sous-projet sont d'assurer une promotion efficace des travaux du projet, d'accroître la mise en réseau des acteurs français travaillant sur les forges open source, de permettre la diffusion des résultats du projet en lien avec la communauté Fusionforge et les communautés OSS appropriées, ainsi qu'avec des initiatives comme Planetforge, QualiPSo, ou HELIOS.

Tâches du WP6


Sous-projet n° 7: Coordination du projet

N° de Sous-projet
7
Coordinateur
BUL
Objectifs

Ce sous-projet vise à assurer la coordination administrative globale du projet ainsi que la coopération entre les pôles System@tic, Minalogic, leurs mandataires, et le groupement dans son ensemble. Il s’agira de:

  • Superviser et coordonner le projet dans son ensemble, et les agencements entre les sous-projets qui le composent.
  • Assurer une bonne coordination entre tous les partenaires du groupement, et entre le groupement et toute organisation extérieure.
  • Faire le point régulièrement sur les progrès des travaux du projet.
  • Organiser des réunions administratives selon les besoins.
  • Définir le cadre de gestion de la propriété intellectuelle.


Outils personnels