{"id":181,"date":"2012-11-04T14:45:19","date_gmt":"2012-11-04T13:45:19","guid":{"rendered":"http:\/\/dev.qualilogy.com\/es\/?p=181"},"modified":"2013-01-05T14:46:19","modified_gmt":"2013-01-05T13:46:19","slug":"sonar-y-abap","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/es\/sonar-y-abap\/","title":{"rendered":"Sonar y ABAP"},"content":{"rendered":"<p>Mi blog Qualilogy tiene ya casi un a\u00f1o (al final del mes) y me parece que casi todos los art\u00edculos que he escrito tratan de la calidad del de las aplicaciones y se dirigen principalmente a dos tipos de lectores:<\/p>\n<ul>\n<li>Aquellos que est\u00e1n familiarizados con los conceptos de calidad, a menudo m\u00e1s all\u00e1 del mundo de la calidad del c\u00f3digo. Son consultores o responsables de calidad, por lo general con una amplia experiencia de diversas tecnolog\u00edas y lenguajes, capaces de interpretar un cuadro de mandos y hacer auditor\u00edas. Sin embargo, no siempre utilizan herramientas de an\u00e1lisis de c\u00f3digo, y a veces creo que encuentran el mundo J2EE y Open Source demasiado t\u00e9cnicos para ellos.<\/li>\n<\/ul>\n<p>Trat\u00e9 de demostrar que no es tan complicado, incluso sin conocimientos t\u00e9cnicos, a trav\u00e9s de varios art\u00edculos que describen la <a title=\"Instalaci\u00f3n Sonar\" href=\"http:\/\/qualilogy.com\/es\/sonar-instalacion\" target=\"_blank\">instalaci\u00f3n<\/a> y el uso de herramientas <a title=\"Instalaci\u00f3n de Jenkins\" href=\"http:\/\/qualilogy.com\/es\/jenkins-instalacion\" target=\"_blank\">Jenkins<\/a> y Sonar, y los beneficios de los muchos plugins creados y mantenidos por la comunidad Sonar.<\/p>\n<ul>\n<li>Los que en cambio son usuarios o expertos en el uso de estas herramientas, que ponen en pr\u00e1ctica en sus proyectos o en el portafolio de aplicaciones J2EE de su empresa, pero no tienen experiencia con otras tecnolog\u00edas, cuando podr\u00edan analizar otras aplicaciones de esas otras tecnolog\u00edas, con s\u00f3lo un poco de conocimiento.<\/li>\n<\/ul>\n<p>Ver por ejemplo, la serie Cobol empezando en este post <a title=\"An\u00e1lisis Cobol con Sonar\" href=\"http:\/\/qualilogy.com\/es\/sonar-cobol-lo-que-debes-saber\" target=\"_blank\">An\u00e1lisis de c\u00f3digo Cobol \u2013 Lo que debes saber<\/a>.<\/p>\n<p>Como ten\u00eda planes de hacer una serie del mismo tipo para la tecnolog\u00eda de SAP, le ped\u00ed su participaci\u00f3n a alguien que no es s\u00f3lo un amigo, sino tambi\u00e9n un experto en el campo de la calidad, de la tecnolog\u00eda SAP y de las herramientas de an\u00e1lisis de c\u00f3digo.  <!--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>Con 20 a\u00f1os de experiencia en el tema de calidad de software, Walter Strobl es Director de Calidad del grupo multinacional Vision IT Group, cuya representaci\u00f3n en Espa\u00f1a la ostenta Drago Solutions.<\/p>\n<p>Sus conocimientos y experiencia cubren m\u00faltiples m\u00e9todos, t\u00e9cnicas y herramientas de gesti\u00f3n de calidad aplicados en proyectos de m\u00faltiples tecnolog\u00edas y diferentes sectores de actividad: nuclear, aeroespacial, defensa, industria, financiero, etc.<\/p>\n<p>En la actualidad, desde Drago el equipo liderado por Walter est\u00e1 realizando proyectos y prestando servicios de an\u00e1lisis o inspecci\u00f3n de c\u00f3digo a nivel internacional, apoy\u00e1ndose en recursos de la factor\u00eda del software del grupo.<\/p>\n<p>Contamos, pues, en especial con las experiencias de Walter en an\u00e1lisis de c\u00f3digo SAP ABAP para nuestra pr\u00f3xima serie, que reflejamos a continuaci\u00f3n a partir de la entrevista que le hemos realizado recientemente.<\/p>\n<p><em>Walter, cu\u00e9ntanos brevemente c\u00f3mo has vivido la evoluci\u00f3n hist\u00f3rica de la calidad del software.<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Ante todo, agradecerte tu tiempo y este espacio de tu blog.<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Si nos remontamos al a\u00f1o 1983, en el que empiezo a trabajar en calidad del software, lo primero que hice fue revisar los m\u00e9todos y t\u00e9cnicas de la calidad del hardware y su transferibilidad o no, al software, empezando por identificar las diferencias entre software y hardware. Por ejemplo, el software se \u201cfabrica\u201d una sola vez y despu\u00e9s se puede copiar con facilidad; el hardware se fabrica \u201cen cadena\u201d. Si el software original contiene errores, sus copias tambi\u00e9n; mientras que una pieza hardware puede ser defectuosa, y la de al lado, no.<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>As\u00ed, las t\u00e9cnicas de revisi\u00f3n de dise\u00f1o de la ingenier\u00eda convencional son transvasables con ciertas adaptaciones a la revisi\u00f3n documental en el entorno software. Las inspecciones en fabricaci\u00f3n hardware equivalen a inspecci\u00f3n de c\u00f3digo software. Los ciclos de mejora permanente de la calidad PDCA (Plan-Do-Check-Act) se pueden aplicar en ambos campos. Tanto el hardware como el software requieren testing. La fabricaci\u00f3n hardware est\u00e1 muy industrializada, mientras que el desarrollo de software tiene a\u00fan mucho de artesanal; el camino para salir de la producci\u00f3n artesanal del software pasa ineludiblemente por tener y aplicar mejores pr\u00e1cticas de arquitectura, dise\u00f1o y programaci\u00f3n adaptadas a las diferentes tecnolog\u00edas en uso (ABAP, Java, .Net, etc.).<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Los procedimientos de fabricaci\u00f3n se transformaron en procedimientos de producci\u00f3n de software, sobre todo para software cr\u00edtico en los campos aeroespacial, nuclear y defensa. La introducci\u00f3n de las herramientas CASE (Computer Aided Software Engineering) a mediados de la d\u00e9cada de los 80 ha apoyado el uso de los diccionarios de datos, las t\u00e9cnicas estructuradas de an\u00e1lisis y dise\u00f1o, en los que estaban muy de moda las metodolog\u00edas de desarrollo de software. <\/em><\/p>\n<p><em>Cuando no hab\u00eda herramientas disponibles, trabajabais manualmente?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Evidentemente. Recuerdo de esa \u00e9poca una an\u00e9cdota, que respalda absolutamente la utilidad de tareas de aseguramiento de la calidad manuales: a trav\u00e9s de una revisi\u00f3n manual de un documento de usuario de un Sistema de Apoyo a la Operaci\u00f3n de una planta nuclear espa\u00f1ola, la ausencia de cierta documentaci\u00f3n de dise\u00f1o del fabricante, que hubo que subsanar antes de la aceptaci\u00f3n del Sistema por el cliente. <\/em><\/p>\n<p style=\"margin-left: 25px\"><em>La necesidad de revisar la documentaci\u00f3n del software sigue siendo fundamental para identificar errores en fases tempranas del ciclo de vida. Y es una actividad de calidad de bajo coste y alta efectividad muy recomendable.<br \/>\nDurante el dise\u00f1o y la construcci\u00f3n del Tren de Alta Velocidad Madrid-Sevilla (AVE) realizamos actividades de revisi\u00f3n de c\u00f3digo del software de comunicaciones tren-tierra, escrito en C, de forma manual, con cierto apoyo de b\u00fasquedas de texto en ficheros.<br \/>\n<\/em><\/p>\n<p><em>Qu\u00e9 actividades de calidad del desarrollo de software se automatizaron primero?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Seg\u00fan se han ido introduciendo herramientas que apoyan las actividades de calidad, primero en la gesti\u00f3n de configuraci\u00f3n y el control de cambios, despu\u00e9s en la gesti\u00f3n de requisitos, pasando por herramientas de pruebas, ha sido posible automatizar en gran medida el aseguramiento de la calidad de los desarrollos de software. El c\u00edrculo se cierra en los \u00faltimos a\u00f1os con la aparici\u00f3n creciente de herramientas de auditor\u00eda de c\u00f3digo.<\/em><\/p>\n<p><em>\u00bfQu\u00e9 beneficios aportan, en grandes l\u00edneas, las diferentes actividades de aseguramiento de la calidad y cu\u00e1l es el nivel de esfuerzo requerido para alcanzar este beneficio?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Las actividades planificadas y ad hoc de garant\u00eda o aseguramiento de la calidad del software aportan respectivamente los siguientes beneficios: <\/em><\/p>\n<p style=\"margin-left: 25px\"><em><em><em><em>&#8211;    <\/em><\/em>Las revisiones de documentos garantizan en gran medida la coherencia de los documentos entre s\u00ed y en especial con los requisitos; el esfuerzo es muy bajo para el gran beneficio que se obtiene.<\/em><br \/>\n<em> &#8211;    Las auditor\u00edas de los procesos de desarrollo aseguran el cumplimiento de los procedimientos y normas e identifican puntos de mejora de dichos procedimientos; el esfuerzo es bajo, para alcanzar un beneficio a largo plazo.<\/em><br \/>\n<em><em> &#8211;    <\/em><\/em>La inspecci\u00f3n de c\u00f3digo (que tambi\u00e9n llamamos en ocasiones auditor\u00eda o revisi\u00f3n de c\u00f3digo)  busca el cumplimiento de las mejores pr\u00e1cticas de arquitectura, dise\u00f1o y programaci\u00f3n con un esfuerzo muy bajo, obteniendo un beneficio inmediato por la identificaci\u00f3n r\u00e1pida y temprana de problemas graves de rendimiento, seguridad, fiabilidad y mantenibilidad, reduciendo el esfuerzo en testing y eliminando posibles problemas en producci\u00f3n.<br \/>\n<em> &#8211;    El testing o las pruebas son la actividad de calidad de la que nadie prescinde, pero a la que se suele dedicar menos de lo debido, en una fase muy avanzada de los proyectos y que se suele formalizar demasiado poco. Es la actividad de calidad m\u00e1s costosa en esfuerzo; su beneficio es asegurar el cumplimiento, sobre todo, de las especificaciones funcionales, y en ocasiones, aspectos de seguridad, capacidad, etc.<\/em><\/em><\/p>\n<p><em>Qu\u00e9 sectores de actividad y tecnolog\u00edas consideras pueden sacar m\u00e1s provecho de los beneficios de la auditor\u00eda de c\u00f3digo?<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>En primer lugar, est\u00e1n claramente los sistemas cr\u00edticos (aeroespacial, medicina, sistemas de mando y control, sistemas de operaci\u00f3n, de producci\u00f3n, etc.) que muchas veces est\u00e1n obligados por norma o ley a su uso, al haber, en caso de fallo, vidas humanas en juego; despu\u00e9s estar\u00edan los sistemas software cuyos fallos conllevan grandes p\u00e9rdidas econ\u00f3micas (con lo que llegamos incluso a sistemas comerciales de facturaci\u00f3n).<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Nosotros hemos analizado c\u00f3digo, entre otros, de sistemas de control ferroviario, de gesti\u00f3n comercial en el sector de la energ\u00eda, sistemas de banca, telecomunicaciones, etc., y la conclusi\u00f3n es un\u00e1nime: la auditor\u00eda de c\u00f3digo es la \u00fanica forma de implantar adecuadamente las mejores pr\u00e1cticas y prevenir errores en producci\u00f3n. Y hemos hecho a y si no tuviera estas mejores pr\u00e1cticas,<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>Hay entornos de desarrollo que apoyan el desarrollo de software, entre las que se encuentra SAP, en las que el an\u00e1lisis de c\u00f3digo aporta una mejora notable. Pero, seleccionando las herramientas adecuadas y teniendo los conocimientos y la experiencia necesarios, es posible auditar c\u00f3digo de casi cualquier tecnolog\u00eda (Java, .net, PL\/SQL, C, C++, VB, etc.). Hay herramientas abiertas al desarrollo de reglas de programaci\u00f3n.<br \/>\n<\/em><\/p>\n<p style=\"margin-left: 25px\"><em>El problema no est\u00e1 en la funcionalidad del software o en la tecnolog\u00eda en la que se basa, para realizar un buen servicio de auditor\u00eda de c\u00f3digo se necesita combinar el conocimiento y la experiencia en la tecnolog\u00eda de un equipo humano, las herramientas de an\u00e1lisis, el modelo de indicadores de calidad y un proceso de ejecuci\u00f3n continua (integrada en el ciclo de desarrollo) o discreta (con an\u00e1lisis peri\u00f3dicos, semanales, mensuales, por entregas) y todo ello se puede hacer de forma remota. Una \u00faltima recomendaci\u00f3n: que el n\u00famero de reglas de las buenas pr\u00e1cticas que se califiquen como de \u201cobligado cumplimiento\u201d sea un n\u00famero reducido; un n\u00famero excesivo produce des\u00e1nimo en primera instancia e imposibilidad de mejora a la larga.<\/em><\/p>\n<p>Gracias Walter para tomar el tiempo de responder a mis preguntas.<\/p>\n<p>En el pr\u00f3ximo art\u00edculo, veremos lo que se necesita saber respecto a c\u00f3digo ABAP, para luego (en un post ulterior), listar las preguntas que hacer a un equipo de proyecto SAP, para analizar su c\u00f3digo. Seguro que tu experiencia nos ser\u00e1 muy \u00fatil.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mi blog Qualilogy tiene ya casi un a\u00f1o (al final del mes) y me parece que casi todos los art\u00edculos que he escrito tratan de la calidad del de las aplicaciones y se dirigen principalmente a dos tipos de lectores: Aquellos que est\u00e1n familiarizados con los conceptos de calidad, a menudo m\u00e1s all\u00e1 del mundo [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-181","post","type-post","status-publish","format-standard","hentry","category-sonar-abap"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/181"}],"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=181"}],"version-history":[{"count":1,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":182,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/posts\/181\/revisions\/182"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/es\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}