{"id":151,"date":"2012-06-29T10:22:39","date_gmt":"2012-06-29T09:22:39","guid":{"rendered":"http:\/\/dev.qualilogy.com\/es\/?p=151"},"modified":"2013-01-05T10:23:21","modified_gmt":"2013-01-05T09:23:21","slug":"tu-proprio-modelo-de-calidad","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/tu-proprio-modelo-de-calidad\/","title":{"rendered":"Tu proprio modelo de Calidad"},"content":{"rendered":"<p><a href=\"http:\/\/vicken.deviantart.com\/\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1957\" title=\"QualSonarQualityModel\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualSonarQualityModel.jpg\" alt=\"\" width=\"310\" height=\"461\" \/><\/a>Una regla se conoce o no. Una &#8216;best practice&#8217; se aplica o no. Pero si no se aplica, \u00bfes porque no es aplicable o porque no es conocida?<\/p>\n<p>Debes presentar los resultados de tus primeros an\u00e1lisis Cobol y, por supuesto, quieres demostrar el valor de estos an\u00e1lisis a los equipos de proyectos, proveedores, stakeholders, etc.<\/p>\n<p>Esto requiere la definici\u00f3n de un modelo de medici\u00f3n de la calidad \u2013 un conjunto de reglas y niveles de criticidad \u2013 que permite la r\u00e1pida identificaci\u00f3n de las malas pr\u00e1cticas m\u00e1s costosas y peligrosas. Obviamente ser\u00eda un fracaso denunciar una violaci\u00f3n a una &#8216;mejor pr\u00e1ctica&#8217; que no est\u00e1 aplicable \u2013 por ejemplo, el uso de SQL (ver. <a href=\"http:\/\/qualilogy.com\/es\/sonar-cobol-reglas-cobol\" target=\"_blank\">nuestro \u00faltimo post<\/a>).<\/p>\n<p>\u00bfCu\u00e1les son las reglas aplicables? \u00bfCu\u00e1l de los umbrales de severidad elegir? C\u00f3mo ajustar el modelo de Calidad en un <a href=\"http:\/\/qualilogy.com\/es\/quality-profile\" target=\"_blank\">Quality profile Sonar<\/a> para las aplicaciones Cobol ?<\/p>\n<div id=\"gt-res-content\">\n<p dir=\"ltr\">Vamos a mostrar en este post c\u00f3mo configurar tu propio modelo calidad, con una View Sonar y un widget muy \u00fatil. <img decoding=\"async\" title=\"More...\" src=\"http:\/\/qualilogy.com\/wp-includes\/js\/tinymce\/plugins\/wordpress\/img\/trans.gif\" alt=\"\" \/><!--more--><\/p>\n<\/div>\n<h3><strong>Entregar el valor<br \/>\n<\/strong><\/h3>\n<p>El an\u00e1lisis de c\u00f3digo Cobol en <a href=\"http:\/\/qualilogy.com\/es\/sonar-cobol-reglas-cobol\" target=\"_blank\">nuestro \u00faltimo post<\/a> nos ense\u00f1o dos tipos diferentes de valores cuando se mide el n\u00famero de violaci\u00f3nes de una regla:<\/p>\n<ul>\n<li>Un n\u00famero muy elevado, hasta varios miles o decenas de miles: la regla probablemente no es aplicable y probablemente se deber\u00eda excluir de nuestro modelo de Calidad.<\/li>\n<li>Un n\u00famero muy bajo: la regla es conocida y aplicada, pero nunca se puede evitar la falta de atenci\u00f3n por parte de los desarrolladores, y algunos defectos con consecuencias que pueden ser muy graves para los usuarios finales.<\/li>\n<\/ul>\n<p>Sin embargo, hay excepciones espec\u00edficas al modelo de Calidad Cobol, como el IF sin END-IF, mala pr\u00e1ctica tan antigua que no se puede culpar a los actuales desarrolladores. Hemos visto que en este caso, se puede reducir la gravedad de esta regla.<\/p>\n<p>Tambi\u00e9n podemos proponer de \u200b\u200bsubir la criticidad de unas reglas: por ejemplo, para la norma que proh\u00edbe la instrucci\u00f3n SORT de &#8216;Critical&#8217; \u00e0 &#8216;Blocker&#8217;. Aqu\u00ed es donde una herramienta de an\u00e1lisis de c\u00f3digo muestra todas sus ventajas: en la detecci\u00f3n autom\u00e1tica de un n\u00famero limitado de defectos graves o criticos que pueden corregirse f\u00e1cilmente. Esta es una de las maneras m\u00e1s seguras para transformar los resultados de tus an\u00e1lisis en valor para tu audiencia.<\/p>\n<p>Para construir un modelo de Calidad que maximice este valor, debes tomar las decisiones correctas sin conocer las &#8216;best practices&#8217; aplicables. Para descubrirlas, puedes:<\/p>\n<ul>\n<li>Pedir los est\u00e1ndares de programaci\u00f3n Cobol. Muy a menudo no existe tal documento, y cuando existe, es muy a menudo obsoleto.<\/li>\n<li>Realizar una lista de todas las reglas Cobol y organizar una reuni\u00f3n con los equipos Cobol para definir cuales son aplicables. Se puede pasar mucho tiempo explicando reglas que no se aplican y que no dominas bien si tu conocimiento del mundo Mainframe es limitado.<\/li>\n<li>Revisar los resultados de tus an\u00e1lisis para identificar las reglas aplicables, y definir un modelo de calidad que presentar.<\/li>\n<\/ul>\n<h3><strong>Plugin Views<\/strong><\/h3>\n<p>Vamos a crear una vista (View) que incluye todos nuestros an\u00e1lisis Cobol, con el plugin Views. Conectarse com\u00f3 &#8216;Admin&#8217;, e ir al men\u00fa &#8216;Configuration&#8217; y \u2018Views\u2019.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolViewCreate.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1975\" title=\"QualCobolViewCreate\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolViewCreate.jpg\" alt=\"\" width=\"424\" height=\"329\" \/><\/a><\/p>\n<p>He creado una &#8216;View Cobol&#8217; que agrupa los proyectos ya analizados. Tengo que analizar de nuevo al menos uno de estos proyectos para que aparezca la vista Cobol en el dashboard Sonar. Aqu\u00ed est\u00e1n los resultados: <a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolViewResult.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1977\" title=\"QualCobolViewResult\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolViewResult.jpg\" alt=\"\" width=\"684\" height=\"399\" \/><\/a><\/p>\n<p>Como puedes ver, tenemos aqu\u00ed una buena muestra: aplicaciones de diferentes tama\u00f1os,  m\u00e1s de 5 millones de l\u00edneas Cobol con m\u00e1s de 3,3 millones de l\u00edneas de c\u00f3digo en 6.714 archivos. S\u00f3lo una aplicaci\u00f3n no est\u00e1 en rojo, las otras tienen un grado de cumplimiento de la reglas Cobol cerca del cero absoluto.<\/p>\n<h3><strong>Widget &#8216;Most violated rules&#8217;<br \/>\n<\/strong><\/h3>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRulest.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1978\" title=\"QualCobolWidgetRulest\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRulest.jpg\" alt=\"\" width=\"288\" height=\"27\" \/><\/a>Estamos ya conectados como &#8216;Administrador&#8217; lo que nos permiter a\u00f1adir un widget que nos ser\u00e1 muy \u00fatil.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1980\" title=\"QualCobolWidgetRules2\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules2.jpg\" alt=\"\" width=\"281\" height=\"94\" \/><\/a>Seleccione &#8216;Configurar Widgets&#8217; en el men\u00fa, y a continuaci\u00f3n en la lista de widgets, a\u00f1ade el widget &#8216;Most violated rules&#8217; en el cuadro de mando Sonar: la lista de las reglas con la mayor\u00eda de violaci\u00f3nes.<\/p>\n<p>El men\u00fa &#8216;Edit&#8217; del widget nos permite cambiar la configuraci\u00f3n, por ejemplo para mostrar las 15 reglas con defectos m\u00e1s frecuentes:<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1981\" title=\"QualCobolWidgetRules3\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules3.jpg\" alt=\"\" width=\"583\" height=\"142\" \/><\/a>&#8216;Save&#8217; para guardar este parametro, y &#8216;Back to dashboard&#8217; para conocer las 15 reglas con el mayor n\u00famero de violaci\u00f3nes.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1982\" title=\"QualCobolWidgetRules4\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules4.jpg\" alt=\"\" width=\"563\" height=\"398\" \/><\/a>Entiendes ahora por qu\u00e9 casi todas las aplicaciones se encuentran en rojo. Si ense\u00f1as este dashboard a los equipos de proyecto y a tus contactos, ellos te dir\u00e1n que tus an\u00e1lisis no tienen valor, ya que toman en cuenta reglas que no se aplican. Los defectos m\u00e1s graves y que son los que tienes que ense\u00f1ar est\u00e1n perdidos dentro de reglas que no se aplican.<\/p>\n<h3><strong>Selecci\u00f3n de reglas<br \/>\n<\/strong><\/h3>\n<p>Este widget va a ser muy \u00fatil para identificar las reglas que de inmediato se pueden excluir de nuestro modelo de Calidad:<\/p>\n<ul>\n<li>COMP (COMPUTATIONAL) es un tipo de datos que permite que el compilador elige la asignaci\u00f3n en memoria de estos datos. Como los compiladores son diferentes entre plataformas, esta cl\u00e1usula puede causar problemas de portabilidad. Sin embargo, la migraci\u00f3n de sistemas de aplicaciones entre los diferentes mainframes se produce muy raramente, as\u00ed que esta regla no suele ser motivo de preocupaci\u00f3n. Adem\u00e1s, este formato es preferible porque m\u00e1s eficiente a nivel de rendimiento, por el compilador.<\/li>\n<li>&#8216;Magic Literal&#8217; \/ &#8216;Magic Number&#8217; son \u2018best practices\u2019 que recomendan el uso de constantes. Estas no son reglas espec\u00edficas al Cobol, se encuentran en muchos lenguajes pero no tanto en el mundo Mainframe.<\/li>\n<li>&#8216;Using paragraphs&#8217;, &#8216;Perform Paragraph \/ Section&#8217;. Son reglas de estructuraci\u00f3n de c\u00f3digo Cobol, y con m\u00e1s de 100.000 violaci\u00f3nes, claro que no se aplican aqu\u00ed. Tambi\u00e9n se excluyen mutuamente entre s\u00ed.<\/li>\n<\/ul>\n<p>Una vez m\u00e1s, no vamos a empezar un curso Cobol y aclarar estas normas. El objetivo es demostrar que con nuestra &#8216;View Cobol&#8217; y este widget, podemos r\u00e1pidamente definir nuestro propio modelo de Calidad. Las primeras 5 reglas mencionadas anteriormente se pueden desactivar sin ning\u00fan problema.<\/p>\n<p>Otras ventajas del widget \u2018Most violated rules\u2019:<\/p>\n<ul>\n<li>Seleccionar un nivel de severidad con el fin de notar las reglas que excluir o para las cuales pensamos cambiar el umbral de criticidad.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1984\" title=\"QualCobolWidgetRules5\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules5.jpg\" alt=\"\" width=\"575\" height=\"255\" \/><\/a>Aqu\u00ed encontramos las tres primeras reglas &#8216;Critical&#8217; que hab\u00edamos deseado quitar del modelo de Calidad en <a href=\"http:\/\/qualilogy.com\/es\/sonar-cobol-reglas-cobol\" target=\"_blank\">nuestro \u00faltimo post<\/a>. Hemos tomado nota tambi\u00e9n de pasar la regla &#8216;Avoid using SORT statement&#8217; a &#8216;Blocker&#8217;.<\/p>\n<p>Voy a pasar &#8216;Limit the number of lines in a WHERE clause&#8217; e &#8216;Avoid nested SQL SELECT statements&#8217; a una criticidad &#8216;Major&#8217;: estas &#8216;best practices&#8217; sin duda criticas para la lejibilidad y la mantenabilidad del c\u00f3digo no impactan a los usuarios. Ahora quiero centrar el valor de mi modelo de Calidad en los defectos que presentan el mayor riesgo para los usuarios y en mejores pr\u00e1cticas de robustez y rendimiento. Por ejemplo, probablemente voy a subir unas cuantas reglas SQL a mayor gravedad.<\/p>\n<ul>\n<ul>\n<li>Seleccionar una regla para comprobar qu\u00e9 aplicaciones de la View Cobol la aplican o no.<\/li>\n<\/ul>\n<\/ul>\n<p><a href=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1986\" title=\"QualCobolWidgetRules6\" src=\"http:\/\/qualilogy.com\/wp-content\/uploads\/2012\/06\/QualCobolWidgetRules6.jpg\" alt=\"\" width=\"451\" height=\"273\" \/><\/a>Aqu\u00ed podemos ver que la norma que proh\u00edbe el uso de consultas SQL se refiere s\u00f3lo a cuatro de las siete aplicaciones Cobol. Tenemos aqu\u00ed un ejemplo de una regla que se aplicar\u00e1 de manera diferente entre diferentes equipos.<\/p>\n<h3><strong>Tu proprio modelo de Calidad<br \/>\n<\/strong><\/h3>\n<p>Con una View Sonar y el widget &#8216;Most violated rules&#8217;, puedes definir f\u00e1cilmente la calidad de tu propio modelo en menos de una hora, aun sin ser un experto en el mundo Mainframe.<\/p>\n<p>Puedes identificar claramente las reglas que no se aplican, basandote en el n\u00famero de defectos encontrados. Puedes centrarte en las reglas con pocas violaci\u00f3nes que son probablemente conocidas y aplicadas por los equipos Cobol.<\/p>\n<p>Se necesita una muestra lo suficientemente grande para que el n\u00famero de defectos adquiere sentido. Analizar m\u00faltiples aplicaciones y agregarlas en una vista de S\u00f3nar.<\/p>\n<p>Elige un eje de valores para tu p\u00fablico:<\/p>\n<ul>\n<li>Reducir el riesgo de errores para los usuarios: elegir las normas que afectan a la fiabilidad de las aplicaciones y el rendimiento.<\/li>\n<li>Reducir los costes de mantenimiento: favorecer reglas que afectan la mantenibilidad y la legibilidad del c\u00f3digo.<\/li>\n<\/ul>\n<p>2 posts para mejor entender este punto: <a href=\"http:\/\/qualilogy.com\/es\/cual-es-la-primera-pregunta\" target=\"_blank\">\u00bfCu\u00e1l es la primera pregunta?<\/a> et <a href=\"http:\/\/qualilogy.com\/es\/best-of-both-worlds\" target=\"_blank\">Best of both worlds<\/a>. Para destacar unas reglas, pasarlas a &#8216;Critical&#8217; o &#8216;Blockers&#8217;.<\/p>\n<p>Definir un <a href=\"http:\/\/qualilogy.com\/es\/quality-profile\" target=\"_blank\">Quality profile Sonar<\/a> para tu propio modelo de Calidad. Volver a analizar las aplicaciones y comprobar los resultados en el dashboard Sonar.<\/p>\n<p>Podr\u00e1s ver inmediatamente que ahora se puede ir directamente al grano en la identificaci\u00f3n de las principales causas de los riesgos y de los costos. M\u00e1s valor para tu presentaci\u00f3n del dashboard Sonar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una regla se conoce o no. Una &#8216;best practice&#8217; se aplica o no. Pero si no se aplica, \u00bfes porque no es aplicable o porque no es conocida? Debes presentar los resultados de tus primeros an\u00e1lisis Cobol y, por supuesto, quieres demostrar el valor de estos an\u00e1lisis a los equipos de proyectos, proveedores, stakeholders, etc. [&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-151","post","type-post","status-publish","format-standard","hentry","category-sonar-360"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/151"}],"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=151"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/151\/revisions"}],"predecessor-version":[{"id":152,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/151\/revisions\/152"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}