{"id":234,"date":"2012-11-04T14:46:36","date_gmt":"2012-11-04T13:46:36","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=234"},"modified":"2013-01-05T14:47:16","modified_gmt":"2013-01-05T13:47:16","slug":"sonar-et-abap","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/sonar-et-abap\/","title":{"rendered":"Sonar et ABAP"},"content":{"rendered":"<p>Mon blog Qualilogy a bient\u00f4t un an (\u00e1 la fin du mois), et s\u2019il n\u2019est pas encore l\u2019heure de faire un bilan, je constate que la quasi totalit\u00e9 des posts que j\u2019ai r\u00e9dig\u00e9s portent sur la qualit\u00e9 du code et des applications et s\u2019adressent majoritairement \u00e0 deux types de publics :<\/p>\n<ul>\n<li>Ceux qui connaissent bien les concepts de la Qualit\u00e9, les diff\u00e9rentes m\u00e9triques et leur utilisation, souvent au-del\u00e0 du domaine de la qualit\u00e9 de code. Ce sont souvent des consultants ou des responsables Qualit\u00e9, avec g\u00e9n\u00e9ralement l\u2019exp\u00e9rience de diverses technologies et langages, capables d\u2019interpr\u00e9ter un tableau de bord et de faire des audits. Cependant, ils ne sont pas tous exp\u00e9riment\u00e9s en mati\u00e8re d&rsquo;utilisation d\u2019outils d\u2019analyse de code, et consid\u00e8rent parfois que le monde J2EE et les outils Open Source restent trop techniques pour eux.<\/li>\n<\/ul>\n<p>Je me suis attach\u00e9 \u00e0 montrer que c\u2019est en fait tr\u00e8s simple, m\u00eame sans connaissances techniques, \u00e0 travers plusieurs articles d\u00e9crivant <a title=\"Installation Sonar\" href=\"http:\/\/qualilogy.com\/fr\/sonar-installation\" target=\"_blank\">l\u2019installation<\/a> et l\u2019utilisation des outils Sonar et <a title=\"Installation Jenkins\" href=\"http:\/\/qualilogy.com\/fr\/jenkins-installation\" target=\"_blank\">Jenkins<\/a>, et les b\u00e9n\u00e9fices des nombreux plugins cr\u00e9\u00e9s et maintenus par la communaut\u00e9 Sonar.<\/p>\n<ul>\n<li>Ceux qui au contraire sont utilisateurs, voire experts, dans l\u2019utilisation de ces outils, qu\u2019ils mettent en \u0153uvre chaque jour sur leurs projets ou sur le portefeuille d\u2019applications J2EE de leur entreprise, mais n\u2019ont pas la l\u2019exp\u00e9rience d\u2019autres technologies. Alors qu\u2019en fait, il suffit d\u2019un minimum de connaissances pour analyser du code autre que J2EE.<\/li>\n<\/ul>\n<p>Voir par exemple, la s\u00e9rie Cobol qui d\u00e9bute par ce post <a title=\"Analyse Cobol avec Sonar\" href=\"http:\/\/qualilogy.com\/fr\/sonar-cobol-ce-quil-faut-savoir\" target=\"_blank\">Analyse de code Cobol \u2013 Ce qu&rsquo;il faut savoir<\/a>.<\/p>\n<p>Comme j\u2019avais pour projet de r\u00e9aliser une s\u00e9rie du m\u00eame type pour la technologie SAP, j\u2019ai demand\u00e9 sa participation \u00e0 quelqu\u2019un qui n\u2019est pas seulement un ami, mais \u00e9galement expert dans le domaine de la qualit\u00e9 et du monde SAP et de l\u2019utilisation des outils d\u2019analyse de code. <!--more--><\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/11\/Qual_Walter.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2549\" title=\"Qual_Walter\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/11\/Qual_Walter.jpg\" alt=\"\" width=\"266\" height=\"361\" \/><\/a>Avec 20 ans d&rsquo;exp\u00e9rience dans la qualit\u00e9 du software, Walter Strobl est Directeur Qualit\u00e9 de Vision IT,  groupe multinational repr\u00e9sent\u00e9 en Espagne par Drago Solutions.<\/p>\n<p>Son expertise couvre plusieurs m\u00e9thodes, techniques et outils appliqu\u00e9s \u00e0 la gestion de la qualit\u00e9 de projet pour de multiples technologies et diff\u00e9rents secteurs : nucl\u00e9aire, a\u00e9rospatiale, d\u00e9fense, industrie, finances, etc.<\/p>\n<p>Aujourd&rsquo;hui, l&rsquo;\u00e9quipe dirig\u00e9e par Walter r\u00e9alise des projets et des analyse de code au niveau international, en s&rsquo;appuyant sur les ressources de la factory de Drago.<\/p>\n<p>Nous allons donc b\u00e9n\u00e9ficier de l&rsquo;exp\u00e9rience de Walter dans l&rsquo;analyse de code ABAP pour notre prochaine s\u00e9rie.<\/p>\n<p><em>Walter, dis-nous bri\u00e8vement comment tu as v\u00e9cu l&rsquo;\u00e9volution de la qualit\u00e9 des logiciels.<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>D&rsquo;abord, merci pour ton temps et cet espace sur ton blog.<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>J&rsquo;ai commence \u00e0 travailler dans le domaine de la qualit\u00e9 du logiciel en 1983, en examinant les m\u00e9thodes et les techniques de qualit\u00e9 dans le hardware pour les transf\u00e9rer \u00e0 celui des applications. Par exemple, le logiciel est cosntruit une unique fois et peut ensuite \u00eatre copi\u00e9 facilement, mais si le code original contient un d\u00e9faut, celui-ci sera dupliqu\u00e9. Alors qu&rsquo;une machine hardware peut conna\u00eetre un probl\u00e8me et la suivante dans la cha\u00eene non.<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Mais les cycles d&rsquo;am\u00e9lioration continue de la qualit\u00e9 de type PDCA (Plan-Do-Check-Act) peuvent s&rsquo;appliquer dans les deux camps. Le mat\u00e9riel et le logiciel n\u00e9cessitent des essais. La fabrication hardware est tr\u00e8s industrialis\u00e9e, alors que le d\u00e9veloppement de logiciels est encore artisanal, ce qui requiert in\u00e9vitablement de mettre en \u0153uvre les meilleures pratiques d&rsquo;architecture, de conception et de programmation adapt\u00e9es aux diff\u00e9rentes technologies utilis\u00e9es (ABAP, Java, .Net, etc.). La mise en place d&rsquo;outils CASE (Ing\u00e9nierie Logicielle Assist\u00e9e par Ordinateur) dans le milieu des ann\u00e9es 80 a popularis\u00e9 l&rsquo;utilisation de dictionnaires de donn\u00e9es et les techniques d&rsquo;analyse et de conception structur\u00e9e.<\/em><\/p>\n<p><em>Quand il n&rsquo;y avait pas d&rsquo;outils, vouz travailliez manuellement ?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>\u00c9videmment. Je me souviens d&rsquo;une anecdote de l&rsquo;\u00e9poque : par un examen manuel d&rsquo;un document de support d&rsquo;exploitation des centrales nucl\u00e9aires espagnol, certaines absences dans cette documentation ont d\u00fb \u00eatre corrig\u00e9es avant l&rsquo;acceptation du syst\u00e8me par le client.<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>La qualit\u00e9 est une activit\u00e9 de faible co\u00fbt et \u00e0 haute efficacit\u00e9. Lors de la conception et la construction du train \u00e0 grande vitesse Madrid-S\u00e9ville (AVE), nous avons effectu\u00e9 des revues de code logiciel, manuellement, par des recherches de texte sur les programmes d\u00e9velopp\u00e9s en C.<br \/>\n<\/em><\/p>\n<p><em>Quelles activit\u00e9s de la qualit\u00e9 logicielle ont \u00e9t\u00e9 automatis\u00e9es en premier?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Les premiers outils dans le domaine de la qualit\u00e9 ont \u00e9t\u00e9 introduits, d&rsquo;abord dans la gestion de la configuration et des changements, puis la gestion des exigences et enfin les outils de test. Ces derni\u00e8res ann\u00e9es ont vu l&rsquo;apparition croissante des outils d&rsquo;audit de code.<\/em><\/p>\n<p><em>Quels sont les avantages des diff\u00e9rentes activit\u00e9s de la qualit\u00e9 et le niveau d&rsquo;effort requis pour en b\u00e9n\u00e9ficier ?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Les activit\u00e9s d&rsquo;assurance qualit\u00e9 des logiciels fournissent respectivement les avantages suivants:<br \/>\n&#8211; Avec les revues de documents, en particulier de sp\u00e9cifications, l&rsquo;effort est assez faible pour le b\u00e9n\u00e9fice obtenu.<br \/>\n&#8211; Les audits des processus de d\u00e9veloppement permettent d&rsquo;assurer le respect des proc\u00e9dures et des normes et d&rsquo;identifier les domaines d&rsquo;am\u00e9lioration de ces proc\u00e9dures. L\u00e1 encore, l&rsquo;effort est relativement faible pour un avantage \u00e0 long terme.<br \/>\n&#8211; L&rsquo;analyse de code vise la conformit\u00e9 avec les meilleures pratiques d&rsquo;architecture, de design et de programmation avec un effort tr\u00e8s faible, et un avantage imm\u00e9diat \u00e0 travers l&rsquo;identification rapide de probl\u00e8mes de performance, de s\u00e9curit\u00e9, de fiabilit\u00e9 et de maintenabilit\u00e9, la r\u00e9duction de l&rsquo;effort de test et l&rsquo;\u00e9limination de bugs potentiels en production.<br \/>\n&#8211; Les tests de qualit\u00e9 que nul n&rsquo;ignore, mais pour lesquels on d\u00e9pense g\u00e9n\u00e9ralement moins que ce qu&rsquo;il faudrait, et qui ne sont pas toujours suffisamment formalis\u00e9s. C&rsquo;est l&rsquo;activit\u00e9 la plus co\u00fbteuse, mais qui permet de veiller \u00e0 la conformit\u00e9 des sp\u00e9cifications fonctionnelles, et parfois, des aspects de s\u00e9curit\u00e9, de capacit\u00e9, etc.<br \/>\n<\/em><\/p>\n<p><em>Quels sont les secteurs et les technologies qui peuvent tirer le meilleur parti de l&rsquo;audit de code ?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Tout d&rsquo;abord, clairement les syst\u00e8mes critiques (a\u00e9ronautique, m\u00e9dical, syst\u00e8mes de commandement et de contr\u00f4le, syst\u00e8mes d&rsquo;exploitation, etc.) car en cas de d\u00e9fauts, des vies humaines sont en jeu. Ensuite, les syst\u00e8mes pour lesquels des d\u00e9faillances logicielles entra\u00eeneront des pertes \u00e9conomiques. Nous avons analys\u00e9 le code, entre autres, de syst\u00e8mes de contr\u00f4le ferroviaire, de gestion commerciale dans le secteur de l&rsquo;\u00e9nergie, les syst\u00e8mes bancaires, les t\u00e9l\u00e9communications, etc., et la conclusion est unanime: l&rsquo;audit de code est la seule fa\u00e7on de mettre en \u0153uvre correctement les meilleures pratiques et d&rsquo;\u00e9viter les erreurs en production.<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Pour les environnements de d\u00e9veloppement logiciel, comme SAP, l&rsquo;analyse de code produit des am\u00e9liorations remarquables. Mais avec un bon choix d&rsquo;outils et un peu d&rsquo;exp\u00e9rience, vous pouvez auditer le code de presque n&rsquo;importe quelle technologie (Java,. Net, PL\/SQL, C, C++, VB, etc.). <\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Ce n&rsquo;est pas la technique qui prime, mais savoir d\u00e9finir un mod\u00e8le d&rsquo;indicateurs de qualit\u00e9 ainsi que les cas d&rsquo;utilisation, notamment dans la mise en oeuvre de processus d&rsquo;int\u00e9gration continue, int\u00e9gr\u00e9s dans le cycle de d\u00e9veloppement, ou d&rsquo;audits p\u00e9riodiques. Et tout cela peut se faire \u00e0 distance. Une derni\u00e8re recommandation : que le nombre de r\u00e8gles consid\u00e9r\u00e9es comme \u00ab\u00a0obligatoires\u00a0\u00bb\u00bb reste en petit nombre, car imposer un trop grand nombre de bonnes pratiques dans un premier temps am\u00e8ne le d\u00e9couragement et l&rsquo;\u00e9chec \u00e0 long terme.<br \/>\n<\/em><\/p>\n<p>Merci Walter pour avoir pris le temps de r\u00e9pondre \u00e0 mes questions.<\/p>\n<p>Dans le prochaine post, nous verrons ce qu&rsquo;il faut savoir du code ABAP pour ensuite, dans un article ult\u00e9rieur, lister les questions \u00e0 poser \u00e0 une \u00e9quipe de projet SAP afin d&rsquo;analyser son code. Ton exp\u00e9rience nous sera certainement tr\u00e8s utile.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mon blog Qualilogy a bient\u00f4t un an (\u00e1 la fin du mois), et s\u2019il n\u2019est pas encore l\u2019heure de faire un bilan, je constate que la quasi totalit\u00e9 des posts que j\u2019ai r\u00e9dig\u00e9s portent sur la qualit\u00e9 du code et des applications et s\u2019adressent majoritairement \u00e0 deux types de publics : Ceux qui connaissent bien [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-234","post","type-post","status-publish","format-standard","hentry","category-sonar-abap"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/234"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":235,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/234\/revisions\/235"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}