{"id":128,"date":"2011-12-30T17:44:19","date_gmt":"2011-12-30T16:44:19","guid":{"rendered":"http:\/\/dev.qualilogy.com\/fr\/?p=128"},"modified":"2013-01-04T17:45:42","modified_gmt":"2013-01-04T16:45:42","slug":"open-source-et-code-legacy","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/open-source-et-code-legacy\/","title":{"rendered":"Open Source et code Legacy"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-724\" title=\"QualOpenSourceLegacy\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2011\/12\/QualOpenSourceLegacy.jpg\" alt=\"\" width=\"250\" height=\"375\" \/><\/a>Il existe de plus en plus de solutions d\u2019analyse de code qui permettent de mesurer la qualit\u00e9 de vos applications. La plupart sont vendues par des \u00e9diteurs logiciels, et nous avons eu l\u2019occasion de v\u00e9rifier que ces solutions co\u00fbtaient cher \u00e0 l\u2019achat, \u00e0 l\u2019impl\u00e9mentation et \u00e0 l\u2019utilisation (<a title=\"Software jetable\" href=\"http:\/\/qualilogy.com\/fr\/software-jetable\" target=\"_blank\">Software jetable<\/a>). Face \u00e0 cela, la derni\u00e8re d\u00e9cennie a vu la mont\u00e9e en puissance du monde Open Source, alternative au logiciel propri\u00e9taire.<\/p>\n<p>J\u2019entends souvent dire au sujet de solutions Open Source en mati\u00e8re de qualit\u00e9 logicielle :<\/p>\n<ul>\n<li>Les outils Open Source ne savent analyser que du Java.<\/li>\n<li>Ils n\u00e9cessitent une forte expertise technique Open Source \/ J2EE.<\/li>\n<li>Ce sont des outils pour d\u00e9veloppeurs. <!--more--><\/li>\n<\/ul>\n<p>Les premiers outils Open Source \u00e0 analyser du code \u2013 citons PMD, FindBugs, Checkstyle \u2013 sont effectivement centr\u00e9s sur le code Java et globalement utilis\u00e9s par des profils d\u00e9veloppeurs. La plateforme Sonar que nous avons utilis\u00e9e dans nos posts pr\u00e9c\u00e9dents pour analyser du code Cobol (<a title=\"Sonar \u2013 Premi\u00e8re analyse\" href=\"http:\/\/qualilogy.com\/fr\/sonar-premiere-analyse\" target=\"_blank\">Sonar \u2013 Premi\u00e8re analyse<\/a>,  <a title=\"Sonar - Analyse Cobol avec Jenkins\" href=\"http:\/\/qualilogy.com\/fr\/analyse-de-code-cobol-avec-sonar-et-jenkins\" target=\"_blank\">Sonar &#8211; Analyse Cobol avec Jenkins<\/a>) propose de nombreux plugins (Open Source ou commerciaux) pour de nombreux langages, pas simplement orient\u00e9s nouvelles technologies, mais \u00e9galement pour des technologies Legacy tels que Cobol, ABAP ou du monde Microsoft.<\/p>\n<p>Nous avons \u00e9galement pu v\u00e9rifier qu\u2019il n\u2019est nul besoin de connaissances techniques approfondies. Nous avons utilis\u00e9 :<\/p>\n<ul>\n<li>Un <a title=\"Sonar - Notre environnement\" href=\"http:\/\/qualilogy.com\/fr\/sonar-notre-environnement\" target=\"_blank\">environnement<\/a> Windows \/ Oracle tr\u00e8s courant dans le monde des entreprises.<\/li>\n<li>Tomcat sous la forme d\u2019un service Windows, pour l&rsquo;<a title=\"Sonar - Installation\" href=\"http:\/\/qualilogy.com\/fr\/sonar-installation\" target=\"_blank\">installation de Sonar<\/a> et de <a title=\"Jenkins - Installation\" href=\"http:\/\/qualilogy.com\/fr\/jenkins-installation\" target=\"_blank\">Jenkins<\/a>.<\/li>\n<li>L&rsquo;int\u00e9gration transparente de Sonar et de Jenkins, gr\u00e2ce au <a title=\"Jenkins - Plugin Sonar\" href=\"http:\/\/qualilogy.com\/fr\/sonar-jenkins-plugin\" target=\"_blank\">plugin Sonar<\/a>.<\/li>\n<li>Le Java Runner de Sonar : il nous permet d\u2019effectuer imm\u00e9diatement des analyses sans n\u00e9cessiter d\u2019autres outils tels que Maven ou Ant, qui eux effectivement n\u00e9cessitent quelques connaissances J2EE.<\/li>\n<\/ul>\n<p>Enfin, nous avons vu dans notre dernier post comment mettre en \u0153uvre un serveur d\u2019analyse pour du code Legacy sur la base d\u2019un socle Sonar \/ Jenkins, et comment nous pouvons organiser notre environnement d\u2019analyse de diff\u00e9rentes mani\u00e8res. Voici quelques cas d\u2019usage pour un tel serveur.<\/p>\n<h3><span style=\"text-decoration: underline\">Quality Gate<\/span><\/h3>\n<p>Chaque nouvelle version applicative est distribu\u00e9e sur notre environnement, dans un r\u00e9pertoire sp\u00e9cifique \u00e0 cette application. Les analyses sont d\u00e9j\u00e0 param\u00e9tr\u00e9es et sont effectu\u00e9es automatiquement depuis Jenkins. Dans le portail Sonar, une alerte peut \u00eatre programm\u00e9e sur la survenance de certains d\u00e9fauts pr\u00e9sentant une certaine criticit\u00e9, qui d\u00e9clenchera un Go \/ NoGo, c\u2019est \u00e0 dire acceptation ou rejet de cette version, pour passer en phase suivante (test ou production).<\/p>\n<h3><span style=\"text-decoration: underline\">Benchmarking de providers<\/span><\/h3>\n<p>Un ensemble de m\u00e9triques sont constitu\u00e9es en Service Level Agreements (accords de niveau de service) pour diff\u00e9rents prestataires effectuant la maintenance de diff\u00e9rentes applications. Le code correspondant \u00e0 chaque correction ou \u00e9volution ou nouvelle version est livr\u00e9e dans notre environnement. Les analyses peuvent \u00eatre effectu\u00e9es manuellement ou automatiquement (par exemple, durant la nuit). Si les m\u00e9triques qui constituent l\u2019accord de service ne sont pas respect\u00e9es, le prestataire peut se voir obliger d\u2019effectuer une nouvelle livraison ou subir certaines p\u00e9nalit\u00e9s pr\u00e9vues dans ce cas. Le responsable en charge de g\u00e9rer ces prestataires dispose dans Sonar des donn\u00e9es objectives qui lui permet, \u00e0 la fin de chaque mois, de comparer la qualit\u00e9 de service de chacun d\u2019entre eux.<\/p>\n<h3><span style=\"text-decoration: underline\">Gouvernance applicative<\/span><\/h3>\n<p>Au niveau de chaque projet, des analyses sont effectu\u00e9es \u00e0 intervalles r\u00e9guliers (chaque semaine par exemple) ind\u00e9pendamment de toute nouvelle version ou \u00e9volution. Les gestionnaires de ces projets peuvent suivre l\u2019\u00e9volution au fil du temps de facteurs tels que la maintenabilit\u00e9, la capacit\u00e9 d\u2019\u00e9volution ou encore la dette technique, facteurs qui impactent directement les co\u00fbts de projet et le time to market. Ces m\u00eames donn\u00e9es sont agr\u00e9g\u00e9es chaque mois ou chaque trimestre au niveau du portefeuille applicatif et examin\u00e9es par la direction informatique.<\/p>\n<p>Ce ne sont l\u00e0 que quelques exemples qui d\u00e9montrent bien que les outils tels que Sonar et Jenkins ne sont pas uniquement pour les d\u00e9veloppeurs, des gurus J2EE ou des applications Java.<\/p>\n<p>Nous aurons l\u2019occasion d\u2019examiner plus en d\u00e9tails ces cas d\u2019utilisation dans nos futurs posts, avec ces outils Open Source et pour des applications Legacy.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il existe de plus en plus de solutions d\u2019analyse de code qui permettent de mesurer la qualit\u00e9 de vos applications. La plupart sont vendues par des \u00e9diteurs logiciels, et nous avons eu l\u2019occasion de v\u00e9rifier que ces solutions co\u00fbtaient cher \u00e0 l\u2019achat, \u00e0 l\u2019impl\u00e9mentation et \u00e0 l\u2019utilisation (Software jetable). Face \u00e0 cela, la derni\u00e8re d\u00e9cennie [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-128","post","type-post","status-publish","format-standard","hentry","category-analyse-de-code"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/128"}],"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=128"}],"version-history":[{"count":2,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/128\/revisions"}],"predecessor-version":[{"id":130,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/128\/revisions\/130"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}