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.

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

(Reprise de Tasks_of_WP2_en, en anglais, ci-dessous)

Tasks and deliverables :

  • T2.1 Convergence
    • DL2.1 Not specified
  • T2.2 Specification of an interchange format
    • DL2.2 Document of specification of an import/export format between forges – (T0+9)
  • T 2.3 Implementation of the interchange format
    • DL2.3.1 Open Source Software "toolbox" to implement mechanisms of import/export with respect to GForge/FusionForge and Codendi – (T0+18)
    • DL2.3.2: Open Source software plugins to integrate into the DL2.3.1 toolbox third party tools to make conversion of the navige exchange formats for the project artefacts – (T0+24)
  • T2.4 Integration of results of the Helios project
    • DL2.4.1: Open Source tool for the conversion of bugs databases between bugtrackers and corresponding plugins to integrate them into the DL2.3.1 toolbox – (T0+24)
  • T2.5 Dynamic Interoperability
    • DL2.5.1: Software prototype allowing the evaluation of the dynamic interoperability between forges, based on the DL2.2 specification – (T0+24)
    • DL2.5.2: Document of specification of extensions to DL2.2 for its use in a dynamic context – (T0+18)

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.



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.



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.

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


Tasks and deliverables :

  • T6.1 Promotion of results
    • DL6.1.1: Web site (T0+2)
  • T6.2 Support of an OSS forges ecosystem
    • L6.2.1.1: Report on events organized (T0+12)
    • L6.2.1.2: Report on events organized (T0+24)
  • T6.3 Link with the communities
    • L6.3.1.1: Contribution plan (T0+3)
    • L6.3.1.2: Contribution plan (T0+12)
  • T6.4 Collaborative hosting of code
    • L6.4.1: Solution for collaborative hosting of code (T0+1)
    • L6.4.2: Availability in a unique location of the whole source code of the involved forges (T0+1)


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.


Autres langues
Outils personnels