1. Présentation▲
1-1. Les organisateurs▲
Logic Instrument est le revendeur officiel et exclusif pour Polarion en France. La société est plutôt spécialisée dans l'embarqué (historique), mais semble désormais vouloir également se positionner sur le créneau du génie logiciel et des produits ALM.
A ce titre, ils ont pris en charge l'organisation et la gestion de l'étape française du Polarion Technology Tour.
D'ailleurs, c'est vers cette société que vous pourrez vous orienter pour tout renseignement, prestation, formation, sur les produits Polarion.
1-2. La société Sparx Systems▲
Sparx Systems, représentée lors de cette demi-journée par Peter Lieber (CEO Sparx System Europe), est une société Australienne fondée en 1996 qui possède des bureaux en Europe localisés en Autriche à Vienne.
La société n'édite qu'un seul produit, Entreprise Architect, qui est un logiciel orienté modélisation couvrant le cycle de vie logiciel allant de la gestion des exigences jusqu'à la livraison.
La société fait partie des membres de l'OMG (UML, MDA) et a remporté en 2008 un award (Jolt productivity Award) pour récompenser les bénéfices apportés par son produit en matière de productivité.
Elle n'a pour l'instant pas d'antenne commerciale en France.
1-3. La société Polarion▲
Polarion, représentée lors de cette demi-journée par Robert Neher (Co-fondateur, Vice Président et responsable des ventes), est une société Allemande fondée en 2003.
Polarion en chiffres, c'est actuellement (à la date de rédaction de cet article) 60 salariés, 170 clients, et 80 000 licences distribuées pour les produits édités.
La société mise sur 2 technologies : Eclipse et Subversion, et se positionne comme un acteur majeur des outils de gestion du cycle de vie du développement logiciel et produits ALM (en se positionnant sur une approche "webcentric" afin de permettre à tous les acteurs d'agir sur les différentes étapes du cycle de vie : recueil de besoin, cas d'utilisation, composants logiciels, gestion du changement, gestion de projet, etc.). Elle est bien implantée en Europe, avec notamment des équipes de développement présentes en République Tchèque.
A noter que Polarion édite également une branche de son produit d'ALM décliné pour SAP NetWeaver.
A ce titre, elle édite le plugin Subversive, projet officiel pour le support de Subversion dans Eclipse (incubateur Eclipse) ainsi que d'autres produits gratuits autour de Subversion (un client Web, et un gestionnaire de migration à partir d'autres SCM).
Polarion a notamment été nominé aux Eclipse Community Awards 2008 pour lequel le produit Polarion ALM Team for Subversion a fait parti des finalistes pour le titre de meilleur outil commercial de développement basé sur Eclipse.
2. Le programme▲
Les participants ont été accueilli de 9h à 9h30 autour d'un petit-déjeuner dans un petit hôtel parisien.
Le programme était constitué de 2 sessions séparées par une petite pause, ce qui nous a amené à 12h45.
- Integrating UML 2.1
- Requirements meet UML
2-1. Integrating UML 2.1▲
C'est donc Peter Lieber qui a commencé par nous présenter l'unique produit de la société Sparx Systems : Enterprise Architect.
Enterprise Architect (EA) est un outil reposant sur un modeleur UML, qui supporte les 13 diagrammes UML 2.1, les profiles, les templates et les patterns, et qui supporte XMI.
EA a un coût approximatif de 150 € par utilisateur (licence d'un an, mises à jour incluses), volonté de l'éditeur de pousser l'usage du produit au delà de son utilisation en marge de l'activité de modélisation technique : développeurs, chefs de projets, analystes, etc., tous peuvent bénéficier du produit et l'utiliser dans le cadre du cycle de vie logiciel, sans coût excessif. Le résultat est illustré par les 150 000 licences recensées actuellement par l'éditeur, fruit d'un effort de développement équivalent à 160 années.homme (soit par exemple 160 personnes à temps plein sur un an).
Le produit peut en outre être enrichi par l'utilisation d'add-ins édités par des tiers : par exemple le plugin "Time Architect" qui propose des fonctionnalités de gestion de projet et de planning.
2-1-1. Architecture d'Enterprise Architect▲
Enteprise Architect a ceci d'innovant, par rapport à d'autres produits du marché, qu'il repose sur une base de donnée. En effet, par défaut, l'extension .eap cache une base de données Access (amis linuxiens, ne partez pas, le produit ne se limite pas aux plateformes Windows !), mais il est possible de gérer les données de votre projet dans la plupart des SGBD majeurs du marché (Oracle, SQL Server, MySQL, PostGreSQL, etc.).
Vous trouverez davantage d'informations sur les prérequis et possibilités de stockage sur la page suivante : http://www.sparxsystems.com.au/products/ea/sysreq.html
De plus, EA supporte également l'utilisation d'un SCM (notamment CVS et SVN) pour disposer d'un historique (export XMI versionné) des packages. Plusieurs configuration types sont possibles : privé, partagé, et "work group" (un accès SCM partagé par différentes personnes travaillant sur le même module). L'activation de l'utilisation d'un SCM permet également d'introduire une gestion de la sécurité et des droits.
EA n'est pas un produit isolé (nous le verrons notamment lors du résumé de la seconde session avec le produit Polarion) et il s'interface notamment avec des outils comme DOORS, Visual Studio 2003 (et supérieur) et versions plus récentes, Eclipse, et Visio.
Il s'intègre également aux 2 principaux EDI du marché que sont Visual Studio 2005 (et supérieur) et Eclipse, sans oublier Siemens TcSE (Teamcenter Systems Engineering) beaucoup moins connu du grand public.
Revenons un peu sur les atouts procurés par l'architecture client serveur du produit, notamment l'utilisation possible d'un SGBD à la place de la solution par défaut (fichier de stockage), combinée à celle d'un SCM :
- complexité d'archivage/sauvegarde déportée sur le SGBD
- charge déportée sur le SGBD
- gestion multiutilisateurs, avec fonctionnalités de verrous et sécurité
- contribue à la rapidité de chargement / initialisation lors du lancement du client
2-1-2. Couverture fonctionnelle▲
Pour en revenir à la couverture fonctionnelle du produit, celui-ci ne se veut pas cantonné aux activités de modélisation (optionnellement accompagnée de génération de code) ou aux activités de reverse engineering.
L'objectif est une couverture plus large du cycle de vie de production d'un logiciel, et pour cela l'accent est mis sur la traçabilité que peut offrir le produit : de la gestion des exigences au déploiement des solutions logicielles.
A cet effet, EA se repose sur 2 axes majeurs : une approche "orientée diagramme" via l'utilisation d'UML comme support, et des synergies avec des produits plus "verticaux" comme DOORS (gestion des exigences), Visio (modélisation), Eclipse et Visual Studio (implémentation et tests), Polarion, Team Foundation Server, sans pour autant ne rien proposer "out of the box" pour les différentes activités du cycle de vie.
Parlons un peu de la démo qui nous a été faite.
Peter a créé un projet auquel il a associé un "processus de développement" (ex. RUP) ainsi que les modèles à implémenter (ex. requirements, use case, etc.). Il nous a monté comment définir des exigences, des cas d'utilisations, et notamment les relier.
J'ai été assez bluffé par l'ergonomie de l'outil, notamment la facilité de créer linéairement des associations entre artefacts. Je m'explique : en général les produits nous poussent à définir 2 éléments et ensuite à les relier via un élément de liaison. Ici Peter a (et ceci de manière très naturelle) créé le premier élément, l'a sélectionné pour faire apparaître un menu contextuel qui lui a permis de désigner à la fois un nouvel élément à créer ET la relation qu'il aura avec cet élément. J'ai trouvé cela très intéressant pour la productivité et la facilité d'utilisation (bien entendu, les éléments peuvent également être assemblé par un mode plus classique).
Peter nous a ensuite montré un élément majeur du produit concernant le côté "traçabilité" : la matrice de relations (relationship matrix). Elle permet d'avoir une vision claire des relations entre les différents artefacts gérés tout au long du cycle de vie : par exemple la possibilité d'identifier très rapidement les classes qui ne sont pas couvertes par des tests unitaires, ou encore les besoins pour lesquels aucun cas d'utilisation n'a été recensé. Indispensable pour faire collaborer les différents acteurs dans une équipe, et limiter l'usage de moyens de communications plus classiques et contre productifs, elle bénéficie bien entendu de fonctionnalités de filtrage avancées et contextuelles.
Côté modélisation, outre les caractéristiques générales déjà citées concernant UML 2.1, il faut également noter la prise en charge de plus de 10 langages et la possibilité d'extensions à n'importe quel langage qu'il suffit de déclarer (et définir un certain nombre de caractéristiques, nous y reviendrons), mais également la possibilité d'enrichir le catalogue de patterns (les grands classiques sont disponibles out of the box) pour notamment conceptualiser des patterns propres à votre organisation ou architecture de produits (frameworks, etc.).
Du côté de l'implémentation et de la génération de code, le produit vient avec des templates de génération qui permettent de définir pour les langages supportés tout un tas de choses (documentation, prototypes par défaut, etc.) bien utiles pour avoir une génération optimale et réduire les retouches.
Bien entendu, tout nouveau langage introduit dans le produit pourra bénéficier de ces fonctionnalités (à condition de faire le travail d'abstraction et de définir le paramétrage qui va bien).
Mais EA ne fait pas que de la génération, il maintient une synchronisation bi-directionnelle entre le modèle et le code, ce qui est très appréciable (vous pouvez voir les deux à l'écran et alterner entre modèle et code pour vos modifications).
Enfin, le produit supporte l'import de modules dits binaires et de code source, ce qui vous permettra de vous reposer sur les abstractions des frameworks que vous utilisez (c'est bien souvent un frein à la modélisation lorsqu'on travaille avec des frameworks). Peter nous l'a illustré via l'import d'un jar.
Côté documentation, il est à noter que le HTML et le RTF sont les formats supportés, et qu'ils sont tous les deux skinnables (via des CSS et des builders notamment pour l'un, et des modèles RTF qu'on peut retoucher pour l'autre).
La navigation est de nos jours le nerf de la guerre dans les systèmes d'information complexes. Les moteurs de recherche "one box" sont une solution, mais ils ne permettent pas toujours d'accéder efficacement et rapidement au résultat, notamment lorsqu'on souhaite tenir compte d'un contexte de départ.
Enterprise Architect propose des outils pour améliorer cela, notamment des fonctionnalités de liens pouvant être attachés aux différents artefacts, facilitant la navigation et venant en complément des liens plus visuels inhérents à l'utilisation d'UML :
- vers un autre artefact
- vers une matrice de relations
- vers une recherche
- vers une page d'aide
- vers une page internet
- etc.
2-1-3. Divers▲
La session s'est terminée par la mention de quelques "UML Execution experiments", lesquels illustrent à la fois les possibilités d'UML (diagrammes d'activité) et celles du produit :
- le pilotage du comportement d'un Agent MS (vous savez, les petites figures qui vous accompagnent dans les produits MS pour vous proposer de l'aide) par la seule modélisation, illustrant qu'une modification mineure dans la modélisation pouvait être prise en compte sans recodage
- le pilotage d'un robot qui adapte sa direction et son comportement en fonction de paramètre de position
Le produit est disponible en évaluation pour une période de 30 jours.
2-2. Requirements meet UML▲
Robert Neher a pris le relais en introduisant la société Polarion et son produit Polarion ALM for Subversion.
On distinguera 2 parties : la présentation de la synergie avec Enterprise Architect, et la présentation des spécificités de l'outil.
2-2-1. Généralités▲
Polarion ALM for Subversion se matérialise donc sous la forme d'une application web s'inscrivant dans une architecture n tiers dont le dernier tiers est un repository Subversion.
L'applicatif attaque le repository Subversion via le protocole HTTP(S) grâce à un serveur Apache (ce qui garantit la scalabilité de la plateforme).
Le maître mot du produit est ici également la tracabilité, incluant même la tracabilité avec le client final, ainsi que l'approche outil collaboratif intégré. En effet, il fournit un unique point d'entrée aux différents acteurs.
A ce titre, Polarion a fait un travail important pour séduire les utilisateurs d'autres applications commerciales et open-source : il met à disposition des outils de migration pour les outils Rational, MKS, Borland, et Microsoft notamment.
Mais Polarion ALM for Subversion n'est pas qu'une application web, c'est une véritable plateforme qui mise également sur l'interopérabilité.
Que ce soit côté API (mise à disposition de Web Services et de points d'entrée Java), notification (mails), documentaire (documents Word et Excel), de nombreux connecteurs sont mis à disposition. Au rayon des connecteurs métier, on notera (en plus d'Enterprise Architect déjà identifié) des synergies avec DOORS, TestDirector (HP), ainsi qu'avec les EDI Eclipse et Visual Studio (2005 et 2008).
De plus, des fonctionnalités d'export sont également prévues : HTML, documents Office, MS Project, etc.
2-2-2. Intégration avec Enterprise Architect▲
Robert nous a montré via une petite démo quelles étaient les synergies entre les deux produits.
Tout d'abord, l'import des modèles définis dans Enterprise Architect.
Au niveau d'Enterprise Architect, il convient de paramétrer le connecteur en renseignant les caractéristiques du serveur Polarion et du projet cible. De plus, il est également nécessaire de sélectionner les éléments à synchroniser vers Polarion ALM et de définir le mapping entre les 2 produits.
En mode standalone (fichier de sauvegarde local) la synchronisation du modèle EA se fait via une action du menu de l'outil, qui a pour effet de synchroniser les modèles concernés avec le référentiel (SVN) Polarion. Il est à noter qu'il est également possible d'ordonnancer une tâche de synchronisation afin de disposer dans l'outil Polarion des informations les plus récentes.
Une fois retourné dans l'application Web Polarion, les artefacts issus d'Enterprise Architect deviennent disponibles et peuvent être liés à d'autres éléments du cycle de vie (exigences, implémentations, tests, tâches, etc.).
A tout moment, l'utilisateur pourra cliquer sur les diagrammes UML et, s'il possède une installation locale du client Enterprise Architect, sera redirigé vers celui-ci dans l'outil dédié.
2-2-3. Les spécificités de Polarion ALM for Subversion▲
2-2-3-1. Ergonomie et gestion des utilisateurs▲
L'outil peut s'intégrer à des annuaires de type LDAP ou Active Directory, permettant une gestion fine des utilisateurs (rôles).
Ainsi, l'arbre de navigation présentant les différents modules et projets verra son affichage filtré en fonction de ces informations. L'utilisateur peut même choisir un rôle particulier (ex. un administrateur qui veut prendre le rôle développeur) afin de pouvoir travailler dans un contexte plus restreint.
Enfin, toutes les pages sont disponibles dans 2 modes d'affichage : un mode complet et un mode "Lite", ce dernier permettant d'avoir un affichage plus condensé afin d'aller à l'essentiel.
Comme tout outil ALM, les informations sont nombreuses et riches. Un écran de bonne dimension s'avère par conséquent nécessaire : malgré une organisation ergonomique, il faut de la place pour disposer de toutes les informations sur une même fenêtre ;-)
La couche présentation étant de type Web 2.0, une fois passé en mode plein écran afin de faire disparaître les menus et artifices de votre navigateur, vos interlocuteurs risquent de confondre l'application avec un client lourd (il paraît que les participants oublient parfois le caractère Web de l'outil au cours de la présentation et demandent au speaker quels sont les prérequis sur le poste client) tellement l'amalgame est aisé.
2-2-3-2. Matrice de couverture▲
A l'image de ce qui a déjà été évoqué au sujet d'Enterprise Architect, Polarion propose également des fonctionnalités de liaisons stéréotypées entre différents artefacts (par exemple un Cas d'Utilisation et une Exigence).
Outre les fonctionnalités de navigation, cela permet d'alimenter une matrice de couverture, laquelle peut être filtrée selon de nombreux critères (génériques et spécifiques).
La matrice de couverture introduit un premier niveau de traçabilité, complété par d'autres caractéristiques et fonctionnalités du produit.
2-2-3-3. Traçabilité▲
L'utilisation d'un SCM comme support de stockage procure immédiatement la fonctionnalité d'historique, chose dont héritent également de fait les éléments importés via le connecteur Enterprise Architect.
L'application propose notamment à chaque fois une vue comparative entre les différentes versions, permettant à un utilisateur de suivre l'évolution d'un artefact donné. Je trouve ce principe très ingénieux, même si on atteint un certain nombre de limitations dans la mesure ou on ne peut pas toujours (et ce n'est pas forcement pertinent) comparer les zones unitairement mais plutôt par bloc.
Une fonctionnalité intéressante qu'offre Polarion est la notion de modification marquée "Auto supect".
Le principe est simple : il s'agit d'évaluer les impacts d'une modification sur les éléments qui lui sont liés. Cela permet ainsi aux autres acteurs (mode collaboratif) d'examiner l'artefact en question pour valider qu'il n'y a pas d'impact, ou au contraire appliquer des modifications consécutives à la mise à jour.
Il s'agit en quelque sorte de vérifier qu'une modification est sans conséquence sur l'ensemble du cycle de vie logiciel et/ou de la propager.
Dernier exemple qui nous a été montré, une illustration de la traçabilité jusqu'à l'implémentation.
Robert a créé une tâche (Work Item) dans l'outil et l'a assigné. Puis il est allé modifier une classe Java (déjà sous SVN) avec un simple éditeur de texte et la pousser dans le gestionnaire de source avec TortoiseSVN. A ceci près que, contrairement à l'utilisation classique que vous pouvez avoir de Tortoise, ici il a renseigné un champ spécifique à Polarion appelé "Work Item ID" (pour faire apparaître cette zone, il faut un peu de configuration de TortoieSVN) lui permettant d'établir un lien avec la tâche à l'origine de la modification.
De retour dans Polarion, on constate qu'un élément a été rattaché à la tâche, et qu'on peut aller jusqu'à visualiser les modifications appliquées sur la classe Java.
Cela illustre bien à mon sens la couverture du cycle de vie logiciel.
2-2-3-4. Gestion de la planification▲
Je ne reviendrai pas sur la notion de Work Item déjà mentionnée, mais plutôt sur le module de planification dans sa forme macroscopique. Celui-ci vient avec une approche bien différente de ce qu'on peut trouver avec un outil comme MS Project.
En effet, il propose une transparence du planning à travers tous les projets. De plus, l'ordonnancement des tâches suivait, dans la démo qui nous a été faite, une logique de management par la priorité.
En conséquence de quoi, on voit très rapidement (couleurs) les tâches qui vont au delà des jalons (livrables) et on peut agir très en amont.
Nous n'avons eu le temps, lors de cette session, que d'aborder une petite partie des fonctionnalités de Polarion ALM for Subversion.
Voici une liste non exhaustive de choses que permet ce produit :
- gestion de build
- dashboards
- wiki
- couverture de tests
- métriques
- rapports
- etc.
Tous comme les autres produits Polarion, vous pouvez le télécharger pour l'évaluer gratuitement pendant une période de temps limitée.
A noter l'existence d'une version Polarion Track&Wiki, sortie début octobre 2008, laquelle adresse un sous-ensemble des besoins traités par Polarion ALM for Subversion dans ses version Professionnelle et Enterprise.
3. Conclusion et remerciements▲
Une matinée très intéressante, qui m'a permis de découvrir deux nouveaux acteurs sur le créneau du Génie Logiciel et de la gestion du cycle de vie.
Cela m'a donné l'envie de passer un peu plus de temps sur ce genre d'outils qui montrent la voie à suivre pour une gestion efficace et agile du cycle de vie d'un logiciel.
C'est néanmoins un peu frustrant de n'avoir finalement qu'un bref aperçu de ces 2 produits plutôt riches de fonctionnalités (c'est évidemment difficile en une matinée d'aller bien plus loin).
L'envie d'aller approfondir ces produits me fait penser que l'objectif est atteint pour les organisateurs ;-)
Enfin, on ne repart pas à vide mais avec une petite pochette remplie de documentation (principalement sur Polarion ALM Enterprise) et une clé USB contenant les présentations, des livres blancs (dont certains fournis en version papier), ainsi que des success stories.
Et ceux qui sont restés pour déjeuner ne sont pas repartis le ventre vide ;-)
Je remercie les organisateurs pour nous avoir proposé cet évènement, en particulier Stéphane Morice, ainsi que les speakers.
Je remercie également Adrien Artero pour la relecture de ce compte-rendu.
4. Liens▲
- Le site communautaire Polarion
- Le site commercial de Polarion et du produit Polarion ALM Enterprise for Subversion
- Le site de Sparx Systems et du produit Enterprise Architect
- La nouvelle offre Polarion Track & Wiki
- Vos questions sur les outils concernant le cycle de vie du logiciel
- La rubrique Conception sur Developpez.com