Subido por Edinson Osorio

GUIA PARA LA MEJORA EN EL LEVANTAMIENTO DE REQUERIMIENTOS DE SOFTWARE EN UNA PYME DE LOGISTICA DE TRANSPORTE

Anuncio
GUÍA PARA LA MEJORA EN EL LEVANTAMIENTO DE
REQUERIMIENTOS DE SOFTWARE EN UNA PYME DE LOGÍSTICA DE
TRANSPORTE
CARLOS ANDRÉS RODRÍGUEZ SILVA
UNIVERSIDAD CATÓLICA DE COLOMBIA
FACULTAD DE INGENIERÍA
PROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
BOGOTÁ D.C
2021
1
GUÍA PARA LA MEJORA EN EL LEVANTAMIENTO DE REQUERIMIENTOS DE
SOFTWARE EN UNA PYME DE LOGÍSTICA DE TRANSPORTE
CARLOS ANDRÉS RODRÍGUEZ SILVA
Trabajo de grado para optar al título de Ingeniero de Sistemas y
Computación
Asesor: Profesor Jaime Fernando Pérez González
UNIVERSIDAD CATÓLICA DE COLOMBIA
FACULTAD DE INGENIERÍA
PROGRAMA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
BOGOTÁ D.C
2021
2
3
Nota de aceptación
______________________________________
______________________________________
______________________________________
______________________________________
Presidente del Jurado
_______________________________
Jurado
_______________________________
Jurado
Bogotá D.C. Noviembre del 2021
4
AGRADECIMIENTOS
Agradezco a Dios por darme la fortaleza mental para superar las dificultades y
continuar con mi trabajo y estudio.
Agradezco a mis padres por toda la ayuda recibida a lo largo de la carrera, que me
facilitaron enormemente concentrarme en mis estudios y actividades.
Agradezco a mi tutor, el ingeniero Jaime Fernando Pérez, por sus consejos y su
ayuda a pesar de las dificultades, para mejorar mi proceso como estudiante y poder
realizar este trabajo de la mejor manera.
5
CONTENIDO
INTRODUCCIÓN ............................................................................................................. 12
1. PLANTEAMIENTO DEL PROBLEMA .......................................................................... 14
2.OBJETIVOS ................................................................................................................. 18
2.1. OBJETIVO GENERAL ....................................................................................................... 18
2.2. OBJETIVOS ESPECÍFICOS............................................................................................. 18
3. MARCO DE REFERENCIA.......................................................................................... 19
3.1. MARCO TEÓRICO ............................................................................................................. 19
3.1.1. INGENIERÍA DE REQUERIMIENTOS..................................................................... 19
3.1.1.1. DEFINICIÓN ............................................................................................................. 19
3.1.1.2. FASES ....................................................................................................................... 19
3.1.2. CALIDAD DE SOFTWARE ........................................................................................ 21
3.1.2.1. HISTORIA DE LA CALIDAD DE SOFTWARE .................................................... 21
3.1.2.2. CONCEPTO E IMPORTANCIA DE LA CALIDAD DE SOFTWARE ................ 22
3.1.2.3. ¿CÓMO LOGRAR LA CALIDAD DE SOFTWARE? ........................................... 22
3.1.2.4. ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE .................................. 22
3.1.3. METODO PARA INTERACTUAR CON STAKEHOLDERS EN EL
LEVANTAMIENTO DE REQUERIMIENTOS ..................................................................... 25
3.1.4. IMPACTO DE LOS REQUERIMIENTOS EN LA CALIDAD DEL SOFTWARE . 27
3.2. MARCO CONCEPTUAL .................................................................................................... 29
3.3. ESTADO DEL ARTE .......................................................................................................... 31
4.ALCANCES Y LIMITACIONES ..................................................................................... 38
5.METODOLOGÍA ........................................................................................................... 39
5.1 ENFOQUE METODOLÓGICO .......................................................................................... 39
5.2 FASES DEL PROYECTO................................................................................................... 39
6. CRONOGRAMA .......................................................................................................... 41
7. PRODUCTOS A ENTREGAR ...................................................................................... 42
8. INSTALACIONES Y EQUIPO REQUERIDO ................................................................ 43
9. PRESUPUESTO DEL TRABAJO................................................................................. 44
10. ESTRATEGIAS DE COMUNICACIÓN Y DIVULGACIÓN .......................................... 46
6
11. DESARROLLO DE LA PROPUESTA ........................................................................ 47
11.1 DIAGNÓSTICO PROPIO SOBRE EL LEVANTAMIENTO DE REQUERIMIENTOS.
....................................................................................................................................................... 47
11.2 EVALUACIÓN DEL PROCESO ACTUAL DE LEVANTAMIENTO DE
REQUERIMIENTOS. ................................................................................................................. 48
11.3 ESTUDIO ANALITICO SOBRE NORMAS Y METODOLOGIAS ENFOCADAS EN
EL LEVANTAMIENTO DE REQUERIMIENTOS DE SOFTWARE. ................................... 52
11.4 DISEÑO DE LA GUÍA PARA LA MEJORA EN EL LEVANTAMIENTO DE
REQUERIMIENTOS DE SOFTWARE EN UNA PYME DE LOGÍSTICA DE
TRANSPORTE. .......................................................................................................................... 53
11.5 EVALUACIÓN DE RETROALIMENTACIÓN DE LA GUÍA PARA LA MEJORA EN
EL LEVANTAMIENTO DE REQUERIEMIENTOS DE SOFTWARE. ................................. 66
12. CONCLUSIONES ...................................................................................................... 70
BIBLIOGRAFÍA ................................................................................................................ 71
ANEXOS ......................................................................................................................... 74
7
LISTA DE FIGURAS
Figura 1. Cronograma del proyecto ............................................................ 41
Figura 2. Presupuesto preliminar. ............................................................... 44
Figura 3. Presupuesto del personal ............................................................. 44
Figura 4. Presupuesto de gastos generales ................................................ 45
Figura 5. Presupuesto general del proyecto ................................................ 45
Figura 6. Pregunta 4 evaluación del proceso actual de levantamiento de
requerimientos ............................................................................................. 48
Figura 7. Pregunta 6 evaluación del proceso actual de levantamiento de
requerimientos ............................................................................................. 49
Figura 8. Pregunta 7 evaluación del proceso actual de levantamiento de
requerimientos ............................................................................................. 49
Figura 9. Pregunta 8 evaluación del proceso actual de levantamiento de
requerimientos ............................................................................................. 50
Figura 10. Pregunta 9 evaluación del proceso actual de levantamiento de
requerimientos ............................................................................................. 50
Figura 11. Pregunta 10 evaluación del proceso actual de levantamiento de
requerimientos ............................................................................................. 51
Figura 12. R01 diligenciado en el formato según la guía diseñada ............. 66
Figura 13. R02 diligenciado en el formato según la guía diseñada ............. 66
Figura 14. R03 diligenciado en el formato según la guía diseñada ............. 67
Figura 15. R04 diligenciado en el formato según la guía diseñada ............. 67
Figura 16. R05 diligenciado en el formato según la guía diseñada ............. 67
Figura 17. Pregunta 8 formulario retroalimentación de la guía diseñada .... 68
Figura 18. Pregunta 9 formulario retroalimentación de la guía diseñada .... 68
Figura 19. Pregunta 10 formulario retroalimentación de la guía diseñada .. 69
8
LISTA DE ANEXOS
Anexo A. Formato de diligenciamiento de requerimientos en una pyme de logística
de transporte.................................................................................................................. 74
Anexo B. Cuadro analítico sobre metodologías y normas enfocadas en el
levantamiento de requerimientos de software ........................................................... 75
9
RESUMEN
El presente trabajo de grado comprende el desarrollo del diseño de una guía de
calidad para el proceso de levantamiento de requerimientos en una PyME de
logística de transporte en Colombia, para verificar porque este proceso es uno de
los más importantes y claves en cualquier proyecto de desarrollo de software. Lo
descrito anteriormente se basa en un conjunto de normas y metodologías de calidad
actuales enfocadas al entorno y la situación actual de la empresa. Para el marco de
referencia y estado del arte se investigaron diferentes estudios sobre los diferentes
procesos en el levantamiento de requerimientos a nivel, internacional, continental y
local para tener una visión sobre la forma de implementar la guía según el contexto
de la empresa y su modo de operar.
Se hizo un diagnóstico propio al comienzo, sobre el proceso de software enfocado
en la etapa de requerimientos, para verificar las inconsistencias y malas prácticas
en algunos procesos de esta misma.
Se consultaron a nivel nacional e internacional las normas y metodologías utilizadas
filtradas según el marco colombiano de Min Tic para asegurar la calidad, en el
proceso de levantamiento de requerimientos, eligiendo las que se adaptarían al
modo de operar de las Pymes colombianas enfocadas en el desarrollo de software.
Para el desarrollo de la guía fue evidentemente seleccionar las buenas prácticas y
metodologías consultadas para utilizar las más útiles y que aportaran de la mejor
forma la estrategia de trabajo de la empresa sin generar un cambio drástico en la
organización de la misma. Las elegidas fueron la norma ISO 25010 y las
metodologías SCRUM y TSP para utilizar las características seleccionadas de cada
una de ellas y no en su totalidad.
Como parte final se pudo poner en práctica, aunque no en su totalidad lo
desarrollado en la guía y ver una retroalimentación por parte de los empleados en
la PyME, llevando a la conclusión del trabajo y de la importancia de los
requerimientos desde el inicio de la historia donde se introdujeron por primera vez
hasta el día de hoy.
Palabras Clave: Guía, Calidad, Ingeniería de requerimientos, Ingeniería de
software, Empresa, PyME.
10
ABSTRACT
This degree work includes the development of the design of a quality guide for the
requirements gathering process in a transport logistics SME in Colombia, to verify
why this process is one of the most important and key in any software development
project. The above described is based on a set of current quality standards and
methodologies focused on the environment and the current situation of the company.
For the frame of reference and state of the art, different studies on the different
processes in the requirements gathering at international, continental and local level
were investigated to have a vision on how to implement the guide according to the
context of the company and its way of operating.
A diagnosis was made at the beginning of the software process focused on the
requirements stage, to verify the inconsistencies and bad practices in some of its
processes.
National and international standards and methodologies used to ensure quality in
the requirements gathering process were consulted, choosing those that would
adapt to the way Colombian SMEs focused on software development operate.
For the development of the guide it was evidently necessary to filter the good
practices and methodologies consulted in order to use the most useful and that
would contribute in the best way to the work strategy of the company without
generating a drastic change in its organization. The chosen ones were the ISO
25010 standard and the SCRUM and TSP methodologies in order to use the
selected characteristics of each one of them and not all of them.
As a final part, it was possible to put into practice, although not in its entirety, what
was developed in the guide and to see feedback from employees in the SME, leading
to the conclusion of the work and the importance of the requirements from the
beginning of the story where they were first introduced until today.
Keywords: Guidance, Quality, Requirements engineering, Software engineering,
Enterprise, SME.
11
INTRODUCCIÓN
La evolución de la tecnología es un claro ejemplo que nada es estático y, cada día
se observa un constante cambio del mundo. Un claro ejemplo de esto es el
desarrollo de software el cual se ha convertido en aliado de las empresas buscando
mejorar los procesos y así impulsarlos a tener ventajas competitivas.
Hoy en día son muchas las empresas proveedoras de software que han identificado
en la crisis de la pandemia una oportunidad de interconectar a las compañías,
permitiendo que personas empezaran a crear una relación seriamente no solo con
la tecnología sino con las aplicaciones web, aprovechar los espacios en la nube, el
acercamiento a las aplicaciones (Apps), entre otras; buscando estas últimas proveer
los mejores servicios y las mejores funcionalidades para sobresalir en un mercado
altamente competitivo.
Es por esto, que la calidad del software es una competencia, y debe ser excelente,
no solo por brindarle un mejor servicio al cliente, sino porque internamente en
cualquier proyecto de software que se desarrolle éste deberá contar con los
procesos correctos y adaptándose a las normas para tener un buen control de
recursos, tiempo y alcance al implementarlo.
Para cada cliente o usuario final de una aplicación, al tener tantas opciones en el
mercado; siempre se guiará por la cantidad de procesos que pueda hacer y servicios
que pueda recibir, en cualquier lugar y en cualquier momento, esperando que se
comporte de manera óptima y acorde las 24 horas del día.
Para tener claro que el software puede cumplir con estos requerimientos, debe
cumplir con unas etapas donde se valida su pertinencia, confiabilidad y desempeño.
siendo estas características validadas desde una concepción como idea o respuesta
a un problema específico.
Cuando se habla de esa idea o problema a resolver, se denomina como
requerimiento inicial, y debe ser lo suficientemente claro y específico posible, de tal
manera que durante el desarrollo del proyecto de software no presente
ambigüedades.
Por lo anterior descrito, el presente trabajo tiene como finalidad, la creación de una
guía que apoye el proceso de levantamiento de requerimientos, ya que muchas
empresas omiten este factor al iniciar proyectos de software; para cumplir con este
objetivo se analizará una PyME de logística de transporte que provee software para
la mayoría de las operaciones que involucran esta industria, los procesos que llevan
a cabo, de qué forma los manejan y cómo es posible mejorar en algunas tareas que
no se estén realizando basadas en los mejores estándares.
12
De igual manera, se resaltará la importancia sobre la responsabilidad que se tiene
a la hora de levantar requerimientos de software para demostrar que las excusas
de pérdida de tiempo y documentación excesiva no se conviertan en algo difícil de
manejar, sino al contrario, demostrar que más se pierde en recursos y se generan
más problemas en el ciclo de vida del software si esta etapa no se le da la misma o
mayor prioridad que las demás.
13
1. PLANTEAMIENTO DEL PROBLEMA
La búsqueda de software de calidad hoy en día está siendo ampliamente necesitado
ya que el mercado se ha vuelto más competitivo, las nuevas tecnologías han
impulsado a transformar las empresas y su modo de operar. Así lo expone un
artículo sobre el aseguramiento de la calidad en Pymes en Colombia:
La calidad del software es un tema cada vez más importante y al que
se presta mayor atención, no solo desde el punto de vista investigativo,
sino también desde el punto de vista empresarial, puesto que cada vez
más las empresas buscan ofrecer a sus clientes productos y servicios
que les permitan diferenciarse de sus competidores por la calidad de
los mismos [1].
Basta con mencionar diferentes autores que han estudiado la fase de levantamiento
de requerimientos de software y su vital importancia como se menciona en este
artículo sobre algunas de las principales causas de fracaso de un proyecto de
software:
Factores de daño o cancelación
•
•
•
•
•
•
•
•
Requerimientos incompletos
Deficiencia en el involucramiento del usuario
Deficiencia de recursos
Cambios en los requerimientos y especificaciones
Deficiencia en la planeación
Fin de la necesidad del requerimiento.
Desconocimiento de tecnología
Expectativas no realistas [2]
Se puede observar que en el anterior listado cuatro de estos factores
(Requerimientos incompletos, cambios en los requerimientos, fin de la necesidad
del requerimiento y expectativas no realistas) están directamente relacionados con
la fase de levantamiento de requerimientos, haciendo que cada vez más las
empresas se cuestionen sobre esta primera fase del desarrollo de software, la
magnitud de afectación de este después de terminado el producto que es lo que
genera mayores pérdidas en recursos y tiempo.
The Standish Group, es una firma internacional independiente de asesoría en
investigación de TI fundada hace más de 30 años que realiza varios informes
14
anuales, donde hace unos años atrás como se planteó en este articulo [3] varias de
las dificultades de gestionar el proceso de desarrollo de software son:
•
•
•
•
•
El 15% de todo el esfuerzo de desarrollo de software se desperdicia
debido a la cancelación de proyectos (a nivel mundial).
El 50% de los proyectos de gran dimensión sobrepasa el presupuesto
o se retrasa en su plazo de entrega.
La mayoría de los proyectos de pequeña dimensión sobrepasan su
presupuesto y sufren el retraso de un 20% en los plazos de entrega.
La cantidad de trabajo en productos de software se duplica cada dos
años.
El 75% de los sistemas de gran dimensión tienen problemas de
funcionamiento.
Que son causadas por las siguientes debilidades enumeradas, dentro de este
mismo proceso como:
1.
2.
3.
4.
5.
6.
Alta dependencia de la mano de obra.
Altos costos, debido a los largos plazos de entrega.
Calidad insuficiente.
Procesos escasamente repetibles.
Modelos de gestión organizacional apenas desarrollados.
Estructura reducida y carencias de personal cualificado en gestión
empresarial.[3]
Solo con seleccionar la insuficiente calidad, acompañado de un desborde del
alcance proyecto haciendo que este sobrepase presupuestos definidos y retrasos
en los plazos de entrega se justifica mucho más el presente trabajo argumentado
por todo el historial referente a el levantamiento de requerimientos y la calidad del
mismo.
Ahora centrándonos en Colombia, se presenta a continuación algunos casos donde
pasa aquí como ya lo hemos mencionado, ayudado del Standish Group a nivel
mundial, situaciones similares con el proceso de desarrollo de software.
Desde inicios de este siglo se han visto clientes peleando por quien responde por
las pérdidas que generan los errores de software como lo expresa Alan Levine,
director de seguridad global de Alcoa, “'Cada vez que un fabricante de software saca
un nuevo parche o arreglo para reparar una falla es en cierto modo una retirada del
producto” [4].
También lo vemos recientemente con el caso de Avianca ocurrido en el 2018: “Falla
en software entre las causas de los retrasos de Avianca” que afectó el 8% de vuelos
15
en un día, afectando a más de 4000 pasajeros, los cuales representan cifras no
grandes, pero a considerar para la compañía. Así bien, grandes empresas no se
preocupan mucho por entregar software de calidad ya que siempre tienen las
excusas de que se requiere mucho tiempo, para revisar detenidamente y la presión
de los clientes por la entrega de productos los hace enfocarse en un solo objetivo
[5].
Por todo lo mencionado anteriormente se presenta el caso de este trabajo de grado
para verificar como se están realizando los procesos en PyMES y empresas recién
empezadas, específicamente en el levantamiento de requerimientos, primera fase
en el ciclo de vida del desarrollo de software:
La PyME de logística de transporte a trabajar durante este proyecto, es una
empresa conformada por un grupo de personas que desde hace más de 10 años
vienen dando soporte y desarrollo a una aplicación creada para todo el proceso del
área de transporte, desde la creación de una orden de servicio, todo el proceso de
tráfico, hasta cuando se liquida y se termina la misma.
Hoy en día esta empresa provee los servicios a más de cincuenta microempresas y
medianas empresas, de las cuales cada una tienen procesos diferentes y así mismo
no todos los servicios se proveen de igual forma a las mismas empresas, esto quiere
decir que algunos procesos como facturación electrónica, o módulos de contabilidad
algunas empresas los tienen y otros prefieren utilizarlos con terceros.
La PyME al no contar con muchos empleados y al no ser enfocada hacia el
desarrollo sino al proveer un servicio por medio de una aplicación, pero siendo el
software un componente esencial, se hace inviable aplicar una metodología de
desarrollo de software.
Lo anterior se justifica por medio de lo que se expresa en los siguientes trabajos de
investigación donde se afirma que:
Los modelos y metodologías actuales son extranjeros y ajenos a las
condiciones y/o características propias, con servicios de capacitación
muy formales y servicios de consultoría excesivamente costosos y no
son fáciles de aplicar en organizaciones pequeñas [6].
La carencia de una buena gestión de requerimientos en los proyectos
software ha demandado la necesidad de un instrumento para la
generación del proceso de desarrollo de requerimientos de software
para micro y pequeñas empresas, pues según varios autores no existe
un instrumento que sugiera un proceso de desarrollo de software con
base en características de la organización y en buenas prácticas [7].
16
Como el modo de operar de la empresa es por medio de aplicar algunas buenas
prácticas, el proceso o, dicho de otra manera, el ciclo de vida del desarrollo de este
software, muchas de sus fases se realizan de manera irregular, encontrándose
casos donde se pierde información de algunos usuarios, se realizan soluciones de
funcionalidades más de una vez, confusión sobre lo que requiere el cliente y
contradicciones en algunos procesos, entre otros. Lo anterior hace que se pierda
demasiado tiempo en soporte, realizando un efecto dominó ya que se pierde tiempo
además en el desarrollo de nuevas funcionalidades, se pierde confianza en el
sistema o retrasos en procesos de vital importancia para estas empresas pequeñas.
-----------[1]
Toro, A. y Peláez, L. E. «Validación de un modelo para el aseguramiento de la
calidad del software en MIPYMES que desarrollan software en el Eje Cafetero.»
2018.
[2]
Cristiá, Maximiliano. «Introducción a la ingeniería de requerimientos.» Trabajo
de Investigación, Rosario, 2014.
[3] Toro,
A. y Peláez, L. E. Op. Cit., p.109
[4]
Journal, David Bank The Wall Street. «El Tiempo.» Hartas de fallas informaticas,
las empresas quieren exigir responsabilidad. 25 de Febrero de 2005.
<https://www.eltiempo.com/amp/archivo/documento/MAM-1682351>.
[5]
Benavides, Lina María Guevara. La República. 2 de Agosto de 2018.
<https://amp.larepublica.co/empresas/el-problema-de-avianca-de-ayer-tuvoque-ver-con-una-falla-en-el-software-aerocivil-2755884>.
[6]
Luis Merchán, Alba Urrea y Rubén Rebollar. «Definición de una metodología ágil
de ingeniería de requerimientos para empresas emergentes de desarrollo de
software del sur-occidente colombiano.» Trabajo de Investigación, Cali,
2008.
[7]
Gálvez, A. Toro y J. G. «Especificación de requisitos de software: una mirada
desde la revisión teórica de antecedentes.» Pereira, 2016.
17
2.OBJETIVOS
2.1. OBJETIVO GENERAL
•
Diseñar una guía de calidad para el levantamiento de requerimientos de
desarrollo de software en una PyME de logística de transporte.
2.2. OBJETIVOS ESPECÍFICOS
•
•
•
•
Realizar un diagnóstico en la fase de levantamiento de requerimientos en el
ciclo de software actual en la PyME de logística de transporte.
Analizar las normas y metodologías de calidad de software actuales.
Proponer el diseño de la guía y sus fases de acuerdo a la norma o
metodología seleccionada para mejorar el levantamiento de requerimientos.
Evaluar la guía propuesta, para medir su grado de eficiencia.
18
3. MARCO DE REFERENCIA
3.1. MARCO TEÓRICO
3.1.1. INGENIERÍA DE REQUERIMIENTOS
Desde inicios del siglo ha empezado a estudiarse la importancia de las fases previas
en el ciclo de vida del desarrollo del software y como, con ayuda de compañías que
se encargan de medir los errores más comunes en estos proyectos de tecnología y
desarrollo se puede apreciar que la obtención de requerimientos inexactos hace que
los procesos y en general el proyecto se atrase y pierda en recursos, así como
también desborda su alcance.
Por supuesto se ha creado lo que conocemos como ingeniería de requerimientos
que, partiendo de una definición, desglosa todo lo que se puede hacer en esta etapa
de levantamiento de informacion o de requerimientos además de cómo podemos
asegurar la calidad de ellos.
3.1.1.1. DEFINICIÓN
Según Pressman ingeniero de software, consultor y autor estadounidense, la
ingeniería de requerimientos puede definirse como:
Aquella que proporciona el mecanismo apropiado para entender lo que
desea el cliente, analizar las necesidades, evaluar la factibilidad,
negociar una solución razonable, especificar la solución sin
ambigüedades, validar la especificación y administrar los
requerimientos a medida que se transforman en un sistema funcional
[8].
Según lo anterior, el presente proyecto se enfocará en el análisis de requerimientos
de software y su levantamiento ya que la PyME actual ya cuenta con un software
definido y estructurado, por lo cual se continua en el siguiente apartado identificando
las fases de este proceso.
3.1.1.2. FASES
Según Pressman, en su libro de ‘Ingeniería de software, un enfoque práctico’,
también define las cinco fases del proceso de análisis de requerimientos:
1. Reconocimiento del problema: se deben de estudiar inicialmente las
especificaciones del sistema. El analista debe establecer un canal adecuado de
comunicación con el equipo de trabajo involucrado en el proyecto. En esta etapa la
19
función primordial del analista en todo momento es reconocer los elementos del
problema tal y como los percibe el usuario.
2. Evaluación y síntesis En esta etapa el analista debe centrarse en el flujo y
estructura de la información, definir las funciones del software, determinar los
factores que afectan el desarrollo de nuestro sistema, establecer las características
de la interfaz del sistema y descubrir las restricciones del diseño. Todas las tareas
anteriores conducen fácilmente a la determinación del problema de forma
sintetizada.
3. Modelización: durante la evaluación y síntesis de la solución, se crean modelos
del sistema que servirán al analista para comprender mejor el proceso funcional,
operativo y de contenido de la información.
4. Especificación: las tareas asociadas con la especificación intentan proporcionar
una representación del software. Esto más adelante permitirá llegar a determinar si
se ha llegado a comprender el software, en los casos que se lleguen a modelar se
pueden dejar plasmados manuales.
5. Revisión: una vez que se ha descrito la información básica, se especifican los
criterios de validación que han de servir para demostrar que se ha llegado a un buen
entendimiento de la forma de implementar con éxito el software. La documentación
del análisis de requerimientos y manuales, permitirán una revisión por parte del
cliente, la cual posiblemente traerá consigo modificaciones en las funciones del
sistema por lo que deberán revisarse el plan de desarrollo y las estimaciones
previstas inicialmente [9].
Lo anterior es una base y está implícito en cualquier proceso de software
actualmente, pero a partir de este estudio y estandarización enfocado a los
requerimientos es que se podrá estructurar de mejor manera como analizar el
levantamiento de requerimientos, pero al mismo tiempo verificar la calidad de los
mismos.
20
3.1.2. CALIDAD DE SOFTWARE
A continuación, en este apartado se busca identificar como empezó a crearse el
concepto de calidad del software y por qué es tan importante y tan beneficioso
tenerlo en cuenta en cada desarrollo que se realice para satisfacer aún más las
necesidades de los usuarios y verificar lo desarrollado teniendo en todo momento
el control y aseguramiento de ella:
3.1.2.1. HISTORIA DE LA CALIDAD DE SOFTWARE
En 1985, la ISO, que fue creada en 1947 a pocos años de terminada la segunda
guerra mundial, determinó que ciertos de sus países miembros harían un
reglamento. Cinco años más tarde compañías gigantes en todo el mundo,
reconocían que se desperdiciaban millones de dólares en software que no tenía ni
las características ni la funcionalidad que se prometía al inicio.
Esta designación del reglamento se dio a través de un comité técnico, este
reglamento que elaborarán debía ser sobre la garantía de la calidad a nivel
internacional. Uno de los modelos utilizados en la elaboración fueron las normas
británicas BS 5750 de 1977). Diez años después aparece la primera edición de la
serie de normas ISO 9000. Las revisiones a esta versión se realizaron en 1994,
2008 y la última data del 2015.
Lo que se busca con las normas ISO es asegurar que los productos que llegan al
cliente tengan un mínimo de calidad asegurada. El objetivo perseguido por las
normas ISO es asegurar que los productos y/o servicios alcanzan la calidad
deseada. Del lado de las compañías, son vistas como una forma de abaratar costos
mediante la prevención de errores y mayor productividad [10].
Cuando se implementa un sistema de gestión de calidad o visto de manera más
simple, cuando se asegura la calidad y se la aplica al proceso de desarrollo de
software se beneficia tanto el cliente como la empresa ya que:
● Mejora la satisfacción del cliente, ya que las funcionalidades están alineadas
con las necesidades de él.
● Se consigue uniformidad y estabilidad en la producción, aportando un mínimo
de calidad en los mismos procesos en diferentes clientes.
● Se aumenta la eficiencia y se reducen costos, ya que se enfoca en los
procesos realmente productivos.
● Genera una buena reputación en la empresa que provee el software con
evidencia por parte de sus clientes.
21
3.1.2.2. CONCEPTO E IMPORTANCIA DE LA CALIDAD DE SOFTWARE
En pocas palabras y en sentidos generales para no generar un debate, ya que la
palabra calidad de por si es ambigua la calidad de software lo define Pressman en
su libro como “un proceso eficaz de software que se aplica de manera que crea un
producto útil que proporciona valor medible a quienes lo producen y a quienes lo
utilizan “[11].
Un proceso eficaz, ya que se necesita un estándar permitiéndole al software no
llegar a una situación caótica y haciendo que cualquier elaboración tenga su
recompensa; un producto útil, cuando se entrega en completitud las funciones y
características que debe tener este software, claro está sin errores. Finalmente
obtener valor agregado dentro del software es de vital importancia en un futuro o
después de implementado ya que, para la parte desarrolladora, genera menos
tiempo y esfuerzo para mantenimiento; del otro lado para los usuarios sea de
cualquier tipo da una mejora y facilita cualquier proceso de negocio.
Para llegar al producto anterior o que posea calidad, se hace evidente como llegar
o alcanzar la calidad del software tanto en el producto que es nada menos que la
suma de lo realizado en el proceso.
3.1.2.3. ¿CÓMO LOGRAR LA CALIDAD DE SOFTWARE?
Para lograr la calidad de software Pressman dice que existen cuatro actividades
principales en el desarrollo del software para alcanzar una alta valoración de esta:
métodos de la ingeniería de software, técnicas de administración de proyectos,
acciones de control de calidad y aseguramiento de la calidad del software.
Para efectos del presente proyecto nos enfocaremos en la última actividad que es
el aseguramiento de la calidad de software rigiéndose por las normas que existen
actualmente y que harán parte del desarrollo de este.
3.1.2.4. ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE
Para asegurar la calidad en el desarrollo y producto del software, Pressman
involucra actividades esenciales para su correcta administración:
22
• Estándares: el IEEE, ISO y otras organizaciones que establecen estándares
han producido una amplia variedad de ellos para ingeniería de software y
documentos relacionados. Los estándares los adopta de manera voluntaria
una organización de software o los impone el cliente u otros participantes.
• Revisiones y auditorias: Las revisiones técnicas son una actividad del control
de calidad que realizan ingenieros de software para detectar errores o
inconsistencias sobre algún proceso; en este caso, el proceso de desarrollo
de software.
• Colección y análisis de los errores. La única manera de mejorar es medir
cómo se está haciendo algo. El ACS reúne y analiza errores y datos acerca
de los defectos para entender mejor cómo se cometen los errores y qué
actividades de la ingeniería de software son más apropiadas para eliminarlos.
• Educación. Toda organización de software quiere mejorar sus prácticas de
ingeniería de software. Un contribuyente clave de la mejora es la educación
de los ingenieros de software, de sus gerentes y de otros participantes [12].
Estas son algunas de las actividades para asegurar la calidad en el software, y por
tanto son las bases a utilizar para el desarrollo del presente proyecto, justificándose
de la siguiente manera:
Parte del proceso de investigación del proyecto y en cumplimiento al objetivo
específico número dos, se hará evidente indagar y analizar las normas existentes
que se puedan adaptar y aplicar de la mejor manera en forma conjunta a la situación
actual de la empresa.
En cumplimiento al primer objetivo específico, se planea la actividad de revisión o
diagnóstico propio, junto con ella la reunión de errores que se evidencian en el
proceso de levantamiento de requerimientos actual en la PyME.
Por último, y apuntando hacia la parte final del proyecto, es importante que, aunque
el diseño de guía de calidad queda a discreción de la empresa seguirla utilizando o
no, como conclusiones sería de gran provecho que todos los integrantes de la
empresa en las diferentes áreas puedan mejorar de una forma u otra las practicas
sobre la ingeniería del software y sobre el proceso de levantamiento de
requerimientos en sí.
-----------[8]
Roger S. Pressman, Ph.D. Ingeniería del software. Un enfoque práctico.
Mansfield: McGRAW-HILL INTERAMERICANA, 2018. p. 102
23
[9]
[10]
Gil, Gustavo Daniel. «HERRAMIENTA PARA IMPLEMENTAR LEL Y
ESCENARIOS(TILS).» Tesis Magister, Buenos Aires, 2002.
Sulca,
Ana
María
Quispe.
2018.
<https://repositorio.une.edu.pe/bitstream/handle/UNE/3597/MONOGRAF%c
3%8dA%20-%20QUISPE%20SULCA.PDF?sequence=1&isAllowed=y>.
[11] Roger
[12] Ibid.,
S. Pressman, Op. Cit., p. 340
p. 370
24
3.1.3. METODO PARA INTERACTUAR CON STAKEHOLDERS EN EL
LEVANTAMIENTO DE REQUERIMIENTOS
Se ha identificado a lo largo de los proyectos de software que el éxito de estos radica
en gran parte en la comunicación que debe de tener las partes involucradas, la
ingeniería de requerimientos trabajada anteriormente reúne todas estas partes
como gerentes de proyecto, desarrolladores, clientes y diseñadores para realizar el
proceso de elicitación de requerimientos de la mejor manera.
En base a lo anterior el siguiente trabajo de investigación realizado por varios
Ingenieros de sistemas de la ciudad de Cúcuta propusieron un método para llevar
a cabo de forma efectiva el levantamiento de requerimientos formado por cuatro
fases [13]:
1. Enlace con la organización: En esta fase se propone, conocer la información
organizacional en institucional de la parte a trabajar; analizar los procesos y
donde se encuentra la mayor cantidad de requerimientos solicitados y
finalmente un equipo de apoyo generando entrevistas junto con los
stakeholders.
2. Conocimiento del proyecto: En esta fase se propone el tipo de proyecto de
software a desarrollar, si es totalmente nuevo, una replantación o una
extensión; si son pequeños, medianos o grandes basados en el equipo de
desarrollo requerido para cumplir con los objetivos.
3. Identificación de stakeholders: Se propone analizar y priorizar los
Stakeholders involucrados ya que a través de su efectiva comunicación hace
que el proyecto tenga éxito. Establecer compromisos con ellos, y finalmente
dar y mantener la interacción con ellos aun después de entregado el
proyecto.
4. Captura de requerimientos: Identificar la técnica adecuada dependiendo los
tres puntos anteriores, definir los métodos de relación y comunicación con
los stakeholders y finalmente identificar los requerimientos, priorizarlos y
entregar un documento formal.
Como puntos finales, concluyen que la interacción activa por medio de los
stakeholders resulta fundamental para controlar los tiempos de entrega del software,
así como también el presupuesto del mismo.
Además, terminan afirmando que “El método propuesto facilita el formalismo
desarrollando cada actividad propuesta en las fases del método, con el desarrollo
de las actividades se obtiene un documento formal de requisitos.” [14]
25
-----------[13]
Judith del Pilar Rodriguez, Claudia Yamile Gómez y Carlos René Angarita.
«Método para interacturar con los stakeholders en el proceso de
levantamiento de requerimientos de software.» Revista Gerencia
Tecnológica Informática, 2016: 14(40), 47-56.
[14] Ibid.,
p. 55
26
3.1.4. IMPACTO DE LOS REQUERIMIENTOS EN LA CALIDAD DEL
SOFTWARE
Para finalmente verificar la relación de la calidad de un proyecto de software con los
requerimientos del mismo, se presenta un artículo de investigación de la
Universidad Distrital Francisco José de Caldas en la ciudad de Bogotá en el año
2017 donde se enfoca la calidad del software en pruebas estadísticas permitiendo
como influyen en el tiempo y costo de un proyecto.
Los requerimientos son ejecutados por personas y dados por ellas mismas haciendo
que el proceso se vea influenciado como: “factores como las perspectivas y
prejuicios de los usuarios respecto al sistema o las políticas organizacionales, lo
cual puede llegar a incidir de forma negativa en las etapas posteriores del desarrollo
de software si no se realiza una adecuada definición de los mismos”. [15]
Según el estándar IEEE 830 [16] un requerimiento define “la necesidad sobre la
funcionalidad de un sistema”, debe ser clara y concisa y cumpliendo con las
características pactadas entre las partes involucradas.
De igual manera sugiere que dentro de las principales características que debe
tener un requerimiento están:
•
•
•
•
•
•
•
•
•
Correcticidad.
No ambigüedad.
Completitud.
Verificabilidad.
Consistencia.
Priorización.
Modificación.
Exploración.
Utilización.
Según el artículo basado en múltiples estudios realizados por muchos
profesionales del área como James Martin afirma que el “56% de los defectos
encontrados en el proceso de pruebas, se debe a errores introducidos en la
fase de requisitos como resultado de requerimientos mal escritos, ambiguos
o incompletos” [17].
Resaltando además nuevamente que “el esfuerzo que implica corregir este
tipo de defectos es mucho mayor que cualquier otro (82%)” [17].
27
-----------[15] Barajas,
Cindy Tatiana Rodríguez. «Impacto de los requerimientos en la calidad
del software.» TIA, 2017: 161-173.
[16] IEEE.
«Especificación de requisitos según estándar IEE 830.» 1998.
[17] Barajas,
Op. Cit., p. 167
28
3.2. MARCO CONCEPTUAL
El siguiente marco conceptual se compone de una redacción conjunta de
definiciones referentes a la situación y el proceso de este trabajo de investigación.
Para empezar con el marco hay que involucrarse un poco en lo que se conoce como
un sistema donde según [18] se traduce como “Un conjunto organizado de cosas o
partes interactuantes e interdependientes, que se relacionan formando un todo
unitario y complejo. Cabe aclarar que las cosas o partes que componen al sistema,
no se refieren al campo físico (objetos), sino más bien al funcional.
Los sistemas reciben (entrada) datos, energía o materia del ambiente y proveen
(salida) información, productos o servicios [19]. Así pues, en el software siendo un
conjunto de programas que realizan tareas dentro de una computadora y el
desarrollo identificado como el avance a lo largo del tiempo que va evolucionando
ya sea de manera ascendente o descendente, siempre en la práctica enfocado al
primero, es importante definir el proceso general del proyecto, el ciclo de vida del
desarrollo de software.
El ciclo de vida del desarrollo del software o también conocido como SDLC o
Software Development Life Cycle en inglés, contempla las fases necesarias para
validar el desarrollo del software y así garantizar que este cumpla los requisitos para
la aplicación y verificación de los procedimientos de desarrollo, asegurándose de
que los métodos usados son apropiados [20].
Dentro de las fases necesarias para su validación se encuentra la fase de
levantamiento de requerimientos que es una de las primeras fases y más
importantes para el desarrollo de un sistema de información. Un buen levantamiento
conlleva a desarrollar un sistema lo más apegado posible a los requerimientos del
usuario final. Agregando lo anterior existe la ingeniería de requerimientos que es el
proceso de recopilar y analizar las necesidades del cliente para un sistema de
software a desarrollar para hacer su posterior entrega.
El propósito de este proceso es lograr, una especificación de requerimientos de
software lo más concreta y correctamente posible. Ahora bien, el requerimiento
define las funciones, capacidades o atributos de cualquier sistema de software.
Junto al requerimiento, el usuario final es la persona que usa el software o hardware
después de que se haya desarrollado, comercializado e instalado por completo es
por esto que es quien valida que las funcionalidades del sistema o aplicación sean
lo más precisas para su correcto funcionamiento.
29
Cabe resaltar que un sistema no trabaja completamente solo, sino que hace uso de
algunas aplicaciones ya sean de mayor o menor magnitud y funcionalidad, una
aplicación es un programa que, una vez ejecutado, permite trabajar con el
ordenador.
Para que todo lo anterior descrito funcione correctamente en su mayoría ya que un
sistema no es 100% perfecto, por el error humano, aparece la calidad del software,
que es según [21]: “el conjunto de cualidades que lo caracterizan y que determinan
su utilidad y existencia. La calidad es sinónimo de eficiencia, flexibilidad, corrección,
confiabilidad, mantenibilidad, portabilidad, usabilidad, seguridad e integridad.”
Agregando a este término, por supuesto que existen varias maneras de medir la
calidad dependiendo los objetivos que se quieren lograr con dicho software. Para
medirla y/o alcanzar esta calidad del software se debe tener:
La utilización de metodologías o procedimientos estándares para el
análisis, diseño, programación y prueba del software que permitan
uniformar la filosofía de trabajo, en aras de lograr una mayor
confiabilidad, mantenibilidad y facilidad de prueba, a la vez que eleven
la productividad, tanto para la labor de desarrollo como para el control
de la calidad del software [22].
-----------[18] Bertalanffy,
Ludwig Von. Teoría General de Sistemas. Nueva York, 1968.
[19] Ibid.
[20] Pressman
Op. Cit., p. 27
[21] Oscar
M. Fernández Carrasco, Delba García León y Alfa Beltrán Benavides. Un
enfoque actual sobre la calidad del software. Técnico, La Habana: ACIMED,
1995.
[22] Ibid.
30
3.3. ESTADO DEL ARTE
Para el siguiente estado del arte presentado a continuación, se trató de hacer una
agrupación desde investigaciones a nivel internacional, pasando por el continente y
llevándolo a la parte nacional y por último local de la ciudad de Bogotá.
A nivel internacional, un buen artículo reciente es el de Ceballos, Darío Emmanuel
Vázquez.«Método de selección de técnicas de levantamiento de
requerimientos para el desarrollo de software con un enfoque de experiencia
de usuario.» Tesis, Ciudad de Mexico, 2021.
Donde se presenta una tesis donde se aborda una de las principales problemáticas
en la fase inicial del desarrollo de software conocida como ingeniería de
requerimientos. Se hace un análisis de las dificultades en las actividades que se
pueden realizar en esta etapa: como la selección inadecuadamente de técnicas de
levantamiento de requerimientos, no contar con una estrategia ni orden y
ambigüedades en el entendimiento de las necesidades de los clientes.
Para la muestra se realizó un estudio comparativo de 18 técnicas de levantamiento
de requerimientos donde, se analizaron en la literatura, en ella se presenta una
breve descripción sobre la mecánica y función de la técnica, las principales ventajas
y desventajas de su empleo, así como las referencias a las fuentes de la
información.
Se utilizaron como metodología de la tesis, un conjunto de técnicas de
levantamiento de requerimientos donde unida con la metodología de software
Scrum se pudo validar y retroalimentar sobre el trabajo por medio de encuestas a
un grupo de panelistas y asesores relacionados al tema.
Como resultados se puede obtener que el 80 % de los panelistas encuestados
coinciden con que dentro de la fase de levantamiento de requerimientos son
actividades de dificultad moderada y que se pueden realizar adecuadamente
empleando técnicas de apoyo. El anterior resultado se explica de la experiencia y
del conjunto de habilidades y estrategias que han desarrollado y perfeccionado a lo
largo de diferentes proyectos de software. Siguiendo sobre el impacto que tiene un
mal levantamiento de requerimientos sobre el proceso de ingeniería de software. El
70 % considera que es muy negativo, mientras un 30 % indica que es algo negativo
en el software resultante y sus funcionalidades.
A manera de conclusión El 100 % del panel de expertos coincide en que se puede
incluir con metodologías de desarrollo de software actuales considerando el ciclo de
vida del proceso. De igual manera el software resultante de una deficiente etapa de
levantamiento de requerimientos es reflejo de una serie de errores y fallas en la
31
implementación, que concluye en la mayoría de los casos en un software no
funcional, que no coincide con lo esperado por el cliente y los usuarios finales [23].
Otro artículo escogido a nivel internacional es el de Meinert E, Milne-Ives M,
Surodina S, Lam C Agile Requirements Engineering and Software Planning for
a Digital Health Platform to Engage the Effects of Isolation Caused by Social
Distancing: Case Study JMIR Public Health Surveill 2020;6(2): e19297 doi:
10.2196/19297 PMID: 32348293 PMCID: 7205031
Parte de sus objetivos en este caso de estudio fue:
“to provide a tool for older people and their families and peers to
improve their well-being and health during and after regulated social
distancing. First, we will evaluate the tool’s feasibility, acceptability, and
usability to encourage positive nutrition, enhance physical activity, and
enable virtual interaction while social distancing. Second, we will be
implementing the app to provide an online community to assist families
and peer groups in maintaining contact with older people using goal
setting” [24].
Para la metodología ya que el desarrollo fue en el mismo momento de publicación
del documento se seleccionó un diseño de estudio de caso para proporcionar un
medio sistemático de captura de la ingeniería de software en progreso. De igual
manera para el marco de desarrollo de aplicaciones para el diseño de software se
basó y utilizó en métodos ágiles.
Como algunos resultados se hace uso de un marco de software preexistente para
el cambio de comportamiento de salud, se desarrolló una prueba de concepto y se
creó un desarrollo e implementación de aplicaciones de varias etapas para la
solución.
Y finalmente, para concluir decidieron que este caso de estudio sienta las bases
para el desarrollo futuro de aplicaciones para combatir los problemas mentales y
sociales que surgen de las medidas de distanciamiento social. La aplicación será
probada y evaluada en futuros estudios para permitir la mejora continua de la
aplicación.
De todo este articulo rescato la manera como utilizaron el proceso de desarrollo ágil
para llevar a cabo el caso de estudio donde cito que:
La fase de descubrimiento tiene como objetivo definir de manera
eficiente los requisitos a través de un proceso estructurado, con la
posterior compilación iterativa y las pruebas durante las fases alfa,
beta y en vivo. Este enfoque también permite que los conocimientos y
32
la tecnología resultantes sean replicables, escalables y transferibles
para extender la solución a las áreas problemáticas adyacentes [25].
A nivel continental, se encontraron casos interesantes mayormente en Estados
Unidos donde comparto el siguiente:
Zowghi, D., & Coulin, C. (n.d.). Requirements Elicitation: A Survey of
Techniques, Approaches, and Tools. Engineering and Managing Software
Requirements, 19–46. doi:10.1007/3-540-28244-0_2
La temática en este capítulo del libro es la elicitación de requerimientos siendo
entendido como el descubrimiento y la evolución de elementos que la componen
uniendo muchas actividades aprovechando técnicas, acercamientos y herramientas
para trabajarla.
Son muchas las formas de elicitar y cada una de ellas tiene ventajas y desventajas
dependiendo el contexto y la situación. El objetivo, así pues, es resaltar y analizar
los aspectos importantes de estas técnicas y herramientas, examinando a su vez
los diferentes problemas, tendencias y retos que enfrentan investigadores y actores
en este campo.
Sobre este estudio extraigo a manera de conclusiones los siguientes puntos:
1. Es importante al inicio de este proceso, investigar y examinar detalladamente
la situación o como la llaman [26] “el mundo real”, donde el sistema residirá
finalmente. El entorno del sistema necesita ser explorado en cada aspecto
(político, organizacional, social, entre otros) así como adicionar las
limitaciones que tenga.
2. Los requerimientos son entregados de muchas maneras y presentados en
diferentes formatos. Y existen muchas fuentes de requerimientos entre los
que se encuentran los stakeholders, los usuarios y expertos para adicionar
información detallada de las necesidades de los primeros.
3. Analizar los stakeholders y filtrarlos de acuerdo a su participación e influencia
en el proceso hace que se identifiquen los factores claves del producto.
4. Although some may advocate that just one elicitation technique or a single
methodology is sufficient and may be applied to all cases, it is generally
accepted that an individual requirements elicitation technique or approach
cannot possibly be suitable for all projects [27].
Y finalmente agrego nuevamente que como lo dicen en este estudio: “Clearly
requirements elicitation is best performed using a variety of techniques. In the
33
majority of projects several methods are employed during and at different stages in
the software development life cycle, often in cooperation where complementary”
[28].
Donde se sustenta de manera clara y clave la razón de la fase de análisis de este
trabajo el cual permite decir por qué se plantea el uso de varias técnicas unido con
una metodología clave en el contexto y situación de la empresa, pero esto lo
veremos más adelante.
Y finalmente a nivel nacional y local aparecen los siguientes casos de relevancia en
el contexto de este trabajo:
Suárez, L. M. (2019). CALIDAD EN EL LEVANTAMIENTO
REQUERIMIENTOS EN PROYECTOS DE SOFTWARE. Articulo
Investigación, Bogotá D.C.
DE
de
Donde el objetivo de este trabajo fue la investigación de las diferentes técnicas para
el levantamiento de requerimientos y que fomentan el éxito en los proyectos de
software cumpliendo tanto en calidad como en el tiempo estimado.
Las investigaciones apuntaron a que la lluvia de ideas (Brainstorming) y mesas de
trabajos (Workshops) que junto con la estructura del HPVA (Hacer, Planificar,
Verificar y Actuar) eran las técnicas que más se ajustan a las necesidades del cliente
y donde el levantamiento de requerimientos tenga esa calidad construida desde el
inicio del proyecto.
Porque como lo mencionan en el artículo esta etapa en el ciclo del software se
realiza utilizando una metodología y varias técnicas, donde si bien existen, permiten
de manera clara y precisa determinar los requisitos esenciales para los diferentes
tipos de productos o servicios a diseñar y desarrollar.
Y a su vez reiteran en la calidad del diseño como medir: “el acierto del proyecto
desarrollado para traducir los requisitos de calidad escuchados por la dirección en
especificaciones técnicas o normas de calidad para la elaboración o prestación del
producto y de este modo lograr la calidad total del producto [29]”.
A manera de conclusión después de que se encuestara al personal de la empresa
sobre las técnicas a utilizar donde las mesas de trabajo y lluvia de ideas eran las
más conocidas para ellos y más fáciles de aplicar con un 80% y un 40%
respectivamente, definen que:
Es perceptible que la correcta elección de una técnica de
levantamiento de requerimientos es primordial en el transcurso del
desarrollo de proyectos de software, puesto que beneficia no
34
solamente al cliente que es lo más importante del proceso sino
también a las empresas que buscan posicionarse satisfactoriamente
en el mercado y brindar un buen servicio con excelente calidad. De
igual forma, siempre es necesario realizar un análisis de las
dificultades a las cuales se enfrenta el proceso para de esta forma
localizar los beneficios que ofrece cada técnica y ser selectivos con la
que se acerca a las necesidades que solicita el cliente [30].
De este trabajo doy la importancia a como se asegura que es necesario para realizar
una buena etapa de levantamiento de requerimientos el tener una metodología junto
con técnicas o herramientas que permitan adecuarse a las necesidades del cliente
y el contexto de la empresa.
Finalmente comparto este trabajo realizado hace varios años pero que no deja de
ser importante las cifras sobre la manera como se realiza el desarrollo de software
en Pymes en Bogotá D.C:
Alexandra Abuchar Porras, B. C. (2012). Observatorio de prácticas de
desarrollo de software en MinPyme y pymes de Bogotá. Trabajo de
Investigación, Bogotá D.C.
El objetivo principal del artículo fue detectar las prácticas de desarrollo de software
en las pequeñas y medianas empresas de Bogotá.
Para la fase uno de esta investigación quiso obtener información sobre el
movimiento de las pequeñas empresas en Bogotá y cuál era su producción, a que
se dedicaban y como proveían sus servicios.
Dentro de las cadenas productivas encontraron que, la de servicios es la de mayor
demanda y, debido a que es utilizada por las demás, en esta está el clúster de
software.
Y además tomando peso la siguiente justificación donde se asegura que:
En Colombia la industria de software tiene el potencial de convertirse
en un sector económico de gran impacto, que pueda incluso suplir la
demanda interna y llegar con éxito a los mercados del exterior.
También, por ser este un sector que involucra el manejo transversal a
nivel empresarial, puede apoyar y brindar soporte, agilizando los
procesos, facilitando la comunicación y reduciendo los cos-tes de
operación [32].
35
Además, se estimó en ese año que el 98 % de las empresas de software en
Cundinamarca se encontraban en Bogotá D.C, el otro 2% venia de ciudades
aledañas como Chía, Soacha, Fusagasugá, entre otras.
De esta primera fase del proyecto hago énfasis en esta frase que me llama
la atención y que es esencial aportando al trabajo: “La calidad de un sistema
software depende de la calidad del proceso usado para su desarrollo [33]”.
Para la segunda fase la investigación se enfocó en una muestra donde se obtuvo la
información de 100 empresas, cuyo único criterio de selección era pertenecer al
rubro del desarrollo de software. Luego de llevar a cabo la selección, se procedió a
la aplicación de un instrumento, conformado por 20 ítems, que permitió identificar
las determinadas prácticas de desarrollo del software.
Como conclusiones finales de las 20 preguntas o ítems realizados se obtienen de
[34] como relevantes que:
1. Los proyectos de software están dentro del rango de proyectos cortos con un
53% y con entregas exitosas, aunque se ha podido determinar una
generalizada demora en la entrega final.
2. Se detectó que hace falta conocimiento en la utilización de los estándares de
calidad de desarrollo de software, tanto por parte de las empresas como de
las personas. Así mismo, las empresas que cuentan con algún plan estándar
no lo dan a conocer a los empleados.
3. Las empresas del sector estudiado en esta investigación, no llevan una
metodología, la mayoría no lleva un modelo de desarrollo, no conoce los
estándares de calidad, no lleva una documentación adecuada de sus
productos y la planeación de las actividades presenta mu-chas falencias. De
allí que el 84% de las entregas anuales presente demoras.
-----------[23] Ceballos,
Darío Emmanuel Vázquez. «Método de selección de técnicas de
levantamiento de requerimientos para el desarrollo de software con un
enfoque de experiencia de usuario.» Tesis, Ciudad de Mexico, 2021.
[24] Edward Meinert, MA, MSc, MBA, MPA, PhD. «Agile Requirements Engineering
and Software Planning for a Digital Health Platform to Engage the Effects of
Isolation Caused by Social Distancing: Case Study.» JMIR Publications,
2020: 10.
[25] Ibid.
[26] Coulin, Didar Zowghi and Chad. «Requirements Elicitation: A Survey of
Techniques, Approaches and Tools.» En Engineering and Managing
36
Software Requirements, de A., & Wohlin, C. Aurum, 19-41. New York:
Springer, 2005.
[27] Ibid.
[28] Ibid.
[29]
Suárez, L. M. (2019). CALIDAD EN EL LEVANTAMIENTO DE
REQUERIMIENTOS EN PROYECTOS DE SOFTWARE. Articulo de
Investigación, Bogotá D.C.p. 9
[31] Ibid.
p.12
[32] Alexandra
Abuchar Porras, B. C. (2012). Observatorio de prácticas de
desarrollo de software en MinPyme y pymes de Bogotá. Trabajo de
Investigación, Bogotá D.C.
[33] Ibid.
[34] Ibid.
p.120
p.129
37
4.ALCANCES Y LIMITACIONES
Alcances:
● El proyecto se enfoca esencialmente en la creación de una guía de calidad
basándose en las referencias sobre calidad en levantamiento de
requerimientos que se ajusten a las características, la situación actual y la
operación en la PyME.
● El presente proyecto no representa un modelo de referencia para cualquier
empresa de logística de transporte ya sea en la ciudad o en todo el territorio
para verificar la calidad del proceso de levantamiento de requerimientos en
el ciclo de desarrollo del software, pero puede tomarse como guía para
trabajos similares y futuros.
Limitaciones:
● La PyME de logística de transporte queda a discreción de seguir utilizando o
no la guía de calidad propuesta, lo anterior limitando su implementación a
una segunda fase del proyecto.
● Sujeto a temas de confidencialidad por parte de la PyME, todas las
actividades realizadas no serán tenidas en cuenta dentro de la guía de
calidad, pero si se trataran las disponibles y esenciales para validar el
proceso de levantamiento de requerimientos de software.
● Al llevar a cabo el diseño de la guía de calidad, esta estará compuesta y
articulada por características útiles tomadas en consideración de la norma
ISO 25010 y las metodologías SCRUM y TSP, permitiendo adaptarlas mejor
a la PyME y su funcionamiento.
38
5.METODOLOGÍA
5.1 ENFOQUE METODOLÓGICO
El presente trabajo de grado estará desarrollado bajo el enfoque mixto, ya que, a
diferencia de otros, es el que mejor se adapta a las necesidades y a la situación
actual de la empresa.
El enfoque mixto es un proceso que reúne el enfoque cuantitativo y cualitativo para
su posterior inferencia. El enfoque cuantitativo utiliza el análisis y la recolección de
datos numéricos para responder preguntas de investigación y comprobar hipótesis
de manera exacta. Por otra parte, el enfoque cualitativo recolecta datos no
numéricos para descubrir otra interpretación sobre los resultados finales.
Para el enfoque mixto se tomará en el enfoque cualitativo la técnica de investigación
focus-group junto con el instrumento de cuestionario con preguntas abiertas, para
recolectar la opinión y/o percepción de cada persona frente al proceso que se va a
realizar.
Para el enfoque cuantitativo la técnica de investigación será encuestas con el
instrumento de preguntas cerradas para puntuar de forma clave las diferencias de
los procesos antes de aplicar la guía y después de aplicarla.
De igual manera se pretende como primer paso en el enfoque cuantitativo la técnica
de investigación ‘observación’ realizando una guía de la misma para tener la opinión
al respecto sobre la situación actual en la fase de requerimientos de la PyME.
5.2 FASES DEL PROYECTO
A continuación, se plantean las siguientes fases:
Fase 0 – Planeación
Durante esta etapa, se realiza la adquisición de formatos y el levantamiento de
información a partir de fuentes primarias, para lo cual se identifican los aspectos de
recurso humano, recurso financiero, cronograma y la misma metodología.
Fase 1 – Inicio o Diagnóstico
En esta etapa, se realiza el estudio y valoración del proceso de levantamiento de
requerimientos en la PyME de logística de transporte, verificando los pasos que lo
39
integran, revisando en profundidad si tienen algún procedimiento que realizan para
tal fin y sobre la opinión actual de los involucrados en el proceso.
Fase 2 – Análisis
En esta etapa, se estudia e investiga a fondo sobre las normas existentes para la
calidad del software enfocadas en la fase de levantamiento de requerimientos y se
hace una elección reuniendo todas las variables que permitirán alcanzar los
objetivos del proyecto y adecuarse a la situación actual de la empresa.
Fase 3 – Diseño
En esta etapa, se propone diseñar la guía con un conjunto de pasos en un formato
estructurado realizado por el encargado del proyecto basado en el conjunto de
normas y metodologías elegidas en la etapa de análisis donde se propone mejorar
las ineficiencias en el levantamiento de requerimientos que se hayan encontrado en
la fase 1.
Fase 4 – Resultados
Aplicar la guía diseñada, evaluando su grado de eficiencia y concluir respecto a ella.
Verificando que se globalice todos los subprocesos que conlleva el levantamiento
de requerimientos del software de la empresa. Concluyendo junto con el personal
de la empresa o de forma grupal, si resultó efectiva, qué cambios notaron, y que se
puede rescatar de lo realizado.
Fase 5 – Cierre
Retroalimentar sobre el antes y después de haber aplicado la guía de forma
personal, dando conclusiones y opiniones sobre lo realizado durante el trabajo de
grado y sobre futuros proyectos.
40
6. CRONOGRAMA
A continuación, se presenta el cronograma del proyecto, ajustándose a la
metodología y a las fases del mismo, dentro de cada fase se planean una serie de
actividades para la completitud de estas y posteriormente la del proyecto.
Figura 1. Cronograma del proyecto
41
7. PRODUCTOS A ENTREGAR
PRODUCTOS A ENTREGAR
TIPO
NOMBRE DEL PRODUCTO
FECHA DE ENTREGA
Diagnóstico
17 de agosto, 2021
Análisis investigativo
Documento
Evaluación
Diagnóstico
sobre
el
levantamiento
de
requerimientos
de
la
empresa actualmente.
Análisis de las normas
vigentes de calidad del
software.
Guía de calidad para el
correcto levantamiento de
requerimientos
Evaluación de la aplicación
de la guía de calidad.
02 de septiembre, 2021
4 de octubre, 2021
28 de octubre, 2021
Tabla 1. Productos a entregar
42
8. INSTALACIONES Y EQUIPO REQUERIDO
Para el diagnóstico de la situación actual sobre el levantamiento de requerimientos
de software en la empresa se utilizarán las siguientes herramientas:
● Recolección de Datos: proceso de recolectar (reunir, recoger o cosechar
algo). Un dato, por su parte, una información que permite generar un cierto
conocimiento.
Para la fase de análisis de las normas de calidad del software, se pretenden realizar
por medio de:
● Cuadro comparativo y a futuro otros diagramas que permitan ver de manera
clara y precisa las variables que ofrecen las diferentes normas o
metodologías para aplicar en la situación de la empresa y cumplir los
objetivos del proyecto.
Para la fase de evaluación de la guía y sobre el proceso actual de levantamiento de
requerimientos se pretenden realizar este tipo de encuestas:
● Encuesta de opción múltiple: Permiten de una manera simple y directa
cuantificar los resultados sobre preguntas específicas para las conclusiones
finales.
● Encuesta de Respuesta abierta: Estas permiten al encuestado tener la
libertad de responder libremente cada pregunta, esto permite obtener
respuestas más profundas y enfocadas a la percepción de la persona.
Aunque son difíciles de cuantificar, se utilizarán también las de opción
múltiple.
43
9. PRESUPUESTO DEL TRABAJO
A continuación, se presenta el presupuesto del trabajo de grado dividido en tres
presupuestos y consolidado en un último presupuesto llamado presupuesto general
del proyecto:
El presupuesto preliminar viene siendo los costos realizados en la fase 0 de
planificación y organización la cual plantea utilizar dos escritorios o mesas de
trabajo, una pequeña capacitación de organización y como se va trabajar para
realizar el proyecto de grado y finalmente una capacitación de empleados sobre lo
que se va realizar y en que se va a trabajar específicamente.
Figura 2. Presupuesto preliminar.
El presupuesto del personal es los costos de tener a las personas requeridas e
involucradas durante el proyecto:
El personal de la empresa está constituido por dos ejecutivas de cuenta y un programador
web.
Figura 3. Presupuesto del personal
El presupuesto de gastos generales tendrá todos los bienes y servicios a consumir, de
igual forma los implementos que se requieran y los imprevistos que ocurran, todo esto a lo
largo de la duración del proyecto
44
Figura 4. Presupuesto de gastos generales
Finalmente, en el presupuesto general es el total de los presupuestos anteriores, y que da
espacio al total del proyecto como tal.
Figura 5. Presupuesto general del proyecto
45
10. ESTRATEGIAS DE COMUNICACIÓN Y DIVULGACIÓN
• Socialización de los resultados del proyecto en la sustentación del
proyecto de grado.
• Publicación del trabajo de grado en el repositorio institucional de la
Universidad Católica de Colombia.
• Entrega del artículo sobre el proyecto de grado de una guía para la
mejora en el levantamiento de requerimientos de software en una
PyME de logística de transporte
.
46
11. DESARROLLO DE LA PROPUESTA
Según lo expuesto en la metodología del trabajo y continuando con la fase 1 donde
se realiza un estudio propio detallado del proceso de levantamiento de
requerimientos en la PyME de logística de transporte, se verificaron por medio de
dos formatos el proceso actual de la empresa: Un diagnóstico de fuente propia sobre
el diligenciamiento de los requerimientos dentro de una pyme de logística de
transporte y un formulario realizado con la herramienta Google Forms sobre la
opinión y evaluación del proceso de levantamiento de requerimientos actual en la
empresa por parte de los involucrados en el proceso de desarrollo.
11.1
DIAGNÓSTICO
REQUERIMIENTOS.
PROPIO
SOBRE
EL
LEVANTAMIENTO
DE
Para este diagnóstico se diseña y se crea un formato donde se hace énfasis en la
descripción del requerimiento, tal cual como se haya dictado o expuesto dentro del
personal de la empresa y/o equipo involucrado.
Se toman tiempos en la hora de inicio del requerimiento (desde que se solicita), y
hora fin (hasta que se entrega) y es aprobado por el cliente como verificación de la
satisfacción con el desarrollo realizado. Además, se especifica como ítem adicional
la diferencia en horas y/o minutos según sea el caso de lo que el requerimiento toma
en tiempo para contestarse.
De igual manera se pide elegir el medio de contacto para ver después en un análisis
los medios mas utilizados para la elicitación de requerimientos. Además, se realizan
preguntas sobre el entendimiento de requerimiento, si se solicita mas información o
aclaración del mismo, el porqué de esta solicitud y finalmente cuantos ajustes o
correcciones se realizan después del primer desarrollo terminado por parte de los
programadores.
Para este proyecto durante varias semanas y en cumplimiento con la aleatoriedad
se eligieron sin ninguna preferencia diecisiete (17) requerimientos para ser
registrados en el formato. Ver descripción ampliada en el anexo A – Formato de
diligenciamiento de requerimientos en una pyme de logística de transporte.
47
11.2 EVALUACIÓN DEL PROCESO ACTUAL DE LEVANTAMIENTO DE
REQUERIMIENTOS.
La siguiente evaluación que se realiza consta de 11 preguntas donde se pudo
obtener información acerca de los involucrados en el proceso de desarrollo y en
especial el proceso de levantamiento de requerimientos de software (roles). Se
realiza en el mes de agosto del presente año, cumpliendo con los tiempos del
cronograma del proyecto. Todos los miembros reconocen que existe un estándar
para el proceso de levantamiento de requerimientos antes y después de
implementado el software, por supuesto no existe solo un estándar y se deja la
pregunta de modo general para que sea mejor recibida y entendida por parte de los
encuestados.
Sobre los encuestados, el 75% afirma creer que existe una estandarización del
proceso de levantamiento de requerimientos de software mientras que el 25% dice
lo contrario. Mostrando ya una división de opiniones, como se aprecia en la fig.6
Figura 6. Pregunta 4 evaluación del proceso actual de levantamiento de requerimientos
Sobre los medios de comunicación para el levantamiento de requerimientos todos
estuvieron de acuerdo en que el correo electrónico y teléfono celular son los principales
métodos para dialogar con los clientes y atender las necesidades por medio de la
elicitación de requerimientos.
Por otro lado, aunque todos estuvieron entre un medio (3) y un alto (4) índice de
que estos medios de comunicación generan dudas, inconvenientes, preguntas,
48
problemas, quejas o reclamos fig.7, creen de igual forma que el proceso actual de
levantamiento de requerimientos en efectividad es aceptable (3) y bueno (4), fig.8.
Figura 7. Pregunta 6 evaluación del proceso actual de levantamiento de requerimientos
Figura 8. Pregunta 7 evaluación del proceso actual de levantamiento de requerimientos
A continuación, dando como sustento la presente investigación dentro del trabajo se
presentan las respuestas donde justifican porqué debería, aunque los resultados son
buenos, replantear o mejorar la metodología en el levantamiento de requerimientos de
software y la manera como se lleva a cabo fig. 8 y fig. 9.
49
Figura 9. Pregunta 8 evaluación del proceso actual de levantamiento de requerimientos
Figura 10. Pregunta 9 evaluación del proceso actual de levantamiento de requerimientos
Finalmente, para resaltar una ultima pregunta de la encuesta donde se justifica
según [35] donde afirma que, “La necesidad que tiene la industria de disponer de
nuevas propuestas que contribuyan al mejoramiento de la calidad a través del
proceso de requisitos…”.
Se podría suplir basado en procedimientos que nuevamente [36], “…no requieran
de personas expertas en el área de requisitos al momento de su aplicación ni
tampoco la necesidad de contar con conocimiento específico en lenguajes formales
para especificar requisitos…”
50
Donde complementando a lo expuesto anteriormente, las características de esta
nueva propuesta estarían basada según las opiniones dadas en la siguiente
pregunta realizada dentro de la evaluación.
Figura 11. Pregunta 10 evaluación del proceso actual de levantamiento de requerimientos
Con lo descrito anteriormente podremos pasar a la fase 2 del proyecto donde se
hace a modo de estado el arte, un estudio analítico sobre las diferentes normas y
metodologías existentes y que se adapten a las necesidades de la empresa
-----------[35] Peláez,
A. T. (2016). Ingeniería de Requisitos: de la especificación de requisitos
de software al aseguramiento de la calidad. Como lo hacen MiPymes
desarrolladoras de software de la ciudad de Pereira. Pereira.
[36] Ibid.
p.121.
51
11.3 ESTUDIO ANALITICO SOBRE NORMAS Y METODOLOGIAS ENFOCADAS
EN EL LEVANTAMIENTO DE REQUERIMIENTOS DE SOFTWARE.
Para esta fase 2 se realiza un cuadro comparativo analítico. Ver descripción
ampliada en el anexo B – Cuadro analítico sobre metodologías y normas enfocadas
en el levantamiento de requerimientos de software.
Cabe resaltar que en esta fase y en conjunto con el desarrollo del cuadro
comparativo analítico se estudió e investigó a nivel internacional las normas
utilizadas, pero también según lo expuesto por Min Tic para Colombia donde es el
área que se encuentra la PyME de logística de transporte a estudiar.
Este cuadro analítico se conforma separado por normas y metodologías ya que
técnicamente no se pueden elegir entre estas dos por tratarse de conceptos
diferentes, sino que a su vez se reunieron un conjunto de normas y un conjunto de
metodologías donde cada conjunto es comparado en cuanto a las ventajas ,
desventajas, el contexto organizacional donde se pueden trabajar y aplicar ya sea
un conjunto o el otro y finalmente los recursos útiles y no útiles de cada uno de estos
conjuntos que serán trabajados en la guía a diseñar.
Solo para ampliar, las normas estudiadas y analizadas fueron:
•
•
•
•
ISO 9001: Requisitos sistema de gestión de calidad
ISO 12207: Procesos ciclo de vida del software
ISO 25010: Parámetros para la calidad del producto software
IEEE 830: Especificación de requerimientos de software*
De igual manera las metodologías fueron:
•
•
•
•
SCRUM
TSP
PSP
CMMI
-----------*No es una norma, aunque representa un estándar sobre la especificación de
requerimientos de software.
52
Cabe resaltar que, según el alcance del presente proyecto, las normas y/o
metodologías que fueran seleccionadas en esta fase no se trabajarían
completamente sino por el contrario, se extraerían características principales y que
fueran útiles para la creación del diseño de la guía.
Finalmente en esta etapa se eligió la norma ISO 25010 junto con las metodologías
SCRUM y TSP ya que en resumidas palabras aunque se puede apreciar en el anexo
a profundidad los ítems a evaluar, eran las que presentaban mejores recursos útiles
a trabajar dentro del contexto organizacional de la PyME y que permitía de igual
manera y de acuerdo con la evaluación por parte de los empleados no reestructurar
y cambiar completamente la manera como se trabaja el proceso de levantamiento
de requerimientos.
11.4 DISEÑO DE LA GUÍA PARA LA MEJORA EN EL LEVANTAMIENTO DE
REQUERIMIENTOS DE SOFTWARE EN UNA PYME DE LOGÍSTICA DE
TRANSPORTE.
53
UNIVERSIDAD CATÓLICA DE COLOMBIA - FACULTAD
DE INGENIERÍA
FORMATO GUÍA PARA LA MEJORA EN EL
LEVANTAMIENTO DE REQUERIMIENTOS DE SOFTWARE
EN UNA PYME DE LOGÍSTICA DE TRANSPORTE
CARLOS ANDRÉS RODRÍGUEZ SILVA - 67000100
PROGRAMA INGENIERÍA DE SISTEMAS Y
COMPUTACIÓN
BOGOTÁ D.C
2021
54
HOJA DE INFORMACIÓN GENERAL
Control Documental:
Proyecto:
GUÍA PARA LA MEJORA EN EL LEVANTAMIENTO DE
REQUERIMIENTOS DE SOFTWARE EN UNA PYME DE LOGÍSTICA DE
TRANSPORTE
Entidad:
ESTUDIANTE CARLOS ANDRÉS RODRÍGUEZ SILVA
PERTENECIENTE AL PROGRAMA DE INGENIERÍA DE SISTEMAS Y
COMPUTACIÓN DE LA UNIVERSIDAD CATÓLICA DE COLOMBIA,
Versión: 2.1
Fecha: 10-11-2021
Nombre: Formato_Guia_Calidad_v2.1_2021pyme
Resumen:
GUIA PARA LA MEJORA EN EL LEVANTAMIENTO DE
REQUERIMIENTOS DE SOFTWARE EN UNA PYME DE LOGISTICA DE
TRANSPORTE EN LA CIUDAD DE BOGOTÁ D.C COLOMBIA.
55
CONTROL DE VERSIONES
Fuente de cambio
Fecha
Versión Solicitante ¿Cambio
Descripción
Fecha
de
autorizado? breve
del del
solicitud
cambio
cambio
realizado
Formato_Guia_Calidad_v1.0_2021pyme.docx 1.0
Formato_Guia_Calidad_v1.0_2021pyme.docx 2/NOV
2.0
Ejecutiva
Si
Correcciones 3/NOV
de cuenta
de redacción
y sintaxis
Formato_Guia_Calidad_v2.0_2021pyme.docx 8/NOV
2.1
Si
Correcciones 9/NOV
de títulos y
párrafos
Formato_Guia_Calidad_v2.1_2021pyme.docx
56
ÍNDICE
INTRODUCCIÓN ............................................................................................................. 58
APLICACIÓN ................................................................................................................... 58
ESTRUCTURA ................................................................................................................ 58
1.MODELO DE LA CALIDAD EN EL PRODUCTO .......................................................... 59
2.MODELO DE LA CALIDAD EN EL PROCESO ............................................................. 60
3.MODELO DE LA CALIDAD EN LA ORGANIZACIÓN, ESTRUCTURA Y
COMUNICACIÓN ............................................................................................................ 63
GLOSARIO ...................................................................................................................... 64
BIBLIOGRAFÍA ................................................................................................................ 65
57
INTRODUCCIÓN
La presente guía está basada en la norma ISO 25010 aplicándose junto con algunas
de las características de las metodologías SCRUM y TSP en conjunto.
Es importante resaltar que esta normas y metodologías escogidas fueron
seleccionadas previamente según un análisis investigativo realizado en un trabajo
de grado donde se analizaron las variables del contexto organizacional, ventajas y
desventajas entre normas y metodologías y finalmente las características a utilizar
según el modo de operar de la empresa y el recurso humano con el que cuenta.
El proceso de levantamiento de requerimientos tiene como objetivo garantizar que
el producto desarrollado y entregado cumpla con las necesidades expuestas por el
cliente previamente. Para lograrlo y al mismo tiempo contar con un mínimo de
calidad, según lo anterior, es importante realizar un conjunto de actividades y
buenas prácticas para mejorar los procesos que se tengan, para maximizar los
recursos en tiempo y costos, y finalmente generar la relevancia y la diferencia que
genere la satisfacción de los que vayan a utilizar ese producto y los involucrados.
APLICACIÓN
•
•
•
La presente guía no pretende asegurar la calidad dentro del proceso de
levantamiento de requerimientos ya que esta palabra es subjetiva y no es
algo que tenga un valor global específico para saber si se cuenta con ella o
no.
Esta guía es aplicable solamente a la PyME de logística de transporte
estudiada y analizada previamente en el trabajo de grado realizado. No
pretende ser una guía para empresas con características similares, aunque
puede ser tomada en cuenta para estudios futuros.
Esta guía debe ser utilizada en su totalidad por la PyME a tratar y se evaluará
solo la fase de levantamiento de requerimientos según el ciclo de vida del
desarrollo de software empleado en ella.
ESTRUCTURA
La siguiente guía se compone de tres partes explicadas a continuación:
1. Modelo de la calidad en el producto:
2. Modelo de la calidad en el proceso.
3. Modelo de la calidad en la organización, estructura y comunicación.
58
1.MODELO DE LA CALIDAD EN EL PRODUCTO
Para la primera parte centrada en el producto a entregar, se establece según la
norma ISO 25010, que un producto se debe componer de 8 características básicas
las cuales deben ser:
•
•
•
•
•
•
•
•
Adecuación funcional: Proporcionar funciones que satisfacen las
necesidades del cliente, declaradas e implícitas según las condiciones
dadas.
Eficiencia del desempeño: Desempeño relativo según los recursos
utilizados.
Compatibilidad: Capacidad entre sistemas o componentes para
intercambiar información, compartiendo el entorno y realizando las debidas
funciones.
Usabilidad: Capacidad del producto software para ser entendido, aprendido,
usado y resultar atractivo para el usuario.
Fiabilidad: Poder desempeñar funciones especificadas dentro de unas
condiciones y tiempos determinados.
Seguridad: Protección de datos para que terceros no autorizados no puedan
leerlos o modificarlos.
Mantenibilidad: El producto puede ser modificado de manera efectiva según
las necesidades de evolución, corrección y perfeccionamiento.
Portabilidad: Puede ser transferido el producto o componente de forma
efectiva de un entorno hardware, software o de utilización a otro.
Lo anterior permite describir la manera como se debería evaluar un producto ya sea
un sistema, o como se trabaja actualmente múltiples y pequeños componentes
(módulos) que hacen que sean el foco principal de la evolución del sistema.
Desde el inicio de la creación del sistema de logística de transporte, alguna de estas
características ya ha sido definidas e identificadas en el contrato del proveedor y el
cliente, pero existen otras que se deberían continuar trabajando y mejorando para
generar más calidad el producto y/o servicio entregado.
59
2.MODELO DE LA CALIDAD EN EL PROCESO
Para la segunda parte centrada en el proceso propio de levantamiento de
requerimientos es importante tener en cuenta alguno de los aspectos que nos
sugiere la norma ISO 12207 donde tenemos:
1. Ciclo de vida del software o sistema:
Figura 01: Ciclo de vida del desarrollo de software estándar – Fuente: Elaboración propia
2. Tipo de software: En nuestro caso el tipo de software, es independiente.
3. Rol Ciclo de vida: Dentro de los roles en el ciclo de vida, nos determinamos
como proveedores, desarrolladores y mantenedores.
4. Modelo de desarrollo: El modelo de desarrollo en la PyME vendría siendo
cascada
Figura 02: Modelo de desarrollo de cascada – Fuente:
https://blog.comparasoftware.com/modelo-de-desarrollo-en-cascada/
60
5. Características del proyecto: Se identifica que el proyecto es un sistema
desarrollado y terminado hace varios años atrás, y que se ha venido
evolucionando, mejorando y haciendo el correcto mantenimiento para su
sostenimiento y adecuación a cada empresa cliente de transporte trabajada.
Para el proceso de levantamiento de requerimientos es importante definir las
prioridades de los requerimientos y los formatos o medios de comunicación según
cada caso:
Ya que el tema a tratar dentro de la PyME es el transporte, en la mayoría de casos
el tiempo de respuesta es indispensable y es una labor que requiere de mucha
concentración y rapidez para mantener los procesos al día, tanto en la empresa
proveedora como en los clientes. Se ha identificado que existen procesos divididos
por prioridad así:
Prioridad Baja: Tareas de desarrollo de medio o gran tamaño que son
comunicadas por correo y en espera de respuesta de 2 a 4 semanas. No interfieren
con la operación del transporte.
Prioridad Media: Tareas relevantes que de una manera u otra paran la operación
parcial de los clientes. El tiempo de solución varía según el caso que se presente
en el sistema.
Prioridad Alta: Tareas urgentes comunicadas por llamada telefónica que necesitan
ser resueltas de inmediato dando solución la mayoría de veces en un plazo no
mayor a 15 minutos.
En base al estándar IEEE 830 de levantamiento de requerimientos se debería tratar
de especificar un formato del proceso donde se indique principalmente, después de
haberse dialogado con el cliente lo siguiente:
•
Empresa solicitante, característica del requerimiento, descripción del
requerimiento, modulo o punto donde se pretende implementar y prioridad
del requerimiento.
61
Figura 03: Diseño formato de requerimiento en la PyME – Fuente: Elaboración propia
Lo anterior para despejar dudas sobre algún requerimiento que se tenga, así como
el alcance y la necesidad a resolver primordialmente. Eliminando pérdidas de tiempo
y/o soluciones no adecuadas
62
3.MODELO DE LA CALIDAD EN LA ORGANIZACIÓN,
ESTRUCTURA Y COMUNICACIÓN
Finalmente, en la tercera parte se pretende establecer la organización, estructura y
comunicación dentro de la PyME para brindar un servicio realizando buenas
prácticas de calidad en los procesos que se llevan a cabo.
Junto con la norma ISO 25010 se puede aplicar varias metodologías a nivel personal
y de equipo, entre ellas para los desarrolladores se cuenta con PSP (Personal
Software Process) – Proceso de desarrollo personal: Donde rescatamos de esta
metodología y que sea aplicable al proceso de la organización en el desarrollo de
software, el análisis sobre cómo se está llevando a cabo la forma de programar,
como he evolucionado, que tanto tiempo estoy invirtiendo en cada requerimiento,
que buenas prácticas de codificación estoy utilizando.
Necesitamos tener resueltas estas variables anteriores para realizar el TSP (Team
Software Process) para aquí poder realizar las 2 de 3 fases que lo componen:
•
•
Fase de lanzamiento: Los equipos de desarrollo ya están construidos, así
que lo siguiente es establecer las metas, establecer las tareas a realizar
(requerimientos a responder) y evaluar los riesgos que se tomen en caso de
que sea necesario.
Fase de ejecución: Nuevamente ya en conjunto con todo el equipo
(Desarrolladores, ejecutivas de cuenta y gerencia) realizar el seguimiento de
esfuerzo (en tiempo e implementaciones) y la calidad lograda con el esfuerzo
realizado.
Añadiendo a lo anterior, se identifica junto con las metodologías anteriores, se está
utilizando actualmente parte de la metodología ágil SCRUM donde se debe realizar
e identificar los roles:
•
•
•
Product Owner: Donde es el responsable de maximizar el trabajo del equipo
de desarrollo, además de conocer el sistema y el negocio en el que se
encuentra.
Scrum Master: Se encarga de que todas las técnicas descritas en esta guía
sean realizadas correctamente, además de aclarar dudas al equipo de
desarrollo.
Equipo de desarrollo: Realizar las tareas priorizadas, deben ser
multifuncionales y autoorganizados.
Finalmente se debe realizar en base a esta metodología ágil reuniones, según el
contexto de la empresa al menos semanales para resumir lo que se ha venido
trabajando, lo que se está realizando y cuáles serían las dudas que salieron de
requerimientos y/o casos nuevos.
63
GLOSARIO
•
•
•
•
•
•
•
Ciclo de vida del desarrollo de software: Comprende las fases necesarias
para validar el desarrollo del software y así garantizar que este cumpla los
requisitos para la aplicación
IEEE 830: Estándar creado por un conjunto de recomendaciones para la
especificación de los requerimiento o requisitos de software el cual tiene
como producto final la documentación de los acuerdos entre el cliente y el
grupo de desarrollo
ISO 25010: Parte de la familia de normas 25000, es una norma donde se
determinan las características de calidad que se deben tener en cuenta en el
momento de evaluar las propiedades de un producto software terminado.
Metodología Ágil: Métodos de ingeniería del software basados en el
desarrollo iterativo e incremental, donde los requisitos y soluciones
evolucionan con el tiempo.
PSP: Conjunto de prácticas disciplinadas para la gestión del tiempo y mejora
de la productividad personal de los programadores
SCRUM: Es una forma de trabajo de la metodología Ágil mediante la cual a
través de prácticas colaborativas se minimizan todo tipo de riesgos en la
elaboración de un proyecto.
TSP: En combinación con PSP, proporciona un marco de trabajo de procesos
definidos que está diseñado para ayudarle a equipos de gerentes e
ingenieros a organizar y producir proyectos de software.
64
BIBLIOGRAFÍA
Abellán, E. (05 de 03 de 2020). We Are Marketing. Obtenido
https://www.wearemarketing.com/es/blog/metodologia-scrum-que-es-ycomo-funciona.html
de
Andres Gallegos Velazquez, P. A. (2011). ELABORACIÓN DEL ESTANDAR DE
APLICACIÓN DE LA NORMA ISO 12207, AL DESARROLLO DE
APLICACIONES DE SOFTWARE PARA LA UTIC DE LA ESPE.
EcuRed.
(2011).
EcuRed.
https://www.ecured.cu/Team_Software_Process
Obtenido
de
Formato
IEEE
830
1998.
(s.f.).
Obtenido
https://www.ctr.unican.es/asignaturas/is1/ieee830_esp.pdf
de
ISO
de
25000
calidad
de
software
y
datos.
(s.f.). Obtenido
https://iso25000.com/index.php/normas-iso-25000/iso-25010
65
11.5 EVALUACIÓN DE RETROALIMENTACIÓN DE LA GUÍA PARA LA MEJORA
EN EL LEVANTAMIENTO DE REQUERIEMIENTOS DE SOFTWARE.
Finalmente, para la evaluación y/o retroalimentación después de haber leído,
entendido y aplicado, aunque no en su totalidad, por cuestiones de tiempo y trabajo
acumulado se realizó una ultima encuesta con preguntas mas abiertas para conocer
la opinión de algunos de los empleados involucrados dentro del desarrollo de
software en la PyME de logística de transporte.
Antes de mostrar los resultados de la retroalimentación, se muestra a continuación
algunos de los requerimientos trabajados en la guía en los días del 25 de octubre al
8 de noviembre que, aunque por cuestiones laborales no se pudieron realizar más
se aprecia el formato diligenciado, propuesto en el diseño de la guía
Figura 12. R01 diligenciado en el formato según la guía diseñada
Figura 13. R02 diligenciado en el formato según la guía diseñada
66
Figura 14. R03 diligenciado en el formato según la guía diseñada
Figura 15. R04 diligenciado en el formato según la guía diseñada
Figura 16. R05 diligenciado en el formato según la guía diseñada
Dentro de los resultados de la guía realizada, aunque no participaron todos los
empleados ya que no se encontraban en el momento de la evaluación, aunque los
resultados sean óptimos se requiere la participación de todo para concluir
claramente sobre las preguntas.
A continuación, se comparten las preguntas mas relevantes y mas pertinentes dado
el trabajo realizado.
67
Figura 17. Pregunta 8 formulario retroalimentación de la guía diseñada
Es importante resaltar el orden que se debe tratar los requerimientos y su
importancia en los proyectos de desarrollo de software, basado en las normas ISO
complementan los estudios realizados por múltiples entidades y personas que han
llevado a estandarizar practicas e ítems puntuales sobre la fase de levantamiento
de requerimientos de software.
Figura 18. Pregunta 9 formulario retroalimentación de la guía diseñada
68
Figura 19. Pregunta 10 formulario retroalimentación de la guía diseñada
Finalmente, la calidad de un producto o de un servicio desarrollado no termina aquí,
se debe seguir siendo muy minucioso con los procesos que se realizan a cabo,
continuar lo que se estar realizando bien y mejorar lo que nos puede traer problemas
en proyectos futuros. Lo anterior con el fin de cumplir con la efectividad de la
aplicación de una guía o de en otras ocasiones implementar estándares dentro de
cualquier empresa.
69
12. CONCLUSIONES
•
•
•
•
Como aprendizaje del trabajo realizado se entiende la importancia a través
de la historia de como la calidad de software hasta el día de hoy recae en las
primeras fases de desarrollo, en especial el levantamiento y/o elicitación de
requerimientos, atribuyendo la importancia de generar no solo un buen
proyecto de software sino a nivel general desde las primeras fechas según
un cronograma para evitar riesgos y perdidas en cuanto alcance, tiempo y
recursos.
Ya que el tiempo no alcanzó para implementar en su totalidad la guía
elaborada o diseñada como se planeó a inicios del trabajo se pretende, que
no solo en esta PyME estudiada sino en demás microempresas a nivel capital
y nacional analicen la importancia de las metodologías que están llevando
acabo para su vez atribuir la eficacia de los procesos que realizan.
La evaluación de la calidad, aunque sigue siendo tema subjetivo de como se
debe calificar o como se cuando la he alcanzado, es importante al menos
tratar de lograr llegar a ella por medio de procedimientos rigurosos donde
participen todos los involucrados dentro del desarrollo de software para
obtener mejores beneficios.
El levantamiento de requerimientos ya sea que se tengan recursos para
aplicar una norma internacional y se quiera certificar o se adopten
metodologías agiles aplicadas en micro y medianas empresas, es importante
que todos los stakeholders participen activamente para el mejoramiento del
servicio y de un producto, solo así se obtendrán los resultados de negocio
que mejoraran ambas partes e impulsaran a los negocios a cumplir objetivos
y metas enfocadas a las estrategias organizaciones con las que se cuenten.
70
BIBLIOGRAFÍA
Abellán, E. (05 de 03 de 2020). We Are Marketing. Obtenido
https://www.wearemarketing.com/es/blog/metodologia-scrum-que-es-ycomo-funciona.html
de
Alexandra Abuchar Porras, B. C. (2012). Observatorio de prácticas de desarrollo de
software en MinPyme y pymes de Bogotá. Trabajo de Investigación, Bogotá
D.C.
Andres Gallegos Velazquez, P. A. (2011). ELABORACIÓN DEL ESTANDAR DE
APLICACIÓN DE LA NORMA ISO 12207, AL DESARROLLO DE
APLICACIONES DE SOFTWARE PARA LA UTIC DE LA ESPE.
Barajas, C. T. (2017). Impacto de los requerimientos en la calidad del software. TIA,
161-173.
BAUTISTA, E. C. (2020). GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA
PRUEBAS DE SEGURIDAD DE SOFTWARE EN APLICACIONES WEB
PARA UNA EMPRESA DEL SECTOR PRIVADO. Bogotá.
Benavides, L. M. (2 de Agosto de 2018). La República. Obtenido de
https://amp.larepublica.co/empresas/el-problema-de-avianca-de-ayer-tuvoque-ver-con-una-falla-en-el-software-aerocivil-2755884
Bertalanffy, L. V. (1968). Teoría General de Sistemas. Nueva York.
Ceballos, D. E. (2021). Método de selección de técnicas de levantamiento de
requerimientos para el desarrollo de software con un enfoque de experiencia
de usuario. Tesis, Ciudad de Mexico.
Coulin, D. Z. (2005). Requirements Elicitation: A Survey of Techniques, Approaches
and Tools. En A. &. Aurum, Engineering and Managing Software
Requirements (págs. 19-41). New York: Springer.
Cristiá, M. (2014). Introducción a la ingeniería de requerimientos. Trabajo de
Investigación, Rosario.
Desastres
provocados
por
Software.
(s.f.).
Obtenido
https://lsi2.ugr.es/~mvega/docis/aluwork/costela/ficheros/parte3.html
de
EcuRed.
(2011).
EcuRed.
https://www.ecured.cu/Team_Software_Process
de
Obtenido
71
Edward Meinert, M. M. (2020). Agile Requirements Engineering and Software
Planning for a Digital Health Platform to Engage the Effects of Isolation
Caused by Social Distancing: Case Study. JMIR Publications, 10.
Formato
IEEE
830
1998.
(s.f.).
Obtenido
https://www.ctr.unican.es/asignaturas/is1/ieee830_esp.pdf
de
Gálvez, A. T. (2016). Especificación de requisitos de software: una mirada desde la
revisión teórica de antecedentes. Pereira.
Gil,
G. D. (2002). HERRAMIENTA PARA IMPLEMENTAR
ESCENARIOS(TILS). Tesis Magister, Buenos Aires.
LEL
Y
IEEE. (1998). Especificación de requisitos según estándar IEEE 830.
ISO
25000
calidad
de
software
y
datos.
(s.f.). Obtenido
https://iso25000.com/index.php/normas-iso-25000/iso-25010
de
Journal, D. B. (25 de Febrero de 2005). El Tiempo. Obtenido de Hartas de fallas
informaticas,
las
empresas
quieren
exigir
responsabilidad:
https://www.eltiempo.com/amp/archivo/documento/MAM-1682351
Judith del Pilar Rodriguez, C. Y. (2016). Método para interacturar con los
stakeholders en el proceso de levantamiento de requerimientos de software.
Revista Gerencia Tecnológica Informática, 14(40), 47-56.
Luis Merchán, A. U. (2008). Definición de una metodología ágil de ingeniería de
requerimientos para empresas emergentes de desarrollo de software del suroccidente colombiano. Trabajo de Investigación, Cali.
Oscar M. Fernández Carrasco, D. G. (1995). Un enfoque actual sobre la calidad del
software. La Habana: ACIMED.
Peláez, A. T. (2016). Ingeniería de Requisitos: de la especificación de requisitos de
software al aseguramiento de la calidad. Como lo hacen MiPymes
desarrolladoras de software de la ciudad de Pereira. Pereira.
Roger S. Pressman, P. (2018). Ingeniería del software. Un enfoque práctico.
Mansfield: McGRAW-HILL INTERAMERICANA.
Suárez, L. M. (2019). CALIDAD EN EL LEVANTAMIENTO DE REQUERIMIENTOS
EN PROYECTOS DE SOFTWARE. Articulo de Investigación, Bogotá D.C.
Sulca,
A.
M.
(2018).
Obtenido
de
https://repositorio.une.edu.pe/bitstream/handle/UNE/3597/MONOGRAF%c3
%8dA%20-%20QUISPE%20SULCA.PDF?sequence=1&isAllowed=y
72
Toro, A. y. (2018). Validación de un modelo para el aseguramiento de la calidad del
software en MIPYMES que desarrollan software en el Eje Cafetero.
VANESSA BAUTISTA GRISALES, E. C. (2019). MODELO ISO/IEC 25010 EN EL
PROCESO DE EVALUACIÓN DE LA CALIDAD DEL SOFTWARE EN LA
EMPRESA OBRAS CIVILES DE BOGOTÁ EN EL ÁREA DE TECNOLOGÍA
DE LA INFORMACIÓN Y COMUNICACIÓN. Bogota.
73
ANEXOS
Anexo A. Formato de diligenciamiento de requerimientos en una pyme de
logística de transporte
Diagnóstico hecho por: Carlos
Andrés Rodríguez Co. 67000100
Formato de diagnóstico
Versión: 1.0
Proceso de requerimientos
actual
Fecha: 28/07/2021
Descripción del requerimiento solicitado por parte de la empresa-cliente
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
________________________________________________________________________
Hora Inicio: _________
Medio de contacto
o Correo
o WhatsApp
o Página web de tickets
o Otro ¿Cuál?: _______________
¿Se entendió el requerimiento leyendo la primera vez la descripción del mismo?
o Si
o No
o Mas o menos ¿Se tienen dudas? ¿Cuáles?
________________________________________________________________________
________________________________________________________________________
__________________________________
¿Se requirió solicitar más información o aclaración sobre la primera descripción?
o Si
o No
74
Si la respuesta fue si elija por qué ocurrió esto:
o No fue entendido por parte del equipo de desarrollo
o No fue explicado de la mejor manera por parte del solicitante
o No hubo una buena comunicación entre las áreas en la pyme
o Otro ¿Cuál?
________________________________________________________________________
______
¿Después de solucionado el requerimiento, cuantos ajustes se realizaron para entregar en su
totalidad?
o Solo una (1)
o Dos (2)
o Más de dos (>2)
Duración del requerimiento
Hora fin: _________ Tiempo: _________
Anexo B. Cuadro analítico sobre metodologías y normas enfocadas en el
levantamiento de requerimientos de software
75
76
Descargar