Sonar et ABAP

Mon blog Qualilogy a bientôt un an (á la fin du mois), et s’il n’est pas encore l’heure de faire un bilan, je constate que la quasi totalité des posts que j’ai rédigés portent sur la qualité du code et des applications et s’adressent majoritairement à deux types de publics :

  • Ceux qui connaissent bien les concepts de la Qualité, les différentes métriques et leur utilisation, souvent au-delà du domaine de la qualité de code. Ce sont souvent des consultants ou des responsables Qualité, avec généralement l’expérience de diverses technologies et langages, capables d’interpréter un tableau de bord et de faire des audits. Cependant, ils ne sont pas tous expérimentés en matière d’utilisation d’outils d’analyse de code, et considèrent parfois que le monde J2EE et les outils Open Source restent trop techniques pour eux.

Je me suis attaché à montrer que c’est en fait très simple, même sans connaissances techniques, à travers plusieurs articles décrivant l’installation et l’utilisation des outils Sonar et Jenkins, et les bénéfices des nombreux plugins créés et maintenus par la communauté Sonar.

  • Ceux qui au contraire sont utilisateurs, voire experts, dans l’utilisation de ces outils, qu’ils mettent en œuvre chaque jour sur leurs projets ou sur le portefeuille d’applications J2EE de leur entreprise, mais n’ont pas la l’expérience d’autres technologies. Alors qu’en fait, il suffit d’un minimum de connaissances pour analyser du code autre que J2EE.

Voir par exemple, la série Cobol qui débute par ce post Analyse de code Cobol – Ce qu’il faut savoir.

Comme j’avais pour projet de réaliser une série du même type pour la technologie SAP, j’ai demandé sa participation à quelqu’un qui n’est pas seulement un ami, mais également expert dans le domaine de la qualité et du monde SAP et de l’utilisation des outils d’analyse de code.

Avec 20 ans d’expérience dans la qualité du software, Walter Strobl est Directeur Qualité de Vision IT, groupe multinational représenté en Espagne par Drago Solutions.

Son expertise couvre plusieurs méthodes, techniques et outils appliqués à la gestion de la qualité de projet pour de multiples technologies et différents secteurs : nucléaire, aérospatiale, défense, industrie, finances, etc.

Aujourd’hui, l’équipe dirigée par Walter réalise des projets et des analyse de code au niveau international, en s’appuyant sur les ressources de la factory de Drago.

Nous allons donc bénéficier de l’expérience de Walter dans l’analyse de code ABAP pour notre prochaine série.

Walter, dis-nous brièvement comment tu as vécu l’évolution de la qualité des logiciels.

D’abord, merci pour ton temps et cet espace sur ton blog.

J’ai commence à travailler dans le domaine de la qualité du logiciel en 1983, en examinant les méthodes et les techniques de qualité dans le hardware pour les transférer à celui des applications. Par exemple, le logiciel est cosntruit une unique fois et peut ensuite être copié facilement, mais si le code original contient un défaut, celui-ci sera dupliqué. Alors qu’une machine hardware peut connaître un problème et la suivante dans la chaîne non.

Mais les cycles d’amélioration continue de la qualité de type PDCA (Plan-Do-Check-Act) peuvent s’appliquer dans les deux camps. Le matériel et le logiciel nécessitent des essais. La fabrication hardware est très industrialisée, alors que le développement de logiciels est encore artisanal, ce qui requiert inévitablement de mettre en œuvre les meilleures pratiques d’architecture, de conception et de programmation adaptées aux différentes technologies utilisées (ABAP, Java, .Net, etc.). La mise en place d’outils CASE (Ingénierie Logicielle Assistée par Ordinateur) dans le milieu des années 80 a popularisé l’utilisation de dictionnaires de données et les techniques d’analyse et de conception structurée.

Quand il n’y avait pas d’outils, vouz travailliez manuellement ?

Évidemment. Je me souviens d’une anecdote de l’époque : par un examen manuel d’un document de support d’exploitation des centrales nucléaires espagnol, certaines absences dans cette documentation ont dû être corrigées avant l’acceptation du système par le client.

La qualité est une activité de faible coût et à haute efficacité. Lors de la conception et la construction du train à grande vitesse Madrid-Séville (AVE), nous avons effectué des revues de code logiciel, manuellement, par des recherches de texte sur les programmes développés en C.

Quelles activités de la qualité logicielle ont été automatisées en premier?

Les premiers outils dans le domaine de la qualité ont été introduits, d’abord dans la gestion de la configuration et des changements, puis la gestion des exigences et enfin les outils de test. Ces dernières années ont vu l’apparition croissante des outils d’audit de code.

Quels sont les avantages des différentes activités de la qualité et le niveau d’effort requis pour en bénéficier ?

Les activités d’assurance qualité des logiciels fournissent respectivement les avantages suivants:
– Avec les revues de documents, en particulier de spécifications, l’effort est assez faible pour le bénéfice obtenu.
– Les audits des processus de développement permettent d’assurer le respect des procédures et des normes et d’identifier les domaines d’amélioration de ces procédures. Lá encore, l’effort est relativement faible pour un avantage à long terme.
– L’analyse de code vise la conformité avec les meilleures pratiques d’architecture, de design et de programmation avec un effort très faible, et un avantage immédiat à travers l’identification rapide de problèmes de performance, de sécurité, de fiabilité et de maintenabilité, la réduction de l’effort de test et l’élimination de bugs potentiels en production.
– Les tests de qualité que nul n’ignore, mais pour lesquels on dépense généralement moins que ce qu’il faudrait, et qui ne sont pas toujours suffisamment formalisés. C’est l’activité la plus coûteuse, mais qui permet de veiller à la conformité des spécifications fonctionnelles, et parfois, des aspects de sécurité, de capacité, etc.

Quels sont les secteurs et les technologies qui peuvent tirer le meilleur parti de l’audit de code ?

Tout d’abord, clairement les systèmes critiques (aéronautique, médical, systèmes de commandement et de contrôle, systèmes d’exploitation, etc.) car en cas de défauts, des vies humaines sont en jeu. Ensuite, les systèmes pour lesquels des défaillances logicielles entraîneront des pertes économiques. Nous avons analysé le code, entre autres, de systèmes de contrôle ferroviaire, de gestion commerciale dans le secteur de l’énergie, les systèmes bancaires, les télécommunications, etc., et la conclusion est unanime: l’audit de code est la seule façon de mettre en œuvre correctement les meilleures pratiques et d’éviter les erreurs en production.

Pour les environnements de développement logiciel, comme SAP, l’analyse de code produit des améliorations remarquables. Mais avec un bon choix d’outils et un peu d’expérience, vous pouvez auditer le code de presque n’importe quelle technologie (Java,. Net, PL/SQL, C, C++, VB, etc.).

Ce n’est pas la technique qui prime, mais savoir définir un modèle d’indicateurs de qualité ainsi que les cas d’utilisation, notamment dans la mise en oeuvre de processus d’intégration continue, intégrés dans le cycle de développement, ou d’audits périodiques. Et tout cela peut se faire à distance. Une dernière recommandation : que le nombre de règles considérées comme « obligatoires »» reste en petit nombre, car imposer un trop grand nombre de bonnes pratiques dans un premier temps amène le découragement et l’échec à long terme.

Merci Walter pour avoir pris le temps de répondre à mes questions.

Dans le prochaine post, nous verrons ce qu’il faut savoir du code ABAP pour ensuite, dans un article ultérieur, lister les questions à poser à une équipe de projet SAP afin d’analyser son code. Ton expérience nous sera certainement très utile.

 

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 *