Benchmark d’applications

Je pensais que le post précédent sur l’évaluation de la qualité d’une application était le dernier de notre série sur l’analyse de code Cobol avec Sonar. Mais j’ai découvert cette semaine un nouveau plugin de eXcentia, très utile dans le cadre d’un assessment : Sonar Benchmark Plugin.

Ce plugin permet une évaluation comparative – un benchmark – d’une application par rapport à l’ensemble du code présent dans votre référentiel Sonar.

Vous vous rappelez que j’ai analysé différentes applications Cobol, avec lesquelles j’ai créé une View Sonar. Sur la base de cette vue, nous avons effectué une évaluation de la qualité d’une application, pas forcément la plus volumineuse, mais qui présentait un nombre important de violations.

Pour celle-ci, nous avons mis en avant un ensemble de valeurs qui nous ont permis d’effectuer notre assessment et formuler plusieurs recommandations. Mais que vaut-elle par rapport aux autres applications existantes ?

C’est ce que nous allons voir avec ce plugin Sonar Benchmark.

Installation

L’installation, comme pour tout plugin Sonar, est très simple :

  1. Downloader le plugin depuis l’onglet ‘Descargar’ dans le répertoire ../extensions/plugins/ de votre installation Sonar.
  2. Redémarrer Sonar… et voilà.

Utilisation

Le plugin vient avec son propre tableau de bord (avec la version Sonar 3.1.1 que j’utilise) : choisissez l’application que vous souhaitez ‘benchmarker’ et sélectionnez le menu ‘Benchmark’ dans la barre de menu.

Nous disposons de deux widgets. Le premier (Benchmark Global) classe les applications par rapport à des valeurs minimale, moyenne et maximale.

Nous pouvons voir ainsi que :

  • La taille moyenne des projets de notre portefeuille applicatif est de 424 000 lignes de code.
  • L’application de plus petite taille comporte 482 lignes : il s’agit du fichier de test que nous avons downloadé depuis le site de Sonar pour effectuer notre première analyse.
  • L’application la plus importante comporte plus d’1.6 millions de lignes de code.

Nous pouvons voir immédiatement que nous avons 6 projets de petite taille, 2 de taille très importante, et aucune application de taille intermédiaire.

Comment se situe notre application dans ce portefeuille applicatif ? C’est ce que nous montre le second widget.

La forme de cette courbe reflète le graphique précédent : la plupart des applications se situe sous les 200 000 LOC, et avec 185 000 lignes de code, la notre se situe en-tête (6/8) des 6 projets de petite taille.

Nous avions vu lors de notre assessment que cette application avait un niveau de documentation assez peu élevé. Mais c’est le cas de la plupart des projets avec 6 applications sous les 17% de taux de commentaires.

Vous voyez comme ce graphique est l’exact inverse du précédent. Et bien la courbe correspondante sera également l’image inverse de la précédente :

Avec un taux de commentaires de 14.7%, notre application se trouve dans la moyenne (5/8) : c’est l’ensemble du portefeuille applicatif qui souffre d’un défaut de documentation.

Vous vous rappelez que notre application comportait un taux élevé de code dupliqué.

En fait, c’est le cas de la plupart des projets : 2 avec moins de 20% de lignes dupliquées et 4 avec un taux entre 20% et 40%.

Avec 50% de de Copié-Collé, notre projet est en tête sur cette métrique mais pas très loin du reste du peloton.

Enfin, nous avions dit que notre application était peu complexe.

C’est effectivement le cas, avec moins de 20 points de Complexité Cyclomatique par programme, alors que la moitié des applications approche ou dépasse les 100 points. Cela reflète bien la répartition du portefeuille applicatif avec une prédominance d’applications de petite taille et deux applications très importantes.

La qualité du parc applicatif est assez correcte, avec une moyenne de 75% de respect des bonnes pratiques Cobol …

… et 5 applications au-dessus de 80%. 3 projets font baisser cette moyenne, dont le notre …

… là encore parmi les derniers de la classe.

Personnaliser un tableau de bord

L’intérêt de ce plugin est que pouvez créer vos propres widgets avec les métriques que vous estimez intéressantes.

Dans l’exemple suivant, j’ai personnalisé un tableau de bord pour le management avec 2 widgets qui montrent le coût de correction des défauts Blockers et Critical, centrés dans notre Quality Model sur la performance et la fiabilité, donc les défauts les plus risqués pour les utilisateurs.

En moyenne, le coût de résolution de ces défauts est de 135 jours par application, mais 6 projets comptent moins de 126 jours.

Avec 56 jours, notre projet est un des premiers candidats à un refactoring.

Je vous disais dans le post précédent que le management vous serait reconnaissant de lui fournir des informations facilitant la prise de décision.

  • Ce projet constitue-t-il une exception par rapport à l’ensemble du portefeuille applicatif ?
  • Peut-on distinguer des tendances particulières à cette application qui amèneraient à prendre certaines mesures spécifiques ?
  • Ou au contraire, une constatation effectuée sur ce code peut-elle s’étendre à l’ensemble du portefeuille applicatif ?

Par exemple, cette application présente un résultat médiocre en matière de documentation mais se révèle dans la moyenne sur l’ensemble des applications. Egalement, celles-ci comportent en moyenne 40% de code dupliqué. Si le management envisage une stratégie globale d’outsourcing de son parc applicatif, vous pouvez lui expliquer que le coût d’une telle mise en oeuvre risque d’être supérieur aux gains attendus.

Autre situation : le management doit faire face à des utilisateurs mécontents du nombre de bugs dans ces applications ou de leur faible performance et vous demande de leur proposer un plan de refactoring. Cette application est une bonne candidate à une telle opération : quoique peu volumineuse, il existe néanmoins des applications de taille plus réduite mais plus complexes et avec un coût de remédiation plus élevé.

Proposez un refactoring en 2 phases : nettoyage des programmes dupliqués et nouvelle analyse afin d’identifier les défauts bloquants et critiques à corriger.

Vendre la valeur de vos analyses suppose de délivrer des informations objectives qui facilitent la décision. Le plugin Benchmark de eXcentia permet d’affiner votre évaluation de la qualité des applications et de proposer des solutions basées sur des informations objectives et précises.

Un outil indispensable à tout assessment.

 

Ce article est également disponible en Leer este articulo en castellano et Read that post in english.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *