{"id":159,"date":"2012-07-14T10:37:04","date_gmt":"2012-07-14T09:37:04","guid":{"rendered":"http:\/\/dev.qualilogy.com\/es\/?p=159"},"modified":"2013-01-05T10:37:39","modified_gmt":"2013-01-05T09:37:39","slug":"benchmark-de-aplicaciones","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/benchmark-de-aplicaciones\/","title":{"rendered":"Benchmark de aplicaciones"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-2096\" title=\"QualAppBenchmark\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/QualAppBenchmark.jpg\" alt=\"\" width=\"278\" height=\"417\" \/><\/a>Yo pensaba que el post anterior respecto a la evaluaci\u00f3n de la calidad de una aplicaci\u00f3n era el \u00faltimo de nuestra serie en el an\u00e1lisis de c\u00f3digo Cobol con Sonar. Pero he descubierto esta semana un nuevo plugin eXcentia, muy \u00fatil: el <a href=\"https:\/\/servicios.excentia.es\/confluence\/display\/QAX\/SONAR+Benchmark+Plugin\" target=\"_blank\">Sonar Benchmark Plugin<\/a>.<\/p>\n<p>Este plugin permite una evaluaci\u00f3n comparativa \u2013 un benchmark  \u2013  de una aplicaci\u00f3n con todo el c\u00f3digo en tu repositorio de S\u00f3nar.<\/p>\n<p>\u00bfTe acuerdas de que hemos analizado diferentes aplicaciones Cobol, con las que he creado una <a href=\"http:\/\/qualilogy.com\/es\/tu-proprio-modelo-de-calidad\" target=\"_blank\">View Sonar<\/a>. Con esta View, hemos realizado una <a href=\"http:\/\/qualilogy.com\/es\/auditoria-de-codigo-cobol-con-sonar-12\" target=\"_blank\">evaluaci\u00f3n de la calidad de una aplicaci\u00f3n<\/a>, no la m\u00e1s voluminosa, pero que ten\u00eda un n\u00famero importante de violaci\u00f3nes.<\/p>\n<p>Luego, hemos visto los valores que nos permiten realizar nuestra evaluaci\u00f3n y proponer recomendaciones. Pero \u00bfcomo se mide nuestro proyecto con otras aplicaciones?<\/p>\n<p>Esto es lo que vamos a hacer con este Benchmark Sonar plugin.<!--more--><\/p>\n<h3><strong>Instalaci\u00f3n<\/strong><\/h3>\n<p>La instalaci\u00f3n, como con cualquier plugin de Sonar es muy simple:<\/p>\n<ol>\n<li>Descargar el plugin desde la pesta\u00f1a \u2018Descargar\u2019 del sitio eXcentia, en el directorio <strong>..\/extensions\/plugins\/<\/strong> del entorno Sonar.<\/li>\n<li>Reiniciar Sonar\u2026 et voil\u00e0.<\/li>\n<\/ol>\n<h3><strong>Utilizaci\u00f3n<\/strong><\/h3>\n<p>El plugin viene con su propio cuadro de mando (con la versi\u00f3n 3.1.1 de Sonar que yo uso): elije la aplicaci\u00f3n que deseas y seleccione &#8216;Benchmark&#8217; en la barra de men\u00fa.<\/p>\n<p>Tenemos dos widgets. El primero (Benchmark global) categoriza las applicaciones con valores de clase baja, media y m\u00e1xima.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchLoc1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2103\" title=\"CobolBenchLoc1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchLoc1.jpg\" alt=\"\" width=\"585\" height=\"270\" \/><\/a><\/p>\n<p>Podemos ver que:<\/p>\n<ul>\n<li>El tama\u00f1o medio de los proyectos es de 424.000 l\u00edneas de c\u00f3digo.<\/li>\n<li>La aplicaci\u00f3n m\u00e1s peque\u00f1a tiene 482 l\u00edneas: es el archivo que puedes descargar desde el sitio de Sonar para probar un an\u00e1lisis inicial.<\/li>\n<li>La aplicaci\u00f3n m\u00e1s voluminosa tiene m\u00e1s de 1,6 millones l\u00edneas de c\u00f3digo.<\/li>\n<\/ul>\n<p>Podemos ver de inmediato que tenemos 6 proyectos peque\u00f1os, 2 de tama\u00f1o muy grande, y ninguno de tama\u00f1o intermedio.<\/p>\n<p>\u00bfC\u00f3mo se encuentro nuestra aplicaci\u00f3n en el portafolio de aplicaciones? Esto es lo que nos muestra el segundo widget.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchLoc2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2104\" title=\"CobolBenchLoc2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchLoc2.jpg\" alt=\"\" width=\"583\" height=\"271\" \/><\/a><\/p>\n<p>La forma de esta curva refleja el gr\u00e1fico anterior: la mayor\u00eda de las aplicaciones tiene menos de 200.000 LOC, y con 185.000 l\u00edneas de c\u00f3digo, la nuestra est\u00e1 en los primeros (6\/8) de los seis peque\u00f1os proyectos.<\/p>\n<p>Hemos visto en nuestra evaluaci\u00f3n anterior que esta aplicaci\u00f3n ten\u00eda un nivel de documentaci\u00f3n bastante bajo. Pero este es el caso de la mayor\u00eda de los proyectos con seis aplicaciones bajo 17% de comentarios.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDoc1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2105\" title=\"CobolBenchDoc1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDoc1.jpg\" alt=\"\" width=\"583\" height=\"274\" \/><\/a><\/p>\n<p>Ves c\u00f3mo esta tabla es el inverso exacto del anterior gr\u00e1fico. Bueno, la curva correspondiente tambi\u00e9n ser\u00e1 la imagen inversa de la anterior:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDoc2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2106\" title=\"CobolBenchDoc2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDoc2.jpg\" alt=\"\" width=\"585\" height=\"277\" \/><\/a><\/p>\n<p>Con una tasa del 14,7% de los comentarios, nuestra aplicaci\u00f3n est\u00e1 en el medio (5\/8): es el conjunto entero de las aplicaciones que sufre de una falta de documentaci\u00f3n.<\/p>\n<p>\u00bfTe acuerdas de que nuestra aplicaci\u00f3n presentaba una alta tasa de c\u00f3digo duplicado?<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDup1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2108\" title=\"CobolBenchDup1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDup1.jpg\" alt=\"\" width=\"586\" height=\"274\" \/><\/a><\/p>\n<p>De hecho, este es el caso con la mayor\u00eda de los proyectos: 2 con menos de 20% de l\u00edneas duplicadas y 4 con una tasa de entre 20% y 40%.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDup.2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2109\" title=\"CobolBenchDup.2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchDup.2.jpg\" alt=\"\" width=\"581\" height=\"272\" \/><\/a><\/p>\n<p>Con el 50% de Copiado-Pegado, nuestro proyecto esta en la cabecera, pero no muy lejos del pelot\u00f3n.<\/p>\n<p>Por \u00faltimo, vimos que nuestra aplicaci\u00f3n no es complicada.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchCC1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2110\" title=\"CobolBenchCC1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchCC1.jpg\" alt=\"\" width=\"583\" height=\"272\" \/><\/a><\/p>\n<p>Este es el caso, con menos de 20 puntos de Complejidad Ciclom\u00e1tica por programa, mientras que la mitad de las aplicaciones se acerca o est\u00e1 por encima de los 100 puntos. Esto refleja la distribuci\u00f3n de las aplicaciones, con un predominio de peque\u00f1as aplicaciones y dos otras muy importantes.<\/p>\n<p>La calidad es bastante correcta, con un promedio de 75% de cumplimiento de las buenas pr\u00e1cticas Cobol &#8230;<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchRule1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2111\" title=\"CobolBenchRule1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchRule1.jpg\" alt=\"\" width=\"585\" height=\"273\" \/><\/a><\/p>\n<p>\u2026 y 5 aplicaciones por encima del 80%. 3 proyectos son m\u00e1s bajos de este promedio, con nuestro &#8230;<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchRule2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2112\" title=\"CobolBenchRule2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchRule2.jpg\" alt=\"\" width=\"584\" height=\"271\" \/><\/a><\/p>\n<p>\u2026 de nuevo en los ultimos.<\/p>\n<h3><strong>Personalizar un dashboard<\/strong><\/h3>\n<p>Puedes crear tus propios widgets con las m\u00e9tricas que encuentras interesante.<\/p>\n<p>En el ejemplo siguiente, tengo un cuadro de mando personalizado para el management, con dos widgets que muestran el coste de remediaci\u00f3n de los defectos &#8216;Blockers&#8217; y &#8216;Cr\u00edtical&#8217;, centrados en nuestro Modelo de Calidad en rendimiento y fiabilidad, pues en los defectos que presentan los m\u00e1s de riesgo para los usuarios.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchCost1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2119\" title=\"CobolBenchCost1\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchCost1.jpg\" alt=\"\" width=\"588\" height=\"272\" \/><\/a><\/p>\n<p>El coste promedio de resoluci\u00f3n de estos defectos es de 135 d\u00edas por aplicaci\u00f3n.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchRule21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-2115\" title=\"CobolBenchRule2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/07\/CobolBenchRule21.jpg\" alt=\"\" width=\"584\" height=\"271\" \/><\/a><\/p>\n<p>Con 56 d\u00edas, nuestro proyecto es uno de los primeros candidatos para una refactorizaci\u00f3n.<\/p>\n<p>Ya dije en el post anterior que el management te agradecer\u00e1 si puedes proporcionar la informaci\u00f3n para facilitar la toma de decisiones. Por ejemplo:<\/p>\n<ul>\n<li>\u00bfRepresenta este proyecto una excepci\u00f3n en el portafolio de aplicaciones?<\/li>\n<li>\u00bfPodemos distinguir tendencias especificas de esta aplicaci\u00f3n que podr\u00edan necesitar la adopci\u00f3n de ciertas medidas?<\/li>\n<li>\u00bfO al contrario, una particularidad de este c\u00f3digo se puede encontrar en todas las otras aplicaciones?<\/li>\n<\/ul>\n<p>Por ejemplo, esta aplicaci\u00f3n tiene un resultado mediocre en t\u00e9rminos de documentaci\u00f3n, pero se encuentra en la media de todas las aplicaciones que, adem\u00e1s, poseen tambien un promedio de 40% de c\u00f3digo duplicado. Si el management est\u00e1 considerando una externalizaci\u00f3n completa de su portafolio de aplicaciones, puedes explicarle que el coste de tal estrategia puede ser mayor que los beneficios esperados.<\/p>\n<p>Otra situaci\u00f3n: el management debe hacer frente a usuarios descontentos por el n\u00famero de errores en esas aplicaciones o su bajo rendimiento, y te pide que propongas un plan de refactorizaci\u00f3n. Esta aplicaci\u00f3n es un buen candidato para tal operaci\u00f3n: aunque no es grande, sin embargo hay aplicaciones m\u00e1s peque\u00f1as pero m\u00e1s complejas y con un coste superior de remediaci\u00f3n.<\/p>\n<p>Proponga una refactorizaci\u00f3n en dos fases: limpieza de los programas duplicados y un nuevo an\u00e1lisis para identificar los defectos bloqueantes y cr\u00edticos que corregir.<\/p>\n<p>Vender el valor de tus an\u00e1lisis se basa en ofrecer una informaci\u00f3n objetiva para facilitar la decisi\u00f3n. El plugin de eXcentia plugin puede mejorar tu evaluaci\u00f3n de la calidad de las aplicaciones y proponer soluciones basadas en una informaci\u00f3n objetiva y exacta.<\/p>\n<p>Una herramienta esencial para cualquier auditoria.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yo pensaba que el post anterior respecto a la evaluaci\u00f3n de la calidad de una aplicaci\u00f3n era el \u00faltimo de nuestra serie en el an\u00e1lisis de c\u00f3digo Cobol con Sonar. Pero he descubierto esta semana un nuevo plugin eXcentia, muy \u00fatil: el Sonar Benchmark Plugin. Este plugin permite una evaluaci\u00f3n comparativa \u2013 un benchmark \u2013 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-159","post","type-post","status-publish","format-standard","hentry","category-sonar-360"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/159"}],"collection":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/comments?post=159"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/159\/revisions"}],"predecessor-version":[{"id":160,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/159\/revisions\/160"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=159"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}