diagnostic on the appropriation of metrics in software ...fundacioniai.org/raccis/v6n1/n10a1.pdf ·...

9
6 Diagnostic on the appropriation of metrics in software medium enterprises of Medellin city Diagnóstico sobre la apropiación de las métricas en medianas empresas de software de la ciudad de Medellín Piedad Metaute P., Alexei Serna A. Corporación Universitaria Remington. Medellín, Colombia. piedad.metaute(AT)uniremington.edu.co; alexeiserna(AT)uniremington.edu.co. INFORMACIÓN DEL ARTÍCULO Artículo de Investigación Historia Recibido: 03-12-2015 Correcciones: 13-05-2016 Aceptado: 19-05-2016 Keywords Software life cycle; tools for software metrics; software metrics; Square; Swebok. Palabras clave Ciclo de vida de software; herramientas para métricas de software; métricas de software; Square; Swebok. ABSTRACT This article was produced as a result of the investigation, "Ownership and use of metrics in software medium-sized city of Medellin." The objective of this research was to conduct an assessment of the ownership and use of metrics, seeking to make recommendations that contribute to the strengthening of academia and the productive sector in this topic. The methodology used was based on documentary review related to international norms, standards, methodologies, guides and tools that address software quality metrics especially applicable during Software Engineering. The main sources consulted were books, journals and articles, which could raise the foundation for such research, likewise, field research was used, it applied to medium-sized enterprises engaged in the construction of the product, where contact he had with people involved in these processes, of which data pertaining to real contexts where the events are generated are obtained. topics were addressed as project control, process control, software engineering, control of product quality software, application time metrics, applying metrics at different stages, certifications metrics, methodologies, tools used, processes where contributions in their application, types of tests which are applied, among others, which resulted, argued discussion findings generated from the respective regulations, best practices and needs of different contexts where they are used metrics apply software products in addition to the respective conclusions and practical implications that allowed for an assessment of the ownership and use of metrics in software medium-sized city of Medellin, as well as some suggestions for the academy, aimed at strengthening subjects whose responsibility generating skills in Software Engineering, especially in the metrics, and contextualized for significant contributions to the industry. RESUMEN El presente artículo es resultado de la investigación Apropiación y utilización de las métricas en medianas empresas de software de la ciudad de Medellín, cuyo objetivo fue diagnosticar la apropiación y utilización de las métricas en estas empresas, para realizar recomendaciones que contribuyan al fortalecimiento de la academia y del sector productivo. Se realiza una revisión documental a las normas internacionales, modelos, metodologías, guías y herramientas que abordan la calidad de software, especialmente en el proceso de la Ingeniería del Software. Las principales fuentes consultadas fueron libros, revistas científicas y artículos, además, se realizó investigación de campo en las medianas empresas que se dedican al desarrollo de software para obtener los datos en contextos reales. Se abordaron temáticas como control del proyecto, control del proceso de Ingeniería del Software, el control de la calidad del producto de software, tiempo de aplicación de métricas, la aplicación de métricas en las diferentes fases, certificaciones en métricas, metodologías, herramientas utilizadas, procesos donde se aplican métricas, aportes al aplicarlas, tipos de pruebas donde se aplican, entre otras, lo que dio como resultado, hallazgos que generaron discusión argumentada desde la respectiva normatividad, buenas prácticas y necesidades de los diferentes contextos donde se utilizan productos de software, además de las respectivas conclusiones e implicaciones prácticas que permitieron realizar un diagnóstico sobre la apropiación de las métricas en medianas empresas de software de la ciudad de Medellín, así como algunas sugerencias para la academia, orientadas al fortalecimiento de asignaturas que tienen como responsabilidad la generación de competencias en Ingeniería de Software, especialmente en las métricas, buscando aportes significativos y contextualizados para dicha industria. © 2016 IAI. All rights reserved. Revista Antioqueña de las Ciencias Computacionales y la Ingeniería de Software ISSN: 2248-7441 www.fundacioniai.org/raccis raccis(AT)fundacioniai.org (2016). RACCIS 6(1), pp. 6-14.

Upload: ngodieu

Post on 01-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

6

Diagnostic on the appropriation of metrics in software medium enterprises of Medellin city

Diagnóstico sobre la apropiación de las métricas en medianas empresas de software de la ciudad de Medellín

Piedad Metaute P., Alexei Serna A. Corporación Universitaria Remington. Medellín, Colombia. piedad.metaute(AT)uniremington.edu.co; alexeiserna(AT)uniremington.edu.co.

INFORMACIÓN DEL ARTÍCULO Artículo de Investigación Historia Recibido: 03-12-2015 Correcciones: 13-05-2016 Aceptado: 19-05-2016 Keywords Software life cycle; tools for software metrics; software metrics; Square; Swebok. Palabras clave Ciclo de vida de software; herramientas para métricas de software; métricas de software; Square; Swebok.

ABSTRACT This article was produced as a result of the investigation, "Ownership and use of metrics in software medium-sized city of Medellin." The objective of this research was to conduct an assessment of the ownership and use of metrics, seeking to make recommendations that contribute to the strengthening of academia and the productive sector in this topic. The methodology used was based on documentary review related to international norms, standards, methodologies, guides and tools that address software quality metrics especially applicable during Software Engineering. The main sources consulted were books, journals and articles, which could raise the foundation for such research, likewise, field research was used, it applied to medium-sized enterprises engaged in the construction of the product, where contact he had with people involved in these processes, of which data pertaining to real contexts where the events are generated are obtained. topics were addressed as project control, process control, software engineering, control of product quality software, application time metrics, applying metrics at different stages, certifications metrics, methodologies, tools used, processes where contributions in their application, types of tests which are applied, among others, which resulted, argued discussion findings generated from the respective regulations, best practices and needs of different contexts where they are used metrics apply software products in addition to the respective conclusions and practical implications that allowed for an assessment of the ownership and use of metrics in software medium-sized city of Medellin, as well as some suggestions for the academy, aimed at strengthening subjects whose responsibility generating skills in Software Engineering, especially in the metrics, and contextualized for significant contributions to the industry. RESUMEN El presente artículo es resultado de la investigación Apropiación y utilización de las métricas en medianas empresas de software de la ciudad de Medellín, cuyo objetivo fue diagnosticar la apropiación y utilización de las métricas en estas empresas, para realizar recomendaciones que contribuyan al fortalecimiento de la academia y del sector productivo. Se realiza una revisión documental a las normas internacionales, modelos, metodologías, guías y herramientas que abordan la calidad de software, especialmente en el proceso de la Ingeniería del Software. Las principales fuentes consultadas fueron libros, revistas científicas y artículos, además, se realizó investigación de campo en las medianas empresas que se dedican al desarrollo de software para obtener los datos en contextos reales. Se abordaron temáticas como control del proyecto, control del proceso de Ingeniería del Software, el control de la calidad del producto de software, tiempo de aplicación de métricas, la aplicación de métricas en las diferentes fases, certificaciones en métricas, metodologías, herramientas utilizadas, procesos donde se aplican métricas, aportes al aplicarlas, tipos de pruebas donde se aplican, entre otras, lo que dio como resultado, hallazgos que generaron discusión argumentada desde la respectiva normatividad, buenas prácticas y necesidades de los diferentes contextos donde se utilizan productos de software, además de las respectivas conclusiones e implicaciones prácticas que permitieron realizar un diagnóstico sobre la apropiación de las métricas en medianas empresas de software de la ciudad de Medellín, así como algunas sugerencias para la academia, orientadas al fortalecimiento de asignaturas que tienen como responsabilidad la generación de competencias en Ingeniería de Software,

especialmente en las métricas, buscando aportes significativos y contextualizados para dicha industria.

© 2016 IAI. All rights reserved.

Revista Antioqueña de las Ciencias Computacionales y la Ingeniería de Software

ISSN: 2248-7441

www.fundacioniai.org/raccis raccis(AT)fundacioniai.org

(2016). RACCIS 6(1), pp. 6-14.

7

1. Introducción El ser humano ha sentido siempre la necesidad de medir, porque se esa manera puede controlar dimensiones, estandarizándolas a través de patrones que cumplan condiciones de inalterabilidad, universalidad y reproducibilidad. Es así como ha acudido a las matemáticas e inventado una serie de herramientas que le han permitido mejora la exactitud. Este tema ha tomado fuerza en la industria, donde para construir cualquier producto se aplican procesos de medición que permiten intervenir los errores y defectos, evitando reprocesos y minimizando costos de fabricación.

En relación con el software, Pressman [1] propone que, antes de poder planear un proyecto, se deben establecer los objetivos y el ámbito del producto, considerarse soluciones alternativas e identificar las restricciones técnicas y administrativas. Sin esta información es imposible definir estimaciones razonables (y precisas) del costo, una valoración efectiva del riesgo, una descomposición realista de las tareas del proyecto y un calendario de proyecto manejable que proporcione en cada momento un indicio significativo del progreso.

En éste sentido la industria del software, consciente de que su producto es una herramienta imprescindible para apoyar el desarrollo de procesos políticos, económicos, sociales, culturales y educativos, entre otros, donde cualquier falla podría involucrar costos que pueden representar pérdidas económicas, desajustes sociales e incluso, y lo más delicado, pérdida de vidas, ha sentido la necesidad de fortalecer sus procesos para desarrollar software. Por eso ha implementado modelos y metodologías que evolucionan acorde con las necesidades sociales, tales como los modelos prescriptivos (espiral, Rup, prototipos) y las metodologías ágiles (Xp, Scrum, Kanban) que, en la medida que producen buenas prácticas, ayudan a reducir tiempos y costos de desarrollo, mientras se incrementa la satisfacción del cliente. A este respecto, Letelier y Penadés [2] muestran algunas diferencias entre las metodologías tradicionales y las metodologías ágiles (Ver Tabla 1) orientadas al proceso, al equipo de trabajo y la organización en la construcción del software.

Tabla 1. Comparación Metodologías Tradicionales y Ágiles [2]

La selección y/o adaptación de una metodología por parte de la industria del software, depende del tipo de proyecto, el cliente, la necesidad y la línea base del negocio. Esto se hace para cumplir con los requerimientos del cliente y, por consiguiente, con la calidad en el producto. Corrochano [3] agrega que cuando se habla de calidad del software, no sólo de hace referencia al software en sí, sino también a la calidad de todos los elementos que se construyen a lo largo del ciclo de vida de un proyecto.

Por otro lado, IEEE [4] define las métricas de software como una medida del grado en el que un sistema, componente o proceso posee un atributo determinado. Así mismo, Briand et al. [5] plantean que son un buen medio para entender, monitorizar, controlar, predecir y probar el desarrollo de software y los proyectos de mantenimiento. Por su parte, Pressman [6] argumenta que se debe medir para evaluar los modelos de análisis y diseño, para tener indicios de la complejidad de los diseños procedimentales y del código fuente y para facilitar el diseño de las pruebas del software.

En este mismo orden de ideas, normas internacionales tales como la ISO/IEC-9126(2003) y la ISO/IEC-14598(2006), realizan aportes a la industria del software en lo referente a experiencias con buenas prácticas. La norma 9126 [7-9] define un modelo de calidad de propósito general y describe un conjunto de características de calidad relacionadas con métricas internas, externas y de uso. Mientras que la norma 14598 [10] ofrece una descripción general de los procesos para la evaluación de productos software y de algunas guías y requerimientos para la evaluación. Ver Figura 1.

Figura 1. Normas ISO/IEC 9126-2003 e ISO/IEC 14598- 2006

La dinámica social y los cambios acelerados obligan a que las normas se actualicen, por lo que de las anteriores surgió la ISO/IEC-25000(SQuaRE) (2014) [11]. En ella se define la división (relacionada con ISO/IEC 2502n) [12], la medición de la calidad del producto, definiciones de medidas de calidad (interna, externa y en uso) y guías prácticas para su aplicación (Ver Figura 2): ISO/IEC-25020 (Measurement reference model and guide), ISO/IEC-25021 (Quality measure elements), ISO/IEC-25022 (Measurement of quality), ISO/IEC-25023 (Measurement of system and software product quality) e ISO/IEC-25024 (Measurement of data quality). Estas familias definen claramente guías en las que se proponen medidas a aplicar, en las que existen métricas base y derivadas aplicables a todo el ciclo de vida del desarrollo. Además, aspectos tales como calidad en uso del producto, calidad del producto y sistema software, calidad de los datos, entre otros aspectos relacionados con el proceso interno y externo relacionados con su despliegue.

8

Figura 2. Norma ISO/IEC-25000 (SQUARE-2014)

Hay que tener presente que la norma establece el qué y ofrece herramientas generales que cada empresa debe seleccionar de acuerdo con su realidad y necesidad particular. Pero son ellas quienes deberán generar o clasificar las herramientas existentes, es decir el cómo, que se adapten a sus objetivos. En este sentido, Metaute y Serna [13] resaltan la importancia de automatizar los modelos y métodos propuestos para las métricas, buscando eficiencia, seguridad, reusabilidad, fiabilidad y exactitud tanto en datos como en información. Esto se debe a que en un alto porcentaje hay que recurrir a datos históricos que permitan aprender de las experiencias, siendo las herramientas software especializadas en medición un recurso necesario que contribuye con dichas tareas.

La Guía Swebok [14], que enmarca los contenidos de la disciplina de la Ingeniería del Software y que cubre todo el ciclo de vida, hace alusión a estrategias, métodos, metodologías y herramientas para el proceso de medición durante todo el ciclo de vida del software. Su objetivo es ofrecer fundamentación para el desarrollo de currículos de estudio, buscando cualificación en el talento humano relacionado con el desarrollo de software. En las Figuras 3 a 5 se puede observar la incorporación de las métricas de software, como factor para la gestión de la calidad del producto, en cada una de las fases relacionadas.

Figura 3. Métricas en las fases de requisitos y diseño

Figura 4. Métricas en las fases de desarrollo y pruebas

Figura 5. Métricas en las fases de mantenimiento y

administración

2. Objetivos El objetivo de esta investigación fue realizar un diagnóstico sobre la apropiación y utilización de las métricas en medianas empresas de software de la ciudad de Medellín, buscando fortalecer a la academia y el sector productivo en esta temática. En el proceso se identificaron las fortalezas y las debilidades en la industria del software, derivadas de la aplicación de las métricas en los diferentes procesos del ciclo de vida. También se realizó el análisis de los resultados en relación a modelos de métricas del software y los parámetros de las normas internacionales, que involucran las métricas como factores de calidad en el desarrollo de software. De esta manera se pudo realizar un aporte importante a la academia y al sector productivo, en el sentido del mejoramiento en la formación de recurso humano y de la calidad de los procesos.

3. Metodología En el diseño de la metodología se tomaron elementos de la investigación documental y aportes teóricos de fuentes primarias y secundarias. También se tuvo en cuenta la normativa internacional que hace alusión a procesos de Ingeniería del Software, especialmente en temas como las mediciones o las métricas como requisitos para la obtención de software de calidad. De igual forma se utilizó investigación de campo, aplicada a medianas empresas dedicas al desarrollo de software en la ciudad. En el proceso se contactaron con personas involucradas directamente en la industria, de las que se obtuvo datos pertenecientes a contextos reales.

Se definieron variables que permitieran la aplicación de métricas y se diseñó una encuesta, teniendo en cuenta cada uno de los procesos del ciclo de vida del software susceptibles a la aplicación de mediciones para sus procesos. Para esto se plantearon indicadores que permitieran obtener información concreta para la investigación.

Para recopilar la información se utilizó la técnica de recolección de datos a través de encuestas estructuradas por medios virtuales, con fundamentación en las condiciones de calidad, técnicas, modelos de medición y los diferentes procesos utilizados. Se tuvo en cuenta las metodologías utilizadas: prescriptivas, ágiles o propias de cada empresa. Se procedió al análisis de los datos mediante técnicas estadísticas, permitiendo la identificación de las

9

fortalezas y debilidades que se presentan actualmente en la industria del software. Con esta información también se realizó un diagnóstico a la apropiación y utilización de las métricas en las medianas empresas dedicadas al desarrollo de software. La Figura 6 muestra el proceso metodológico utilizado en la investigación.

Figura 6. Proceso metodológico

4. Resultados Se aplicó la encuesta con el fin de abordar temáticas relacionadas con el control del proyecto, el control del proceso de Ingeniería del Software y el control de la calidad del producto. En este proceso se obtuvo información sobre: tiempo de aplicación de las métricas, la aplicación de métricas en las diferentes fases de la Ingeniería del Software, el acceso a certificaciones en métricas, la aplicación en la Programación Orientada por Objetos, tipo de metodologías utilizadas para el desarrollo de software, métodos para la aplicación de métricas, herramientas automatizadas para la aplicación de métricas, procesos de la programación donde se aplica métricas, aportes que se generan y tipos de pruebas donde se aplican métricas, entre otras que se pueden observar en las siguientes secciones.

4.1 Tiempo de aplicación de las métricas Se encontró que el 71% de los encuestados aplica métricas de software desde hace más de tres años, mientras que el 29% no lo hace (Ver Figura 7). Las empresas que no tienen experiencia o nunca han usado métricas no responden la encuesta.

Figura 7. Tiempo de aplicación de las métricas

4.2 Aplicación de métricas en las diferentes fases En las fases donde se aplican más métricas de software son la de desarrollo y la de pruebas (25%), seguidas por la de Ingeniería de Requisitos con 20% (Ver Figura 8). La característica es que las métricas no se definen en la fase de planeación del proyecto.

Figura 8. Aplicación de métricas en las fases del ciclo de vida

4.3 Certificaciones en métricas de software El 60% de las empresas encuestadas no tiene certificaciones relacionadas con las métricas del software, mientras que el 40% posee alguna certificación relacionada (Ver Figura 9).

Figura 9. Certificaciones en métricas de software

4.4 Procesos de POO donde se aplican métricas Se encontró que el 27% de las empresas desarrolladoras de software aplica métricas en el proceso de desarrollo, a las clases y a los métodos, el 20% al nivel de acoplamiento y el 13% a nivel de herencia (Ver Figura 10). En los demás procesos no las aplican.

Figura 10. Procesos de POO donde se aplican métricas

4.5 Metodologías utilizadas para desarrollo La industria del software de Medellín utiliza la metodología SCRUM en un 29%, seguida por metodologías propias con el 23% y RUP, XP e incremental con el 12% (Ver Figura 11). Otros tipos de metodologías con muy bajos porcentajes.

10

Figura 11. Metodología utilizada para el desarrollo

4.6 Métodos y/o certificaciones para buscar calidad en los productos

El modelo más utilizado por las empresas para buscar certificaciones es CMMI (45%), ISO/IEC-9000 y métodos propios con 22% e ITIL con 11% (Ver Figura 12).

Figura 12. Métodos para buscar calidad en los productos

4.7 Herramientas utilizadas para aplicar métricas en la fase de desarrollo

Las herramientas más utilizadas para aplicar métricas en la fase de desarrollo son JUnit y FindBugs con 19% cada una, NUnit con 13% y CheckStyle con 12%, las demás herramientas presentan bajos porcentajes de uso y algunas son desconocidas. Ver Figura 13.

Figura 13. Herramientas para aplicar métricas en el desarrollo

Fuente: Elaboración propia

4.8 Procesos en la programación donde se aplican métricas

Se encontró que en el uso de los mecanismos de diseño orientado a objetos, tales como la encapsulación, la herencia, el polimorfismo y el paso de mensajes, es donde más se aplican métricas con el 25%; en el acoplamiento y cohesión así como en la herencia y la comunicación se aplica en un 17%. En los demás procesos, tales como la complejidad del sistema (mediante el balanceo de responsabilidades entre paquetes y clases, cohesión, acoplamiento entre entidades del sistema), se aplican métricas en muy bajos porcentajes (Ver Figura 14). El 17%

no aplican métricas en ningún proceso relacionado con la programación.

Figura 14. Procesos en la programación donde se aplican

métricas

4.9 Tipos de pruebas donde se aplican métricas Las métricas se aplican especialmente en las pruebas unitarias y de aceptación, con 25% cada una; en las pruebas del sistema y funcionales con 19% y en las pruebas de integración 12%. Ver Figura 15.

Figura 15. Pruebas en las que aplican métricas

4.10 Aporte de las métricas a los procesos de construcción

El 20% de las empresas encuestadas opina que las métricas aportan al control de la calidad del producto y el 16% que sirven como mecanismo para la detección de errores. En la Figura 16 se observan otras respuestas.

Figura 16. Aportes de las métricas a los procesos de

construcción

5. Análisis y discusión En lo referente a la aplicación de métricas en la industria del software de la ciudad de Medellín se observa que, aunque existen varias que las utilizan en algunas fases del proceso de la Ingeniería del Software, muchas otras no las

11

aplican. Esto las deja en desventaja competitiva porque en alto porcentaje todavía desarrollan software artesanalmente, en un contexto donde se exige que este producto ofrezca altos estándares de calidad. Además, la demanda y uso del software se incrementa y diversifica en todo momento [15], y es necesario que la industria la atienda con competitividad. En la Figura 17 se observa el uso del software en las empresas del área de la ciudad de Medellín.

Figura 17. Tipos de empresas de Medellín que utilizan

productos de la industria de software local [15]

En la gestión de los proyectos software, la industria utiliza las métricas con mayor frecuencia en las fases de desarrollo y pruebas, pero menos en la de Ingeniería de Requisitos y de uso. Otra característica es que no definen métricas desde la planeación del proyecto, por lo que no cubren todo el proceso de la Ingeniería del Software. En este sentido, Salazar [16] relaciona los beneficios que podrían estar perdiendo en la estimación. De acuerdo con este autor, los plazos de entrega y presupuesto son más realistas, hay mayor satisfacción de los usuarios, los cronogramas son más acertados y permiten controlar mejor el proyecto, los procesos de estimación son una exigencia de los estándares de calidad internacionales y al mejorar la industria de desarrollo de software el país puede competir con mercados internacionales.

Dada la cantidad de metodologías que existen para desarrollar software, en esta investigación se seleccionaron las más utilizadas en la última década con el fin de suministrarle esta información a la industria. Algunas son desconocidas o no las aplican, porque no cubren necesidades específicas. La metodología con mayor utilización es SCRUM, pero muchas empresas estructurar una propia desde los aportes de otras, porque las pueden adaptar a sus necesidades y al tipo de proyecto. También se puede mencionar a RUP, XP e Incremental entre las de mayor aceptación, lo que demuestra una tendencia a utilizar metodologías ágiles. Aunque existen quienes afirman que en realidad no son metodologías [17], sino buenas prácticas que generalmente aplican equipos pequeños, multifuncionales, auto-organizados, iterativos e incrementales, por lo que aún no se terminan de definir. Pero que su objetivo es entregar productos de calidad y en los tiempos establecidos.

En la fase de desarrollo es en la que la industria aplica procesos de medición en más alto porcentaje, especialmente en la programación. En esta actividades se destaca el uso de métricas en la optimización de las clases y los métodos, así como en la encapsulación, la herencia y el polimorfismo. En más bajo porcentaje en el acoplamiento y la cohesión, donde se utilizan herramientas tales como JUnit y FindBugs [18]. Además,

algunas empresas utilizan otro tipo de aplicaciones, tales como Sonar, Jenkins, pbUnit, phpUnit, jBehave, fxcop, stylecop, resharper y TFS, lo que evidencia el interés por buscar o crear herramientas que se adapten a sus necesidades de medición, especialmente para la fase de desarrollo. Es importante resaltar que no se aplican métricas en procesos relacionados con la complejidad del sistema, lo que demuestra que no cubren todos los elementos de la POO.

Por otro lado, existe desconocimiento acerca de métodos para la aplicación de métricas, como COCOMO II, que aplica herramientas automatizadas y cuyos parámetros de entrada son procesados a través de cálculos que generan una serie de resultados, acordes al perfil de la herramienta de prueba.

En cuanto a las certificaciones relacionadas con la aplicación de métricas, se observa que se viene trabajando, pero que aún falta mayor incorporación en los proyectos institucionales. Se destaca el hecho de que son conscientes que las certificaciones permiten mejorar los procesos de calidad y abren caminos de competitividad. Los modelos más utilizados para buscar certificaciones son CMMI [19], ISO/IEC-9000 [20] e ITIL [21]. Este último se menciona como un reto que tienen las empresas de software de Medellín.

La industria reconoce la importancia de la aplicación de métricas, porque aportan para mejorar la calidad en los productos, permiten detectar y minimizar errores dentro de los procesos, fortalecen la gestión de tareas para el cumplimiento de metas y la optimización de recursos y contribuyen al cumplimiento de plazos en la entrega. Estos beneficios se reflejan directamente en el incremento de la rentabilidad de la empresa, sin embargo, reconocen que la aplicación de métricas puede ser un proceso complicado.

Figura 18. Dificultad para llenar vacantes en puestos

relacionados con la producción de software [22]

De acuerdo con el plan estratégico de ciencia, tecnología e innovación 2011-2021 de la ciudad [22], se proyecta mejorar la calidad y productividad en las empresas de desarrollo de software para mejorar la competitividad internacional (Ver Figura 18). El objetivo es fortalecer los procesos de prueba, incorporando metodologías que permitan el establecimiento de costos de desarrollo, la identificación y apropiación de las mejores prácticas en desarrollo de software (CMMI, Cobit, ISO 27000, DBA, Cocomo, Coincomo, Cocots, Cosysmo, Cososimo, CostingSecureSy stem, SLIM, Istqb), la formación y actualización permanente del talento humano e incrementar los niveles de acreditación internacional.

12

Existe una amplia literatura que aborda temas relacionados con las métricas de software, en la que se profundizan metodologías existentes y se proponen otras. Pero llevarlas a la práctica resulta difícil, porque cada empresa debe adaptarlas a sus propias necesidades. Putman y Myers [23] argumentan que para asuntos de medición es importante tener en cuenta cinco métricas fundamentales: tiempo, esfuerzo, tamaño, fiabilidad y productividad. De acuerdo con estos autores, se pueden aplicar tanto a los procesos de desarrollo de software como a los productos, donde deben estar siempre alineadas son procesos susceptibles de medición y con los objetivos de negocio que se desean alcanzar.

Para cada fase del proceso de la Ingeniería del Software se proponen métricas diversas, que dependen del modelo propuesto y cuyos componentes métricos se orientan al proceso, el producto, los recursos, los atributos internos y externos y las condiciones de calidad del producto en uso.

En este sentido, para evaluar la calidad en relación con el diseño en POO, Rodríguez y Harrison [25] relacionan un conjunto de métricas que mediante fórmulas permiten encontrar resultados a nivel de sistema, acoplamiento, clases y métodos. De esta manera se evalúan características a niel del sistema tales como proporción de métodos ocultos, atributos ocultos, atributos heredados, proporción de polimorfismo, proporción de acoplamiento. A nivel de acoplamiento: acoplamiento a nivel de herencia, profundidad en árbol de herencia y profundidad en el número de hijos y en el índice de especialización por clase. A nivel de clases: respuestas de una clase, los métodos ponderados por clase y la falta de cohesión en los métodos. A nivel de métodos: líneas de código y el número de mensajes enviados. En cada una de estas características se utilizan fórmulas que en definitiva buscan mejorar los resultados de la funcionalidad del sistema.

Tabla2. Algunas fórmulas para aplicar métricas en las pruebas

Fuente: elaboración propia

Las métricas para el proceso de pruebas dependen del tipo de software, de las necesidades de medición e incluso de la misma línea base que proponga la empresa desarrolladora o certificadora de la calidad del producto. Ella delinea sus políticas en relación con la incorporación de las métricas,

las cuales pueden ser de cobertura de las pruebas, de profundidad, de madurez, de perfiles de fallos, densidad de defectos, entre otras. En la Tabla 2 se observan algunas de estas fórmulas y cuyo objetivo es entender, evaluar, controlar, administrar, aprender y mejorar los procesos estandarizando los indicadores de medición.

Las métricas, además de ser herramientas para controlar procesos en la construcción del producto, deben ser probadas, revisadas y retroalimentadas teniendo en cuenta los históricos que generan las diferentes pruebas aplicadas, y que en definitiva lo que buscan es mejorar la calidad en el producto funcional.

A continuación, se describen las fortalezas y debilidades en relación con la aplicación de métricas en las empresas pequeñas y medianas desarrolladoras de software en Medellín.

Fortalezas Desde hace más de tres años, un porcentaje mayor al

70% de las empresas aplican métricas de software en por lo menos una de las fases del ciclo de vida, especialmente en los relacionados con la Programación Orientada por Objetos y algunos tipos de pruebas.

La industria reconoce la importancia de obtener certificaciones relacionadas con métricas del software, porque les permite ser competitiva en mercados regionales, nacionales e internacionales.

Se observa capacidad de adaptación a nuevos procesos y herramientas, lo que se evidencia en la incorporación de metodologías ágiles, especialmente SCRUM.

Existe innovación y creatividad al generar estrategias o metodologías propias, producto de las buenas prácticas aplicadas a las necesidades.

El 45% de las empresas encuestadas tiene preferencia por adoptar certificaciones CMMI como estrategia para la madurez de sus procesos y del negocio.

Se detecta iniciativa al seleccionar herramientas automatizadas que sirvan de apoyo para la aplicación de métricas, especialmente en la fase de desarrollo.

Se aplican métricas en la fase de pruebas, especialmente en la unitaria y de aceptación.

Existe conciencia sobre el aporte que genera la medición a la calidad del producto, permitiendo la detección de errores a tiempo, el fortalecimiento de la gestión de tareas, el cumplimiento de plazos y el aumento de la rentabilidad, entre otras características.

En Medellín existen proyectos orientados al fortalecimiento de la industria del software, liderados por agremiaciones, instituciones, entidades públicas y privadas, que trabajan de forma colaborativa en la búsqueda de que el software que se desarrolla en la ciudad sea competitivo en todos los mercados.

Debilidades Aún persisten empresas dedicadas a desarrollar

software que no se interesan en aplicar métricas en sus procesos, porque lo ven como algo complicado y sin beneficios tangibles.

13

Las métricas no se definen desde fases de planeación del proyecto, lo que puede maximizar riesgos, costos, reprocesos, tiempos, entre otros.

Existe un alto porcentaje de empresas que no posee certificaciones relacionadas con las métricas del software.

Las métricas no se aplican a todos los procesos del ciclo de vida del software.

Falta apropiación de normas actualizadas en relación con la calidad del software, especialmente en métricas, como por ejemplo SQUARE.

Existe déficit de personal cualificado en métricas del software, especialmente en la interpretación de modelos y metodologías existentes y en la creación de nuevas métricas.

6. Conclusiones Teniendo claridad sobre la importancia que tiene el software en los diferentes contextos, es importante que las instituciones de educación reestructuren sus asignaturas de Ingeniería del Software, con el objetivo de formar profesionales competentes que aporten significativamente a la industria, porque en ella se requiere cada día mayor cualificación. A este respecto, Villavicencio y Abran [24] recomiendan la inclusión en el currículo de temas relacionados con las métricas, basados en las directrices curriculares para programas universitarios en Ingeniería del Software tales como Swebok y el cuerpo de conocimiento de mediciones de software. En estos se sugieren incorporar unidades de conocimiento tales como: fundamentos de Ingeniería para el software, mediciones de requisitos, análisis y evaluación de la calidad del diseño, técnicas de medición de procesos de software, mediciones de la calidad del software, planificación de proyectos de software y mediciones en Ingeniería del Software.

Debido a esto se recomienda a las instituciones fortalecer las asignaturas específicas de la Ingeniería del Software con la inclusión de temáticas relacionadas con la calidad. Algunas de ellas podrían ser: fundamentación en métodos y metodologías, identificación y apropiación de las mejores prácticas y la aplicación de herramientas a situaciones concretas, donde el proceso de enseñanza-aprendizaje se oriente a solucionar situaciones o necesidades del contexto en relación con el software. El objetivo debe ser desarrollar capacidades relacionadas con la medición en cada una de las fases de la Ingeniería del Software, pero en el marco de normatividades internacionales tales como ISO/IEC-2502n [12], Swebok [14] y otros estándares orientados a la calidad del software.

De igual forma, es conveniente ampliar el perfil del egresado mediante programas de posgrado que permitan especializarlo en temáticas específicas: Ingeniería de Requisitos, seguridad, calidad, pruebas, métricas, negociación, legislación, desarrollo y arquitectura de software, entre otros. La idea es brindarle la cualificación que requiere la industria, para mejorar su competitividad, y la sociedad, en el sentido de disfrutar de productos de calidad, fiables y seguros.

A la industria del software se le recomienda incorporar las métricas en cada una de las fases del ciclo de vida. El

objetivo deber ser: caracterizar, evaluar, predecir, motivar y aprender, para entender, controlar y mejorar recursos, procesos y producto. También debe realizar capacitaciones en torno a los temas de calidad, métodos, metodologías y herramientas para la automatización de métricas. Además, estandarizar sus procesos en el marco de normatividades internacionales tales como ISO/IEC-2502n [12] y Swebok [14] y en la aplicación de las buenas prácticas.

De esta manera, la academia y la industria deben converger y unir esfuerzos contextualizados, que permitan disminuir las brechas entre la teoría y la práctica, mediante la integración de conocimientos, experiencias, innovaciones y de la creatividad en beneficio de todos, especialmente de los diferentes ambientes donde se requieren productos software de calidad.

Referencias

[1] Pressman, R. (2014). Ingeniería del Software - Un enfoque práctico. New York: McGraw-Hill.

[2] Letelier, P. & Penadés, M. (2006). Metodologías ágiles para el desarrollo de software: eXtreme Programming (XP). Técnica Administrativa 5(26), abril-junio.

[3] Corrochano, J. (2014). La experiencia del Corte Inglés en la gestión dela calidad software. En: Suárez F. & Garzás, J. (Eds.), Memorias I Jornada sobre Calidad del Producto Software e ISO 25000 (pp. 124-146). Santiago de Compostela, España.

[4] Radatz, J. (1990). IEEE Standard Glossary of Software Engineering Terminology. IEEE Std. 610.12-1990. Computer Society of the IEEE.

[5] Lionel, C., Morasca, S. & Basili, V. (1999). Defining and Validating measures for object-based high-level design. IEEE transactions on software engineering 25(5), pp. 722-743.

[6] Pressman, R. (2010). Ingeniería del Software - Un enfoque práctico. México: McGraw-Hill

[7] ISO/IEC (2003). ISO/IEC TR-9126-2:2003. Software engineering – Product quality - Part 2: External metrics.

[8] ISO/IEC (2003). ISO/IEC TR-9126-3:2003: Software engineering – Product quality - Part 3: Internal metrics.

[9] ISO/IEC (2004). ISO/IEC TR-9126-4:2004: Software engineering – Product quality - Part 4: Quality in use metrics.

[10] ISO/IEC (2006). ISO/IEC 14598-5:2006. Information technology -- Software product evaluation - Part 5: Process for evaluators.

[11] ISO/IEC (2014). ISO/IEC 25000 (2014). SQuaRE - System and Software Quality Requirements and Evaluation.

[12] ISO/IEC (2014). ISO/IEC-2502n (2014). División de Medición de Calidad.

[13] Metaute, P. & Serna, A. (2015). Metrics, tools quantifiable support to implement of decisions. En: Serna, E.M. (Ed.), Avances en Ingeniería (pp. 237-245). Medellín: Editorial Instituto Antioqueño de Investigación.

[14] Bourque, P. & Fairley, R. (2014). Swebok - Guide to the Software Engineering Body of Knowledge. IEEE Computer Society.

[15] Corporación Rutan. (2015). Investigación de Mercado Laboral en el sector de las TI Medellín. Rutan, Medellín.

[16] Salazar, G. (2009) Estimación de proyectos de software: un caso práctico. Ingeniería y Ciencias 5(9), pp. 123–143.

[17] Garzas, J. (2014). Nadie Sabe lo que significa Agilidad. Online [Jun 2015].

[18] Irrazábal, E. & Garzás, J (2010). Análisis de métricas básicas y herramientas de código libre para medir la

14

mantenibilidad. Revista Española de Innovación, Calidad e Ingeniería del Software 6(3), pp. 56-63.

[19] Beth, M. et al. (2012). CMMI para desarrollo: Guía para la integración de procesos y la mejora de productos. Madrid: Editorial Universitaria Ramón Areces.

[20] ISO (2008). ISO 9001:2008. Sistemas de gestión de la calidad – Requisitos. Ginebra: International Estándar Organization.

[21] Maqueira, J. & García, A. (2010). Gestión de la Calidad en empresas Tecnológicas. TQM-ITIL. Madrid: Starbook Editorial.

[22] Corporación Rutan (2011). Plan de Ciencia, Tecnología e Innovación de Medellín (2011-2021). Corporación Rutan, Medellín.

[23] Putnam, L & Myers, W. (2013). Five core metrics: The intelligence behind successful software management. USA: Addison-Wesley.

[24] Villavicencio, M. & Abran, A. (2015). sugerencias para la inclusión de temas de medición de software en un currículo de Ingeniería de Software para estudiantes de pregrado. Revista Latinoamericana de Ingeniería de Software 1(1), pp. 117-126.

[25] Rodríguez, D. & Harrison, R. (2000). Medición en la Orientación a Objetos. En: Dolado, J. & Fernández, L. (Eds.), Medición para la gestión en la Ingeniería del Software (pp. 1-16). Madrid: Editorial RA-MA.