Proceso Ágil para La Gestión de La Configuración de Software en Micro, Pequeñas y Medianas Empresas de Software
Proceso Ágil para La Gestión de La Configuración de Software en Micro, Pequeñas y Medianas Empresas de Software
Trabajo de Grado
Trabajo de Grado
A mi familia: por ser el soporte que me ha permitido continuar durante toda la carrera,
por su apoyo incondicional y por la paciencia que han tenido durante todos estos años.
A mi madre por ser el pilar que me ha enseñado que el estudio es el regalo más
importante que una persona puede recibir, a mis hermanos por apoyarme durante todo
el proceso, y especialmente a mi hermano Edward Orozco por ser la persona que me
ha permitido llegar hasta este punto. Sin su apoyo seguramente no habría logrado
culminar este trabajo (ni esta carrera).
A todos los profesores que hicieron parte durante los últimos cinco años de carrera y
nos enseñaron las bases y los conocimientos necesarios para desempeñar un
excelente trabajo fuera de la universidad. Además, quiero agradecer de manera
especial a los ingenieros Wilson Libardo Pantoja, Wilson Alfredo Ortega, Sandra
Lorena Buitrón y Daniel Eduardo Paz por participar en la evaluación de la propuesta y
por su valiosa realimentación durante la sesión de debate, lo cual permitió crear una
propuesta mucho más sólida.
Finalmente, quiero agradecer a Isabel Lozano por su apoyo incondicional, por ser una
parte fundamental de mi proceso de aprendizaje durante los últimos diez años, por su
constante interés en este proceso, por acompañarme en este viaje durante los últimos
tres años y por ser la razón que me inspira cada día a ser un mejor profesional y una
mejor persona. Este trabajo y todos mis proyectos futuros son dedicados a ella.
A mis docentes: a nuestro director, ingeniero César Pardo, por su valiosa guía durante
la realización de este trabajo, su profesionalismo, sabiduría, compromiso y total
disposición fueron fundamentales para la exitosa culminación de este proceso.
Asimismo, a nuestro codirector, ingeniero Francisco Pino, por su guía y motivación en
momentos difíciles del proyecto, su apoyo representó una base sólida para la
realización de este trabajo. A todos y cada uno de los docentes que compartieron
conmigo su conocimiento, experiencia y sabiduría durante estos años del desarrollo de
mi carrera. Igualmente agradezco a los docentes que nos apoyaron en la validación de
nuestro trabajo; sus apreciaciones fueron muy importantes para construir una
propuesta más sólida y acorde a los objetivos trazados.
Índice de tablas.
Tabla 1. Niveles de capacidad definidos en CMMI-DEV............................................................................................. 8
Tabla 2. Niveles de madurez definidos por CMMI-DEV. ............................................................................................. 8
Tabla 3. Palabras clave y sinónimos. ...................................................................................................................... 11
Tabla 4. Cadenas de búsqueda básicas.................................................................................................................. 12
Tabla 5. Clasificación por cantidad de publicaciones anuales. .................................................................................. 12
Tabla 6. Categorización de estudios por modelos, estándares o metodologías utilizadas para soportar o apoyar SCM.12
Tabla 7. Clasificación del tamaño de las empresas según el número de empleados. ................................................. 13
Tabla 8. Actividades propuestas en [33]. ................................................................................................................. 15
Tabla 9. Actividades propuestas en [34]. ................................................................................................................. 15
Tabla 10. Cuadro comparativo a alto nivel de atributos asociados a cada modelo...................................................... 19
Tabla 11. Plantilla utilizada para la comparación de elementos de proceso a alto nivel. Tomado y traducido de [38]. ... 20
Tabla 12. Comparación de modelos a alto nivel utilizando CSPE.............................................................................. 21
Tabla 13. Actividades asociadas a CMMI-DEV........................................................................................................ 22
Tabla 14. Actividades asociadas a IEEE 828-2012. ................................................................................................. 23
Tabla 15. Actividades asociadas a ISO/IEC 15504. ................................................................................................. 23
Tabla 16. Actividades asociadas a ISO/IEC 29110. ................................................................................................. 23
Tabla 17. Salidas asociadas a ISO/IEC 15504......................................................................................................... 23
Tabla 18. Salidas asociadas a IEEE 828-2012. ....................................................................................................... 24
Tabla 19. Ítems de configuración definidos por cada modelo. ................................................................................... 25
Tabla 20. Tabla de comparación entre modelos. Tomado de [41]. ............................................................................ 26
Tabla 21. Plantilla de comparación entre modelos. Tomado de [44]. ......................................................................... 26
Tabla 22. Comparación de actividades entre la norma ISO/IEC 15504 y CMMI -DEV. ................................................ 27
Tabla 23. Comparación de actividades entre la norma ISO/IEC 15504 y la IEEE 828-2012........................................ 29
Tabla 24. Comparación de actividades entre la norma ISO/IEC 15504 y la ISO/IEC 29110 propuesta en [25]. ............ 30
Tabla 25. Comparación de actividades entre la norma ISO/IEC 15504 y las actividades propuestas en [33]. ............... 31
Tabla 26. Comparación de actividades entre la norma ISO/IEC 15504 y las actividades propuestas en [34]. ............... 32
Tabla 27. Correspondencia entre actividades definidas en la norma ISO/IEC 15504 contra todos los modelos. ........... 34
Tabla 28. Escala de relación entre modelos. Adaptado de [44]. ................................................................................ 34
Tabla 29. Relación cuantitativa entre m odelos......................................................................................................... 35
Tabla 30. Relación cualitativa entre modelos........................................................................................................... 35
Tabla 31. Plantilla de términos de integración. Tomado de [41]................................................................................. 36
Tabla 32. Plantilla de aspectos para escribir una práctica unificada. Tomado de [41]. ................................................ 36
Tabla 33. Plantilla de unificación de prácticas entre modelos. Adaptado de [41]. ....................................................... 37
Tabla 34. Actividades integradas. ........................................................................................................................... 38
Tabla 35. Cantidad de actividades integradas.......................................................................................................... 38
Tabla 36. Especificación de requerimientos de SCMOnto. ....................................................................................... 42
Tabla 37. Fuentes utilizadas para la definición de SCMOnto. ................................................................................... 42
Tabla 38. Conceptos utilizados en SCMOnto........................................................................................................... 46
Tabla 39. Términos extraídos de [55]. ..................................................................................................................... 46
Tabla 40. Términos extraídos de [43]. ..................................................................................................................... 46
Tabla 41. Relaciones utilizadas en SCMOnto. ......................................................................................................... 47
Tabla 42. Plantilla para la definición del proceso. Adaptado de [42]. ......................................................................... 53
Tabla 43. Términos genéricos. ............................................................................................................................... 53
Tabla 44. Acrónimos. ............................................................................................................................................. 53
Tabla 45. Identificación de roles. ............................................................................................................................ 54
Tabla 46. Roles propuestos que participan de manera directa en el proceso. ............................................................ 55
Tabla 47. Roles propuestos que participan de manera indirecta en el proceso. ......................................................... 55
Tabla 48. Roles definidos para una empresa grande o mediana. .............................................................................. 55
Tabla 49. Roles definidos para una empresa pequeña. ............................................................................................ 55
Tabla 50. Roles definidos para una microempresa................................................................................................... 56
Tabla 51. Progresconfig. ........................................................................................................................................ 90
Tabla 52. Descripción de la primera dimensión para la evaluación de agilidad. Tomado de [61]. ................................ 91
Tabla 53. Evaluación de la primera dimensión aplicado a Progresconfig. .................................................................. 92
Tabla 54. Plantilla utilizada para la evaluación de la segunda dimensión. Tomado de [61].......................................... 93
Tabla 55. Evaluación de la segunda dimensión aplicada a Progresconfig.................................................................. 93
Tabla 56. Descripción de la tercera dimensión para la evaluación de agilidad. Tomado de [61]. ................................. 94
Tabla 57. Evaluación de la tercera dimensión aplicada a Progresconfig. ................................................................... 94
Tabla 58. Plantilla utilizada para la evaluación de la cuarta dimensión. Tomado de [61]. ............................................ 95
Tabla 59. Evaluación de la cuarta dimensión aplicada a Progresconfig. .................................................................... 95
Tabla 60. Elementos del protocolo para llevar a cabo el grupo focal. ........................................................................ 97
Tabla 61. Elementos definidos para llevar a cabo el grupo focal. .............................................................................. 98
Tabla 62. Perfil de los participantes que asistieron al grupo focal llevado a cabo en la Universidad del Cauca........... 100
Tabla 63. Perfil de los participantes que asistieron al grupo focal llevado a cabo en LA EMPRESA. ......................... 101
Tabla 64. Protocolo llevado a cabo para realizar el grupo focal............................................................................... 101
Tabla 65. Aspectos de mejora dentro del alcance del proyecto. .............................................................................. 104
Tabla 66. Aspectos de mejora fuera del alcance del proyecto................................................................................. 104
Tabla 67. Transcripción de observaciones realizadas a la primera pregunta............................................................ 106
Tabla 68. Transcripción de observaciones realizadas a la cuarta pregunta.............................................................. 108
Tabla 69. Transcripción de observaciones realizadas a la quinta pregunta. ............................................................. 108
Tabla 70. Transcripción de observaciones realizadas a la sexta pregunta. .............................................................. 109
Tabla 71. Transcripción de observaciones realizadas a la séptima pregunta. .......................................................... 110
Tabla 72. Transcripción de observaciones realizadas a la octava pregunta. ............................................................ 111
Tabla 73. Transcripción de observaciones realizadas a la novena pregunta. ........................................................... 111
Tabla 74. Transcripción de observaciones realizadas a la décima pregunta. ........................................................... 112
Tabla 75. Comparación entre la propuesta evaluada en los grupos focales y la versión refinada del proceso. ........... 114
Tabla 76. Resumen de artículos escritos durante el desarrollo del proyecto. ........................................................... 120
Tabla 77. Agenda de trabajo utilizada para la sesión realizada en la Universidad del Cauca. ................................... 125
Tabla 78. Agenda de trabajo utilizada para la sesión realizada en LA EMPRESA. ................................................... 125
Tabla 79. Protocolo definido para la sesión realizada en la Universidad del Cauca. ................................................. 159
Tabla 80. Protocolo definido para la sesión realizada en LA EMPRESA. ................................................................. 160
Tabla 81 . Progresconfig versión 1.0. .................................................................................................................... 177
Índice de figuras.
Figura 1. Representación gráfica mediante diagramas UML de los conceptos y relaciones de SCMOnto. ................... 48
Figura 2. Segmento extraído de la instancia de SCMOnto utilizando Protégé. ........................................................... 50
Figura 3. Niveles de capacidad propuestos. ............................................................................................................ 56
Figura 4. Descripción del problema......................................................................................................................... 57
Figura 5. Visión general de la propuesta. ................................................................................................................ 58
Figura 6. Sesión de debate llevada a cabo en la Universidad del Cauca. ................................................................ 102
Figura 7. Sesión de debate llevada a cabo en LA EMPRESA. ................................................................................ 102
Figura 8. Cantidad de participantes que respondieron cada opción de cada pregunta. ............................................. 105
Figura 9. Tendencia de los resultados de la primera pregunta. ............................................................................... 105
Figura 10. Tendencia de los resultados de la segunda pregunta............................................................................. 106
Figura 11. Tendencia de los resultados de la tercera pregunta. .............................................................................. 107
Figura 12. Tendencia de los resultados de la cuarta pregunta. ............................................................................... 107
Figura 13. Tendencia de los resultados de la quinta pregunta................................................................................. 108
Figura 14. Tendencia de los resultados de la sexta pregunta.................................................................................. 109
Figura 15. Tendencia de los resultados de la séptima pregunta. ............................................................................. 110
Figura 16. Tendencia de los resultados de la octava pregunta................................................................................ 110
Figura 17. Tendencia de los resultados de la novena pregunta............................................................................... 111
Figura 18. Tendencia de los resultados de la décima pregunta. .............................................................................. 112
Capítulo I. Introducción.
Este capítulo presenta una descripción detallada sobre la motivación de este trabajo
de investigación, los objetivos definidos, la estrategia utilizada para realizar la
investigación y la descripción de la solución propuesta. Finalmente, se presenta la
estructura del documento en el cual se describe el contenido de cada capítulo a alto
nivel.
1
Gestión de la configuración del nombre original en inglés, Configuration Management.
1
(SCM2) la cual es posible definir como: el proceso cuyo objetivo es la identificación de
la configuración del software en un punto discreto del tiempo, y el control sistemático
de los cambios de la configuración identificados con el propósito de mantener la
integridad y trazabilidad durante el ciclo de vida del software [9].
Para producir y mantener software de alta calidad, a bajo costo y de forma efectiva,
son fundamentales los procesos utilizados en su desarrollo, entre los que se encuentra
el control de los cambios para mantener la integridad del producto, para esto, SCM
actúa como el esqueleto que lo hace posible. Por lo tanto, aplicar SCM permite
mantener la trazabilidad del código fuente, documentación, problemas, cambios
solicitados y cambios que se han realizado sobre el producto [7].
La carencia de un perfil completo que pueda ser adoptado por MiPyMEs_DS, trae
como consecuencia una fuerte tendencia hacia el uso incompleto e informal de SCM a
través del uso de herramientas para solucionar problemas específicos como el control
de versiones y la integración continua, y aunque es claro que el propósito de las
herramientas para SCM es facilitar la gestión, coordinación, intercambio y cambios en
los artefactos software [17], se debe tener en cuenta que SCM es una de las
capacidades fundamentales que debería tener lugar en cualquier pr oyecto de
desarrollo de software [11], por lo tanto, no debería ser limitado solo al uso de
herramientas, que en muchos casos no proveen el control total sobre su configuración.
Por otra parte, en la última década se ha identificado una fuerte y creciente tendencia
hacia la adopción de metodologías ágiles en los proyectos que llevan a cabo las
MiPyMEs_DS, esto debido a dos razones principales: (i) fracaso con marcos
tradicionales debido al bajo porcentaje de éxito en los proyectos desarrollados con
2
Gestión de la configuración de softw are del nombre en inglés, Softw are Configuration Management.
3
Instituto de Ingeniería Eléctrica y Electrónica del nombre original en inglés, Institute of Electrical and
Electronics Engineers, conocida por las siglas IEEE.
4
Organización Internacional de Normalización del nombre original en inglés, International Organization for
Standardization, conocida por las siglas ISO.
5
Comisión Electrotécnica Internacional del nombre original en inglés, International Electrotechnical
Commission.
2
base en metodologías tradicionales (o plan-drive methods) [17], (ii) la versatilidad y
beneficios que las metodologías ágiles proporcionan a los equipos de trabajo, y las
que principalmente se centran en la mejora de: la productividad, calidad, alineación
entre cliente y equipo, resultados anticipados (time to market), rápido retorno de la
inversión (return on investment - ROI), flexibilidad y adaptación a los cambios, entre
otros.
Las empresas, independientemente de su tamaño, se enfrentan a diferentes retos
comunes basados en diferentes características, tales como: su capacidad, nivel de
madurez, tamaño y poder adquisitivo, por lo cual se hace pertinente la necesidad de
plantear si SCM se puede aplicar de manera exitosa en MiPyMEs_DS. En este
sentido, es necesario definir un proceso de SCM compacto, con conceptos claros y de
fácil implementación en MiPyMEs_DS con un enfoque ágil, y que cumpla con
características específicas como: (i) fácil implementación, (ii) bajo coste tanto en
recursos como en tiempo, (iii) poca carga documental, (iv) definiciones claras, (v)
adaptación al cambio en la industria y (vi) escalabilidad.
1.2 Objetivos.
1.2.1 Objetivo general.
Definir un proceso ágil para la gestión de la configuración de software adaptado a las
características y necesidades de MiPyMEs, el cual proporcione una definición clara
que apoye la implantación de las prácticas de gestión de la configuración en el
proceso de desarrollo de software en las MiPyMEs_DS.
3
Ciclo 1. Análisis conceptual: En esta fase se llevó a cabo la investigación
acerca del estado actual del arte acerca de la gestión de la configuración de
software, esto, con el objetivo de poder identificar, estudiar, entender y
comparar las iniciativas, problemáticas, soluciones y trabajos relacionados en
el área. Asimismo, la realización de esta fase permitió identificar y estudiar las
propuestas y soluciones existentes y los elementos sensibles a tener en cuenta
para la definición de la solución.
o Actividad 1.1: Revisión del estado del arte sobre SCM.
o Actividad 1.2: Profundización: Estudio de las características, similitudes
y diferencias en las soluciones hasta ahora propuestas para SCM.
Ciclo 2. Elaboración de la propuesta: En esta fase se llevó a cabo la
definición del proceso para la gestión de la configuración de software bajo un
enfoque ágil para MiPyMEs.
o Actividad 2.1: Análisis de la información: Se realizó un análisis de los
artefactos, actividades, roles y prácticas para SCM definidos por IEEE
828-2012 [12], CMMI-DEV [13], ISO 10007:2003 [14], ISO/IEC 15504
[15] e ISO/IEC 29110 [16].
o Actividad 2.2: Definición del proceso: Se realizó la definición de un
proceso ágil para la gestión de la configuración de software adaptado a
las características y necesidades de MiPyMEs_DS.
Ciclo 3. Evaluación de la propuesta: La evaluación de la propuesta se llevó a
cabo mediante el uso de un grupo focal (focus group) como técnica cualitativa
de estudio. El grupo focal se realizó a través de la reunión de un grupo de
expertos que evaluaron la propuesta.
o Actividad 3.1. Planificación: Se llevó a cabo la capacitación,
coordinación, organización y diseño del grupo focal.
o Actividad 3.2. Acción: Se ejecutó el grupo focal teniendo en cuenta la
planificación y diseño planteado en la actividad anterior.
o Actividad 3.3. Observación: Se recogen los datos sobre la ejecución e
intervención del grupo focal.
o Actividad 3.4. Reflexión: Se generó un reporte como resultado de la
reflexión y el análisis de los datos obtenidos durante la ejecución del
grupo focal. Asimismo, se llevó a cabo la realimentación y evaluación
del aprendizaje obtenido.
Ciclo 4. Documentación y socialización: Este ciclo se llevó a cabo de
manera transversal al proyecto. En esta fase se realizaron las siguientes
actividades:
o Actividad 4.1: Elaboración de monografía: Se elaboró la monografía
teniendo en cuenta los anexos que resultaron durante la realización del
trabajo de grado o documento final.
o Actividad 4.2: Elaboración de artículo: Se elaboró un artículo de
investigación que describe los resultados obtenidos durante la
realización y aplicación de la propuesta.
o Actividad 4.3: Sustentación: Se presentaron y sustentaron los
resultados obtenidos durante el desarrollo del proyecto.
El Capítulo II. Marco teórico y estado del arte, presenta la descripción de modelos
existentes identificados que dan soporte a la gestión de la configuración de software.
4
Además, en este capítulo se presenta el análisis de la revisión sistemática y/o trabajos
relacionados, el cual incluye: propuestas, iniciativas y trabajos relacionados con el
área de SCM. Finalmente, se presenta un análisis de los resultados obtenidos en la
revisión sistemática y los aportes que presenta el proyecto de investigación en el área
de la ingeniería de software y en la industria local de desarrollo de software.
5
Capítulo II. Marco teórico y
estado del arte.
Este capítulo presenta el estado del arte actual en el área de la gestión de la
configuración de software a través de la descripción y el estudio de las propuestas
existentes en el área de interés. Además, se presenta el análisis y revisión de una
revisión sistemática de la literatura que busca conocer las propuestas, iniciativas y
trabajos relacionados al área de la gestión de la configuración de software. El objetivo
para seguir con el desarrollo de la revisión sistemática es conocer el estado actual en
esta el área para identificar los aspectos que no se han trabajado y que pueden servir
como líneas de investigación futura. Los trabajos relacionados encontrados se
clasifican y analizan teniendo en cuenta las tendencias de publicación, los modelos
utilizados y el uso de metodologías ágiles.
6
SCM en los proyectos de software trae varios beneficios a corto y largo plazo, entre los
más importantes:
En general, este modelo fue pensado para ser adaptado en empresas con un nivel de
capacidad y madurez establecido que están en busca de estandarizar sus procesos.
Sin embargo, a pesar de su enfoque tradicional, CMMI-DEV resalta la importancia de
la gestión de la configuración en entornos ágiles debido a que éstos normalmente se
enfrentan a cambios frecuentes dentro de su desarrollo, compilación e integración
continua. Además, resalta la importancia de definir un rol responsable para llevar a
cabo el seguimiento de la implementación de CM. Asimismo, se dice que los equipos
ágiles pueden quedar realmente atascados si no se define un proceso automatizado
de CM basado en scripts, chequeos de integridad y supervisión de estado, y si no se
implementa CM como un conjunto único de servicios refiriéndose a CM como un único
proceso establecido.
Historias de usuario.
Pila de iteraciones.
Una de las características fundamentales que tiene CMMI-DEV es la categorización de
las empresas por aspectos que ellos definen como niveles de capacidad y madurez:
7
incrementalmente los procesos correspondientes a un área de proceso definida.
CMMI-DEV propone cuatro niveles de capacidad numerados de 0 a 3, a continuación,
en la Tabla 1 se presentan los niveles de capacidad definidos por CMMI-DEV.
Por otro lado, los niveles de madurez se aplican al logro de mejora de procesos de una
empresa en múltiples áreas de proceso. Estos niveles son un medio para mejorar los
procesos correspondientes a un conjunto dado de áreas de proceso. Los cinco niveles
de madurez propuestos por CMMI-DEV se numeran del 1 al 5. A continuación, en la
Tabla 2 se presentan los niveles de madurez definidos por CMMI-DEV:
8
A continuación, se da una descripción corta de cada uno de los procesos que define la
IEEE-828 2012, la cual se puede observar en la tabla.
6
Determinación de la Capacidad de Mejora del Proceso de Softw are, del inglés Softw are Process
Improvement Capability Determination, conocido por las siglas SPiCE
9
En general, la norma ISO/IEC 15504, así como el modelo CMMI-DEV, definen
diferentes niveles de capacidad y madurez en una empresa. En general, la ISO/IEC
15504 define 5 niveles de capacidad:
Nivel 0: Incompleto.
Nivel 1: Realizado.
Nivel 2: Gestionado.
Nivel 3: Establecido.
Nivel 4: Predecible.
Nivel 5: Optimizado.
7
Very Small Entities por sus siglas en inglés, conocido por las siglas VSE.
10
2.2.1 Enfoque de la pregunta.
La revisión sistemática de la literatura tiene como objetivo y foco principal encontrar las
propuestas, soluciones y trabajos relacionados con la gestión de la configuración de
software que involucren micro, pequeñas y medianas empresas de software.
Realizando combinaciones de los conectores lógicos “AND” y “OR” sobre las palabras
clave identificadas, se realizó una primera búsqueda con el prototipo in icial de cadena
de búsqueda sobre una fuente. Obteniendo así la siguiente cadena de búsqueda
básica que se aprecia en la Tabla 4.
11
(Configuration management OR change management OR CM OR Software Configuration Management OR
SCM)
AND
(Standards OR Models OR Methodologies OR Methodology OR Process OR Framework)
AND
(Software Process Improvement OR Improvement OR Improving)
Tabla 4. Cadenas de búsqueda básicas.
Las cadenas de búsqueda fueron adaptadas al ejecutar la revisión en cada uno de los
motores de búsqueda seleccionados.
8
Programación Extrema del nombre en inglés, Extreme Programming.
12
necesario tener en cuenta que un estudio puede mencionar uno o varios tipos de
empresa, por lo cual, es posible que la cantidad total de estudios por tipo de empresa
sea superior a la cantidad de estudios identificados. La clasificación se realiza de
acuerdo con la definición de pequeña y mediana empresa definida por la unión
europea establecida en el reglamento número 651/2014 [39], esta descripción se
complementó agregando la definición de microempresa propuesto en [40].
En [7], los autores realizan un estudio cualitativo mediante el uso de cuestionarios con
el fin de recolectar información sobre cómo las compañías grandes, medianas y las
denominadas casas desarrolladoras de software en Sri Lanka hacen uso de CM en su
proceso de desarrollo a través del uso de prácticas e implementación de modelos
como CMMI-DEV [13]. Al final del estudio, los autores concluyen que los equipos de
desarrollo de software en Sri Lanka tienen un modelo sólido para CM; las empresas
que implementan prácticas de SCM tienden a tener una ventaja significativa con
respecto a otros países. Por otro lado, los productos que desarrollan son escalables,
menos costosos y de fácil mantenimiento en el tiempo.
En [29], los autores realizan un marco comparativo en el cual muestran las similitudes
y diferencias en la implementación de CM en tres empresas grandes con procesos
maduros y complejos (CERN, Airbus, Crossrail). CERN sigue el modelo propuesto por
CMMI-DEV [13], Airbus tiene un nivel de madurez alto en gestión de la configuración
(siendo este proceso de alta prioridad) utilizando ISO 10007 [14], y Crossrail utiliza
ISO 10007 [14] para soportar CM. Realizado el estudio, los autores concluyen que: a
pesar que las empresas tienen procesos bien definidos para CM, existen
discrepancias con respecto al manejo de definiciones.
9
Lenguaje de Modelado Unificado, del inglés Unified Modeling Language.
13
Improving change management in software development: Integrating
traceability and software configuration management [31].
En [35], los autores proponen soluciones para empresas que requieren llevar a cabo
un buen proceso de SCM en sistemas con un nivel de complejidad, incertidumbre y
volumen de información altos. En general, en los tres estudios llevados a cabo se
evidencia la adopción de modelos para soportar SCM como CMMI-DEV, IEEE 828-
2012 e ISO 10007, además, los tres estudios involucran empresas grandes con un
nivel de madurez definido y con niveles de complejidad altos en su proceso de
desarrollo.
En [33], los autores señalan que dos tercios de los proyectos software fallan por el uso
incorrecto de SCM y proponen una lista de chequeo con un conjunto de buenas
14
prácticas que pueden ser utilizadas en los proyectos de desarrollo que siguen un
enfoque ágil. A continuación, en la Tabla 8 se describe la lista de chequeo propuesta
por los autores:
No. Descripción.
1 Fijar cambios y hacer seguimiento del problema.
2 Introducir integración continua al proceso de desarrollo.
3 Imponer desarrollo distribuido eficiente.
4 Realizar buenas prácticas de mezcla (merge) e integración continua.
Tabla 8. Actividades propuestas en [33].
No. Descripción.
1 Refactorización incremental.
2 Análisis de impacto de refactorizaciones.
3 Usar modelo de trabajo copiar-unir.
4 Análisis de impacto de historias como parte de la reunión de planeación.
5 Proceso de auditoría física en lanzamiento.
6 Definir los ítems de configuración y su estructura.
7 Seguimiento al cambio de las historias.
8 Escribir comentarios apropiados al subir cambios.
9 Automatizar y optimizar el proceso de lanzamiento.
10 Usar una herramienta para el control de versiones.
11 Usar una herramienta para la construcción.
12 Mantener el repositorio limpio.
Tabla 9. Actividades propuestas en [34].
En [37] se realiza una investigación para determinar cómo impacta el tamaño de las
empresas en la utilización de procesos de SCM en entornos adaptables de desarrollo
de software. Los autores presentan una revisión de la literatura relacionada para
aclarar los conceptos que se involucran directamente en el estudio, algunos de estos
son: SCM como proceso y framework, Lean Thinking y trazabilidad de software. Como
resultado, los autores concluyen que el tamaño de la empresa no impacta
directamente en la decisión de adoptar o no procesos y práctica propias de SCM en
entornos adaptables de desarrollo de software, es decir, en todos los tamaños de
empresa deberían incluirse procesos de SCM puesto que representan aportes
significativos en cuanto a rendimiento, organización y costos.
15
2.2.4.3 Estudios relacionados que relacionan otros
procesos.
Durante la revisión sistemática se encontraron estudios relacionados que mencionan
otras áreas como trazabilidad, enfoques directamente relacionados a la industria de
código abierto y enfoque dirigido por modelos, lo cual plantea nuevas áreas de
investigación y puntos que deberían ser tomados en cuenta para la creación de un
proceso completo de SCM
En [11] se presentan algunos de los problemas a los que se enfrenta SCM en las
empresas desarrolladoras de software que utilizan plataformas o herramientas de
código abierto. Los autores definen diferentes tópicos de participación de la industria
en proyectos software de código abierto, entre los que se encuentran: (i) service
participation, (ii) development participation, (iii) owner participation, (iv) as-is usage y
(v) modified usage. Durante el estudio, los autores advierten que uno de los grandes
problemas en la industria es la integración continua y los problemas de control de
versiones asociados con los cambios y unión de distintas versiones del proyecto.
Además, en la mayoría de los proyectos software se realiza desarrollo en paralelo y
existe una posibilidad de que se genere un alto número de ramificaciones. Como
conclusión, los autores advierten la necesidad de integrar SCM al proceso de
desarrollo en la industria de código abierto mediante la definición de un proceso
definido y herramientas para el manejo de versiones.
En [38], los autores definen como un problema el uso inadecuado de SCM, y cómo en
consecuencia, este ha sido reducido a un conjunto de prácticas para solucionar
problemas específicos. Los autores presentan una propuesta para la implementación
de configuración del software integrado con el enfoque dirigido por modelos (model-
driven), el cual fue concebido para facilitar la reutilización de elementos software ya
implementados. Finalmente, concluye identificando la necesidad de continuar
investigando sobre la aplicación y definición de modelos para CM.
2.3 Aportes.
A partir de los antecedentes y análisis de la revisión sistemática de la literatura, se
puede observar que ya existen propuestas que intentan dar solución a SCM en
grandes, medianas y pequeñas empresas, los cuales se pueden observar en la Tabla
7. Sin embargo, no existen estudios realizados específicamente para MiPyMEs.
16
Teniendo en cuenta lo anterior, con el desarrollo de este trabajo se pueden identificar
los siguientes aportes:
17
Capítulo III. Armonización de
modelos para la gestión de la
configuración.
Este capítulo presenta un análisis de alto nivel de los modelos y estándares
presentados en el capítulo anterior: CMMI-DEV, IEEE 828-2012, ISO/IEC 15504 y el
paquete de implementación basado en la norma ISO/IEC 29110, el cual permite
identificar el nivel de detalle de los modelos estudiados para construir el proceso
unificado. Asimismo, se lleva a cabo un proceso de armonización donde se realizan
actividades de homogeneización, comparación e integración de los modelos
analizados. A partir de los resultados obtenidos relacionados con aspectos comunes o
diferenciadores se llevó a cabo la definición del proceso denominado Progresconfig, el
cual será descrito en detalle en el Capítulo V. Progresconfig.
10
Proceso de Armonización, del inglés Harmonization Process.
18
mejor aplicar de manera parcial uno o varios modelos para solucionar problemas
específicos. En general, los modelos identificados cuentan con un grado de
heterogeneidad que impide a las empresas desarrolladoras de software decidir cuál de
estos utilizar para soportar SCM en su proceso de desarrollo.
11
Método de homogeneización, del inglés Homogeneization Method.
19
3.1.1.1.3 Identificación de los requerimientos.
Una vez que el análisis ha comenzado, es posible identificar los aspectos más
importantes que deben ser tenidos en cuenta para la creación de un proceso unificado.
Para ello, es necesario definir los elementos que van a ser comparados para la
definición del proceso. Asimismo, se describen los parámetros necesarios para
soportar el proceso con un nivel suficiente de detalle sin ser considerado demasiado
complejo o pesado.
CSPE se compone por cuatro (4) secciones: (i) descripción, (ii) roles y recursos, (iii),
control e (iv) información adicional. Además, cada sección incluye un conjunto de
elementos que componen cada sección, y finalmente incluye cada uno de los modelos
que se van a comparar. A continuación, en la Tabla 11 se muestra la plantilla utilizada
para la comparación de elementos de proceso.
20
A continuación, en la Tabla 12, se muestra la comparación de alto nivel de abstracción
entre CMMI-DEV v1.3, IEEE 828-2012, ISO/IEC 15504 y el paquete de
implementación de SCM basado en la norma ISO/IEC 29110. Como resultado de la
comparación, es posible conocer aquellos elementos de proceso que son definidos en
cada uno de los modelos.
IEEE 828-2012
ISO/IEC 15504
ISO/IEC 29110
CMMI-DEV 1.3
No. Sección. Elementos.
21
administrador del proyecto, analista, cliente, diseñador, equipo de trabajo y
líder técnico.
Herramientas: El paquete de implementación de SCM basado en la norma
ISO/IEC 29110 propone el uso de herramientas para control de versiones y
repositorios de trabajo para el control de los ítems de configuración.
Ítems de configuración: En general, todos los modelos estudiados utilizan el
concepto de producto de trabajo o ítem de configuración (IC), los cuales se
refieren a artefactos que necesitan ser identificados durante el proceso de
desarrollo. Además, los ítems de configuración propuestos en cada uno de los
modelos están directamente relacionados a los artefactos utilizados para el
desarrollo de software en cada una de sus etapas: análisis, diseño,
implementación, pruebas, entre otros.
Áreas de proceso relacionadas: CMMI-DEV y la IEEE 828 2012 mencionan
que su proceso de gestión de la configuración de software puede ser
complementado a través de la aplicación de otras áreas de proceso como el
control de la trazabilidad y la gestión documental.
Elementos ágiles: CMMI-DEV menciona que en el futuro deberían ser
tomados en cuenta artefactos y elementos que son agregados de enfoques
ágiles. Sin embargo, CMMI-DEV no realiza una descripción en profundidad que
permita identificar su proceso como ágil. Además, el proceso definido en
CMMI-DEV menciona productos de trabajo como historias de usuario y roles
como el dueño del producto, pero solo se hace a manera informativa.
22
11.2.4 Registrar e informar las no conformidades.
11.2.5 Verificar la resolución de discrepancias.
Control de interfaces. 12.2.1 Identificar la clave del producto de las interfaces.
12.2.2 Controlar las especificaciones de las interfaces.
Configuración de 13.2.1 Incluir el manejo y la adquisición de ítems de configuración en el plan para la
prov eedores. gestión de la configuración.
13.2.2 Colocar los ítems adquiridos bajo gestión de la configuración.
Gestión del lanzamiento. 14.2.1 Delinear los requisitos generales.
14.2.2 Definir la política de liberación.
14.2.3 Definir la planeación de las liberaciones,
14.2.4 Definir el contenido de la versión a liberar.
14.2.5 Definir el formato de lanzamiento y distribución.
14.2.6 Definir el seguimiento de las liberaciones.
14.2.7 Entregar los lanzamientos aprobados.
14.2.8 Archivar.
Tabla 14. Actividades asociadas a IEEE 828-2012.
Activ idad.
Acrónimo. Descripción.
SUP.8. BP1 Desarrollar una estrategia de gestión de la configuración.
SUP.8. BP2 Identificar los elementos de la configuración.
SUP.8. BP3 Establecer un sistema para la gestión de la configuración.
SUP.8. BP4 Establecer una estrategia para la gestión de las ramificaciones.
SUP.8. BP5 Establecer las líneas de base.
SUP.8. BP6 Mantener la descripción de los elementos de configuración.
SUP.8. BP7 Controlar modificaciones y lanzamientos.
SUP.8. BP8 Mantener el historial de los ítems de la configuración.
SUP.8. BP9 Informar el estado de la configuración.
SUP.8. BP10 Verificar la información de los elementos configurados.
SUP.8. BP11 Administrar las copias de seguridad, almacenamiento, archivos, manipulación y
distribución de los elementos de la configuración.
Tabla 15. Actividades asociadas a ISO/IEC 15504.
Activ idad.
Acrónimo. Descripción.
CM.1 Identificación de los ítems de configuración.
CM.2 Inicializar el sistema de gestión de la configuración.
CM.3 Registrar las solicitudes de cambios o requerimientos.
CM.4 Añadir ítems de configuración a la línea de base.
CM.5 Añadir registros de rastreo al sistema de gestión de la configuración.
CM.6 Hacer respaldo del repositorio del proyecto.
CM.7 Restaurar respaldo del repositorio del proyecto.
CM.8 Liberar la configuración del software.
Tabla 16. Actividades asociadas a ISO/IEC 29110.
Salida.
No. Descripción.
1 Una estrategia para la gestión de la configuración es desarrollada.
2 Las modificaciones y lanzamientos de los ítems de configuración son controlados.
3 Las modificaciones y lanzamientos son puestos a disposición de las partes afectadas.
4 El estado de los ítems de configuración y las solicitudes de cambios son guardados y reportados.
5 Se asegura la integridad y la consistencia de los ítems de configuración.
6 El almacenamiento, manejo y distribución de los ítems de configuración es controlado
7 Todos los ítems generados por un proceso o proyecto son identificados, definidos y establecidos en una línea
base De acuerdo con la estrategia definida para la gestión de la configuración.
Tabla 17. Salidas asociadas a ISO/IEC 15504.
Componente. Salida.
Planeación de CM. El alcance de los trabajos para el proyecto de CM se define.
La viabilidad de alcanzar los objetivos del proyecto de CM con los recurso s y
restricciones disponibles se evalúa.
Se identifican las tareas que deben realizarse para llevar a cabo el trabajo.
Se identifican los recursos necesarios para realizar el trabajo.
23
Las tareas por realizar y los recursos necesarios para realizar el trabajo se
clasifican y calculan.
Se identifican las interfaces entre elementos del proyecto CM y otros proyectos
externos.
Se desarrollan planes para la ejecución del proyecto de CM.
Los planes para la ejecución de CM se activan.
Gestión de CM. Se obtienen los recursos para realizar el proyecto de CM.
El progreso del proyecto de CM es monitoreado y reportado.
Las interfaces entre elementos del proyecto CM y con otros proyectos es
monitoreado.
Las acciones para corregir las desviaciones del plan y evitar la repetición de los
problemas identificados en el proyecto CM se toma cuando los objetivos del
proyecto no se alcanzan.
Los objetivos del proyecto CM se alcanzan y se registran.
Identificación de la La configuración del producto es definida.
configuración. Los ítems de configuración requeridos son identificados.
Las líneas base internas y externas son establecidas.
Configuración de Las peticiones de cambios en los ítems de configuración son clasificados y
control de cambios. registrados.
Las solicitudes de cambio de los ítems de configuración se evalúan utilizando
criterios definidos.
Los cambios aprobados en los ítems de configuración se implementan.
Los cambios de los ítems de configuración se verifican.
Los cambios sin éxito de los ítems de configuración se revierten o se remedian.
Reporte de estado de la Las necesidades de información del CM se identifican.
configuración. Los informes de CM se preparan De acuerdo con los criterios defi nidos.
Los informes de CM se ponen a disposición de las partes afectadas.
24
IEEE 828- 1. Especificaciones.
2012 2. Especificaciones de interfaz.
3. Diseños.
4. Código fuente.
5. Compilaciones.
6. Datos de compilación.
7. Elementos relacionados con la base de datos, tales como: disparadores, esquemas,
secuencias de comandos de SQL, etc.
8. Pruebas unitarias y pruebas de cobertura, y los estándares que se utilizaron para crear
dichos elementos.
9. Bosquejos de diseño.
10. Modelos de referencia.
11. Modelos o prototipos basados en la línea de base.
12. Manuales de mantenimiento operación.
ISO/IEC 1. Plan para la gestión de la configuración.
15504 2. Documentos de requerimientos, diseño y arquitecturas.
3. Entornos de desarrollo de software.
4. Plan de desarrollo de software.
5. Acuerdos con proveedores.
6. Planes para el aseguramiento de la calidad.
7. Código fuente y documentación de las unidades de software.
8. Código fuente, revisión y documentación de pruebas unitarias.
9. Manuales de usuario.
ISO/IEC 1. Plan del proyecto.
29110 2. Especificación de requerimientos.
3. Listas de verificación.
4. Solicitud de cambio.
5. Especificación de requerimientos.
6. Manual de usuario.
7. Diseño de software.
8. Registro de rastreo.
9. Repositorio del proyecto.
10. Casos y procedimientos de prueba.
11. Configuración de software.
12. Componentes de software.
13. Documentación del proyecto.
14. Código fuente y binarios.
15. Herramientas de trabajo (IDE, librerías, plugins, etc.)
16. Grabaciones de audio/video, actas de reuniones, etc.
12
Método de Mapeo, del inglés Mapping Method.
25
continuación, en la Tabla 20 se muestra la plantilla utilizada para llevar a cabo la
comparación entre los diferentes modelos.
Pregunta del mapeo: ¿Qué actividades definidas por el Modelo A soportan actividades específicas del modelo B?
Objetiv o del mapeo: Determinar qué actividades del Modelo A tienen una relación cercana a algunas actividades
específicas propuestas por el Modelo B.
Modelo B
Modelo A Proceso A
Actividad 1 Actividad 2 Actividad 3 Actividad m
Actividad 1
Actividad 2
Actividad 3
Actividad n
Tabla 20. Tabla de comparación entre modelos. Tomado de [41].
Para realizar el proceso de comparación se utilizó una plantilla que permita realizar un
cruce que involucre las actividades definidas en cada uno de los modelos y propuestas
relacionadas. En la Tabla 21 se muestra la plantilla definida para realizar la
comparación de modelos que se utiliza en este proyecto de investigación.
Actividad m
Pregunta del mapeo: ¿Qué actividades definidas por el Modelo A soportan actividade s
Actividad 1
Actividad 2
Actividad 3
específicas del modelo B?
Objetiv o del mapeo: Determinar qué actividades del Modelo A tienen una relación cercana a
algunas actividades específicas propuestas por el Modelo B.
Activ idad 1
Modelo B
Activ idad 2
Activ idad 3
Activ idad n
Tabla 21. Plantilla de comparación entre modelos. Tomado de [44].
Además de realizar una comparación con cada uno de los modelos, se realizó una
comparación entre las actividades definidas por la norma ISO/IEC 15504 y las
actividades propuestas en los estudios “A Managed Approach of Interaction Between
Agile Scrum and Software Configuration Management System” [33] y “Software
configuration management practices for eXtreme programming teams” [34], los cuales
son estudios relacionados que fueron descritos en el estado del arte y proponen un
conjunto de prácticas que según los autores deberían ser tenidos en cuenta para
soportar SCM.
A continuación, Tabla 22, Tabla 23, Tabla 24, Tabla 25 y Tabla 26 se presentan las
comparaciones entre: (i) la norma ISO/IEC 15504 y CMMI-DEV, (ii) ISO/IEC 15504 y la
IEEE 828-2012, (iii) ISO/IEC/15504 y el paquete de implementación de SCM basado
26
en la norma ISO/IEC 29110, (iv) ISO/IEC 15504 y el estudio “A Managed Approach of
Interaction Between Agile Scrum and Software.
elementos de la configuración.
actividades específicas propuestas por
CMMI-DEV.
ramificaciones.
configuración.
configuración.
configuración.
configuración.
configurados
SP 1.1. Identificar los ítems de la X
configuración.
SP 1.2. Establecer un sistema para X
la gestión de la configuración.
SP 1.3. Crear o lanzar las líneas X
CMMI-DEV
base.
SP 2.1. Seguir los requisitos de X X
cambio.
SP 2.2. Control de los ítems de la
configuración
SP 3.1. Establecer registros de X X
gestión de la configuración.
SP 3.2. Realizar auditorías de X
configuración funcional.
Tabla 22. Comparación de actividades entre la norma ISO/IEC 15504 y CMMI-DEV.
27
3.1.2.2.2 ISO/IEC 15504 vs IEEE 828-2012.
Dirección del mapeo: De la norma
ISO/EC 15504 hacia el modelo IEEE 828- ISO/IEC 15504
2012.
elementos de la configuración.
IEEE 828-2012.
ramificaciones.
configuración.
configuración.
configuración.
configuración.
configurados
6.2.1. Desarrollar un plan de CM. X
7.2.1. Gestionar la implementación X
de del plan de CM (CMP).
7.2.2. Monitorear las actividades de
CM.
8.2.1. Establecer la estructura y X
jerarquía de los ítems de
configuración.
8.2.2. Describir los ítems de la X
configuración.
8.2.3. Nombrar los ítems de la X
configuración.
8.2.4. Asegurar que los ítems de la X
configuración se guardan en el
repositorio.
8.2.5. Asegurar que los ítems de la X
configuración se guardan en el
repositorio.
IEEE 828-2012
28
10.2.5. Informar las discrepancias X
de las auditorías.
11.2.1. Realizar auditorías de X
configuración funcional.
11.2.2. Realizar auditorías de X
configuración física.
11.2.3. Realizar la auditoría de X
configuración de línea base.
11.2.4. Registre e informe las no
conformidades.
11.2.5. Verificar la resolución de
discrepancias.
12.2.1 Identificar la clave del
producto de las interfaces.
12.2.2 Controlar las
especificaciones de las interfaces.
13.2.1 Incluir el manejo y la
adquisición de ítems en el plan para
la gestión de la configuración.
13.2.2 Colocar los ítems adquiridos
bajo CM.
14.2.1. Delinear los requisitos X
generales.
14.2.2 Definir la política de
liberación.
14.2.3 Definir la planificación de la X
liberación.
14.2.4 Definir el contenido de la X
versión.
14.2.5. Definir el formato de X
lanzamiento y la distribución.
14.2.6 Definir el seguimiento de la X
liberación.
14.2.7. Entregar los lanzamientos
aprobados.
14.2.8. Archivar.
Tabla 23. Comparación de actividades entre la norma ISO/IEC 15504 y la IEEE 828-
2012.
29
3.1.2.2.3 ISO/IEC 15504 vs el paquete de
implementación de SCM basado en la norma ISO/IEC
29110.
Dirección del mapeo: De la norma
ISO/EC 15504 hacia el paquete de ISO/IEC 15504
implementación de SCM propuesto en
los
los
la
SUP.8.BP1: Desarrollar una estrategia de gestió n de
y
[28]
de
de
manipulación
modificacio nes
Elementos de proceso mapeados:
Actividades
elementos
información
descripción
SUP.8.BP4: Estable cer una estrategia
Pregunta del mapeo: ¿Qué actividades
definidas por la norma ISO/EC 15504
soportan actividades específicas del
paquete de implementación de SCM?
los
archivos,
gestión de las ramificaciones.
la
elementos de configuración.
SUP.8.BP6: Mantener la
Controlar
Objetiv o del mapeo: Determinar qué
elementos configurados
actividades de la norma ISO/EC 15504
tienen una relación cercana a algunas
actividades específicas propuestas en el
almacenamiento,
la configuración.
la configuración.
paquete de implementación de SCM.
configuración.
configuración.
lanzamientos.
SUP.8.BP7:
CM.1: Identificación de los ítems X
de configuración.
Paquete de implementación de SCM
basado en la norma ISO/IEC 29110
30
3.1.2.2.4 ISO/IEC 15504 vs propuestas que involucran
elementos ágiles.
Dirección del mapeo: De la norma ISO/EC
15504 hacia el estudio relacionado A ISO/IEC 15504
Managed Approach of Interaction Between
P: Propuesta.
[33]: Referencia al estudio
relacionado.
X: Número del ítem.
P.[33].1: Fijar cambios y hacer X
propuestas en [33]
31
Dirección del mapeo: De la norma ISO/EC
15504 hacia el estudio relacionado Software ISO/IEC 15504
configuration management practices for
P: Propuesta.
[34]: Referencia al estudio
relacionado.
X: Número del ítem.
P.[34].1: Refactorización X
incremental.
P.[34].2: Análisis de impacto de X
refactorizaciones.
P.[34].3: Usar modelo de trabajo
copiar-unir.
Actividades propuestas en [34]
32
3.1.2.3 Análisis de correspondencia entre modelos.
Posterior a realizar la comparación entre la norma ISO/IEC 15504 con cada uno de los
modelos definidos y con las propuestas analizadas en el capítulo anterior, se realizó
un análisis de correspondencia que permitió observar cómo cada actividad definida en
la norma ISO/IEC 15504 es soportada por actividades propuestas en el resto de
modelos. A continuación, en la Tabla 27 se muestra la correspondencia entre cada
uno de los modelos:
33
SUP.8. B11: SP 3.2. 10.2.2. P.[34].5.
Administrar las copias 11.2.1. P.[34].9.
de seguridad, 11.2.2.
almacenamiento, 11.2.3.
archivos, manipulación
y distribución de los
elementos de la
configuración.
Tabla 27. Correspondencia entre actividades definidas en la norma ISO/IEC
15504 contra todos los modelos.
34
SUP.8.BP9: Informar el estado de la 0% 45.45% 0% 0% 0%
configuración.
SUP.8. B10: Verificar la información de los 0% 18.18% 0% 0% 0%
elementos configurados.
SUP.8. B11: Administrar las copias de seguridad, 9.09% 36.36% 0% 0% 18.18%
almacenamiento, archivos, manipulación y
distribución de los elementos de la configuración.
Tabla 29. Relación cuantitativa entre modelos.
Para llevar a cabo una integración, fue necesario aplicar el método denominado
IMethod13, el cual tiene como objetivo obtener de manera sistemática los elementos de
proceso integrados en múltiples modelos. IMethod menciona cinco (5) actividades que
se deben llevar a cabo para realizar el método, las cuales son: (i) diseñar la
integración, (ii) definir/establecer un criterio de integración, (iii) llevar a cabo la
integración, (iv) analizar los resultados de la integración y (v) presentar el modelo
integrado.
13
Método de integración, del inglés Integration Method.
35
3.1.3.1 Diseñar la integración.
La integración es propuesta tomando como base las actividades definidas en el
modelo base y las actividades relacionadas que fueron cruzadas a partir de la
comparación con el resto de modelos y trabajos relacionados.
Término. Descripción.
Integración, Cuando los elementos en una práctica b no pertenecen a una práctica a.
Complemento y
Unión.
Rechazado. Cuando la descripción de una práctica a de un modelo A no es considerada para su
integración en una práctica b de un modelo B.
No está contenido. Cuando no existe relación entre las descripciones de las prácticas d e los dos modelos
Complej idad. Hace referencia a la información descrita en una práctica, es decir, cuáles pueden ser
descompuestas en varias: actividades, tareas, roles, etc. La cantidad de elementos y sus
relaciones determinan el nivel de granularidad d e una práctica/modelo.
Tabla 31. Plantilla de términos de integración. Tomado de [41].
36
ID Activ idad unificada Modelo Activ idad o
propuesta
Identificador Descripción de la actividad unificada entre los Modelos A, Modelo Actividad 1
único. B, X etc. A. Actividad 2
Actividad n
Modelo Actividad 1
B. Actividad 2
Actividad n
Modelo Actividad 1
X. Actividad 2
Actividad n
Tabla 33. Plantilla de unificación de prácticas entre modelos. Adaptado de [41].
37
14.2.6.
14.2.8
Paquete de implementación de SCM basado en la CM.3.
norma ISO/IEC 29110. CM.4.
CM.5.
CM.8.
Propuesta [33] P.[34].1.
P.[34].9.
Propuesta [34] P.[34].7.
GCSA.A7 Descripción: CMMI-DEV. SP 3.2.
Proceso de monitoreo. IEEE 828 - 2012. 10.2.2.
11.2.1.
11.2.2.
11.2.3.
Paquete de implementación de SCM basado en la N/A
norma ISO/IEC 29110.
Propuesta [33] N/A
Propuesta [34] P.[34].5.
Tabla 34. Actividades integradas.
Las actividades propuestas que se obtuvieron como resultado de aplicar los métodos
de homogeneización, comparación e integración serán descritas con mayor detalle en
el Capítulo V. Progresconfig.
38
3.2 Sesgos de la armonización de los modelos
analizados.
Debido a la naturaleza del estudio realizado para la definición del proceso existe un
grado de subjetividad que debe ser considerado para el análisis de los resultados
obtenidos. Por lo cual, para llevar a cabo este trabajo de investigación se ha
disminuido el grado de subjetividad mediante la aplicación de técnicas de análisis
cuantitativas para cada una de las etapas de armonización. Asimismo, las fases de
armonización y posterior definición del proceso han sometidas a validación de dos
expertos en el área de mejora de procesos y armonización de múltiples modelos, los
cuales hacen parte de este trabajo de investigación como asesores externos y han
realizado la validación de las actividades y la toma de decisiones en la definición del
proceso.
39
Capítulo IV. SCMOnto:
Ontología para soportar la
gestión de la configuración de
software.
En este capítulo se presenta SCMOnto: una ontología para soportar la gestión de la
configuración de software. Esta ontología nace como solución al problema que
representa la heterogeneidad y ambigüedad detectada en los términos relacionados a
la gestión de la configuración de software en los modelos armonizados en el capítulo
anterior.
Posterior al análisis del marco teórico, estado del arte y después de aplicar el proceso
de armonización de modelos y propuestas relacionadas que utilizan SCM, se
evidenció que existe heterogeneidad y ambigüedad en las definiciones existentes, por
lo cual, fue necesario llevar a cabo la definición de una ontología que permita aclarar
todos los conceptos que no son claros y que sirva como base para la creación de un
proceso unificado, el cual es caracterizado en el siguiente capítulo.
40
4.2 Diseño y propuesta de la ontología.
A continuación, se presenta SCMOnto, una ontología que unifica los conceptos
relacionados a la gestión de la configuración de software desde la perspectiva de la
gestión de proyectos software.
1. Planeación.
2. Especificación de los requerimientos de la ontología.
3. Conceptualización (equivalente al diseño de la ontología)
4. Implementación (representación y almacenamiento de la conceptualización
previa utilizando una herramienta computacional).
41
4.2.2 Presentación de la propuesta.
Con el fin de llevar a cabo un proceso organizado de definición de SCMOnto, fue
necesario hacer una especificación de requerimientos que representa los elementos
necesarios para identificar aspectos relevantes de la ontología a desarrollar. A
continuación, en la Tabla 36 se presenta la especificación de requerimientos de
SCMOnto.
Concepto Valor
Dominio Gestión de la configuración de software.
Autores Juan Sebastián Vásquez Cantero, Carlos Eduardo Orozco Garcés, César Je sús Pardo
Calvache, Francisco José Pino Correa.
Propósito Unificar y clarificar los términos relacionados a la gestión de la configuración de
software, sus relaciones y posibles contextos de utilización impulsando así la
divulgación del conocimiento.
Niv el de formalidad Semi-formal (MOF: Modelo y representación mediante tablas propuestas en
REFSENO).
Alcance Se ha desarrollado la ontología SCMOnto (del inglés, Software Configuration
Management Ontology)
Fuentes de conocimiento Ver Tabla 37.
Tabla 36. Especificación de requerimientos de SCMOnto.
42
del proyecto y en calidad de área de proceso; estas sub-ontologías han sido
presentadas en los estudios relacionados: A reference ontology for harmonizing
Process reference models (PrMO) [56] y en Evolving a Software Configuration
Management Ontology (EvSCMO) [54]. Como resultado, SCMOnto ha sido diseñada a
partir de 3 componentes básicos:
14
SPI del inglés, Softw are Process Improvement
43
La Tabla 41 presenta las relaciones identificadas entre los términos utilizados en la
definición de SCMOnto. La estructura de esta tabla está conformada por 3 columnas:
nombre, que indica el nombre que se le ha dado a la relación; conceptos, que presenta
los conceptos que se han relacionado; y descripción, una breve descripción de la
relación presentada.
44
colecciones de estos mismos.
Evaluación
Utilizada para revisar o verificar actividades y productos de
objetiva Adaptado
Concepto trabajo con respecto a un criterio predefinido para minimizar la
(Obj ectiv ely de [13]
subjetividad y la parcialidad del revisor.
ev aluate)
Gestión de entrega Gestión de todas las acti vidades alrededor de la entrega de una
de software o más versiones de software a uno o más clientes, incluyendo Tomado de
Concepto
(Softw are release identificación, empaquetado, y entrega de los elementos del [12]
management) producto.
Gestión de la Disciplina que aplica dirección y vigilancia técnica y
configuración administrativa para: (i) Identificar y documentar las
(Configuration características físicas y funcionales de un ítem de configuración, Tomado de
Management) Concepto (ii) controlar los cambios en sus características, (iii) registrar y
[12], [13]
reportar el procesamiento de cambios y el estado de
implementación, y (iv) verificar el cumplimiento de los
requerimientos especificados.
Identificación de la Elemento de gestión de la configuración que consiste en la
configuración selección de los ítems de configuración para un producto,
Tomado de
(Configuration Concepto asignando identificadores únicos a ellos, y registrando sus
[13]
identification) características físicas y funcionales en documentación técnica.
Ítem de
Conjunto de productos de trabajo designados para gestión de la
configuración Tomado de
Concepto configuración y tratados como una sola entidad en el proceso de
(Configuration [12], [13]
gestión de la configuración.
Item)
Ítem de
Elemento individual que controlar dentro de la gestión de la
configuración
configuración que hace parte de un ítem de configuración más
constituyente Tomado de
Concepto grande, tal como un modelo de referencia, prototipo hardware o
(Constituent [12]
una versión de software.
configuration
ítem)
Lanzamiento Versión entregada de una aplicación que pudiera incluir toda o
(Release) parte de la funcionalidad objetivo, y que además se encuentra Adaptado
Concepto
disponible para una porción más amplia de público. de [2]
45
Technical) petición de cambio aprobada.
Tabla 38. Conceptos utilizados en SCMOnto.
Términos extraídos de: A reference ontology for harmonizing process reference models [43]
Término Súper Definición Fuente
concepto
Categoría de
proceso Tomado
Concepto Una categoría de proceso comprende procesos interrelacionados.
(Process de [43]
category)
Modelo de
Conjunto de conceptos medibles y las relaciones entre ellos que
calidad Tomado
Concepto proporcionan la base para especificar requisitos de calidad y evaluar la
(Quality de [43]
calidad de las entidades de una clase de entidad dada.
model)
Proceso Conjunto coherente de políticas, estructuras organ izativas, tecnologías,
(Process) procedimientos, propósitos, objetivos y productos de trabajo que son Tomado
Concepto
necesarios para diseñar, desarrollar, implementar y mantener un producto de [43]
de software.
Tabla 40. Términos extraídos de [43].
46
CM.
La comisión de control de la configuración
Comisión de control de evalúa de cero a muchas peticiones de cambio
Ev alúa la configuración – para aprobarlas o no. Una petición de cambio es
Petición de cambio evaluada por una comisión de control de la
configuración.
Un plan de lanzamiento genera lanzamientos.
Plan de lanzamiento –
Genera Un lanzamiento es generado por un plan de
lanzamiento lanzamiento.
Un proceso genera de uno a muchos productos.
Genera Proceso – Producto Un producto es generado por un y solo un
proceso.
La gestión de entrega de software es quien
Gestión de entrega de gestiona a uno o más productos. Los productos
Gestiona software – Producto son gestionados por la gestión de entrega de
software.
Identificación de la
La identificación de la configuración identifica a
Identifica configuración – Ítem de
los ítems de configuración.
configuración
CM incluye una o más a auditorías dentro del
Incluye CM – Auditoría proceso. Una o más auditorías son incluidas
dentro de un proceso de CM
Un técnico de configuración lleva a cabo una o
Técnico de
muchas peticiones de cambio. Una petición de
Llev a a cabo configuración – Petición
cambio es llevada a cabo por un técnico de
de cambio
configuración.
Un plan de lanzamiento planea la gestión de
Plan de lanzamiento –
entrega de software. La gestión de entrega de
Planea Gestión de entrega de
software es planeada por uno o más planes de
software
lanzamiento.
Una línea base puede ser un proceso. Un
Puede ser Línea base – Proceso proceso puede ser tomado como una línea
base.
Una petición de cambio puede ser realizada
Petición de cambio – sobre uno o más ítems de configuración. Un
Se realiza sobre Ítem de configuración ítem de configuración puede recibir cero o más
peticiones de cambio.
Una persona es quien solicita una petición de
Persona – Petición de
Solicita cambio. Una petición de cambio es solicitada por
cambio
una y solo una persona.
Producto – Un producto soluciona uno o más requerimientos
Soluciona requerimiento de del cliente. Un requerimiento del cliente puede
cliente ser solucionado por uno o más productos.
Tabla 41. Relaciones utilizadas en SCMOnto.
47
Versión
1..1 Auditoría de configuración
0..* Almacena funcional
0..*
Repositorio
0..*
Auditoría de configuración física
Convenciones
Construccion (Build) 1..1
Base de datos de gestión
48
de la configuración 1..1 SCMonto
Convenciones
0..*
Almacenado en EvSCMO PrMO
1..* Auditoría de configuración
Lanzamiento (release) 1..1
1..1
1..1 Almacenada en
0..* 1..*
Contabilidad de estado Es almacenada en
de configuración
Auditoría Evaluación
1..1 Objetiva
15
Lenguaje de ontologías w eb, del nombre en inglés Web Ontology Language
49
La Figura 2 muestra un segmento de la instancia de SCMOnto creada utilizando
Protégé. Las entidades instanciadas han sido creadas tomando como base al proceso
presentado en el siguiente capítulo. En la Figura 2 también es posible observar cómo
algunos de los conceptos representados tienen influencia directa o indirecta en otros
conceptos mediante la correcta representación de las relaciones anteriorme nte
definidas y descritas en la Tabla 41, lo que permite apreciar que la ontología definida
provee un correcto soporte a la representación de los conceptos utilizados en este
dominio, más concretamente en el universo del discurso relacionado a la gestión de la
configuración de software. Las líneas punteadas representan las relaciones entre
conceptos, asimismo, las líneas continuas representan herencia entre conceptos, por
ejemplo: el concepto de línea base es una especialización del concepto ítem de
configuración.
50
4.4 Ejemplo de aplicación de la ontología.
A continuación, se presenta un ejemplo teórico de aplicación de algunos de los
conceptos incluidos en SCMOnto. Dichos conceptos se podrán apreciar en letra
cursiva:
51
Capítulo V. Progresconfig.
En este capítulo se presenta el proceso ágil para la gestión de la configuración de
software que puede ser implementado por MiPyMEs_DS como solución a la propuesta
planteada al inicio de este trabajo de investigación. Asimismo, y tomando como base
las actividades obtenidas durante la integración de los modelos que fueron objeto de
estudio en el Capítulo III. Armonización de modelos para la gestión de la configuración
se describe un proceso formal a través de un conjunto de definiciones, actividades,
tareas, artefactos de entrada y salida relacionados a cada actividad, y diagramas de
flujo relacionados a cada actividad tomando como base el patrón de procesos
propuesto por COMPETISOFT [42]. Además, este capítulo presenta la propuesta de
un conjunto de niveles de capacidad aplicables al proceso que servirán como guía
para que las empresas puedan adoptar el proceso de manera más sencilla.
Activ idades
52
Identificador de la activ idad 1. Nombre de la activ ida d 1
Niv el de capacidad Indica la clasificación de la actividad con respecto al nivel de
capacidad propuesto: (i) esencial, (ii) complementario, (iii) realizado.
Entradas:
Descripción de las entradas definidas para la actividad.
Responsables: Acrónimo que representa el Tareas: Descripción de cada una de las tareas asociadas a una
responsable asociado a una tarea. actividad.
Roles inv olucrados Descripción de la tarea 1
Roles inv olucrados Descripción de la tarea 2
Salidas
Descripción de las salidas defi nidas para la actividad
Diagrama de fluj o:
Diagrama que representa el flujo que sigue la actividad para ser realizada.
Tabla 42. Plantilla para la definición del proceso. Adaptado de [42].
De manera adicional, se definen los acrónimos utilizados para la creación del proceso,
los cuales sirven como apoyo para facilitar la descripción de cada uno de los
elementos de proceso involucrados en la caracterización. En la Tabla 44 se muestran
los acrónimos utilizados y su significado.
Acrónimo Significado
GCSA Gestión de la Configuración de Software Ágil:
Ax Actividad.
Tx Tarea
STx Sub tarea
Ex Entrada
Sx Salida
Tabla 44. Acrónimos.
53
5.1.4 Definición de roles.
Para la definición del proceso fue necesario proponer un rol que sea responsable de
conocer el proceso y asegure que el proceso se está llevando a cabo de manera
correcta siguiendo los lineamientos propuestos, por lo cual, se propuso el rol
denominado “Experto en configuración”, el cual sería el equivalente al Líder técnico
propuesto en el paquete de implementación de SCM basado en la norma ISO/IEC
29110, al Scrum Master propuesto en SCRUM, y al Coach propuesto en XP.
54
Acrónimo. Rol.
AP Administrador del proyecto.
ED Equipo de desarrollo.
DP Dueño del producto.
EC Experto en configuración.
TC Técnico de configuración
CCC Comisión de control de la configuración
Tabla 46. Roles propuestos que participan de manera directa en el proceso.
Acrónimo Rol.
IN Interesado.
CL Cliente.
Tabla 47. Roles propuestos que participan de manera indirecta en el proceso.
En total, se definieron cinco (5) roles que son comunes a cualquier proceso
involucrado al ciclo de vida del software en una empresa desarrolladora de software,
tres (3) roles que se relacionan directamente a actividades relacionadas con gestión
de la configuración y que son considerados de vital importancia para llevar a cabo el
proceso de manera correcta, y finalmente dos (2) roles que no participan de manera
directa en el proceso.
55
CCC El equipo de desarrollo es conformado por todos los recursos
disponibles.
El experto en configuración también puede cumplir con las tareas
asignadas al administrador del proyecto.
La comisión de control de la configuración estaría conformada por
un miembro del equipo de desarrollo y el experto en configuración.
El técnico de configuración puede ser cualquiera de los miembros
del equipo de desarrollo.
Uno de los miembros del equipo de desarrollo debe cumplir con las
funciones soportadas por el dueño del producto, con el fin de
identificar y validar las solicitudes de cambio de los interesados y el
cliente.
Los niveles de capacidad han sido propuestos como guía para permitir a las empresas
identificar el nivel de implementación de Progresconfig. Debido a las diferentes
características que tienen las MiPyMEs_DS, es posible que el proceso deba ser
56
adoptado de manera incremental, por lo cual, Progresconfig ofrece la oportunidad de
adoptar un conjunto de actividades para que la adopción del proceso sea llevada a
cabo de una manera natural.
Como resultado de realizar una revisión detallada de la literatura y el estado del arte,
aplicar el proceso de armonización de múltiples modelos, la definición de una
ontología para soportar la gestión de la configuración de software, la caracterización
de roles por tipo de empresa y la definición de tres (3) niveles de capacidad se obtuvo
como resultado la caracterización del proceso. A continuación, en la Figura 5 se
presenta una abstracción a alto nivel de la propuesta.
57
Figura 5. Visión general de la propuesta.
58
5.1.7 Caracterización del proceso para la gestión de la
configuración de software.
Identificador GCSA
Proceso. Gestión de la configuración de software.
Categoría. Operación (OPE)
Propósito. Establecer y mantener la integridad de todos los ítems de configuración
identificados de un proyecto y ponerlos a disposición de las partes
interesadas a través de su identificación, control, seguimiento y aud itoria.
Obj etiv os. O1: Identificar todos los ítems de configuración que hacen parte del
proyecto.
O2: Establecer los criterios de integridad de los ítems de configuración a
través de la definición de una (o varias) línea base durante el ciclo de vida
de un proyecto de software.
O3: Llevar a cabo el control sistemático de los cambios llevados a cabo en
los ítems de configuración que pertenecen a una línea base a través de
solicitudes de cambio.
O4: Mantener la trazabilidad de los ítems de configuración relacionados a
una línea base a través de su actualización y registro.
O5: Llevar a cabo procedimientos de monitoreo para asegurar la
integridad de los ítems de configuración con el paso del tiempo.
Responsabilidad y autoridad. Líder de calidad del proyecto.
Procesos relacionados. 1. Seguimiento y control de proyectos.
2. Planeación de proyectos.
Descripción de los roles identificados durante la fase de análisis y homogeneización de modelos, ver Tabla 46.
Abrev iatura Rol Competencias
59
DP Dueño del producto. Es el recurso responsable de transmitir al equipo de
desarrollo la visión y el conocimiento sobre el producto que
se desea implementar desde el punto de vista del negocio.
Activ idades.
Descripción:
1. Inicio del flujo.
2. Definir la plantilla que se va a utilizar para la construcción de un plan formal
para llevar a cabo la gestión de la configuración de software.
3. Identificar los aspectos en el proyecto sensibles a gestión de la configuración.
4. Identificar las actividades que se van a llevar a cabo durante el proceso de
gestión de la configuración del proyecto.
5. Definir un repositorio para almacenar el PGCS.
6. Actualizar el repositorio con el PGCS.
7. Hacer el PGCS disponible a las partes interesadas.
8. Fin del flujo.
Nota 1: El experto en configuración en conjunto con el administrador del proyecto deben
identificar y considerar los aspectos relevantes que deben ser incluidos en el PG CS. Se
deben tener en cuenta aspectos como: propósito, alcance del proyecto, responsables,
actividades, asignación de recursos, e stimación de costos, dependencias con actividades
relacionadas a otros procesos en el proyecto, etc.
AP, EC T2: Identificar los responsables asociados a cada actividad definida en el PGCS.
Descripción:
1. Inicio del flujo.
2. Identificación de todas las actividades contenidas en el plan.
3. Identificación de las competencias de cada recurso.
4. Definir los recursos responsables de cada actividad durante el proceso de
desarrollo.
5. Asignar los recursos responsables de cada actividad.
6. Fin del flujo.
16
Plan de Gestión de la Configuración de Softw are, del inglés Softw are Configuration Management Plan
60
61
62
GCSA.A2. Identificación de la configuración.
Descripción:
1. Inicio del flujo.
2. Definir los repositorios para almacenar IC de análisis y diseño.
3. Definir los repositorios para almacenar los IC de desarrollo e implementación.
4. Definir los repositorios para almacenar los IC externos al proyecto.
5. Fin del flujo.
Nota 1: Para IC de análisis y diseño, es recomendable definir repositorios agrupados por
su s características, por ejemplo: crear un repositorio para el control de los casos de uso y
sus diferentes versiones con el paso del tiempo.
Descripción:
1. Inicio del flujo.
2. Definir un esquema de nombrado para el IC.
3. Seleccionar el IC sensible a configuración
4. Describir la función de cada IC.
5. Clasificar el IC a través de criterios funcionales.
5.1. Se valida si el IC es de análisis y diseño.
5.2. Se valida si el IC es de desarrollo e implementación.
5.3. Se valida si el IC es externo.
5.4. Se asigna un prefijo único a cada categoría de IC para identificar su
criterio funcional.
5.5. Continúa en el paso 7 del flujo principal.
6. Asignar un identificador único al IC.
7. Identificar el responsable del IC.
8. Documentar el IC.
9. Almacenar el IC en el repositorio relacionado.
10. Fin del flujo.
Nota 1: Se recomienda categorizar los IC a través de criterios funcionales, por ejemplo:
IC de análisis y diseño: Bosquejos, especificaciones de producto,
requerimientos, prototipos, documentación de arquitectura y diseño de datos,
casos de uso o historias de usuario, listas de chequeo, criterios de aceptación,
manuales técnicos, manuales de instalación, manuales de usuario etc.
IC de desarrollo e implementación: Código fuente, librerías, compilaciones,
herramientas y entornos de desarrollo (IDE, librerías, plugin, etc.), herramientas
de prueba, scripts, repositorios, casos de prueba, etc.
IC externos: Son los artefactos que no tienen relación directa con el proyecto,
por ejemplo: servicios externos, artefactos dependientes de otros proyectos,
etc.
Nota 2: Para identificar de manera detallada cuáles elementos pueden ser considerados
como IC se recomienda ver la Tabla 19.
63
AD: Análisis y diseño.
IDX: Identificador propio del IC.
Nota 4: Se recomienda que el IC sea identificado con elementos como: identificador del
IC, nombre del IC, descripción del IC, recurso responsable, identificador de los IC
dependientes del IC actual, etc.
EC T3: Identificar dependencias entre IC.
Descripción:
1. Inicio del flujo.
2. Seleccionar el IC.
3. Identificar los elementos impactados si ocurre un cambio en el IC.
4. Actualizar la documentación relacionada al IC.
5. Actualizar el IC en el repositorio relacionado.
6. Fin del flujo
Descripción:
1. Inicio del flujo.
2. Seleccionar el IC.
3. Identificar los IC que cumplen funciones parecidas.
4. Definir un formato unificado para los IC con funciones parecidas.
5. Continúa en GCSA.A2.T2.
6. Fin del flujo.
Nota 1: Es posible que durante la identificación de los IC existan diferentes IC que
cumplen funciones parecidas o cumplen la misma función, por ejemplo:
Varios desarrolladores pueden utilizar matrices de pruebas diferentes para
realizar las mismas pruebas funcionales.
Cada analista puede decidir utilizar un formato para la documentación de los
casos de uso.
Salidas:
A2. S1: Identificación de ítems de configuración.
A2. S2: Clasificación de los ítems de configuración.
A2. S3: Definición de repositorios para almacenar los ítems de configuración.
A2. S4: Identificación de dependencia entre ítems de configuración.
Diagrama de fluj o:
64
65
66
67
68
GCSA.A3. Establecer las líneas base.
Descripción:
1. Inicio del flujo.
2. Solicitar autorización del EC para la identificación de una línea base.
Si el EC autoriza la identificación de una línea base.
2.1. Identificar los IC que constituyen una línea base (ver GCSA.A2.T2).
2.2. Definir el repositorio donde se almacenará la línea base.
2.3. Asignar un responsable a la línea base.
2.4. Actualizar el repositorio relacionado.
2.4. Hacer la línea base disponible a todas las partes interesadas.
2.5. Continúa en el paso 3 del flujo.
Si el EC rechaza la identificación de una línea base.
2.1. Continúa en el paso 3 del flujo.
3. Fin del flujo.
Nota 1: Una línea base es por definición un IC por lo cual, también se puede considerar
que las líneas bases sean categorizadas a través de criterios funcionales, es decir, una
línea base puede estar conformada por un conjunto de IC de análisis y diseño o IC de
desarrollo e implementación. Por ejem plo:
Línea base de análisis y diseño: Una línea base que está conformada por un
conjunto de IC de análisis y diseño.
Línea base de desarrollo e implementación: Una línea base que está
conformada por un conjunto de IC de desarrollo e implementación.
Salidas:
A3. S1: Descripción de las líneas base.
A3. S2: Definición de repositorios para almacenar las líneas base.
Diagrama de fluj o:
69
70
GCSA.A4. Establecer una estrategia para la modificación de los ítems de configuración.
Descripción:
1. Inicio del flujo.
2. Definir los criterios para crear nuevas líneas base o nuevas versiones de una
línea base existente.
3. Documentar los criterios definidos a través de una política de control de
versiones.
4. Definir el repositorio para almacenar la política de control de versiones.
5. Actualizar el repositorio relacionado.
6. Hacer la política disponible a todas las partes interesad as.
7. Fin del flujo.
Nota 1: Para MiPyMEs_DS, es recomendable asignar a un miembro del equipo de
desarrollo como responsable de administrar el repositorio y la creación de nuevas
versiones de una línea base.
ED T2: Identificar herramientas para controlar los cambios en los IC de análisis y diseño.
Descripción:
1. Inicio del flujo.
2. Identificar herramientas controlar los cambios en los IC de análisis y diseño.
3. Asociar los IC afectados a las herramientas definidas.
4. Fin del flujo.
ED T3: Identificar herramientas para controlar los cambios en los IC de desarrollo e
implementación.
Descripción:
1. Introducir un sistema de integración continua.
2. Definir convenciones para los comentarios asociados a los cambios que se van
a subir a los repositorios de código fuente durante el proceso de desarrollo.
3. Introducir herramientas para automatizar la creación de nuevas versiones de
una línea base.
4. Actualizar los IC de desarrollo e implementación en las herramientas definidas.
5. Fin del flujo.
ED T4: Definir criterios para la unión (merge) entre líneas base.
Descripción:
1. Inicio del flujo.
2. Definir los criterios para llevar a cabo la unión entre líneas base.
3. Definir la frecuencia para llevar a cabo la unión entre líneas base.
4. Definir una estrategia para controlar los conflictos entre líneas base.
5. Fin del flujo
Nota 1: Se recomienda que la unión entre líneas base se realice en periodos cortos de
tiempo para evitar que existan conflictos.
Salidas:
A4. S1: Política para el control de versiones.
A4. S2: Definición herramientas para controlar los IC de análisis y diseño.
A4. S3: Definición de herramientas para controlar los cambios en IC de desarrollo e implementación
A4. S4: Definición de política para la unión de líneas base.
Diagrama de fluj o:
71
72
73
74
GCSA.A5. Mantener la descripción de los ítems de configuración.
75
Niv el de capacidad: Complementario.
Entradas:
A2. S2
A4. S2
Responsables. Tareas
EC T1: Identificar los ítems de configuración constituyentes (ICC)
Descripción:
1. Inicio del flujo.
2. Identificar el IC demasiado complejo.
3. Dividir el IC en ICC.
4. Definir el ICC (ver GCSA.A2.T2).
5. Actualizar el IC en el repositorio relacionado.
6. Hacer el IC actualizado disponible a las partes interesadas.
7. Fin del flujo.
Salidas:
A5. S1: ICC documentados y relacionados.
Diagrama de fluj o:
76
GCSA.A6. Controlar la modificación de los ítems de configuración.
77
Entradas:
N/A
Responsables. Tareas
EC T1: Definir herramientas para controlar las solicitudes de cambios en los IC.
Descripción:
1. Inicio del flujo.
2. Identificar los criterios que se deben tener en cuenta para realizar una solicitud
de cambio
3. Identificar herramientas que permitan controlar las solicitudes de cambio
realizadas por el equipo de desarrollo, por el cliente o por los interesados.
4. Definir los responsables de administrar las herramientas para el control de las
solicitudes de cambio.
5. Fin del flujo.
Nota 2: Una herramienta para controlar las peticiones de cambio debería considerar
elementos tales como: descripción del motivo de cambio, recurso que solicita el cambio,
recurso asignado a la evaluación del cambio, IC afectado, prioridad, etc.
EC T2: Definir una política de liberación y lanzamiento.
Descripción:
1. Inicio del flujo.
2. Definir los criterios que se deben cumplir para liberar una línea base a la
siguiente cadena del flujo durante el proceso de desarrollo.
3. Definir un responsable que garantice el cumplimiento de los criterios definidos.
4. Documentar los criterios definidos.
5. Definir repositorio para al macenar la política de liberación.
6. Almacenar la política en el repositorio correspondiente.
7. Hacer la política de liberación y lanzamiento disponible a las partes
interesadas.
8. Fin del flujo.
Nota 1: Para empresas que siguen modelo de desarrollo en cascada (Análisis, Diseño,
Desarrollo, Pruebas, Lanzamiento, Producción, Mantenimiento) se puede seguir una
política de liberación lineal que establezca los criterios necesarios para pasar de una fase
del proceso a otra. Por ejemplo: Definir los criterios que se d eben cumplir para que una
línea base de desarrollo pueda ser liberada a pruebas.
Nota 2: Para empresas que siguen el modelo iterativo incremental, espiral o guiado por
prototipos, se recomienda definir una política de liberaciones parciales e incrementale s
cuyo parámetro de control sean listas de listo o de hecho que deben ser cumplidas para
la liberación de una fase a la que sigue.
ED, CCC, TC T3: Identificar la solicitud de cambio solicitada por un miembro del equipo de desarrollo.
Descripción:
1. Inicio del flujo.
2. El miembro del equipo de desarrollo identifica el IC afectado.
3. El miembro del equipo de desarrollo solicita el cambio a través de la
herramienta definida.
4. El miembro del equipo de desarrollo asigna la petición de cambio a la comisión
de control de la configuración.
5. La comisión de control de la configuración valida el cambio solicitado
Si el cambio es aprobado.
5.1. La comisión de control de la configuración asigna un técnico de
configuración para que implemente el cambio solicitado.
5.2. El técnico de configuración realiza el cambio solicitado.
5.3. El técnico de configuración actualiza los IC afectados en los repositorios
relacionados.
5.4. Continúa en el paso 6 del flujo.
Si el cambio es rechazado.
5.1. La comisión de control de la configuración notifica al miem bro del equipo
de desarrollo que la solicitud de cambio ha sido rechazada.
5.2. Continúa en el paso 6 del flujo.
6. Se actualiza la petición de cambio en el repositorio o la plataforma definida.
7. Fin del flujo.
Nota 2: Priorizar las peticiones de cambio es importante para evitar cuellos de botella en
78
el proceso de desarrollo del proyecto.
DP, CCC, TC T4: Identificar la solicitud de cambio solicitada por los interesados o por el cliente.
Descripción:
1. Inicio del flujo.
2. El dueño del producto identifica el cambio solicitado por el interesado o por el
cliente.
3. El dueño del producto evalúa el impacto del cambio solicitado.
4. El dueño del producto solicita el cambio a través de las plataformas definidas.
5. El dueño del producto asigna la petición de cambio a la comisión de control de
la configuración.
6. La comisión de control de la configuraci ón valida el cambio solicitado.
Si el cambio es aprobado.
6.1. La comisión de control de la configuración asigna un técnico de
configuración encargado de realizar el cambio.
6.2. El técnico de configuración realiza el cambio solicitado.
6.3. El técnico de configuración actualiza los IC afectados en los repositorios
relacionados.
6.4. Continúa en el paso 7 del flujo.
Si el cambio es rechazado.
6.1. La comisión de control de la configuración notifica al dueño del producto
que el cambio ha sido rechazado.
6.2. Continúa el paso 7 del flujo.
7. Se actualiza la petición de cambio en el repositorio o la plataforma definida.
8. Fin del flujo.
Nota 2: Priorizar las peticiones de cambio es importante para evitar cuellos de botella en
el proceso de desarrollo del proyecto.
Salidas
A6. S1: Plantilla para la solicitud de cambios.
A6. S2: Creación del repositorio para controlar las solicitudes de cambio.
79
Diagrama de fluj o:
80
81
82
83
GCSA.A7. Proceso de monitoreo.
Descripción:
1. Inicio del flujo.
2. Definir los criterios para llevar a cabo una evaluación física.
2.1. Definir el repositorio para almacenar los documentos de evaluación física.
2.2. Definir los criterios de evaluación para el IC puesto bajo una evaluació n física
a través de una lista de chequeo.
2.3. Definir la frecuencia en la que se deben llevar a cabo la evaluación física de
los IC.
2.4. Definir la plantilla de reporte para informar los resultados de una evaluación
física.
2.5. Actualizar los artefactos generados en el repositorio relacionado.
2.6. Continúa en el paso 4 del flujo principal.
3. Definir los criterios para llevar a cabo una evaluación funcional de las líneas base.
3.1. Definir el repositorio para almacenar los documentos de evaluación funcional.
3.2. Definir la plantilla de evaluación para la evaluación funcional.
3.3. Definir los criterios de evaluación para el IC puesto bajo una evaluación
funcional.
3.4. Definir la frecuencia en la que se deben llevar a cabo la evaluación funcional
de los IC.
3.5. Definir la plantilla de reporte para informar los resultados de una evaluación
funcional.
3.6. Actualizar los artefactos generados en el repositorio relacionado.
3.7. Continúa en el paso 4 del flujo principal.
4. Hacer los repositorios relacionados disponibles a las partes interesadas.
5. Fin del flujo.
Descripción:
1. Inicio del flujo.
2. El experto en configuración (EC) identifica el ítem de configuración a evaluar.
3. Se designa un miembro del equipo de desarrollo para llevar a cabo la evaluación
del IC afectado.
4. Se valida que el ítem de configuración aprueba los criterios definidos para el
proceso de evaluación física.
Si el IC aprueba los criterios definidos para la ev aluación.
4.1. El miembro del equipo de desarrollo designado documenta los resultados de
la validación.
4.2. Continúa en el paso 5 del flujo.
Si el IC no aprueba los criterios definidos para la ev aluación.
4.1. El miembro del equipo de desarrollo designado documenta las no
conformidades detectadas.
4.2. Continúa en el paso 5 del flujo.
Descripción:
1. Inicio del flujo.
2. El experto en configuración identifica la línea base a evaluar.
3. Se designan los miembros del equipo de desarrollo necesarios para llevar a cabo
la evaluación del IC afectado.
4. Se valida que la línea base aprueba los criterios definidos para el proceso de
84
evaluación funcional.
Si la línea base aprueba los criterios definidos para la ev aluación.
4.1. Los miembros del equipo de desarrollo designados documentan los resultados
de la validación.
4.2. Continúa en el paso 5 del flujo.
Si la línea base no aprueba los criterios definidos para la ev aluación.
4.1. Los miembros del equipo de desarrollo designados documentan las no
conformidades detectadas.
4.2. Continúa en el paso 5 del flujo.
Descripción:
1. Inicio del flujo.
2. Identificar IC críticos.
3. Definir un repositorio para almacenar los respaldos.
4. Establecer mecanismos para la recuperación de información crítica que ha sido
respaldada.
5. Designar un técnico de configuración para llevar a cabo la creación y
administración de los respaldos.
6. El técnico de configuración crea respaldos de los IC críticos.
7. El técnico de configuración actualiza el repositorio relacionado.
8. Fin del flujo.
EC, TC T5: Resolver no conformidades detectadas en la evaluación física y funcional de los IC.
Descripción:
1. Inicio del flujo.
2. Identificar el ítem de configuración inconsistente.
3. Se designa a un técnico de configuración para resolver las no conformidades del
ítem de configuración inconsistente.
4. El técnico de configuración aplica los cambios al IC inconsistente.
5. El técnico de configuración actualiza los repositorios relacionados.
6. El técnico de configuración notifica al experto en configuración que el cambio ha
sido realizado.
7. El experto en configuración identifica el ítem de configuración que ha sido
actualizado.
Si el IC requiere ev aluación física continua en GCSA.A7. T2
Si el IC requiere ev aluación funcional continua en GCSA.A7. T3
8. Fin del flujo.
Salidas
A7. S1: Reporte de ev aluación física de los IC.
A7. S2: Reporte de ev aluación funcional de los IC.
A7. S3: Creación de repositorios y respaldos.
A7. A4: Reporte de no conformidades.
Diagrama de fluj o:
85
86
87
88
89
Tabla 51. Progresconfig.
90
5.2 Análisis del grado de agilidad del proceso.
Según [61], se dice que un método de desarrollo de software es ágil cuando cumple
con las siguientes características: es enfocado en las personas, orientado a la
comunicación, flexible (listo para adaptarse al cambio esperado o inesperado en
cualquier momento), veloz (fomenta el desarrollo rápido e iterativo del producto en
liberaciones pequeñas), ligero (se centra en el acortamiento de plazos y costos y sobre
la mejora de la calidad), adaptativo (responde adecuadamente a los cambios
esperados e inesperados), y enfocado en la mejora continua (se centra en la mejora
durante y después del desarrollo del producto).
Para cumplir con el objetivo de crear un proceso ágil para soportar SCM, es necesario
realizar una evaluación para determinar el grado de agilidad con el cual fue definido.
Para ello, se utiliza como método de evaluación el framework propuesto en [61]
denominado 4-DAT, el cual permite realizar una evaluación cuantitativa y cualitativa
del grado de agilidad en un método o en un proceso. 4-DAT aplica una evaluación a
través de cuatro dimensiones (alcance del método, caracterización de agilidad,
caracterización de valores ágiles y caracterización de proceso de software). A
continuación, se hace a evaluación de agilidad siguiendo cada una de las dimensiones
definidas.
91
Se puede concluir de manera cualitativa que el proceso es adecuado para equipos de
trabajos medianos o pequeños donde los requisitos tienden a ser cambiantes y la
incertidumbre puede aumentar con el tiempo. A continuación, en la Tabla 53 se
muestra el resultado de la evaluación a la primera dimensión realizada al proce so
definido en este proyecto de investigación.
Prácticas FY SD LS LG RS Total
Práctica 1 0o 1 0o 1 0o 1 0o 1 0o 1 [ ]
Práctica 2 0o 1 0o 1 0o 1 0o 1 0o 1 [ ]
Práctica 3 0o 1 0o 1 0o 1 0o 1 0o 1 [ ]
Práctica m 0o 1 0o 1 0o 1 0o 1 0o 1 [ ]
Total. [ ] [ ] [ ] [ ] [ ] [ ]
Grado de agilidad. [ ] [ ] [ ] [ ] [ ] Total, dividido por el número de
celdas.
92
Tabla 54. Plantilla utilizada para la evaluación de la segunda dimensión. Tomado de
[61].
93
seguimiento de un plan?
Mantener el proceso ágil. ¿Cuáles prácticas ayudan a mantener el proceso ágil?
Mantener el proceso rentable. ¿Cuáles actividades ayudan a mantener el proceso rentable?
Tabla 56. Descripción de la tercera dimensión para la evaluación de agilidad. Tomado
de [61].
En general, la actividad GCSA.A6 permite que exista interacción con las partes
interesadas externas gracias a la definición de un rol de dueño de producto que
cumple la función de ser un canal de comunicación entre los clientes y los interesados
con el equipo de desarrollo para llevar a cabo la petición, evaluación y aplicación de
las solicitudes de cambio realizadas por el cliente o un interesado.
Por otro lado, el proceso define un conjunto de artefactos documentales para llevar a
cabo algunas actividades relacionadas. Sin embargo, el proceso recomienda la
automatización de varios artefactos a través de herramientas y plataformas para
gestionar su uso. Además, las actividades GCSA.A2, GCSA.A3, GCSA.A4, GCSA.A5
y GCSA.A6 fueron definidas para responder al cambio y mantener la integridad de los
artefactos involucrados con el paso del tiempo. Finalmente, la actividad GCSA.A1,
tiene como objetivo principal identificar todos los aspectos relevantes del proyecto para
llevar a cabo la gestión de la configuración de manera adecuada y rentable para la
empresa. A continuación, en la Tabla 57 se muestra la evaluación a la tercera
dimensión realizada al proceso definido en este proyecto de investigación, la
descripción del método describe la actividad o actividades que so portan cada uno de
los valores ágiles evaluados en la tercera dimensión.
94
Proceso de gestión de configuración de ¿Cuáles prácticas cubren el proceso para garantizar la gestión
softw are/Proceso de soporte. de la configuración?
Proceso de gestión del proceso. ¿Cuáles prácticas cubren el proceso que es requerido para
gestionar el proceso en sí mismo?
Tabla 58. Plantilla utilizada para la evaluación de la cuarta dimensión. Tomado de [61].
Los resultados indican que el proceso propuesto está definido para dar soporte a todo
el ciclo de vida del desarrollo de software en cada una de sus fases. Además, la
actividad GCSA.A1 tiene como objetivo principal la creación y actualización de los
artefactos necesarios para llevar a cabo la gestión del proceso en sí mismo y la
gestión del proyecto que va a aplicar el proceso. Finalmente, se concluye que el
proceso evaluado está diseñado para facilitar la adopción de la gestión de la
configuración de software en las empresas desarrolladoras de software.
95
Capítulo VI. Evaluación de la
propuesta.
En este capítulo se presentan los resultados de la evaluación del proceso para la
gestión de la configuración propuesto. La evaluación se llevó a cabo empleando el
método de grupo focal (focus group) para evaluar el proceso definido en el capítulo
anterior. Inicialmente se describe el proceso seguido para llevar a cabo el grupo focal,
y posteriormente se describe paso a paso la aplicación del grupo focal para la
evaluación de la propuesta realizada con la participación de expertos que pertenecen
a la industria local del desarrollo de software y miembros del sector académico.
Finalmente se presenta el análisis de los resultados obtenidos tras la aplicación del
grupo focal.
96
6.3.1 Planeación de la investigación.
Para llevar a cabo la evaluación del proceso se utilizó como base la caracterización del
proceso definido en la Tabla 51, el cual describe un conjunto de definiciones,
actividades, entradas, salidas, tareas, roles y diagramas de flujo relacio nados al
proceso.
La definición del protocolo para la ejecución del grupo focal se hizo siguiendo las
recomendaciones definidas en [19]. El protocolo utilizado durante el grupo focal se
puede ver en el Anexo 4: Protocolo para llevar a cabo el grupo focal.
97
6.3.1.2.2 Definición de elementos empleados para llevar
a cabo el grupo focal.
A continuación, en la Tabla 61 se presentan todos los artefactos utilizados para llevar
a cabo la sesión de debate, su descripción y el anexo que tiene asociado en el
documento.
98
experiencia en la industria local del desarrollo de software, (iii) personas con
conocimiento en la aplicación de metodologías ágiles y (iv) personas
interesadas en conocer sobre la gestión de la configuración de software.
Identificación de participantes potenciales: A partir de la condición de
perfiles identificados, se identificaron aquellas personas que cumplían con las
características mencionadas anteriormente.
99
Experiencia en la evaluación de
proyectos COMPETISOFT.
Docente en cursos de ingeniería
de software para cursos de
especialización.
Tabla 62. Perfil de los participantes que asistieron al grupo focal llevado a cabo en la
Universidad del Cauca.
100
Tabla 63. Perfil de los participantes que asistieron al grupo focal llevado a cabo en LA
EMPRESA.
Además, cada uno de los debates se llevó a cabo utilizando los materiales para la
captura de información definidos previamente. En la Tabla 61 se presentan los
elementos utilizados durante la sesión de debate.
101
Figura 6. Sesión de debate llevada a cabo en la Universidad del Cauca.
102
6.3.1.5 Fase de análisis de información obtenida y
reporte de resultados.
6.3.1.5.1 Análisis de información.
Posterior a la aplicación de los grupos focales se llevó a cabo el análisis de los
artefactos obtenidos durante la sesión de debate, entre los cuales se encuentran:
análisis del cuestionario realizado a los participantes, análisis del audio registrado
durante las sesiones y la clasificación de los aportes realizados por los participantes.
Aspecto de Descripción
mej ora
(+) Es necesario realizar una categorización de los roles con un nivel mayor de detalle para identificar
los roles mínimos que deberían tenerse en cuenta por tipo de empresa.
(+) Debería definirse una tarea de estandarización de los ítems de configuración.
(+) El proceso de auditoría debería ser considerado un proceso de monitoria de los ítems de
configuración y de las líneas base.
(+) Deberían describirse las tareas relacionadas a la monitoria del proceso con un nivel mayor de
detalle.
(+) Debería definirse una tarea que identifique la frecuencia en la cual deben ser llevadas a cabo las
103
evaluaciones físicas y funcionales a los ítems de configuración.
(+) Debería realizarse un análisis que permita identificar si un rol puede ser desempeñado por diferentes
recursos.
(+) Es necesario revisar las tareas descritas y su correspondencia con los diagramas de flujo para
identificar posibles inconsistencias en la documentación.
(+) Debería revisarse las tareas de petición de cambios y establecer criterios de prioridad que permitan
evaluar las peticiones de manera más rápida y evitar cuellos de botella.
(+) Se debería hacer una clasificación de las líneas base De acuerdo con criterios funcionales de la
misma manera que se hace con los ítems de configuración.
Tabla 65. Aspectos de mejora dentro del alcance del proyecto.
Aspecto de Descripción
mej ora
(-) Descripción de plantillas, herramientas y tutoriales para apoyar la adopción del proceso.
(-) Definición de guías de adaptación del proceso de acuerdo con el tipo de empresa que requiera
implementar el proceso.
(-) Definición de métricas e indicadores derivados del proceso de monitoreo para llevar a cabo las tareas
de auditoría externa y evaluar el cumplimiento del proceso.
(-) Mapear los niveles de capacidad definidos con los niveles propuestos por CMMI -DEV y la norma
ISO/IEC 15504 para realizar un análisis de correspondencia a detalle entre la propuesta y los modelos
relacionados.
(-) Debería contemplarse una adaptación del proceso aplicado a líneas de producción de software.
Tabla 66. Aspectos de mejora fuera del alcance del proyecto.
104
10 10 10
10 9 9
9 8 8
8 7
7 6 6
6
5 4 4
4 3
3 2 2
2 1 1
1 0 0 0
0
Si No
Luego de obtener los resultados globales en las respuestas de cada uno de los
participantes fue posible realizar un análisis detallado que permitió identificar los
factores más relevantes por cada pregunta. A continuación, se presenta el análisis de
cada pregunta de acuerdo con los resultados obtenidos y las observaciones realizadas
por los participantes durante las sesiones de debate:
105
Pregunta 2: ¿Considera que el proceso propuesto puede ser aplicado en una
empresa desarrolladora de software?
10 9
9
8
7 6
6
5
4 3
3
2 1 1
1 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 10. Tendencia de los resultados de la segunda pregunta.
Además, en la Tabla 67 se presentan las observaciones textuales realizadas por los
participantes en la respuesta de esta pregunta:
106
10
10
9
8
7 6
6
5 4
4
3
2
1 0 0 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 11. Tendencia de los resultados de la tercera pregunta.
10
9 8
8
7 6
6
5
4
3 2 2 2
2
1 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 12. Tendencia de los resultados de la cuarta pregunta.
107
No se tiene en cuenta la auto organización de los equipos, Las tareas son asignadas por una
comisión.
La comisión se puede convertir en un cuello de botella.
5 Revisar las actividades asumidas por el CCC debido a que puede generar cuellos de botella al
momento de proponer y asignar cambios.
Tabla 68. Transcripción de observaciones realizadas a la cuarta pregunta.
10
9
8
7 6
6
5 4
4 3 3
3 2 2
2
1
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 13. Tendencia de los resultados de la quinta pregunta.
108
Pregunta 6: ¿Considera usted que las tareas relacionadas a cada actividad del
proceso son adecuadas?
De acuerdo con los resultados de la encuesta realizada, ocho (8) de los participantes
involucrados en el estudio consideran que las tareas relacionadas a cada actividad SÍ
son adecuadas y consistentes con respecto a sus actividades asociadas. Sin embargo,
dos (2) participantes indicaron que algunas tareas podrían fusionarse. Además, un (1)
participante que contestó SI, indicó que deberían incluirse tareas de estandarización
para apoyar la identificación de los ítems de configuración. En la Figura 14 se pueden
observar los resultados obtenidos en la sexta pregunta.
10
9 8
8
7 6
6
5
4
3 2 2 2
2
1 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 14. Tendencia de los resultados de la sexta pregunta.
109
10 9
9
8
7 6
6
5
4 3
3
2 1 1
1 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 15. Tendencia de los resultados de la séptima pregunta.
Además, en la Tabla 71 se presentan las observaciones textuales realizadas por los
participantes en la respuesta de esta pregunta:
10
9
8
7 6
6
5 4 4 4
4
3 2
2
1 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 16. Tendencia de los resultados de la octava pregunta.
110
Además, en la Tabla 72 se presentan las observaciones textuales realizadas por los
participantes en la respuesta de esta pregunta:
111
son adecuados y aplicables. Sin embargo, tres (3) participantes indicaron que el nivel
esencial debería contemplar más tareas para no limitarlo solo a la identificación de los
IC en el proyecto. Además, un (1) que contestó SI, indicó que deberían prop onerse
indicadores y métricas a partir de los resultados de las evaluaciones. En la Figura 18
se pueden observar los resultados obtenidos en la décima pregunta.
10
9
8 7
7 6
6
5
4 3 3
3
2 1
1 0
0
Si No Si No Si No
Global Universidad del LA EMPRESA
Cauca
Figura 18. Tendencia de los resultados de la décima pregunta.
112
Primera v ersión del proceso. Versión final del proceso.
Define un conjunto de roles que aplican de manera Se incluye el apartado En el cual se realiza una
independiente al tipo de empresa. caracterización por tipo de empresa con el objetivo de
identificar los roles necesarios que deberían tenerse en
cuenta para la adopción del proceso dependiendo del
tipo de empresa.
No existe una visión general de la propuesta que permita Se incluye el apartado En el cual se realiza una
ver el problema de manera global. descripción a alto nivel del problema a atacar, y
posteriormente se realiza una abstracción a alto nivel de
todos los artefactos propuestos para la definición del
proceso.
La actividad 2 del proceso (GCSA.A2) Se compone por Durante los grupos focales se detectaron las siguientes
las siguientes tareas: acciones de mejora aplicables a la actividad 2 del
proceso.
T1: Identificar los ítems de configuración (IC)
T2: Describir cada IC. Las tareas T1 y T2 del proceso original pueden
T3: Definir los repositorios para llevar el control de los IC. unificarse en una sola actividad.
La tarea T3 debería ser la primera tarea
categorizada en la actividad debido a que
deberían identificarse previamente las
herramientas y repositorios para almacenar los
IC
Es necesario identificar las dependencias entre
IC y estandarizar los IC para evitar
inconsistencias.
Es necesario indicar qué aspectos deberían
tenerse en cuenta para la definición de un IC.
Como resultado, La actividad 2 del proceso se modificó y
como resultado se definió la actividad con las siguientes
tareas:
113
La actividad 6 del proceso (GCSA.A6) Se compone por Durante los grupos focales se detectaron las siguientes
las siguientes tareas: acciones de mejora aplicables a la actividad 6 del
proceso.
T1: Definir una plantilla para las solicitudes de cambio.
T2: Definir herramientas para gestionar las solicitudes de La tarea T2 crea doble trabajo debido a que el
cambio en los IC. proceso propone que se definan plantillas y
T3: Definir una política de liberación y lanzamiento. posteriormente se identifiquen herramientas
T4: Definir un protocolo para las solicitudes de cambio para soportar dichas plantillas.
realizadas por un miembro del equipo de desarrollo o el
experto en configuración.
T5: Definir un protocolo para las solicitudes de cambio Como resultado, se eliminó la tarea T2 del proceso.
Además, se modificaron las tareas T4 y T5 de la
realizadas por los interesados o por un cliente.
propuesta original quitando l as referencias a la tarea T2.
Finalmente, la actividad 6 se compone por las siguientes
tareas:
114
6.4 Sesgos de la evaluación.
Debido a la naturaleza del estudio realizado para para la evaluación de la propuesta,
existe un grado de subjetividad que debe ser considerado para el análisis de los
resultados obtenidos posteriormente. Por lo cual, para llevar a cabo este trabajo de
investigación se ha disminuido el grado de subjetividad mediante la aplicación de
técnicas de análisis cuantitativas para cada uno de los artefactos obtenidos. Asimismo,
los cuestionarios diligenciados por cada uno de los participantes fueron sometidos a
validación de expertos en el área de mejora de procesos, los cuales hacen parte de
este trabajo de investigación como asesores externos y han realizado la validación de
las actividades y el análisis de los resultados obtenidos a partir de la evaluación de la
propuesta.
115
Capítulo VII. Conclusiones y
lecciones aprendidas.
7.1 Análisis de los objetivos de investigación.
Para llevar a cabo este trabajo de investigación se definieron un conjunto de objetivos
que fueron cumplidos de manera sistemática siguiendo todas las actividades descritas
en este documento. A continuación, se presenta un resumen para indicar cómo se
logró cumplir con cada uno de los objetivos propuestos:
116
OE3. Evaluar el proceso propuesto a través de su aplicación en un grupo focal
(focus group) como técnica cualitativa de estudio.
El Capítulo VI. Evaluación de la propuesta, describe de manera completa la definición
y ejecución del método de evaluación. Además, la evaluación fue aplicada mediante la
ejecución de dos grupos focales con el objetivo de obtener realimentación desde
diferentes puntos de vista. Posteriormente se llevó a cabo el análisis de los resultados
obtenidos, y finalmente se creó una versión actualizada del proceso tomando como
base la realimentación recibida durante las sesiones de debate.
7.2 Conclusiones.
En este trabajo de investigación se ha presentado la propuesta de un proceso para
soportar la gestión de la configuración de software en micro, pequeñas y medianas
empresas de software, el cual propone un conjunto de definiciones, actividades, roles
y productos de trabajo para guiar la adopción del proceso en empresas
desarrolladoras de software. Como resultado del trabajo realizado para la definición de
un proceso ágil para soportar la gestión de la configuración de software, se concluye:
117
expertos pertenecientes a la industria local del desarrollo de software. Sin embargo,
debido a la naturaleza de la evaluación que se llevó a cabo y el grado de subjetividad
involucrado en el criterio de los expertos involucrados, fue posible identificar que la
evaluación pudo ser llevada a cabo mediante un criterio de evaluación más amplio que
permitiera obtener un nivel de realimentación con mayor grado de detalle y que no
fuera limitado a respuestas de si/no.
118
Además, a pesar del carácter cualitativo en el cuestionario presentado a los
participantes y a partir de los comentarios realizados por los evalua dores, fue posible
identificar que la evaluación pudo ser llevada a cabo con un nivel mayor de detalle, por
lo cual, se pueden plantear criterios de evaluación más amplios en cada una de las
preguntas para obtener un nivel mayor de detalle en las respuesta s y evitar que sean
limitadas a respuestas si/no.
119
7.5 Contribuciones en el área de la ingeniería de
software.
120
b. El proceso está soportado a través de la aplicación de una evaluación
de agilidad para garantizar que el proceso está definido mediante un
enfoque ágil.
c. El proceso fue definido a través de un conjunto de niveles de capacidad
con el objetivo de facilitar su adopción por micro, pequeñas y medianas
empresas desarrolladoras de software.
121
Bibliografía.
[1] E. A. Jetter, J. Kraaijenbrink, H.-H. Schröder, and F. Wijnhoven, “Knowledge
integration-the practice of knowledge management in small and medium
enterprises,” in Physica-Verlag Heidelberg, 2006.
[2] R. Heeks, “Indian IT Sector Statistics,” United Kingdom, 2015.
[3] M. M. Group, “Irish salary and benefits guide,” 2015. [Online]. Available:
goo.gl/tSX57F.
[4] Fedesoft, “Caracterización del sector teleinformatica, software y TI en
Colombia,” 2015. [Online]. Available: goo.gl/py5JWm.
[5] R. Regalado Hernández, “Las MiPyMEs en Latinoamérica,” 2007. [Online].
Available: goo.gl/6MiTxe.
[6] C. Y. Laporte and R. V. O‟Connor, “A Multi-case Study Analysis of Software
Process Improvement in Very Small Companies Using ISO/IEC 29110,” in
European Conference on Software Process Improvement, 2016, pp. 30–44.
[7] P. N. G. Perera et al., “The impact of effective configuration management usage
in software development firms in Sri Lanka,” in Proceedings of the 8th
International Conference on Computer Science and Education, 2013.
[8] J. K. Buckle, Software Configuration Management. California: Macmillan
Education, 1982.
[9] M. Ben Menachem, “Software Configuration Management Guidebook,”
Washington, D.C, 1995.
[10] J. Estublier, “Software Configuration Management: A Road Map,” in Proceedings
of the Conference on The Future of Software Engineering, 2000.
[11] L. Bendix, T. Kojo, and J. Magnusson, “Software Configuration Management
Issues with Industrial Opensourcing,” in IEEE Sixth International Conference on
Global Software Engineering Workshop, 2011, pp. 85–89.
[12] S. Engineering, S. Committee, and I. Computer, “IEEE Standard for
Configuration Management in Systems and Software Engineering IEEE
Computer Society,” 2012. [Online]. Available: goo.gl/K33e7y.
[13] Software Engineering Institute, “CMMI for Development, Version 1.3,” 2010.
[Online]. Available: goo.gl/bbyt4z.
[14] ISO 10007, “Quality management systems. Guidelines for configuration
management,” 2003. [Online]. Available: goo.gl/qHsRqR.
[15] ISO/IEC 15504-2, “Information technology - Process assessment - Part 2:
Performing an assessment,” 2003. [Online]. Available: goo.gl/oG5Ccu.
[16] ISO/IEC 29110-2-1, “Software engineering -- Lifecycle profiles for Very Small
Entities (VSEs),” 2015.
[17] R. C. W. D. D. John R. Rymer, Dave West, Mike Gilpin with Jeffrey S.
Hammond, “Lean software is agile, fit-to-purpose, and efficient,” 2008.
[18] T. Wood-Harper, “Research methods in information systems: Using action
research,” in Research Methods in Information Systems, 1985, pp. 169–191.
[19] M. Mendoza, C. González, and F. J. Pino, “Focus group como proceso en
ingeniería de software: Una experiencia desde la práctica,” DYNA, vol. 80, no. 1,
pp. 51–60, 2013.
[20] D. W. Stewart and P. N. Shamdasani, “Focus groups: Theory and practice,” in
Applied Social Research Methods Series, 1998, vol. 20.
[21] M. Jones and U. Mortensen, “ESA PSS-05-09 Guide to Software Configuration
Management,” in ESA Software Engineering Standards, 1994, no. 1, p. 74.
[22] S. Engineering, S. Committee, and I. Computer, “IEEE Guide to Software
Configuration Management.” [Online]. Available: goo.gl/nFGgVL.
[23] S. Engineering, S. Committee, and I. Computer, “IEEE Standard for Software
Configuration Management Plans,” 1990. [Online]. Available: goo.gl/odAHh8.
122
[24] S. Engineering, S. Committee, and I. Computer, “IEEE Standard for Software
Conguration Management Plans,” 1998. [Online]. Available: goo.gl/c9gQkJ.
[25] S. Engineering, S. Committee, and I. Computer, “IEEE Standard for Software
Configuration Management Plans,” 2005. [Online]. Available: goo.gl/e3o8rZ.
[26] ISO/IEC/IEEE 12207, “Systems and software engineering - Software life cycle
processes,” 2008. [Online]. Available: goo.gl/Fdt2sV.
[27] ISO/IEC/IEEE 15288, “Systems and software engineering -- System life cycle
processes,” 2015. [Online]. Available: goo.gl/qJw2fG.
[28] A. O. Calero and A. Rojas, “Paquete de implementación del proceso gestión de
la configuración del estándar ISO/IEC 29110 para MiPyMEs del sector de
desarrollo de software,” p. 16, 2012.
[29] J. Whyte, A. Stasis, and C. Lindkvist, “Managing change in the delivery of
complex projects: Configuration management, asset information and „big data,‟”
in International Journal of Project Management, 2016, vol. 34, no. 2, pp. 339–
351.
[30] L. Murta, H. Oliveira, C. Dantas, L. G. Lopes, and C. Werner, “Odyssey-SCM:
An integrated software configuration management infrastructure for UML
models,” in Science of Computer Programming, 2007, vol. 65, no. 3, pp. 249–
274.
[31] K. Mohan, P. Xu, L. Cao, and B. Ramesh, “Improving change management in
software development: Integrating traceability and software configuration
management,” Decis. Support Syst., vol. 45, no. 4, pp. 922–936, 2008.
[32] U. K. Durrani, J. Richardson, and J. Lenarcic, “Adaptable Software Configuration
Management: An Investigation on Australian Agile Software Development
Organizations,” Lect. Notes Softw. Eng., vol. 1, no. 1, pp. 66–70, 2013.
[33] A. Gupta and D. Zhdanov, “a Managed Approach of Interaction Between Agile
Scrum and Software Configuration Management System,” Adv. Inf. Technol.
Manag., vol. 36, no. 4, pp. 1109–1130, 2015.
[34] U. Asklund, L. Bendix, and T. Ekman, “Software configuration management
practices for eXtreme programming teams,” Welcome to 11th Nord. Work. …,
no. April, 2004.
[35] V. Kocar and A. Akgunduz, “ADVICE: A virtual environment for Engineering
Change Management,” Comput. Ind., vol. 61, no. 1, pp. 15–28, 2010.
[36] R. Premraj, A. Tang, N. Linssen, H. Geraats, and H. van Vliet, “To Branch or Not
to Branch?,” in Proceedings of the 2011 International Conference on Software
and Systems Process, 2011, pp. 81–90.
[37] U. Durrani, Z. Pita, J. Richardson, and J. Lenarcic, “An empirical study of lean
and agile influences in software configuration management,” in Proceedings -
Pacific Asia Conference on Information Systems, 2014.
[38] A. Bartusevics and L. Novickis, “Models for Implementation of Software
Configuration Management,” Procedia Comput. Sci., 2014.
[39] Unión Europea, “Reglamento 651/2014 de la comisión del 17 de junio de 2014,
por el que se declaran determinadas categorías de ayudas compatibles con el
mercado interior en aplicación de los artículos 107 y 108 del tratado texto
pertinente a efectos del EEE,” D. Of. la Unión Eur., pp. 70–71, 2014.
[40] Unión Europea, “Recomendación de la comisión del 6 de mayo de 2003 sobre la
definición de microempresas, pequeñas y medianas empresas,” D. Of. la Unión
Eur., pp. 36–41, 2003.
[41] C. Jesús and P. Calvache, “A Framework to Support the Harmonization between
Multiple Models and Standards,” University of Castilla, 2012.
[42] Competisoft, “Mejora de Procesos para Fomentar la Competitividad de la
Pequeña y Mediana Industria del Software de Iberoamérica,” 2008.
[43] C. Pardo, F. García, F. J. Pino, M. Piattini, and M. T. Baldassarre, “PrMO: An
Ontology of Process-reference Models,” pp. 393–406, 2012.
[44] F. J. Pino, M. T. Baldassarre, M. Piattini, and G. Visaggio, “Harmonizing maturity
123
levels from CMMI-DEV and ISO / IEC 15504,” J. Softw. Maint. Evol. Res. Pract.,
no. September 2009, pp. 279–296, 2010.
[45] F. J. Pino, F. García, and M. Piattini, “Software process improvement in small
and medium software enterprises: a systematic review,” pp. 237 –261, 2008.
[46] T. R. Gruber, “Towards principles for the design of ontologies used for
knowledge sharing,” in Int. J. Human-Computer Studies, 1995, pp. 907–928.
[47] G. E. Barchini and M. M. Álvarez, “Dimensiones e indicadores de la calidad en
una ontología,” Av. en Sist. e Informática, vol. 7, no. 1, pp. 29–38, 2010.
[48] R. E. Grandy, “What Are Models and Why Do We Need Them ?,” Sci. Educ., vol.
12, pp. 773–777, 2003.
[49] A. Catherine and A. Aldana, “Guía para pymes desarrolladoras de software,
basada en la norma ISO/IEC 15504,” 2011.
[50] M. Fernández-López, A. Gómez-Pérez, and N. Juristo, “METHONTOLOGY:
From Ontological Art Towards Ontological Engineering,” AAAI-97 Spring Symp.
Ser., vol. SS-97-06, pp. 33–40, 1997.
[51] T. R. Gruber, “A translation approach to portable ontology specifications,”
Knowledge Acquisition, vol. 5, no. 2. pp. 199–220, 1993.
[52] D. Fensel et al., “Ontology-based knowledge management,” Computer (Long.
Beach. Calif)., vol. 35, no. 11, pp. 56–59, 2002.
[53] C. Tautz and C. G. Von Wangenheim, “REFSENO: A Representation Formalism
for Software Engineering Ontologies,” 1998.
[54] L. D. O. Arantes, R. D. A. Falbo, and G. Guizzardi, “Evolving a Software
Configuration Management Ontology,” 2007.
[55] V. Nunes and R. Falbo, “Uma Ferramenta de Gerência de Configuração
Integrada a um Ambiente de Desenvolvimento de Software,” V Simpósio Bras.
Qual. Softw., no. January 2006, pp. 231–247, 2006.
[56] C. J. Pardo-calvache, F. O. García-rubio, and M. Piattini-, “A reference ontology
for harmonizing process- reference models Una ontología de referencia para la
armonización de modelos de referencia de procesos,” Rev. Fac. Ing. Univ.
Antioquia 2014, pp. 29–42, 2014.
[57] C. Pardo, F. J. Pino, F. García, M. Piattini, and M. T. Baldassarre, “An ontology
for the harmonization of multiple standards and models,” Comput. Stand.
Interfaces, vol. 34, no. 1, pp. 48–59, 2012.
[58] “The Protégé Ontology Editor and Knowledge Acquisition System.” [Online].
Available: goo.gl/vQvpvo.
[59] “GraphViz: Graphviz-Graph Visualization Software.” [Online]. Available:
https://goo.gl/c5r6B9
[60] S. Falconer, “OntoGraf.” [Online]. Available: https://goo.gl/7qCmqH
[61] A. Qumer, “An evaluation of the degree of agility in six agile methods and its
applicability for method engineering,” vol. 50, pp. 280–295, 2008.
[62] J. Kontio, L. Lehtola, and J. Bragge, “Using the focus group method in software
engineering: obtaining practitioner and user experiences,” 2004 Int. Symp.
Empir. Softw. Eng. ISESE 2004, pp. 271–280, 2004.
124
Anexos.
Anexo 1: Agenda para la sesión de debate aplicado a
Progresconfig.
Proceso ágil para la gestión de la configuración de
software en micro, pequeñas y medianas empresas de
software
Agenda de trabajo.
La sesión de debate es coordinada por el moderador y el supervisor, y e fectuada por
los participantes. Para ello, se hace uso de los artefactos obtenidos durante la etapa
de planeación. A continuación, se describe la agenda llevada a cabo para las sesiones
de debate.
125
Anexo 2: Cuestionario aplicado a los participantes del
grupo focal.
Proceso ágil para la gestión de la configuración de
software en micro, pequeñas y medianas empresas de
software
Encuesta final: Grupo focal.
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
7. ¿Los diagramas presentados describen de forma clara el flujo del proceso y
sus actividades? Sí __ No __
126
Si la respuesta es negativa, indique por qué:
_______________________________________________________________
_______________________________________________________________
______________________________________________________________
10. ¿Considera que los niveles de capacidad propuestos para soportar el proceso
son adecuados? Sí __ No __ ¿Por qué?
_______________________________________________________________
_______________________________________________________________
_______________________________________________________________
127
Cuestionario diligenciado por el participante 1:
128
129
Cuestionario diligenciado por el participante 2:
130
131
Cuestionario diligenciado por el participante 3:
132
133
Cuestionario diligenciado por el participante 4:
134
135
Cuestionario diligenciado por el participante 5:
136
137
Cuestionario diligenciado por el participante 6:
138
139
Cuestionario diligenciado por el participante 7:
140
141
Cuestionario diligenciado por el participante 8:
142
143
Cuestionario diligenciado por el participante 9:
144
145
Cuestionario diligenciado por el participante 10:
146
147
Anexo 3: Ficha de Asistencia del grupo focal.
Proceso ágil para la gestión de la configuración de software en
micro, pequeñas y medianas empresas de software.
Ficha de asistencia.
Datos de l participante.
Nombre:
_____________________________________________________________________
Profesión/Ocupación:
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
148
Ficha de asistencia diligenciada por los participantes del grupo focal realizado
en LA EMPRESA.
149
150
151
152
153
154
Ficha de asistencia diligenciada por los participantes del grupo focal realizado
en la Universidad del Cauca
155
156
157
158
Anexo 4: Protocolo para llevar a cabo el grupo focal.
Proceso ágil para la gestión de la configuración de
software en micro, pequeñas y medianas empresas de
software.
Protocolo del grupo focal.
Objetivo general:
Evaluar la propuesta (Progresconfig) de acuerdo con el grado de
aceptación o rechazo por parte de los participantes en aspectos como:
aplicabilidad a MiPyMEs, grado de agilidad y aporte al área de mejora de
procesos en desarrollo de software.
Objetivos específicos:
Presentar una primera aproximación al proceso Progresconfig a un grupo
experto en procesos de desarrollo de software.
Interiorizar las apreciaciones brindadas por el equipo experto evaluador.
Llevar a cabo proceso de realimentación con la información obtenida de los
participantes durante la sesión.
A continuación, en la Tabla 79 y la Tabla 80, se presenta el protocolo utilizado en las
dos sesiones de debate.
Elemento. Descripción.
Fecha de 04 de octubre del 2017
realización.
Hora de inicio. 17:00
Hora de 18:50
finalización.
Lugar. Universidad del Cauca - Facultad de ingeniería electrónica y telecomunicaciones
Activ idad. Evaluación de la propuesta desarrollada por los estudiantes de ingeniería de sistemas Carlos
Eduardo Orozco Garcés y Juan Sebastián Vásquez Cantero.
Tema que tratar. Evaluación de Progresconfig: Proceso ágil para soportar la gestión de la configuración de software
en micro, pequeñas y medianas empresas desarrolladoras de software.
Moderador. Carlos Eduardo Orozco
Relator. Juan Sebastián Vásquez Cantero
Superv isor. César Jesús Pardo Calvache
Participantes. Ing. Sandra Lorena Buitrón Ruiz.
Ing. Wilson Alfredo Ortega Ordóñez.
Ing. Wilson Libardo Pantoja Yépez.
Ing. Daniel Eduardo Paz Perafán.
Objetiv o Evaluar la propuesta (Progresconfig) de acuerdo con el grado de aceptación o rechazo
general. por parte de los participantes en aspectos como: aplicabilidad a MiPyMEs, grado de
agilidad y aporte al área de mejora de procesos en desarrollo de software.
Tabla 79. Protocolo definido para la sesión realizada en la Universidad del Cauca.
159
Elemento. Descripción.
Fecha de 05 de octubre del 2017
realización.
Hora de inicio. 16:00
Hora de 17:58
finalización.
Lugar. SITIS SAS.
Activ idad. Evaluación de la propuesta desarrollada por los estudiantes de ingeniería de sistemas Carlos
Eduardo Orozco Garcés y Juan Sebastián Vásquez Cantero.
Tema que tratar. Evaluación de Progresconfig: Proceso ágil para soportar la gestión de la configuración de software
en micro, pequeñas y medianas empresas desarrolladoras de software.
Moderador. Carlos Eduardo Orozco
Relator. Juan Sebastián Vásquez Cantero
Superv isor. César Jesús Pardo Calvache
Participantes. Alberto Balcázar (Estudiante de último semestre de Ingeniería de Sistemas)
Ing. Víctor Carvajal.
Ing. María Amparo Hormiga.
Ing. José Milciades Ordoñez Argote.
Ing. Francisco Ramírez.
Ing. Julián Andrés Zúñiga.
Objetiv o Evaluar la propuesta (Progresconfig) de acuerdo con el grado de aceptación o rechazo
general. por parte de los participantes en aspectos como: aplicabilidad a MiPyMEs, grado de
agilidad y aporte al área de mejora de procesos en desarrollo de software.
Objetiv os Presentar una primera aproximación al proceso Progresconfig a un grupo experto en
específicos. procesos de desarrollo de software.
Interiorizar las apreciaciones brindadas por el equipo experto evaluador.
Llevar a cabo proceso de realimentación con la información obten ida de los
participantes durante la sesión.
160
Anexo 5: Caracterización del proceso evaluado durante
los grupos focales.
Proceso ágil para la gestión de la configuración de
software en micro, pequeñas y medianas empresas.
A continuación, se presenta la caracterización detallada de las actividades propuestas
para Progresconfig.
Niveles de capacidad
Para la definición de Progresconfig han sido propuestos 3 niveles de capacidad: (i)
esencial, (ii) complementario y (iii) realizado. Los niveles definidos representan la
segmentación del conjunto de actividades que una empresa debería adoptar de
manera incremental para implementar el proceso propuesto en este documento.
161
AP Administrador del Recurso encargado de la definición, planificación, y
proyecto. supervisión del proyecto que se va a llevar a cabo desde el
punto de vista administrativo.
ED Equipo de desarrollo. Recursos con los conocimientos técnicos necesarios para
llevar a cabo el desarrollo del proyecto en cualquiera de sus
fases. Se consideran miembros del equipo de desarrollo:
Analistas.
Desarrolladores de software.
Tester.
Administrador de bases de datos.
Técnicos en infraestructura.
Nota: El técnico de configuración que se presenta como un rol
con sus propias características también es considerado un
miembro del equipo de desarrollo.
EC Experto en configuración. El experto en configuración representa la autoridad de gestión
de la configuración durante el desarrollo del proyecto. Es el
recurso responsable de conocer el proceso en gestión de la
configuración y asegurar que el equipo de desarrollo lo lleva a
cabo de manera correcta.
Activ idades.
Descripción:
1. Inicio del flujo.
2. Definir la plantilla que se va a utilizar para la construcción de un plan formal para
162
llevar a cabo la gestión de la configuración de software.
3. Identificar los aspectos en el proyecto sensibles a gestión de la configuración.
4. Identificar las actividades que se van a llevar a cabo durante el proceso de gestión
de la configuración del proyecto.
5. Crear el PGCS.
6. Definir y actualizar el repositorio definido para almacenar el PGCS.
7. Socializar y hacer disponible el PGCS a las partes interesadas.
8. Fin del flujo.
Nota 1: El experto en configuración en conjunto con el administrador del proyecto deben
identificar y considerar los aspectos relevantes que deben ser incluidos en el PGCS. Se deben
tener en cuenta aspectos como: propósito, alcance del proyecto, responsables, actividades,
asignación de recursos, estimación de costos, dependencias con actividades relacionadas a
otros procesos en el proyecto, etc.
AP, EC T2: Identificar los responsables asociados a cada actividad definida en el PGCS.
Descripción:
1. Inicio del flujo.
2. Identificación de todas las actividades contenidas en el plan.
3. Identificación de las competencias de cada recurso.
4. Definir los recursos responsables de cada actividad durante el proceso de desarrollo.
5. Asignar los recursos responsables de cada actividad.
6. Fin del flujo.
163
GCSA.A2. Identificación de la configuración.
Descripción:
1. Inicio del flujo.
2. Identificar los IC que pertenecen al proyecto que deben ser gestionados y
controlados.
3. Seleccionar los IC que serán puestos bajo una configuración.
4. Documentar los IC seleccionados para configuración.
5. Identificar los IC que no tienen relación directa con el proyecto pero que deben ser
controlados.
6. Documentar los IC externos para configuración.
7. Fin del flujo.
Nota 1: Se recomienda categorizar los IC a través de criterios funcionales, por ejemplo:
Descripción:
1. Inicio del flujo.
2. Definir un esquema de nombrado para el IC.
3. Describir la función de cada IC.
4. Describir un prefijo único para identificar cada CI mediante criterios funcionales.
5. Clasificar el IC a través de criterios funcionales.
5.1. Se valida si el IC es de análisis y diseño.
5.2. Se valida si el IC es de desarrollo e implementació n.
5.3. Se valida si el IC es externo.
5.4. Se asigna un prefijo único a cada categoría de IC para identificar su criterio
funcional.
6. Asignar un identificador único a cada IC.
7. Identificar el responsable de cada IC.
8. Identificar las dependencias del IC actual con otro s IC.
164
9. Documentar el IC.
10. Fin del flujo.
Descripción:
1. Inicio del flujo.
2. Definir los repositorios para almacenar IC de análisis y diseño.
3. Definir los repositorios para almacenar los IC de desarrollo e impl ementación.
4. Definir los repositorios para almacenar los IC externos al proyecto.
5. Fin del flujo.
Nota 1: Para IC de análisis y diseño, es recomendable definir repositorios agrupados por sus
características, por ejemplo: crear un repositorio para el control de los casos de uso y sus
diferentes versiones con el paso del tiempo.
165
GCSA.A3. Establecer las líneas base.
Descripción:
1. Inicio del flujo.
2. Solicitar autorización del EC para la identificación de una línea base.
Si el EC autoriza la identificación de una línea base.
2.1. Sigue el flujo en el paso 3.
2.2. Identificar los IC que constituyen una línea base (ver GCSA.A2.T2).
2.3. Definir una convención de nombrado para identificar la línea base.
2.4. Definir los repositorios donde se almacenará línea base.
2.5. Asignar un responsable a la línea base.
2.6. Socializar y publicar la línea base a todas las partes interesadas.
Si el EC rechaza la identificación de una línea base.
2.1. Sigue el flujo en el paso 3.
3. Fin del flujo.
Salidas:
A3. S1: Descripción de las líneas base.
A3. S2: Definición de repositorios para almacenar las líneas base.
166
Diagrama de fluj o:
Descripción:
1. Inicio del flujo.
2. Definir el repositorio para las diferentes versiones de las líneas base.
3. Definir los criterios para crear nuevas líneas base o nuevas versiones de una línea
base existente.
4. Definir un documento de control de versiones.
5. Asignar un responsable para crear nuevas versiones de las líneas base.
6. Actualizar el repositorio definido.
7. Fin del flujo.
Nota 1: Para MiPyMEs_DS, es recomendable asignar a un miembro del equipo de desarrollo
como responsable de administrar el repositorio y la creación de nuevas versiones de una línea
base.
ED T2: Definir una estructura para el control de versiones para los IC de análisis y diseño.
Descripción:
1. Inicio del flujo.
2. Identificar las herramientas para el almacenamiento de todos los IC de análisis y
diseño.
3. Introducir herramientas para llevar el control de la trazabilidad de los IC de análisis y
diseño.
4. Actualizar los IC de análisis y diseño en las herramientas definidas.
5. Fin del flujo.
ED T3: Definir una estructura para el control de versiones para los IC de desarrollo e
implementación.
Descripción:
1. Introducir un sistema de integración continua.
2. Definir convenciones para los comentarios asociados a los cambios que se van a
subir a los repositorios de código fuente durante el proceso de desarrollo.
3. Introducir herramientas para automatizar la creación de nuevas versiones de una
línea base.
4. Actualizar los IC de desarrollo e implementación en las herramientas definidas.
5. Fin del flujo.
Salidas:
A4. S1: Política para el control de versiones.
A4. S2: Definición de repositorios para mantener la trazabilidad de las líneas base.
Diagrama de fluj o:
167
GCSA.A5. Mantener la descripción de los ítems de configuración.
168
Entradas:
A2. S2
A4. S2
Responsables. Tareas
EC T1: Identificar los ítems de configuración constituyentes (ICC)
Descripción:
1. Inicio del flujo.
2. Identificar el IC demasiado complejo.
3. Dividir el IC en ICC.
4. Definir el ICC (ver GCSA.A2.T2).
5. Actualizar el IC en el repositorio relacionado.
6. Socializar y publicar el IC actualizado a las partes interesadas.
7. Fin del flujo.
Salidas:
A5. S1: ICC documentados y relacionados.
Diagrama de fluj o:
Descripción:
1. Inicio del flujo.
2. Identificar los criterios que se deben tener en cuenta para la solicitud de un cambio.
3. Definir el repositorio para almacenar las peticiones de cambio.
4. Crear la plantilla para el control de cambios.
5. Actualizar el repositorio.
6. Hacer la plantilla disponible a todas las partes interesadas.
7. Fin del flujo.
Nota 1: La definición de una plantilla debería considerar elementos como: descripción del
cambio, estado actual del cambio, línea base o ítem de configuración afectado, dependencias
afectadas, recurso que solicita el cambio, recurso que aprueba o rechaza el cambio, fecha en
que se solicita el cambio, etc.
EC T2: Definir herramientas para gestionar las solicitudes de cambios en los IC.
Descripción:
1. Inicio del flujo.
2. Identificar herramientas que permitan llevar la trazabilidad de las solicitudes de
cambio solicitadas por el equipo de desarrollo, el dueño del producto o una parte
interesada.
3. Adaptar la plantilla definida para las solicitudes de cambios al uso de las
herramientas definidas.
4. Definir los responsables de administrar las herramientas para el control de las
solicitudes de cambio.
5. Fin del flujo.
EC T3: Definir una política de liberación y lanzamiento.
169
Descripción:
1. Inicio del flujo.
2. Definir los criterios que se deben cumplir para liberar una línea base a la siguiente
cadena del flujo durante el proceso de desarrollo.
3. Definir un responsabl e que garantice el cumplimiento de los criterios definidos.
4. Documentar los criterios definidos.
5. Definir repositorio para almacenar la política de liberación.
6. Almacenar la política en el repositorio correspondiente.
7. Hacer la política de liberación y lanzamiento disponible a las partes interesadas.
8. Fin del flujo.
Nota 1: Para empresas que siguen modelo de desarrollo en cascada (Análisis, Diseño,
Desarrollo, Pruebas, Lanzamiento, Producción, Mantenimiento) se puede seguir una política
de liberación lineal que defina los criterios necesarios para pasar de una fase del proceso a
otra. Por ejemplo: Definir los criterios que se deben cumplir para que una línea base de
desarrollo pueda ser liberada a pruebas.
Nota 2: Para empresas que siguen el modelo iterativo in cremental, espiral o guiado por
prototipos, se recomienda definir una política de liberaciones parciales e incrementales cuyo
parámetro de control sean listas de listo o de hecho que deben ser cumplidas para la liberación
de una fase a la que sigue.
DP, CCC, TC T4: Definir un protocolo para las solicitudes de cambio realizadas por un miembro del equipo
de desarrollo o el experto de configuración.
Descripción:
1. Inicio del flujo.
2. Identificar el cambio solicitado por el miembro del equipo de desarrollo.
3. El miembro del equipo de desarrollo diligencia el formato de control de cambios o
solicita el cambio a través de las plataformas definidas.
4. El miembro del equipo de desarrollo asigna la petición de cambio a la comisión de
control de la configuración.
5. La comisión de control de la configuración evalúa el cambio solicitado.
Si el cambio es aprobado:
5.1. La comisión de control de la configuración asigna un técnico de configuración
para que implemente el cambio solicitado.
5.2. El técnico de configuración realiza el cambio solicitado.
5.3. El técnico de configuración actualiza los IC afectados en los repositorios
relacionados.
5.4. Continúa en el paso 6 del flujo.
Si el cambio es rechazado:
5.1. La comisión de control de la configuración notifica al miembro del equipo de
desarrollo que la solicitud de cambio ha sido rechazada.
5.2. Continúa en el paso 6 del flujo.
6. Se actualiza la petición de cambio en el repositorio o la plataforma definida.
7. Fin del flujo.
DP, CCC, TC T5: Definir un protocolo para las solicitudes de cambio realizadas por los interesados o por un
cliente.
Descripción:
1. Inicio del flujo.
2. El dueño del producto identifica el cambio solicitado por el interesado o por el cliente.
3. El dueño del producto evalúa el impacto del cambio solicitado.
4. El dueño del producto diligencia el formato de control de cambios o solicita el cambio
a través de las plataformas definidas.
5. El dueño del producto asigna la petición de cambio a la comisión de control de la
configuración.
6. La comisión de control de la configuración evalúa el cambio solicitad o.
Si el cambio es aprobado.
6.1. La comisión de control de la configuración asigna un técnico de configuración
encargado de realizar el cambio.
6.2. El técnico de configuración realiza el cambio solicitado.
6.3. El técnico de configuración actualiza los IC afectados en los repositorios
relacionados.
6.4. Continúa en el paso 7 del flujo.
Si el cambio es rechazado:
6.1. La comisión de control de la configuración notifica al dueño del producto que el
cambio ha sido rechazado
6.2. Continua el paso 7 del flujo.
7. Se actualiza la petición de cambio en el repositorio o la plataforma definida.
8. Fin del flujo.
Salidas
A6. S1: Plantilla para la solicitud de cambios.
A6. S2: Creación del repositorio para controlar las solicitudes de cambio.
Diagrama de fluj o:
170
171
GCSA.A7. Proceso de auditoria
Descripción:
1. Inicio del flujo.
2. Definir los criterios para llevar a cabo una auditoría física.
2.1. Definir el repositorio para almacenar los documentos de auditoría física.
2.2. Definir la plantilla de evaluación para la auditoría física.
2.3. Definir los criterios de evaluación para el IC puesto bajo una auditoría física.
2.4. Definir la plantilla de reporte para informar los resultados de una auditoría física.
2.5. Actualizar los artefactos generados en el repositorio relacionado.
2.6. Continúa en el paso 4 del flujo principal.
3. Definir el repositorio para los documentos de auditoría funcional.
172
3.1. Definir el repositorio para almacenar los documentos de auditoría funcional.
3.2. Definir la plantilla de evaluación para la auditoría funcional.
3.3. Definir los criterios de evaluación para el IC puesto bajo una auditoría funcional.
3.4. Definir la plantilla de reporte para informar l os resultados de una auditoría
funcional.
3.5. Actualizar los artefactos generados en el repositorio relacionado.
3.6. Continúa en el paso 4 del flujo principal.
4. Hacer los repositorios relacionados disponibles a las partes interesadas.
5. Fin del flujo.
ED, EC T2: Llevar a cabo la auditoría física de los IC.
Descripción:
1. Inicio del flujo.
2. El experto en configuración (EC) identifica el ítem de configuración a evaluar.
3. Se designa un miembro del equipo de desarrollo para llevar a cabo la auditoría del
IC afectado.
4. Se valida que el ítem de configuración aprueba los criterios definidos para el proceso
de auditoría física.
Descripción:
1. Inicio del flujo.
2. El experto en configuración identifica la línea base a evaluar.
3. Se designan los miembros del equipo de desarrollo necesarios para llevar a cabo la
auditoría del IC afectado.
4. Se valida que la línea base aprueba los criterios definidos para el proceso de
auditoría funcional.
Descripción:
1. Inicio del flujo.
2. Identificar IC críticos.
173
3. Definir un repositorio para almacenar los respaldos.
4. Establecer mecanismos para la recuperación de información crítica que ha sido
respaldada.
5. Designar un técnico de configuración para llevar a cabo la creación y administración
de los respaldos.
6. El técnico de configuración crea respaldos de los IC críticos.
7. El técnico de configuración actualiza el repositorio relacionado.
8. Fin del flujo.
EC, TC T5: Resolver no conformidades en el proceso de auditoría.
Descripción:
1. Inicio del flujo.
2. Identificar el ítem de configuración inconsistente.
3. Se designa a un técnico de configuración para resolver las no conformidades del
ítem de configuración inconsistente.
4. El técnico de configuración aplica los cambios al IC inconsistente.
5. El técnico de configuración actualiza los repositorios relacionados.
6. El técnico de configuración notifica al experto en configuración que el cambio ha sido
realizado.
7. El experto en configuración identifica el ítem de configuración que ha sido
actualizado.
174
175
176
Tabla 81 . Progresconfig versión 1.0.
177