Nouvelle version de Squale - Software QUALity Enhancement project

Posté par (page perso) . Modéré par Nÿco.
11
17
sept.
2009
Technologie
Squale est une solution libre, sous licence LGPL v3, permettant de gérer la qualité des développements logiciels, avec pour objectifs de couvrir plusieurs langages et d'offrir une vision de la qualité logicielle adaptée à plusieurs profils. Mais plus qu'une simple plate-forme logicielle, Squale est un projet du groupe thématique "Logiciel Libre" du pôle de compétitivité System@tic Paris-Région. Il se focalise sur deux aspects principaux (voir la seconde partie de la dépêche pour plus de détails) :
  • L'élaboration de modèles évolués d'évaluation, de visualisation et d'interprétation des résultats issus des outils de mesure ;
  • Le développement d'une plate-forme logicielle mettant en œuvre les modèles ci-dessus et permettant ainsi de contrôler la qualité de son code.
La version 5.2 sortie récemment permet de :
  • Faire l'analyse d'applications Java/J2EE en utilisant les outils libres (re)connus tels que Checkstyle, PMD, JDepend et autres ;
  • Faire l'analyse d'applications C/C++ et Cobol en utilisant un connecteur vers les outils commerciaux McCabe et RSM.
Squale est librement téléchargeable, mais si vous voulez vous faire rapidement une idée, l'équipe Squale vous propose une version complètement packagée (via IZpack) avec :
  • Un Tomcat embarqué ;
  • Une base de donnée embarquée (HSQL DB) ;
  • Des outils d'analyses libres pour Java pré-installés ;
  • Un modèle qualité de base à trois niveaux (facteurs, critères et pratiques qualité).
Cependant cette version n'est pas recommandée pour la production. Vous pouvez bien sûr déployer votre propre instance sur un Tomcat/JBoss/etc. couplé avec MySQL/Oracle/etc. Squale tourne déjà en production dans un certain nombre de grandes entreprises, notamment celles partenaires du projet System@tic.

Les prochaines versions de Squale s'orienteront, entre autres, vers :
  • La prise en charge d'autres langages (notamment PHP) via l'ajout de nouveaux connecteurs pour les outils d'analyse de ce langage ;
  • L'amélioration de l'interface via des visualisations avancées (au delà de simples répartitions ou diagrammes radars) ;
  • La proposition de plans d'action plus évolués.
Le projet Squale se focalise sur deux aspects principaux :

1. L'élaboration de modèles qualité évolués
Inspirés de normes existantes (comme ISO 9126) et validés par des chercheurs de l'INRIA et de Paris 8, ces livrables sont sous licence CC by-nc-sa 3.0. Les travaux portent sur les modèles de qualité ainsi que sur les modèles technico-économiques ayant pour but de mettre en relation la qualité d'une application avec son coût de développement et de maintenance.

Pour le moment, les documents suivants sont disponibles :
  • Recensement et analyses de métriques pertinentes pour l'analyse qualité ;
  • Étude sur les représentations graphiques de résultats détaillés et agrégés ;
  • Pistes de refactorisation.
2. Le développement d'une plate-forme logicielle
Cette plate-forme permet :
  • D'analyser des applications multi-langages (actuellement Java,C/C++ et Cobol). Bien qu'étant développé en Java/XML, Squale est indépendant des langages analysés ;
  • D'agréger et de consolider les métriques selon les modèles qualité. Par défaut, des modèles de bases sont fournis, mais il est tout à fait possible de mette en place son propre modèle, Squale embarquant un interpréteur Jython (utilisé pour écrire les grilles qualité) ;
  • De restituer une vision de la qualité logicielle adaptée à différents profils, du top-manager au développeur, en passant par le responsable qualité. Il est en effet possible de naviguer via le modèle qualité défini ou de sélectionner le fichier ou la classe sur laquelle on travaille précisément.
Squale ne réinvente pas les outils de production de métrique, mais se base sur ceux existants, par exemple Checkstyle, PMD, JDepend, etc. pour le monde Java qui est très fourni en outils libres. Pour l'analyse de code C/C++ et Cobol, Squale propose des connecteurs vers des outils du marché, pour le moment essentiellement propriétaires (ex : McCabe, RSM, etc.), mais il est tout à fait possible d'écrire son propre connecteur vers un autre outil de son choix.

Au niveau architecture, la plate-forme logicielle se base sur deux composants principaux (schéma simplifié) :
  • Squalix, batch permettant de récupérer le code source via les principaux gestionnaires de version (Il se base sur le module SCM de Maven), passer les outils de production de métriques (JavaNCSS, RSM, CKJM, JDepend, etc.) et d'analyse de règles (Checkstyle, PMD, etc) et de charger le tout en base de données. Squale est d'ailleurs "scalable" et plusieurs instances de Squalix peuvent tourner simultanément sur des sites et des serveurs différents, en remplissant le même référentiel ;
  • SqualeWeb, application web permettant de restituer les données et naviguer dans les résultats via le modèle qualité, l'organisation des sources, visualiser l'évolution dans le temps, etc. Il gère aussi plutôt finement les droit utilisateurs, afin d'éviter que tout le monde voit les résultats du petit copain, et il est capable de se brancher sur un annuaire d'entreprise si besoin.
La communication entre les deux composants se fait via la base de données.
  • # Plugin C

    Posté par . Évalué à 2.

    Quelqu'un a essaye le plu-gin C commercial [c'est mal] ? Il existe rien de libre ?

    J'ai besoin d'un outil de vérification de quelques règles sur mon développement et j'aimerai pas réinventer la roue :-)

    a votre bon cœur
    • [^] # Re: Plugin C

      Posté par (page perso) . Évalué à 2.

      Squale, en lui même, ne fait aucune vérification de règles ni de calcul de métriques sur le code source.. Il fournit des plugins libres (pour le moment, tous ceux je connais sont sous la même licence que le projet, LGPL v3) pour "piloter" des outils (lancer et charger les résultats en base), indépendants de Squale, qui eux font des vérifications de règles ou du calcul de métriques. Ces outils peuvent être libres ou propriétaires (Par contre, je ne vois pas pourquoi « commercial [c'est mal] »...)

      En Java, il y a pléthore d'outils libres et librement téléchargeables (Checkstyle, PMD, JavaNCSS, JDepend, etc.) et Squale propose déjà des plugins pour ceux-ci.
      En C/C++, à ma connaissance, il n'y a pour le moment que des plugins vers des outils commerciaux (et certainement propriétaires pour la plupart), notamment McCabe, RSM, etc. plugins développés par des entreprises qui ont ces outils. Mais je pense qu'il est tout à fait possible de développer un plugin pour des outils non proprios. Wikipédia en fournit une liste ici : en:List_of_tools_for_static_code_analysis (Pas de page équivalente en français, c'est d'ailleurs ce dernier lien qui répond peut-être le plus à ta question.)
  • # Présentation de Squale et autres outils au JUG

    Posté par (page perso) . Évalué à 2.

    Le 15 septembre dernier, le JUG organisait une soirée sur la qualité logicielle afin d'en tirer un panorama des outils sur la partie Java, avec Squale, mais aussi Sonar, SonarJ, Checkstyle, PMD, etc.

    Un compte-rendu est disponible sur le blog du touilleur express:
    http://www.touilleur-express.fr/2009/09/18/compte-rendu-de-l(...)

    La présentation de Squale est disponible sur slideshare.net : http://www.slideshare.net/bellingard/20090915-squale-au-pari(...) (Flash Inside)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.