I. INTRODUCCIÓN
Durante las últimas dos décadas se vienen presentando esfuerzos para mejorar la calidad del software dada la relevancia que día a día toma en el contexto del uso y apropiación de las Tecnologías de Información y Comunicación por parte de la sociedad en general.
El gran desafío que se enfrentan las empresas pequeñas de desarrollo de software es generar software de calidad, desde la perspectiva de realizar un seguimiento sistemático y de evaluación en cada una de las etapas de su construcción, actualmente existen una infinidad de normas, metodologías y modelos de calidad que se aplican en el mundo; sin embargo, por desconocimiento de su existencia o la complejidad de adopción no son incorporadas en la MiPymes de desarrollo de software. Analizando la Industria del Software del eje cafetero y particularmente en la ciudad de Pereira, son organizaciones que cuentan con un limitado número de empleados, una estructura orgánica limitada y se encargan del desarrollo de Productos de Software a la medida para clientes locales que lo demandan [1], [2].
Pese a la diversidad de modelos y estándares que existen en el orden internacional y que han sido validados para lograr un mejor proceso de desarrollo de software [3], [4], las MiPymes deciden por no adoptarlos en sus procesos de desarrollo por considerarlos exageradamente complejos y rigurosos, lo que evitaría entregar en corto tiempo sus desarrollos a la medida [5], [6], [2].
Otra razón que conduce a que no se adopten dichos modelos es la necesidad de vincular profesionales capacitados o en su defecto capacitarlos para su implementación, lo que entraría a impactar el tiempo y el costo de un proyecto.
La Industria local ha considerado que, con la implementación de un conjunto de buenas prácticas, adoptadas y adaptadas desde la propia experiencia, sería suficiente para lograr los niveles de calidad exigidos por la sociedad que les demanda los productos [5], [2].
Estudios previos concluyeron que solo el 2% de las organizaciones a las que se les analiza el proceso de desarrollo de software se preocupan por implementar procesos de aseguramiento de la calidad [6], [7], [2].
En el orden local, caracterizando particularmente la industria del software de la ciudad de Pereira, y particularmente sobre el estado de la calidad, se concluye sobre la necesidad de aumentar el nivel de calidad en los procesos de desarrollo mediante la incorporación de alguna de las siguientes posibilidades:
A. La formulación y validación de modelos propios para la industria local que permitan al talento humano apropiar la manera adecuada de llevar a cabo las fases de desarrollo y gestión de software aplicando buenas prácticas, los principales problemas o retos se resumen en la figura 1.
B. La formulación de modelos que permitan determinar la calidad del software y la forma de acercarla a una situación ideal mediante la aplicación de buenas prácticas, además de la elaboración de un estado del arte o un estado de la cuestión alrededor de los modelos y las metodologías que se utilizan mundialmente, junto con la manera de apropiarlos en la pequeña industria para obtener niveles de competitividad global [4], [8], [2], [9].
En este sentido, se propone generar innovación a la industria del software, estructurando un modelo en un campo específico del conocimiento que permita mejorar la calidad del software desde una visión más enfocada, tal como se evidencia en la figura 2.
El propósito es contribuir a la disciplina de la ingeniería de software y la subdisciplina del aseguramiento de la calidad del software hacia un campo más específico de conocimiento: el aseguramiento de la calidad de los requerimientos funcionales y no funcionales, proponiendo un meta-modelo validado desde su conceptualización, desarrollo, implementación y evaluación con la participación de expertos de la academia e industria para reducir la brecha que existe entre estos.
Sin embargo, al explorar el estado del arte se concluye sobre la insuficiencia de conocimiento alrededor del aseguramiento de la calidad de los requerimientos funcionales y no funcionales en proyectos de software, particularmente en la fase de desarrollo [10], [11], [12], [8].
Por lo tanto, al elaborar un modelo de aseguramiento de la calidad en la administración y gestión de requerimientos funcionales y no funcionales, la comunidad científica empieza a contar con modelos específicos, dentro de la disciplina de la ingeniería de software, que apunten a incrementar la calidad del producto en cuanto a tiempo de entrega, desarrollo y funcionalidad.
Resulta de interés para la comunidad académica, científica y para la misma industrial que el modelo promueva el desarrollo y la capacitación de nuevas herramientas y técnicas metodológicas en el proceso de desarrollo de software que deben ser apropiadas desde el analista hasta el gerente de proyectos [13], [14].
Con la formulación del modelo, se contempla un insumo que permita incrementar la competitividad de la industria y mejorar el nivel de rentabilidad; esto, redundaría en la generación de nuevos empleos, al orientar a la industria hacia un proceso de posicionamiento y consolidación.
El modelo permitirá la generación de clúster de desarrollo con buenas prácticas de calidad, lo que se convertirá en una oportunidad para los jóvenes profesionales en su formación en el desarrollo de Proyectos de software (PS) con modelos de calidad.
Las Universidades deben orientar carreras profesionales, buscando formar ingenieros que desarrollen software de calidad, encuentran en el modelo una oportunidad de mejorar sus contenidos curriculares de tal manera que desde el aula se apropie al estudiante con modelos y metodologías que conduzcan a llevar de manera más adecuada los PS participando directamente en la industria.
II. METODOLOGÍA DE LA INVESTIGACIÓN
Para llevar a cabo esta investigación se empleó el método de inductivo y clasificado en varias secciones:
La sección uno se trabajó para determinar los elementos claves sobre el desarrollo de software y requerimientos; así mismo, se indagó en cuáles modelos de calidad existen que contemplen la gestión de requerimientos y, la manera cómo se vienen incorporando en la industria local. Para ello, se realizó una recopilación sistemática y rigurosa de la literatura, es decir se empleó un método secundario.
La segunda sección, consistió en la recopilación de información mediante la aplicación de un método primario para obtener evidencia empírica por medio de un cuasiexperimento de la aplicación del modelo propuesto en una empresa de la industria del eje cafetero, así como la aplicación de encuestas para conocer los métodos que utilizan actualmente, recopilar los datos y analizar el funcionamiento de la gestión de requerimientos [15]. En este apartado se llevó a cabo el diseño y la aplicación de una encuesta que permitió determinar la forma como trabajan actualmente las empresas que hacen parte de la población de interés en esta investigación. La encuesta se aplicó a un conjunto de MIPYMES. Para evaluar la confiabilidad del instrumento se empleó el Método de mitades partidas (split-halves), dividiendo los ítems en dos partes, para posteriormente evaluarlos de manera independiente y calcular la correlación con la obtención r Pearson [16], como se muestra en la ecuación (1).
Y como tercera sección metodológica, se construyó el modelo a partir de la triangulación de las dos secciones anteriores, literatura y levantamiento de la información, validando todo esto mediante el desarrollo de un experimento sobre una población. Es decir, esta sección se concentró en el desarrollo de un nuevo modelo de aseguramiento de calidad de los requerimientos de software enfocado a la pequeña empresa.
Al término de la obtención del modelo, se llevó a una fase de experimentación para verificar y validar el impacto que se genera en las MiPymes al contar con el apoyo y uso de un modelo tecnológico llamado CHAMI, que permite asegurar la calidad de los requerimientos en las etapas tempranas del desarrollo de software. La figura 3 presenta el diseño del experimento mencionado.
Para lograr esto, se siguieron las siguientes etapas de planificación, que permitieron realizar el diseño del experimento:
Contexto del experimento. Entender las diferencias que ocurren al aplicar un modelo de aseguramiento de la calidad de los requerimientos
Propósito. Evaluar la eficiencia y eficacia del modelo de aseguramiento de calidad de requerimientos en la fase inicial de un proyecto de software en la educción/descubrimiento, especificación y evaluación de requisitos.
Perspectiva. Desde el punto de vista de la investigación es evaluar el modelo de aseguramiento de calidad de requerimientos para determinar si existe una diferencia significativa con su incorporación o no en la fase inicial de requerimientos
Selección de variables. Para este experimento se ha determinado la variable independiente como el modelo de aseguramiento de calidad de requerimientos (M) y tres variables dependientes que son el tiempo (T) total requerido para gestionar un requerimiento en los procesos de educción, elicitación y especificación del requerimiento dentro de un dominio del problema o proyecto a analizar , el costo (C) de los recursos necesarios para gestionar un requerimiento valido o defectuoso y la calidad (Q) del requerimiento resultante [16].
Selección de sujetos. Para el experimento se contemplaron tres tipos de sujetos de estudio en tres roles diferentes: R1 para estudiantes de carreras relacionadas con ingeniería de software, R2 para profesionales en la disciplina y R3 para expertos dentro de la industria del software, los cuales fueron seleccionados a través de la técnica por conveniencia y de manera aleatoria definidos y agrupados en equipos de dos personas en un proyecto de asignación similar en los trabajos, según [17].
III. MODELO RESULTADO
A continuación, se presenta el Sistema CHAMÍ como uno de los productos resultantes de la formulación del Modelo implementado a manera de sistema de información, en el cual se da a conocer la descripción, los perfiles de usuario, el modelo conceptual, el modelo de datos, el modelo de interfaz, los procedimientos específicos y los resultados, así:
A. Descripción
CHAMÍ o EMBERÁ CHAMÍ, es un grupo étnico indígena colombiano con un patrón de poblamiento disperso. Viven en distintas comunidades andinas en los Departamentos de Caldas, Quindío y Risaralda, que, en Colombia, conforman la región denominada Eje Cafetero; lugar donde está ubicada la ciudad de Pereira, misma en la que están situadas las MIPYMES que hicieron parte de la población objeto del proyecto de investigación desarrollado.
Este grupo étnico habla un dialecto de la lengua Emberá. CHAMÍ quiere decir CORDILLERA y EMBERÁ significa GENTE. Entonces, los CHAMÍ son La gente de la Cordillera, en oposición a los EMBERÁ propiamente dichos, que viven en las selvas y las llanuras del pacífico. La gente de la Cordillera, en los últimos 100 años ha estado buscando los elementos propios de la civilización que le permitan a ellos seguir viviendo como un grupo étnico indígena, pero sin desconocer los avances que les permitan seguir adelante en condiciones más dignas.
Es en ese sentido que al Modelo que resulta de un trabajo de Tesis Doctoral se le quiso dar el nombre CHAMÍ: primero, en honor a los nativos de nuestra región en el Eje Cafetero; y segundo, para darle la connotación de un modelo que, habiendo resultado de un ejercicio de tesis doctoral, ayude a los industriales locales a avanzar en la búsqueda de la civilización de las buenas prácticas en términos de construcción de software.
CHAMÍ es un sistema de información diseñado y desarrollado, con el cual se espera que las MIPYMES desarrolladoras de software de la región mejoren la calidad de sus documentos de especificación de requisitos (SRS- Software Requirements Specification).
Este sistema de información, que se comporta en forma de plataforma web, permite realizar el registro y la gestión de los requerimientos de usuario de un proyecto de software, para posteriormente llevar a cabo sobre ellos un conjunto de actividades que, guiadas por el modelo propuesto, permiten asegurar su calidad.
Al final del proceso, el usuario puede descargar en formato PDF una versión textual resumida del documento SRS, pero que permite satisfacer un conjunto de características deseables de este tipo de documento (completa, consistente, modificable, trazable), contemplado así que el proceso de desarrollo de software inicie con calidad desde sus primeras etapas. Además, la plataforma considera que los requisitos sean validados mediante un trabajo conjunto entre el analista, el cliente y el usuario del sistema, asegurando que los requerimientos que se identificaron y se especificaron en requisitos, reflejen realmente lo que los usuarios necesitan [18], de esta manera se disminuyen los tiempos y costos del proyecto asociados a reprocesos, incompletitud y errores en esta fase del desarrollo.
Para el desarrollo del CHAMÍ se tuvo en cuenta el modelo conceptual, el modelo de datos y el modelo de interfaz, tal y como se presenta a continuación:
B. El modelo conceptual
El sistema de información se desarrolló tomando como referencia el Procedimiento para Especificar y Validar Requisitos de Software PEVReS [19], el cual aporta diferentes técnicas, plantillas y ejemplos que ayudan a garantizar la calidad de la especificación de los requisitos identificados, a la vez que automatiza la generación del documento SRS.
El procedimiento sugiere la utilización de técnicas de especificación de requisitos de usuario (DRU) en lenguaje natural para requisitos funcionales y no funcionales, mediante la cual se indica la sintaxis adecuada para escribir los requerimientos que luego serán consignados en el documento SRS, facilitando el cumplimiento de los criterios de evaluación de un buen requisito: completo, correcto, realizable, necesario, priorizable, verificable y no ambiguo [20].
C. Modelo de datos
El modelo de datos para la plataforma CHAMÍ fue diseñado para una arquitectura multitenant, con la capacidad de soportar múltiples equipos de trabajo, laborando en múltiples proyectos pertenecientes a múltiples empresas del sector, donde los diferentes usuarios no dependen de una empresa en particular, sino que pueden trabajar en proyectos de diferentes empresas, asociados a ellas únicamente por sus proyectos de interés. Como parte de dicho modelo de datos se elaboraron los modelos Entidad-Relación y Relacional, a partir de los cuales se diseñó la base de datos del sistema de información.
El diagrama Relacional describe principalmente las entidades Request y Requirement, las cuales contienen los registros que corresponden a cada requerimiento y su especificación, así como su relación con las diferentes tablas que componen el sistema.
En función de la operabilidad y parametrización del sistema, se incluyen otras tablas con elementos que facilitan la automatización de los procesos de desarrollo y gestión de los requisitos que hacen parte de un determinado proyecto, asociado a una empresa con usuarios particulares.
D. Modelo de interfaz
El sistema de información CHAMÍ está conformado por seis diferentes módulos que permiten al usuario realizar la gestión de los requerimientos y requisitos para el desarrollo de proyectos de software, asociados a una determinada empresa, estos módulos, de manera gráfica, se presentan a continuación en la figura 4:
Los módulos desarrollados para la implementación del modelo son:
- Panel principalfigura 5
Gestión de empresas: permite a un usuario administrador gestionar las empresas asociadas a un proyecto determinado.
Gestión de proyectos: la administración de los proyectos de una empresa se realiza a través de este módulo.
Requerimientos: es un módulo desarrollado para administrar los requerimientos de un proyecto, permitiendo entre otras funcionalidades, indicar las dependencias entre requerimientos y gestionar su control de cambios.
Requisitos: mediante este módulo se puede gestionar la especificación de requisitos a través de una secuencia de pasos y campos de obligatorio diligenciamiento que permiten, además de realizar la especificación de un determinado requerimiento en lenguaje natural, indicar sus dependencias, sistemas foráneos asociados y restricciones, entre otros. La figura 6 muestra un ejemplo de este módulo.
E. Resultados
Una vez finalizado el proceso de educción [21], definidos los requerimientos y especificados en requisitos mediante las diferentes interfaces provistas por el sistema de información, el usuario puede generar el documento SRS basado en una simplificación del estándar IEEE Std. 830. La figura 7 presenta un ejemplo del encabezado del documento generado.
IV. ANÁLISIS Y DISCUSIÓN
Para evaluar el impacto del modelo se tomó como base la experimentación mediante la gestión de los requerimientos de un proyecto haciendo uso del modelo CHAMÍ, para lo cual intervinieron 63 profesionales de la industria, 63 profesionales independientes y 63 estudiantes de la disciplina, agrupados en 21 grupos.
Teniendo en cuenta lo anterior, se dan a conocer en la figura 8 los resultados obtenidos al evaluar las variables AAC4 (mide la Automatización) y AAC5 (mide la Documentación), luego de utilizar el modelo.
Los datos para la variable AAC4 son:
Debido a la cantidad de datos y muestreo aplicado podemos indicar que nuestra validez del experimento se centra dentro del tipo interno, es decir podemos concluir a razón de los resultados logrados en el estudio realizado, es necesario ampliar datos y empresas para poder establecer causa-efecto que podamos generalizar para abordar la validez externa.
La Tabla I muestra los estadísticos de resumen para AAC4. Incluye medidas de tendencia central, medidas de variabilidad y medidas de forma. De particular interés aquí son el sesgo y la curtosis estandarizados, para determinar si la muestra proviene de una distribución normal.
Descripción | Valor |
---|---|
Recuento | 25 |
Promedio | 4,672 |
Desviación Estándar | 0,576281 |
Coeficiente de Variación | 12,3348% |
Mínimo | 3,0 |
Máximo | 5,0 |
Rango | 2,0 |
Sesgo Estandarizado | -3,51126 |
Curtosis Estandarizada | 2,16996 |
Asimismo, se presenta en la figura 9 el histograma que relaciona la frecuencia de los datos obtenidos en la variable AAC4.
Como se muestra en la figura 10, los datos para la variable AAC5 son:
La Tabla II muestra los estadísticos de resumen para AAC5. Incluye medidas de tendencia central, medidas de variabilidad y medidas de forma. Al igual que en el caso anterior, son de particular interés el sesgo y la curtosis estandarizados, las cuales pueden utilizarse para determinar si la muestra proviene de una distribución normal.
Descripción | Valor |
---|---|
Recuento | 25 |
Promedio | 4,556 |
Desviación Estándar | 0,733757 |
Coeficiente de Variación | 16,1053% |
Mínimo | 2,0 |
Máximo | 5,0 |
Rango | 3,0 |
Sesgo Estandarizado | -4,22233 |
Curtosis Estandarizada | 5,13082 |
Asimismo, se presenta en la figura 11 el histograma que relaciona la frecuencia de los datos obtenidos en la variable AAC5.
Adicionalmente a la fase de análisis preliminar de los datos para determinar la distribución de probabilidad, se evaluó los supuestos de la normalidad con el propósito de validar los resultados con técnicas paramétricas como es la prueba t-student de muestras pareadas y un diseño factorial de un solo factor para determinar la diferencia estadísticamente significativa.
Como se puede apreciar en el análisis de los datos anteriores, el modelo entregó a los participantes del experimento niveles razonables de automatización y documentación, elementos que, como se mencionó en capítulos anteriores, son escasos en los procesos de desarrollo de software en las MiPymes por la complejidad, rigurosidad y tiempo que requiere adoptarlos de propuestas internacionales, considerando además que gran parte de los proyectos desarrollados por la población objeto de estudio en los que se utilizan estándares, metodologías o modelos, responden a enfoques ágiles que exigen liberar resultados en tiempos reducidos [21], dificultando aún más su implementación.
V. CONCLUSIONES
Se presentaron en este artículo los elementos principales que componen el meta-modelo CHAMÍ, desarrollado con el interés de facilitar el proceso de desarrollo y gestión de los requerimientos funcionales y no funcionales a las MiPymes desarrolladoras de software de la región, a través de un conjunto de actividades sistematizadas que permiten asegurar su calidad.
Así mismo, se muestra la aplicación de un experimento conducido con 198 personas con diferentes niveles de experticia organizadas en 21 grupos, para evaluar los niveles de automatización y documentación obtenidos luego de la utilización del modelo en un proyecto de software.
Los resultados preliminares indican que el modelo permite conseguir la definición de especificaciones completas, consistentes, trazables y no ambiguas de las necesidades de los clientes con considerables niveles de automatización y documentación, evitando problemas relacionados con un deficiente desarrollo de los requisitos.
Cabe señalar que el modelo tiene bases solidas consideradas en la literatura mundial de modelos de aseguramiento de la calidad en ingeniería de requerimientos y de la ingeniería de software, así como la aplicación y retroalimentación de los expertos ubicados en la industria donde fue probado el modelo con el propósito de disminuir la brecha entre la comunidad académica y la industria, logrando una sinergia para la construcción de modelos tecnológicos adaptables a la realidad de la industria local del desarrollo de software.
En la misma línea, el ejercicio realizado muestra que, si es posible incluir en los procesos de desarrollo de software de micro, pequeñas y medianas empresas, con enfoques tanto ágiles como tradicionales, elementos que permitan asegurar la calidad de los proyectos desde etapas tempranas, sin incurrir en variaciones desbordadas de tiempo, costo o talento humano y conservando el alcance del proyecto.
Sin embargo, este trabajo no está exento de limitaciones, particularmente en lo que concierne a la aplicación del meta-modelo en proyectos de gran envergadura y al involucramiento de muchos usuarios en el proceso, puesto que el mismo ha sido pensado y probado únicamente con MiPymes.
Como trabajo futuro, se plantea que puedan ser incluidos en el modelo elementos que apoyen la elicitación de requerimientos y la validación de requisitos, etapas previa y posterior a la especificación de estos, de tal manera que se logre cobertura completa de los procesos de desarrollo y gestión de requerimientos como parte fundamental en el aseguramiento de la calidad del software.