Peláez Valencia, Toro Lazo, Arias Vargas y Rodríguez Franco / INGE CUC, vol. 15 no. 2 pp. 110-122. Julio - Diciembre, 2019

Ingeniería de Software:

El aseguramiento de la calidad de los requisitos en la industria del software en el Eje Cafetero colombiano

Software Engineering: Requirements quality assurance in the software industry in the Colombian Eje Cafetero

DOI: http://doi.org/10.17981/ingecuc.15.2.2019.11

Artículo de Investigación Científica. Fecha de Recepción: 26/11/2018. Fecha de Aceptación: 06/11/2019

Luis Eduardo Peláez Valencia E:\Users\aromero17\Downloads\orcid_16x16.png

Universidad Católica de Pereira. Pereira (Colombia)

luis.pelaez@ucp.edu.co

Alonso Toro Lazo E:\Users\aromero17\Downloads\orcid_16x16.png

Universidad Católica de Pereira. Pereira (Colombia)

alonso.toro@ucp.edu.co

Juan Luis Arias Vargas E:\Users\aromero17\Downloads\orcid_16x16.png

Universidad Católica de Pereira. Pereira (Colombia)

juan.arias@ucp.edu.co

Daniel Eduardo Rodríguez Franco E:\Users\aromero17\Downloads\orcid_16x16.png

Universidad Católica de Pereira. Pereira (Colombia)

daniel1.rodriguez@ucp.edu.co

.

Para citar este artículo:

L. Peláez Valencia, A. Toro Lazo, J. Arias Vargas y D. Rodríguez Franco. “Ingeniería de Software: el aseguramiento de la calidad de los requisitos en la industria del software en el eje cafetero colombiano”, INGE CUC, vol. 15, no. 2, pp. 110-122, 2019. DOI: http://doi.org/10.17981/ingecuc.15.2.2019.11

.

Resumen

Introducción La ingeniería de software, como disciplina, se representa en una serie de subdisciplinas y de buenas prácticas. Una de ellas, el aseguramiento de la calidad del software, y dentro de esta, la calidad de los requisitos. Esta investigación explora y describe la situación en el Eje Cafetero (Colombia), la contrasta con la literatura internacional y propone líneas de acción para mejorar el proceso de desarrollo del software desde el aseguramiento de la calidad de los requisitos.

Objetivo Caracterizar las prácticas de la Industria del software local y su relación con el aseguramiento de la calidad, particularmente en la fase de requisitos.

Metodología La metodología usada en la investigación fue principalmente de tipo descriptiva y exploratorio, en la cual se usó un muestreo no probabilístico por conveniencia en la que participaron 23 empresas y se recolecto la información a través de encuesta.

Resultados Datos de entrada para la formulación de un modelo para el aseguramiento de la calidad de los requisitos en la industria local del software.

Conclusiones La mayoría de los proyectos que se emprenden en la industria local están en manos de organizaciones unipersonales o MiPYMES; organizaciones estas que en su mayoría evitan seguir estándares o metodologías aceptadas y reconocidas mundialmente, llevando entonces la definición de requisitos, para el caso que ocupa este artículo, a una mínima expresión y aumentando así las estadísticas de proyectos fracasados.

Palabras clave Ingeniería de Software; Aseguramiento de la Calidad del Software (SQA); Aseguramiento de la calidad de Requisitos (RQA); MiPYMES; Modelo de aseguramiento de la calidad de los requisitos; Desarrollo de Software

Abstract

Introduction Software engineering, as a discipline, is represented in a series of subdisciplines and good practices. One of these is software quality assurance, and within it, requirements quality. This research explores and describes the situation in the Eje Cafetero (Colombia), contrasts it with the international literature and proposing lines of action to improve the software development process from the point of view of requirements quality assurance.

Objective Characterize the practices of the local software industry and its relationship to quality assurance, particularly in the requirements phase.

Methodology− The methodology used in the research was mainly descriptive and exploratory, in which a non-probabilistic sample was used for convenience in which 23 companies participated and the information was collected through a survey.

Results Input data for the formulation of a model for quality assurance requirements in the local software industry.

Conclusions Most of the projects that are undertaken in the local industry are in the hands of unipersonal organizations or MiPYMES; organizations that mostly avoid following standards or methodologies accepted and recognized worldwide, taking then the definition of requirements, for the case that occupies this article, to a minimum expression and thus increasing the statistics of failed projects.

Keywords Software Engineering; Software Quality Assurance (SQA); Requirements Quality Assurance (RQA); MSMEs; Requirements Quality Assurance Model; Software Development

I. Introducción

La industria del software en la ciudad de Pereira está compuesta por Micros, Pequeñas y Medianas empresas (MIPYMES). En su mayoría, estas organizaciones cuentan con un bajo número de empleados y ofrecen servicios propiamente destinados al desarrollo de proyectos software a la medida [1].

Las MIPYMES en su deber por cumplir con la posibilidad de adoptar enfoques, tanto para asegurar la calidad no solo de sus procesos si no de sus productos, cuentan con número limitado de empleados, la mayoría de ellos de formación técnica y unos pocos del orden administrativo; buscan necesariamente emprender sus actividades de negocio de manera que ayuden a potenciar su organización y marca, esto basados en la calidad del producto y servicios que ofrecen [1] .

Las organizaciones inician su inclusión en el sector productivo con el objetivo de desarrollar software para las mismas empresas locales con fin de transcender con algún proyecto a nivel nacional o quizás internacional. Actualmente, buscan competir con mercados más exigentes, pues en los últimos cinco años algunas multinacionales de la industria del software se han instalado en la región. Esto ha llevado a que las MIPYMES perciban amenazada su posibilidad de continuar en la industria [2].

El planteamiento del problema que permite explorar y debatir sobre los requisitos como subdisciplina de la Ingeniería de Software se centra precisamente en la industria del software, como uno de los sectores clave para el desarrollo integral de todo país; esto se debe a que el software impacta diferentes sectores económicos: la educación, el trabajo, la industria, la salud, etc., pero sobre todo contribuye al desarrollo tecnológico e integral de toda sociedad; por ende al ser una industria que ofrece tanto potencial para la sociedad tiene “un gran componente de conocimiento, por lo que requiere un alto desempeño en investigación, desarrollo tecnológico y formación de personas capaces de producir conocimiento y soluciones acordes a las necesidades de todo tipo de organizaciones que lo requieran” [3], [4].

Fig. 1. Caracterización del sector de Teleinformática, Software y TI en Colombia
Fuente: [1].

Sin embargo, la situación se dificulta cuando se reconoce un alto dominio de la Industria por parte de las pequeñas y medianas empresas [5], dedicadas especialmente al desarrollo a medida y menos a la distribución empaquetada del producto (Fig. 1).

En el mismo sentido la Tabla 1 presenta la distribución por tamaño y línea de negocio, la industria del software en Colombia, donde se puede ver como más del 75% de la participación está en las microempresas, seguida de las pequeñas con casi un 20%.

Tabla 1. Línea de negocio por tamaño en Colombia.

Tamaño de la empresa

Línea de Negocio

Micro

Pequeña

Mediana

Grande

Desarrollo/ Fabricación de Software

49,8%

11,0%

2,1%

0,4%

Software como servicio

7,4%

1,8%

0,2%

0,1%

Testing de software

19,8%

5,8%

1,0%

0,5%

Fuente: [1].

En la Tabla 2 se puede ver la composición del sector software en el Eje Cafetero, donde el 36% se dedica a desarrollar software para la gestión y operaciones del negocio, seguida del 30% que se dedica a desarrollar herramientas de desarrollo de software.

Tabla 2. Caracterización del sector software Eje Cafetero.

Línea de negocio

%

Herramientas de desarrollo de software

30

Desarrollo de aplicaciones móviles

12

Software de gestión de procesos

23

Software para gestión y operaciones del negocio

36

Fuente: [1].

Lo anterior, corresponde al hecho de que la industria del software esta centrada en la producción de intangibles, conocida también como producción de conocimiento, lo cual posibilita la modernización de los procesos productivos, propicia el uso de habilidades laborales sofisticadas, ayuda a refinar y madurar un sector, y conduce a la producción de bienes con mayor valor agregado [2].

Por esto, se puede considerar que dicha industria no pretende renunciar al propósito de producir intangibles y por el contrario, en el mismo sentido, desea continuar en crecimiento y consolidación, por lo cual es necesario problematizar con este tipo de proyectos para determinar los factores causantes de baja calidad del software; refinarla a través de la adopción de buenas prácticas de ingeniería e implementación de estándares, modelos, metodologías y demás; especializarla a través de profesionales altamente calificados y enriquecerla a partir de una discusión final con los requisitos como elemento fundamental en el aseguramiento de la calidad del producto software desde el inicio del proceso de desarrollo.

El proyecto de investigación, enmarcado en un programa de investigación que tiene como propósitos problematizar sobre la calidad del software para concluir en soluciones para el sector, considera como una de sus hipótesis orientadoras que las MIPYMES de la ciudad de Pereira no han logrado apropiar modelos para el desarrollo de software, que en condiciones óptimas, logre caracterizarse por la implementación de buenas prácticas, la apropiación de metodologías y el seguimiento de modelos que logren redundar en un producto de calidad que deje satisfecho al usuario final y al cliente.

Las MIPYMES deben tomar acciones que les permita posicionarse en la industria del software y posteriormente prepararse para competir con la Industria a nivel internacional. La forma de hacer software las ha llevado a entregar productos poco fiables, sin terminar y con muchas restricciones en el mantenimiento, comparado con los productos que entregan los extranjeros radicados en la ciudad [3].

Por lo anterior, se considera la necesidad de emprender proyectos que, desde la academia como en este caso, sirvan de soporte para mejorar la industria del software. De ahí que se proponga la formulación de un modelo para el aseguramiento de la calidad de los requisitos de software como insumo para un buen inicio en la gestión y el desarrollo de proyectos de software; que permita a la industria local mejorar los niveles de calidad del proceso y el producto y participar en condiciones de competitivas en el mercado.

II. Antecedentes

Uno de los propósitos del proyecto de investigación se centró en la exploración y descripción el amplio conocimiento que hay en Ingeniería de Software como disciplina, en Aseguramiento de Calidad del Software– SQA como subdisciplina y posteriormente indagar y caracterizar las prácticas actuales de la industria del software al respecto, limitando el campo específico de conocimiento hacia los requisitos, para concluir entonces en una propuesta de modelo para el aseguramiento de la calidad de los requisitos funcionales y no funcionales; de tal forma que esta propuesta sirva para la fase inicial en el proceso de desarrollo de software y permita mejorar los tiempos de entrega y la calidad en el proceso de desarrollo.

El objeto de estudio se centra en los requisitos de proyectos de software; como parte de la disciplina de la Ingeniería de Software.

En una perspectiva institucional y genérica, las Tecnologías de la Información y las Comunicaciones (TIC) se definen como “aquellos dispositivos que capturan, transmiten y despliegan datos e información electrónica y que apoyan y el crecimiento y desarrollo económico de la industria manufacturera y de servicios” [6]; comprendiendo como dispositivos los tangibles como ordenadores, dispositivos móviles, servidores, etc.; y los intangibles como el software.

Uno de los elementos más importantes en las TIC es el software, el corazón de los miles de dispositivos y redes que existen en la actualidad, y que incluso se encarga de crear y controlar otro software [7]. Por esto, la manera de hacerlo bien se concentra en la disciplina de la ingeniería de software.

Sin embargo, la preocupación por hacerlo bien no es nueva, pues desde los años 60 se encontró que “producir buen software es muy difícil, muy costoso y necesario” [8]. Es entonces como en el año 1968 se acuñó el término “Ingeniería de Software”, como una meta a la que se deseaba llegar: “Aplicar la ingeniería al software” [9].

En cada aplicación informática, el profesionalismo y la madurez, la calidad, la planeación y los costos son variables críticas a la hora de producir sistemas software. Debido a esto, los elementos propios de la ingeniería de software se empiezan a evidenciar como claves en todas las áreas de la computación. Buenas prácticas de ingeniería han sido desarrolladas y apropiadas hasta conformar la ingeniería de software como disciplina, reconocida como tal por haber desarrollado su propia identidad, su propia profesión y forma de enseñarse y desempeñarse [8].

La Ingeniería de Software ha tenido grandes avances desde el nacimiento del término, e incluso cuenta con una definición estándar: “Aplicación sistemática de conocimiento científico y tecnológico, métodos y experiencia al diseño, implementación, pruebas y documentación del software para optimizar su producción, soporte y calidad” [10].

Además de esta definición, vale la pena mostrar otra definición que enfatiza la importancia de esta disciplina para la sociedad: “La rama de las ciencias de la computación que crea soluciones rentables a problemas prácticos de computación mediante la aplicación de conocimiento científico al desarrollo de sistemas de software al servicio de la humanidad” [11].

Luego, y en el contexto de la Ingeniería de Software, se reconoce el aseguramiento de la calidad del software como la manera de adoptar buenas prácticas en el proceso de desarrollo (variables de calidad internas) y para el producto (variables de calidad externas). Calidad, comprendida como el “grado en el que un conjunto de características inherentes de un objeto cumple con los requisitos” [10], [12].

El concepto de calidad de software no está muy lejano al concepto de calidad en general, pero establece un elemento adicional de gran importancia: las necesidades del usuario. Esto se puede ver en dos definiciones de calidad de software tomadas de estándares internacionales: “grado en el cual un producto de software satisface las necesidades establecidas e implícitas, cuando es utilizado en condiciones específicas” [13].

En el contexto del desarrollo de software, surge el concepto de Aseguramiento de la Calidad del Software (SQA por sus siglas en inglés). Este concepto se resalta porque su introducción en el mundo del software ha permitido hacer énfasis en que la calidad no es algo que se realice al final del proceso [14], sino que requiere acciones concretas desde el comienzo y durante todo el desarrollo de cada proyecto, abarcando: estándares, administración de configuración, auditorías, revisiones, pruebas, capacitación, administración de riesgos, procesos de requisitos, procesos de diseño, entre otros.

Otro referente que resalta la integración de actividades de calidad constantemente en el desarrollo dice que el aseguramiento de la calidad “da soporte a la entrega de productos de alta calidad, proporcionando al personal del proyecto y a los gerentes, en todos los niveles, la visibilidad apropiada y la realimentación sobre los procesos y los productos de trabajo asociados, durante toda la vida del proyecto” [15].

Si bien la literatura universal es amplia en hablar de SQA, el proyecto de investigación promueve un análisis cuidadoso sobre el aseguramiento de la calidad de los requisitos (RQA); no solo porque en la línea de Aseguramiento no es algo del final [14], sino que, en este caso, la investigación promueve como hipótesis asegurar las primeras actividades del proyecto software para que de esta forma se vayan mejorando las siguientes. Por ello, a continuación, se parte desde la propia definición formal del concepto hasta su avance hacia el aseguramiento de la calidad.

Requisito: El término requisito “una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo” [16], define como las condiciones que establece un usuario de acuerdo a una necesidad específica, de manera que sirva de forma oportuna para establecer resultados objetivos que desde un punto de vista estratégico, servirán además para fijar y establecer el alcance de dichos objetivos que se habrán dejado expuestos. “Circunstancia o condición necesaria para algo” [17] definiéndose también así en su condición de necesidad generando un efecto en su resultado. También se establece que en otros aspectos un requisito se fundamenta como parámetro que debe existir en todo contrato o procesos que impliquen a clientes o usuarios en función de un resultado estimado, es decir, que fijados dentro de un contrato se podrá extraer de este todo lo necesario para alcanzar un resultado objetivo.

Requerimiento: El término requerimiento se refiere en términos de una necesidad, se refiere al “acto judicial por el que se intima que se haga o se deje de ejecutar algo (petición)” [17]. Según la RAE, requerimiento es un sinónimo de necesidad, es decir, un concepto orientado hacia la carencia o falta de algo. Requisito es, en cambio, una circunstancia o condición necesaria para algo.

Requisito vs requerimiento: En aspectos diferenciadores de ambos términos, es válido afirmar que de alguna manera se hace difícil hablar o referirse a la fundamentación del concepto de requisito y requerimiento, esto por parte de la industria de software o los mismos equipos que se vinculan con objetivos claros en desarrollo de software, en términos conceptuales un requerimiento vincula las necesidades de las que carece un usuario o cliente, determinar lo que realmente necesita con bien específico, por su parte el requisito se vincula de manera más interna del producto, se basa en las necesidades de usuario o cliente respecto a las funcionalidades de operación del producto [2].

En este sentido, conviene aclarar que la diferencia entre requisito y requerimiento es de vital importancia, ya que en muchas ocasiones se hace uso indistinto de ambos términos. El origen de este problema es debido a la mala traducción del idioma inglés ya que la palabra requirement (requisito en inglés) puede fácilmente ser mal traducida como requerimiento (request en inglés).

La ingeniería de requisitos: La Ingeniería de Requisitos es tratada como una disciplina, [18] “el proceso de descubrir, analizar, documentar y verificar estos servicios y restricciones se denomina Ingeniería de Requisitos (RE)”. Es decir que es una disciplina que necesariamente se debe de llevar a cabo en proyectos o desarrollos de software si bien queremos generar y lograr estándares de calidad. Permite que los requisitos previamente establecidos generen: información consistente y no ambigua, fundamentar el problema de estudio que se está trabajando, y que de manera objetiva genere impacto en el software sobre el negocio.

La ingeniería de requisitos en su aspecto es un enfoque sistemático para recolectar, organizar y documentar los requisitos del sistema, y además establece que la disciplina facilita el acuerdo de cambio o modificación de los requisitos, poniendo en consideración opiniones y decisiones de las partes, para este caso, a los clientes y equipo del proyecto [19].

La ingeniería de requisitos en términos generales dentro de su accionar como disciplina hace una descomposición paramétrica y secuencial para tratar los requisitos, desde los insumos y consolidación de información que inicialmente brinda el cliente desde su necesidad, de manera que la ingeniería de requisitos internamente y basándose como disciplina genere una serie de etapas dentro de un ciclo de vida organizado y secuencial que permitan establecer las reales necesidades que subministra el cliente, de manera que ese pueda finalmente tener un requisito estructurado y validado.

Estructura de la ingeniería de requisitos: Algunos autores [20], [9], sugieren que la ingeniería de requisitos se estructure como se muestra en la Fig. 2.

Fig. 2. Estructura de la ingeniería de requisitos.
Fuente: Autotes [20].

Los mismos autores indican que el desarrollo de los requisitos comprende diferentes fases, razón por la cual sugieren que el proceso de desarrollo se aborde como lo especifica la Fig. 3.

Fig. 3. Proceso iterativo de desarrollo de requisito.
Fuente: Autores [20].

Cada una de estas fases permitirá que se establezca e implementen mejores prácticas de acuerdo con el estudio y desarrollo de los requisitos, fases como elicitación, análisis, especificación y validación [9], permitirán mayor claridad y se asumirán con mayor responsabilidad, veamos cada una de las fases en detalle:

Elicitación: elicitación o captura de requisitos, se refiere al proceso donde se origina una necesidad que se plasma mediante un requisito, es la manera como el ingeniero de software establece una estrategia apropiada para recogerlos, de manera que se logre describir oportunamente la necesidad del cliente respecto a sus peticiones funcionales de un producto software, esto podrá esclarecer en un primer plano a lo que el cliente le apuesta de acuerdo a sus necesidades expuestas, además se podrá identificar personas u otros elementos que hagan parte del sistema a desarrollar, es decir, a partir de este paso se logrará una relación cercana con el cliente por parte del equipo de desarrollo, además de tratarse de definir requisitos claros. Se afirma que la fase de elicitación de requisitos es entendida como “el proceso de identificación de las necesidades y limitaciones de los interesados para un sistema de software [20]. “Elicitación” no es lo mismo que ‘el levamiento de requisitos.’ Tampoco es una simple cuestión de transcribir exactamente lo que dicen los usuarios. La “elicitación” es un proceso colaborativo y analítico que incluye actividades para recolectar, descubrir, extraer y definir los requisitos”.

Análisis: el análisis es la fase que analiza requisitos [9] para:

Comprende las siguientes actividades:

En esta etapa, los requisitos se clasifican por grupos y subgrupos de acuerdo con el requisito que se haya estipulado en la fase de elicitación, se examinan considerando parámetros de acuerdo con su completitud y ambigüedad, de manera que se puedan consolidar o clasificar de acuerdo a las necesidades del cliente o usuario.

Fases como elicitación y análisis, son procesos que si bien apropiados y ejecutados, permiten esclarecer a gran profundidad la necesidad del cliente, de manera que se pueda abstraer y entender el software que dará solución a la necesidad del cliente.

Especificación: es el primer acercamiento tangible de acuerdo a los procesos de elicitación y análisis anteriores ya adquiridos y desarrollados, es decir, que se propone la especificación de acuerdo los resultados en las etapas anteriores, de manera que el documento de especificación de requisitos deje expuesto claramente las verdaderas necesidades del cliente o usuario, de manera que desde este aspecto se logre en primera instancia resolver y proponer el alcance del proyecto que se genera como ambiente de acuerdo entre el equipo de desarrollo y el cliente. “Para la mayoría de las carreras de ingeniería, el término ‘especificación’ se refiere a la asignación numérica de valores o límites a los objetivos de diseño de un producto” [9]. La “Especificación de requisitos de Software se refiere típicamente a la producción de un documento, o a su equivalente electrónico, que puede estar sistemáticamente repasado, evaluado, y aprobado” [12] [2]. Este documento se conoce como SRS (Software Requirements Specification, por sus siglas en inglés) [21].

Validación: seguido del proceso de especificación se espera que el documento resultado del proceso, esté sujeto a una verificación, donde se pueda visualizar que el ingeniero de software ha sido coherente en su trabajo de elicitar y analizar, es decir, que si ha comprendido los requisitos por parte del cliente o usuario, además se espera validar que el documento cumpla con las especificaciones mínimas que permitan continuar con un proceso itinerante, además de asegurar que el documento sea coherente y completo.

Los requisitos pueden ser sometidos a procesos tanto de verificación como de validación [20]. El término “verificación” determina si se han escrito los requisitos bien, es decir, que cada requisito cumple con las características de un buen requisito, mientras que la “validación” evalúa si se han escrito los requisitos adecuados.

Por otro lado, se puede mencionar algunos casos prácticos de aplicación e investigaciones sobre especificación de requisitos de software realizadas en la región [2] como los siguientes, que son importantes para fortalecer este referente teórico:

III. Metodología

Para caracterizar el estado de la cuestión en lo relacionado a requisitos en proyectos de software, el desarrollo metodológico se justifica desde un estudio exploratorio en dos dimensiones: la exploración bibliográfica y el levantamiento de información en sitio. De esta forma, se proponen cinco fases de desarrollo así:

Fase 1: Exploración del estado del arte

En el trascurso y desarrollo de la investigación se realiza un levantamiento de información acudiendo a diferentes fuentes de información como lo son repositorios institucionales, bases de datos especializadas y bibliografía física de las diferentes bibliotecas de la región, de la misma manera, se realizó una revisión de más de 43 diferentes modelos y estándares de calidad a nivel de proceso, producto y gestión, tanto de orden internacional como latinoamericano tales como CMMI, PSP/TSP, MoProSoft, Evaloprosoft, Competisoft, MPS-Br, McCall, SQAE, ISO 15504, ISO 25000, NA-ISO 9126, IEEE/EIA 12207, entre otros, esto con el objetivo de indagar, entender y proponer el contexto del problema que tiene como objeto el estudio, la caracterización del sector local de la ciudad de Pereira, de acuerdo a como está siendo abordado y manejado el aseguramiento de la calidad de los requisitos en la industria local, de igual forma y basados en la revisión de antecedentes, se concreta un acercamiento referente al contexto de la situación problema como interés en el ámbito regional, nacional e inter­nacional.

Fase 2: Caracterización de la industria local del software de la ciudad de Pereira

Para la industria local del software de la ciudad de Pereira se realiza una descripción de aquellas empresas cuyas actividades económicas se encuentran bajo el código CIIU 62-Desarrollo de Sistemas de Información (planificación, análisis, diseño, programación, pruebas), consultoría informática y actividades relacionadas y CIIU 63-Actividades de Servicio de Información, ubicadas en las ciudad, con el objetivo de definir una población la cual se prestó para la realización del estudio e identificación arrojando un marco muestral de empresas dedicadas a las actividades económicas descritas anteriormente, para determinar la muestra necesaria la cual permitiera realizar la caracterización del estado de la cuestión de los requisitos en la industria del software de la ciudad de Pereira.

Con base en el estudio preliminar se obtuvieron las bases de datos de dichas empresas por medio de una solicitud a la cámara de comercio de la ciudad, finalmente se encontraron 69 empresas en la ciudad de Pereira.

Dentro de la población estudiada se clasificaron las empresas en cuatro tipos de servicios que fueron un factor común dentro de las organizaciones, los cuales son: Software a la medida, Software empaquetado, aplicaciones móviles, aplicaciones web y otros (Tabla 3).

Tabla 3. Distribución porcentual de empresas de acuerdo a la actividad que realizan, para cada ciudad objeto de estudio.

Comunas

# Empresas

Álamos

4

Batallón

3

Boston

2

Centro

27

Cerritos

5

Circunvalar

3

Cuba

10

Estadio

3

Parque Industrial

1

Pinares

8

Poblado

2

San Joaquín

1

Fuente: [22].

En consecuencia, se realiza una descripción de los resultados obtenidos en cada una de las ciudades especificando tamaño y tipo de empresa, servicio prestado, además de la ubicación geográfica de dichas empresas en el mapa de la ciudad correspondiente a Pereira.

Para la clasificación del tamaño de las empresas se tuvieron en cuenta la información correspondiente al valor de activos de cada una de ellas, debido a que en los registros obtenidos en la ciudad, la información del personal dentro de las empresas no era verídico; es decir una gran parte de las empresas reportaban alrededor de 0 a 10 empleados.

Debido a esto se realiza un nuevo método para realizar la clasificación donde se toma como base el segmento empresarial empleado en Colombia donde existen micro, pequeñas, medianas y grandes empresas, esta clasificación está reglamentada en la Ley 590 de 2000 conocida como la Ley MiPYMES y sus modificaciones [L1].

Se clasifican como Microempresa aquellas organizaciones cuyos activos van Hasta 500 SMMLV ($368.858.500), pequeña empresa cuando los activos se encuentran en un rango entre 500 y 5.000 SMMLV ($3.688.585.000), mediana empresa cuando los activos superan los 5000 y no sobrepasan los 30000 SMMLV ($22.131.510.000), finalmente, se considera grande empresa cuando los activos son superioresa 30.000 SMMLV ($22.131.510.000).

En la Fig. 4. se encuentra consolidado la cantidad de empresas por tamaño en cada Pereira. Y como se puede observar en la gráfica, la industria del desarrollo de software en la ciudad de Pereira es del 91,86% para las empresas denominadas microempresas debido a su tamaño.

Fig. 4. Número de empresas de acuerdo con el Tamaño por ciudad.
Fuente: Autores.

Dentro de la ubicación geográfica en Pereira, se utilizó la división política administrativa de la ciudad dentro de la cual se dividen en comunas, con el fin de identificar la zona más común para esta industria.

Consecuentemente, la ciudad de Pereira se encuentra dividida en 12 comunas las cuales son: Álamos, Batallo, Boston, Centro, Cerritos, Circunvalar, Cuba, Estadio, Parque Industrial, Pinares, Poblado y San Joaquín (Tabla 4).

Tabla 4. Número de empresas por comunas en Pereira.

Actividad

Ciudad

Pereira

No Información

12,8

Software a la Medida

29,5

Software Empaquetado

10,3

Aplicaciones Móviles

17,9

Aplicaciones Web

14,1

Otros

15,4

Fuente: Autores.

Durante el estudio de las empresas se realizó la ubicación geográfica de cada una de las empresas de la ciudad, dando como resultado un mapa con la respectiva ubicación de las empresas dentro de la cabecera metropolitana que veremos a continuación. De esta manera podemos evidenciar que el 38.44% de las empresas se encuentran localizadas en el centro del municipio (Fig. 5).

Fig. 5. Ciudad de Pereira.
Fuente:. [23].

Fase 3: Población y muestra

Pereira cuenta con empresas cuyas actividades económicas se encuentran bajo el código CIIU 62-Desarrollo de Sistemas de Información (planificación, análisis, diseño, programación, pruebas), consultoría informática y actividades relacionadas y CIIU 63-Actividades de Servicio de Información, ubicadas en la ciudad, con el objetivo de definir una población objeto de estudio e identificar el marco muestral de empresas dedicadas a las actividades económicas descritas anteriormente, para determinar la muestra necesaria y de esta manera realizar la caracterización del estado de la cuestión de los requisitos en la industria del software de la ciudad de Pereira.

Con base en el estudio preliminar, se obtuvo la base de datos de dichas empresas por medio de una solicitud a las cámaras de comercio de la ciudad, finalmente se encontró 69 empresas en la ciudad de Pereira de las cuales 52 se encontraban activas en el contexto del desarrollo de software.

Tabla 5. Información de la muestra.

Diseño de

muestra

Muestra por

conveniencia

Población objetivo

MiPYMES desarrolladoras de software la ciudad de Pereira.

Tamaño de

la muestra

23 empresas de la

ciudad de Pereira.

Momento estadístico

Octubre 2017.

Financiación

Recursos propios

Fuente: Autores.

Se acuerda una muestra por conveniencia de las empresas desarrolladoras de software en la ciudad de Pereira, con relación a lo anterior y bajo el estudio previo de un experto estadístico vinculado a la Universidad Católica de Pereira, en conveniencia con la Facultad de Ciencias Básicas e Ingenierías de la institución, se toma el siguiente alcance (Tabla 5) para la respectiva investigación.

Fase 4: Diseño del instrumento de recolección de información

Con el objetivo de realizar la caracterización de la industria local del software en la ciudad de Pereira, se hizo necesario el diseño de un instrumento que acompañará el levantamiento de la información en contexto de la situación problema, que permitiera recolectar la información suficiente que diera alcance a generar preguntas al sector productor de software sobre la manera como están siendo tratados los requisitos y por ende conocer el estado y la apropiación del aseguramiento de la calidad del producto software.

En este sentido, para el caso del instrumento las siguientes dos siglas se entenderán así:

SQA: Software Quality Assurance o Aseguramiento de la Calidad del Software. El SQA proporciona la seguridad de que los productos y procesos en el ciclo de vida del proyecto cumplan con sus requisitos especificados mediante la planificación, promulgando y llevando a cabo un conjunto de actividades de suficiente confianza indicando que la calidad radique en el software [9].

RQA: Requirement Quality Assurance o Aseguramiento de la calidad en los requisitos. Conjunto de instrumentos y buenas prácticas que proporcionan la seguridad de los que los productos y procesos relacionados con la definición de un problema que se resolverá con software nuevo o modificado cumplen con lo especificado previamente para generar la confianza necesaria que los lleve a ser considerados como de calidad [24].

El instrumento está compuesto por los siguientes conjuntos de preguntas que atienden la necesidad de responder a los cuestionamientos generados en la investigación:

Fase 5: Aplicación del instrumento para conocer el estado de la cuestión en sitio

Basados en la muestra y la población de estudio, la aplicación del instrumento (tipo encuesta), se logra aplicar considerando estratégicamente los siguientes items:

IV. Resultados

Como insumo y fuente principal de la consolidación de información en condición de responder a los cuestionamientos necesarios incluidos dentro del alcance de la investigación, se aplicó un instrumento de tipo encuesta con el fin de obtener la información necesaria por parte de la población estudio, específicamente en las MiPYMES.

El instrumento está conformado por 13 preguntas respectivamente queriendo evaluar dos procesos fundamentales: el aseguramiento de la calidad (SQA) y el aseguramiento de la calidad de los requisitos (RQA) que hacen parte fundamental dentro del proceso de desarrollo de proyectos de software, de la misma manera subdividiéndose en preguntas de segundo orden como: la adopción de modelos o procesos para el aseguramiento de la calidad de los requisitos en proyectos de software, incorporación de personal calificado para la aplicación y apropiación de SQA, adopción y manejo de buenas prácticas para el SQA y RQA y su efecto en la aplicación.

De acuerdo a la sistematización de la información por parte de la población participante del estudio, se procedió a la realizar el análisis de resultados arrojados por las encuestas por lo anterior es necesario conocer los siguientes puntos de acuerdo a la importancia y papel que cumplen dentro de la investigación:

Respecto a la adopción de un modelo o proceso para el aseguramiento de la calidad de los requisitos, el 44% de las MiPYMES de la ciudad de Pereira afirman que en su organización no hay un modelo o proceso para medir el aseguramiento de la calidad de los requisitos, pero que a su vez han conseguido un modelo o proceso que para 32% se establece propiamente en detectar los errores en el proceso de requisitos, pero que no se están documentando, lo que en consecuencia resulta que para la mayoría de la muestra encuestada específicamente el 96% NO se implementa buenas prácticas que ayuden a medir el impacto en los proyectos siguientes (Fig. 6).

Fig. 6. Adopción de un modelo o proceso para el aseguramiento de la calidad de los requisitos.
Fuente: Autores.

En la misa línea, respecto a la manera como las MiPYMES de la ciudad de Pereira validan que un requisito efectivamente pasó por un proceso de aseguramiento de la calidad, se indica que el 60% de las empresas que desarrollan software en la ciudad no llevan a cabo una validación para éste proceso, por otro lado el 32% de las empresas validan que el requisito ha pasado por un proceso de aseguramiento de la calidad bajo un documento que les permite validar los requisitos tomando este como un proceso suficiente, y de la misma manera se determina que ninguna de las MiPYMES de la ciudad de Pereira implementa un modelo de aseguramiento de la calidad sobre cada requisito (Fig. 7).

Fig. 7. Validación del proceso de aseguramiento de la calidad de un requisito.
Fuente: Autores.

Respecto al personal especializado en el contexto de los proyectos de software, el 68% de las MiPYMES de la ciudad de Pereira afirman que todo lo relacionado con requisitos lo hacen las personas de otras fases del desarrollo del proyecto (análisis, diseño, desarrollo, etc.), por lo cual ninguna de estas organizaciones tiene personas especializadas en aseguramiento de la calidad y en algún modelo de aseguramiento de calidad de requisitos apropiado en cada proyecto, de la misma manera no tiene personas especializadas en aseguramiento de calidad de requisitos (Fig. 8), ni un modelo que indica de manera sistemática las buenas prácticas que deben aplicar y validar en cada proyecto.

Fig. 8. Categorización del personal especializado en el contexto de los proyectos de software.
Fuente: Autores.

V. Análisis y discusión

Al analizar e interpretar la información recolectada de acuerdo con los temas establecidos anteriormente para la encuesta que se aplicó a la muestra por conveniencia de las MiPymes desarrolladoras de software de la ciudad de Pereira, se descubren ciertos aspectos que es de gran importancia mencionar en esta discusión de resultados.

Respecto al tema relacionado con la manera como las MiPYMES de la ciudad están llevando el proceso para el aseguramiento de la calidad de los requisitos en sus proyectos, se conoció que con respecto a la categoría de apropiación de SQA que manejan las organizaciones, un alto número de las MiPYMES de la ciudad de Pereira desconocen o no aplican el SQA en sus proyectos de software, lo que implica que de las organizaciones consideran pertinente usar y aplicar otro método o concepto diferente a SQA para los proyectos que desarrolla pero de la misma manera no ven necesario aplicarlo de esta manera y sobre la misma línea. Por lo anterior, se puede concluir la falta de uso y apropiación de metodologías para lograr proyectos software sistematizados y que obedezcan a buenas prácticas [3].

En relación con el estado de incorporación de talento humano especializado en SQA en los proyectos software, se obtiene que en su mayoría no cuentan con personal enfocado en temas de calidad; sin embargo, en algunos casos, la industria consulta a expertos en el tema con los cuales soporta el desarrollo de algunas fases en cada proyecto.

Una buena práctica detectada en la industria es la gestión de la documentación, dentro de la que realizan gestión de versiones y reportes de verificación. Sin embargo, estas prácticas se consideran genéricamente asociadas a la gestión del proyecto y no directamente al desarrollo de este.

En consecuencia con el marco teórico y los antecedentes referidos en el documento, es necesario plantear un análisis de los resultados que impliquen las fundamentaciones teóricas, de manera que no se desconozca el estado del arte con lo que ha demostrado la caracterización del sector del software de la ciudad de Pereira, en este sentido y refiriendo los requisitos en su papel e importancia dentro del desarrollo de software con el fin de asegurar la calidad del producto, permite evidenciar que, mientras para el proceso de desarrollo de software es necesario descubrir, analizar, documentar y verificar las restricciones, todo en el contexto de los requisitos [18], para la industria local no resulta de tanta relevancia este proceso, en cuanto el 4% de las MIPYMES consideran que implantar buenas prácticas y aplicar mejoras, es suficiente para garantizar la calidad de un requisito.

En consonancia, el aseguramiento de la calidad de los requisitos en su aspecto, es un enfoque sistemático para recolectar, organizar y documentar los requisitos del sistema, lo que directamente implica y facilita el acuerdo de cambio o modificación de los requisitos, poniendo en consideración opiniones y decisiones de las partes [19]. Para este caso, a los clientes y equipo del proyecto, que para el 8% de los productores, su actividad de validación determina el buen manejo de este proceso se afirma en tener en cuenta características de calidad en consecuencia de documentar los errores e implicando las buenas prácticas, lo cual serán implementadas en proyectos futuros razón que evitará implicar en cierta medida a las partes para la toma de decisiones.

La situación anteriormente descrita se presenta en contraste con otras [24], al tratar los requisitos como primer área del conocimiento, en lo que se refiere a la captura, el análisis, la especificación y la validación de los requisitos del software y contempla una serie de aspectos y conceptos que llevan al software a ser objeto de aplicación de la ingeniería.

En la misma línea [25], se considera clave el producto de salida al proceso correspondiente de aplicar los conocimientos del área y lograr un documento que permita sistematizar, revisar, evaluar y aprobar todo lo relacionado con los requisitos del software [2]. Sin embargo, como resultado del estudio y en contraste con lo anterior, el 32% de las MIPYMES encuestadas consideran que el uso de una herramienta que les permita realizar la gestión de los requisitos es suficiente para caracterizar este proceso como estándar en la aplicación de la ingeniería, y de esta manera conseguir la calidad no sólo de sus productos si no de sus procesos en el manejo de los requisitos.

Las MIPYMES de la ciudad de Pereira requieren adoptar mejores prácticas en todas las fases del proceso de desarrollo que conduzcan a mejorar la calidad del producto. Esto logrará mejorar y potenciar su actividad comercial frente a los servicios y productos que ofrecen.

Comprendiendo que la preocupación común es entregar un producto que genere confianza al cliente y al usuario final y que se caracterice por el seguimiento y cumplimiento de estándares o buenas prácticas de calidad, entonces es necesario adoptar acciones conducentes a mejorar el aseguramiento de la calidad desde el proceso de desarrollo y la gestión del proyecto.

Una de las razones del fracaso de proyectos de software se debe al desconocimiento en el manejo del proceso de los requisitos en la fase temprana del proceso de desarrollo, dado que los productores, en su mayoría, contemplan el inicio de un proyecto de software desde el momento en que llevan a cabo, de manera ejecutiva, el análisis y el diseño de la situación.

A esto, la recomendación como buena práctica es incluir los procesos de ingeniería de requisitos o requisitos dentro de sus proyectos. Por esto, además de priorizar buenas prácticas de aseguramiento de calidad en el proceso de desarrollo, debería a la vez iniciarse dicho aseguramiento con el proceso de requisitos como fase conceptual para el producto que se espera.

La mayoría de los proyectos que se emprenden en la industria local están en manos de organizaciones unipersonales o MiPYMES; organizaciones estas que en su mayoría evitan seguir estándares o metodologías aceptadas y reconocidas mundialmente, llevando entonces la definición de requisitos, para el caso que ocupa este informe, a una mínima expresión y aumentando así las estadísticas de proyectos fracasados.

En condición de concluir con el proceso vital, el aseguramiento de la calidad de los requisitos RQA como conjunto de actividades y cualidades que caracterizan los procesos de definir, medir, mejorar y gestionar la calidad de la identificación, análisis, centrado en la fase de requisitos dentro del proceso inicial del ciclo de vida del desarrollo y en su papel fundamental en la mejora del proceso de esta fase, respecto al sector e industrias del software en la ciudad de Pereira comprende que no sólo debe ajustarse al manejo de la documentación específica o conseguir adoptar una metodología que estandarice sus proyectos, si no trascender en la metodología y proceso de manera que se logre consiguiendo que se adopte como disciplina y no como condición para emprender un proyecto de software, esto hará que se logre entregar un producto confiable y de calidad por parte del productor local.

Finalmente, resulta de interés para futuras investigaciones la disposición que los industriales del sector software tienen para participar de proyectos académicos que conduzcan a entregar productos de mejores niveles de calidad problematizando el aseguramiento de la calidad desde el proceso.

Financiamiento

Artículo de investigación científica derivado del proyecto de investigación “Modelo Automatizado para el Aseguramiento de la Calidad de los Requisitos en Proyectos de Software”, financiado por “Universidad Católica de Pereira”, dentro de la convocatoria 06-2016, presentado por el grupo de investigación Entre Ciencia e Ingeniería. Año de inicio: 2016, año de finalización: 2017.

Referencias

[1] FEDESOFT, SENA, Caracterización del sector tele­informática, software y TI en Colombia 2015, Bogotá, D.C.: Colombia: MinTic, 2015.

[2] A. Toro y J. G. Gálvez, Procedimiento para especificar y validar requisitos de software en MiPymes desarrolladoras de software de la ciudad de pereira, basado en estudios previos de la región, M.S. tesis, Fac. Ing., Universidad Autónoma de Manizalez, Manizales, Colombia, 2017.

[3] L. E. Pelaez, A. Toro y L. Cardona, Estado del Arte que Soporta el Proceso de Desarrollo de Software: Una mirada desde las Organizaciones que tratan la disciplina, ReCyT, vol. 5, no. 10, pp. 93107, Nov. 2011.

[4] D. C. Lopera, Análisis estratégico de la industria colombiana de software a partir de la simulación de escenarios de competencia utilizando Dinámica de Sistemas, M.I.M. tesis, Fac. Minas, UNAL, Medellín, Colombia, 2012.

[5] P. B. Tigres y F. Silveira, Ed. Desafíos y oportunidades de la industria del software en América Latina, Bogotá D.C:, Colombia: CEPAL, Mayol Ediciones, 2009.

[6] OCDE, Information Economy - Sector Definitions based on the International Standard Industry Classification, Paris, Francia: OCDE, 2007.

[7] R. Pressman, Ingeniería del Software, un enfoque práctico, New York, USA: McGraw-hil Interamericana, 2010.

[8] Joint Task Force on Computing Curricula, ACM & IEEE, Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, New York, NY, USA: ACM, 2013. https://dx.doi.org/10.1145/2534860

[9] P. Bourque & R. Fairley, Eds. Guide to the Software Engineering Body of Knowledge, Version 3.0, Piscataway, NJ, USA: IEEE Computer Society, 2014.

[10] ISO/IEC 2382-9:2015(en). ISO, International Organization for Standardization, Ginebra, Suiza, 2015.

[11] M. Shaw, Progress toward an Engineering Discipline of Software, 2016 IEEE/ACM, 38th IEEE International Conference on Software Engineering Companion (ICSE-C), Austin, Texas, USA, 2016.

[12] P. Bourque & R. Fairley, Eds. Guide to the Software Engineering Body of Knowledge, Version 3.0, Piscataway, NJ, USA: IEEE Computer Society, 2014.

[13] ISO/IEC TS 25011:2017(en). ISO, International Organization for Standardization, Ginebra, Suiza, 2017.

[14] D. Heimann, IEEE Standard 730-2014 Software Quality Assurance Processes, IEEE Computer Society, New York, NY, USA, IEEE Std 730™-2014, Mar, 2014.

[15] CMMI Product Team, CMMI for Development Version 1.3, SEI, CMU, Pgh, Pa, USA, Tech. Rep. CMU/SEI-2010-TR-033, Nov. 2010.

[16] IEEE, IEEE Software Engineering Standard: Glossary of Software Engineering Terminology, IEEE Computer Society, New York, NY, USA, IEEE Std 610.12-1990, Sept. 1990.

[17] RAE, Requerimiento, Real Academia Española, Madrid, España. Último Acceso: Dec. 15, 2015. [En línea]. Available: http://buscon.rae.es/drae/srv/search?val=requerimiento

[18] I. Sommerville, Ingenieria del Software, 7ma ed., Madrid, España: Pearson Educación, 2005.

[19] R. Oberg, L. Probasco y M. Ericsson, Applying requirements management with use cases, Rational Software, SJC, CA, USA, White Paper TP505, 2003.

[20] K. Wiegers y J. Beaty, Software Requierements, 3rd ed., Redmon, WA, USA: Microsoft Press, 2013.

[21] A. Toro y J. G. Gálvez, Especificación de requisitos de software: una mirada desde la revisión teórica de antecedentes, Entre Ciencia e Ingeniería, vol. 10, no. 19, pp. 108113, Jun. 2016.

[22] F. J. Ibañez, Informe de Caracterización del Sector, [En línea], Pereira, Colombia, 2017.

[23] IGAC, Geoportal Instituto Geográfico Agustín Codazzi, IGAC, Bogotá, D.C., Colombia. Último acceso: Jul. 30, 2017. [En línea]. Available: http://geoportal.igac.gov.co/

[24] L. E. Peláez, A. T. Lazo y L. C. Benjumea, Relación entre la carta del proyecto del PMBOK (PMI) y SQA, Ventana Informática, no. 29, pp. 6379, Mar. 2013.

[25] C. A. De la Cruz y G. A. Castro, Metodología para la adquisición y gestión de requerimientos en el desarrollo de software para pequeñas y medianas, Mgs tesis, Fac. Ing., UTP, Pereira, Colombia, 2014.

[L1] República de Colombia, Congreso de la República, (2004, Agosto 2) Ley 905. [En linea]. Disponible: Diario Oficial No. 45.628.

Luis Eduardo Peláez Valencia es Ingeniero de Sistemas, Especialista en Propiedad Intelectual: propiedad industrial, derechos de autor y nuevas tecnologías, Magister en Ingeniería de Software, Doctor(c) en Proyectos línea de Tecnologías de Información y Comunicación. Profesor Asociado de la Universidad Católica de Pereira (Colombia). Investigador asociado en la clasificación de Colciencias. https://orcid.org/0000-0002-4836-8336

Alonso Toro Lazo es Ingeniero de Sistemas y Telecomunicaciones, Magister en Gestión y Desarrollo de Proyectos de Software. Profesor Auxiliar de la Universidad Católica de Pereira. Investigador del grupo de Investigación Entre Ciencia e Ingeniería. https://orcid.org/0000-0001-7593-8026

Juan Luis Arias Vargas es Ingeniero de Industrial, Especialista en la Administración de la Informática Educativa, Magister en la enseñanza de las Matemáticas (Línea de Estadística).  Ha trabajado como Director del Departamento de Ciencias Básicas, Director de Ingenierías, Decano de la Facultad de Ciencias Básicas e Ingeniería de la Universidad Católica de Pereira. Actualmente es Profesor asociado e Investigador del Grupo de Investigación Entre Ciencia e Ingeniería de la misma Institución. https://orcid.org/0000-0002-7997-1891

Daniel Eduardo Rodríguez Franco es Ingeniero de Sistemas y Telecomunicaciones e Investigador del Grupo de Investigación Entre Ciencia e Ingeniería de la Universidad Católica de Pereira (Colombia). https://orcid.org/0000-0002-9978-9763