03_05

8
QUINTO COLOQUIO INTERDISCIPLINARIO DE DOCTORADO DEPYM: Metodología para la Mejora de Procesos de Software con un enfoque de Desarrollo Dirigido por Pruebas Adolfo Centeno-Téllez Universidad Veracruzana, USBI Campus Ixtac, Ixtaczoquitlán Veracruz México [email protected] Pilar Gómez-Gil Instituto Nacional de Astrofísica, Óptica y Electrónica, coordinación de computación. Tonantzintla, Puebla [email protected] Resumen El presente trabajo describe una metodología Ágil para la mejora de procesos de software llamada DEPYM. Ésta metodología de desarrollo fue creada para ser usada en el proceso de Desarrollo y Mantenimiento de software y está basada en el desarrollo dirigido por pruebas. La metodología serviría para que los desarrolladores de software de pequeñas empresas mexicanas aprovechen la agilidad del desarrollo dirigido por pruebas sin sacrificar la calidad solicitada por las normas mexicanas. El artículo incluye las bases teóricas sobre las que se basa el proyecto así como los resultados obtenidos a la fecha. Palabras clave DEPYM, AGIL, TDD.

Transcript of 03_05

Page 1: 03_05

QUINTO COLOQUIO INTERDISCIPLINARIO DE DOCTORADO

DEPYM: Metodología para la Mejora de Procesos de Software con un enfoque de Desarrollo Dirigido por Pruebas

Adolfo Centeno-Téllez

Universidad Veracruzana, USBI Campus Ixtac, Ixtaczoquitlán Veracruz México [email protected]

Pilar Gómez-Gil Instituto Nacional de Astrofísica, Óptica y Electrónica, coordinación de computación. Tonantzintla, Puebla

[email protected]

Resumen El presente trabajo describe una metodología Ágil para la mejora de procesos de software llamada DEPYM. Ésta metodología de desarrollo fue creada para ser usada en el proceso de Desarrollo y Mantenimiento de software y está basada en el desarrollo dirigido por pruebas. La metodología serviría para que los desarrolladores de software de pequeñas empresas mexicanas aprovechen la agilidad del desarrollo dirigido por pruebas sin sacrificar la calidad solicitada por las normas mexicanas. El artículo incluye las bases teóricas sobre las que se basa el proyecto así como los resultados obtenidos a la fecha.

Palabras clave

DEPYM, AGIL, TDD.

Page 2: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

2

Introducción Los problemas presentes en las empresas de la construcción de software mexicanas están íntimamente relacionados con la falta de procesos maduros y repetibles usados en la elaboración de sus productos. Esta falta de procesos institucionalizados se refleja en la mala calidad de los productos, entregas fuera de calendario y presupuestos rebasados. Las Metodologías Ágiles son un ejemplo de prácticas específicas para desarrollar software. La programación extrema (XP) es una disciplina de desarrollo de software basada en la simplicidad, comunicación, retroalimentación y entregas frecuentes. XP utiliza prácticas sencillas a ser utilizadas por el equipo de desarrollo y con suficiente retroalimentación para motivar al equipo a conocer el estado real del proyecto [1]. El desarrollo dirigido por pruebas (Test Driven Development, TDD) es una de las 12 prácticas claves de la Programación Extrema. En TDD los desarrolladores de software "prueban primero, después codifican," enfocando-se inicialmente en la verificación y validación de los requerimientos de software, mediante la construcción de pruebas unitarias automatizadas. En este paradigma, el diseño evoluciona como un nuevo código que es escrito para satisfacer la pruebas que fallaron [2]. La figura 1 muestra el modelo de procesos del desarrollo dirigido por pruebas. Moprosoft es el modelo de procesos para la industria de software mexicana que fue creado para apoyar en la solución de la problemática de la crisis de software [4]. El objetivo de Moprosoft es facilitar a las organizaciones dedicadas al desarrollo

Figura 1.- Modelo de procesos de TDD [3]. y mantenimiento de software la adopción de las mejores prácticas reconocidas internacionalmente a través de modelos como: SW-CMM, CMMi, PSP, TSP, ISO/IEC 15504, PMBOK y SWEBOK. De acuerdo a la norma Mexicana Moprosoft los procesos para la creación de software se agrupan en 3 categorías: Alta Dirección, Gestión de Procesos y Nivel Operativo [4]. Los procesos que define Moprosoft para cada categoría son: Alta Dirección: Gestión de Negocio Gestión: Gestión de Procesos, Gestión de Proyectos, Gestión de Recursos (Recursos Humanos y Ambiente de Trabajo, Bienes Servicios e Infra-estructura, Conocimiento de la organización) Operación: Administración de Proyectos Específicos, Desarrollo y Mantenimiento de Software. Hasta Junio del 2009 se habían registrado 138 empresas evaluadas en algún proceso de calidad en 20 estados de la República Mexicana tales como: Aguascalientes, Baja California, Chihuahua, Coahuila, Colima, DF, Hidalgo, Jalisco, México, Michoacán, Nuevo León, Oaxaca, Puebla, Querétaro, Sinaloa, Sonora, Tlaxcala, Veracruz, Yucatán y Zacatecas [5]. La tabla 1 muestra la distribución de las empresas mexicanas evaluadas en 3 normas de calidad, donde puede notarse que existen 90 empresas de las 138 evaluadas que han sido aprobadas en la norma mexicana NMX-I-059/02-NYCE-2005, lo que constituye el 65.22% del total nacional evaluado. De las 90 empresas Moprosoft, 86 se encuentran solamente en el nivel 1, lo que representa el 63.32% de las empresas evaluadas. Entonces el 62.32% de empresas mexicanas cuentan con procesos mínimos requeridos para terminar un proyecto de software, y no consideran aún aspectos más formales de calidad, costos y tiempos de entrega.

Page 3: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

3

Tabla 1. Empresas Certificadas en Modelos de Calidad a Junio 2009 [5].

Materiales y métodos

La Metodología de Desarrollo Dirigido por Pruebas y Mejora de procesos para PyMEs toma las ventajas del framework TDD definido por Kent Beck [6] y se inspira a las especificaciones del modelo de procesos Moprosoft en su proceso de Desarrollo y mantenimiento de software (DMS). El modelo DEPYM esta es un modelo de mejora de procesos de software Ágil que incluye: Scripts, formas y estándares. Los roles que propone el modelo DEPYM para el proceso de desarrollo de software son: Líder de proyecto, arquitecto de software e ingeniero de software La Figura 1 muestra el diagrama general del modelo DEPYM.

Figura 1.- Diagrama en bloques del modelo DEPYM

Modelo/Nivel 1 2 3 4 5 Total CMM 0 2 6 2 4 14 CMMi 0 14 13 2 7 36 Moprosoft 86 3 1 0 0 90

Page 4: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

4

En esta sección se desarrolla el script general que rige el ciclo de vida de software del modelo DEPYM. Se analiza el patrón de procesos a usar, así como cada una de las etapas que conforman cada entregable: Planeación, requerimientos, diseño, generación de pruebas, codificación, pruebas de integración y cierre. También se analiza el script de procesos para llevar a cabo las reuniones. Patrón de proceso Para la definición de los scripts del modelo DEPYM se sigue un patrón de procesos que deben cumplir siempre con los siguientes elementos:

• Nombre del proceso • Propósito • Responsables del proceso • Criterios de entrada • Tareas • Criterios de salida

Dentro del modelo DEPYM se definen criterios y documentos, para efectos de sintaxis los criterios se pondrán en cursivas y los documentos en negritas. La figura 2 muestra el script del proceso general de DEPYM.

Page 5: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

5

Nombre: Script General de DEPYME

Propósito: Guiar al Líder del proyecto y al equipo en todo el proceso de desarrollo del proyecto

Responsable del proceso: Líder del proyecto

Criterios de entrada • Proyecto autorizado por el responsable de Gestión de

Negocio

• Proyecto alineado a la misión de la empresa

• Descripción breve del proyecto

• Políticas del proyecto, roles, integrantes del equipo, giro de la empresa, grado de confidencialidad, factores de comunicación, horarios, prioridad del proyecto

Paso Actividad Descripción

1 Configuración inicial • Factores ambientales del cliente

• Definición de arquitectura

• Requerimientos no funcionales

• Estándar de codificación

• Administración de la configuración del software

• Plan de comunicación

2 Planeación • Determinar roles

• Alcances del proyecto

• Determinar el equipo de trabajo

• Establecimiento de procesos mínimos para terminar el proyecto en el costo, tiempo y calidad esperado.

2 Requerimientos • Identificar las necesidades del cliente para

convertirlas en historias de usuario

• Realizar un análisis de tiempos

• Restricciones de presupuestos

• Valor planeado que representa cada historia

Page 6: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

6

• Llenar la forma de historias de usuario

3 Diseño • Identificar las historias de usuario

• Para cada una de ellas se definen cada una de las tareas necesarias para cumplir dicha historia.

• Así mismo de analizan los riesgos, prioridades, esfuerzo requerido y valor planeado de cada tarea

4 Generación de pruebas unitarias • Analizar cada una de las tareas de las historias de

usuario y se generan las pruebas que deberán pasarse para cumplir con los requerimientos de esa tarea.

• Se llena la forma n para cada tarea en base al patrón Arranging-Act-Assert [7]

5 Codificación • Realizar el código más simple que funcione y haga

pasar las pruebas definidas en la etapa anterior

• Refactorizar el código para mejorar la funcionalidad existente.

6 Pruebas de integración • .Se prueba la funcionalidad de todas las historias de

usuario del entregable y se integran al código base

6 Cierre • Planear el siguiente entregable

• Realizar un análisis del proceso.

• Si el entregable actual fuera el cierre del proyecto se pasa a la etapa de postmorten para realizar el proceso de mejora de todo el proyecto

Criterios de salida 1. Planeación del siguiente entregable

2. Estándar de codificación actualizado

3. Documento de Configuración de software actualizado (SCM)

4. Definición de las historias de usuario del siguiente release

5. Plan de Riesgos actualizado para el siguiente release

6. Plan de comunicación actualizado

Figura 2.- Script general del proceso DEPYM

Page 7: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

7

Resultados y discusión Las contribuciones de la investigación son las siguientes: • Creación una metodología Ágil de desarrollo de software adaptable las empresas mexicanas y basado en las

mejores prácticas de los métodos Ágiles • Procesos y formas adaptables a empresas pymes y a Moprosoft • Definición de procesos y plantillas para la definición de la carta del proyecto • Procesos y definición de la forma de historia de usuario • Procesos y definición de la forma de la tarea usando el patrón Arranging-Act-Assert. • Actualmente se están realizando pruebas piloto de implementación del modelo en 3 proyectos reales:

o Proyecto de logística para una distribuidora de la compañía de alimentos Unilever o Proyecto para creación de una herramienta de planeación estratégica basado en el modelo SIGMIL

(Sistema Integral de Gestión y Medición de Indicadores de Logro) en convenio con el Departamento de Postgrado e Investigación del Instituto Tecnológico de Orizaba.

o Proyecto para la administración de movimientos de equipos de exploración y extracción en plataformas petroleras.

Conclusiones

Al momento de la publicación de este artículo, se tienen los siguientes avances en la investigación: • Primera versión de la metodología DEPYM. • Caracterización de las empresas PYMES de desarrollo de software. • Determinación del dominio de aplicación de la metodología.

Actualmente se está refinando el modelo y analizando las métricas resultantes de los 3 experimentos, como trabajo futuro se espera la creación de la herramienta web que automatice el modelo.

Page 8: 03_05

Adolfo Centeno-Téllez, Pilar Gómez-Gil ________________________________________________________________________________________

8

Referencias

1 Ruvalcaba Mara, Software Guru Edición Enero-Febrero 2005, México Pág. 4. 2 Jones Christopher G. Test-driven development goes to school. CCSC: Rocky Mountain Conference. Oct. 2004 3 Nichiappan Nagappan et al Realizing quality improvement through test driven development: results and experiences of four industrial teams.” Empirical Software Engineering, Vol. 13, pp. 289-302. 4 Gómez-Gil Pilar, MOPROSOFT: Un Camino Hacia el Éxito Mundial en el Desarrollo del Software Mexicano. Memorias de la Semana de Informática 2007. Instituto Tecnológico de Puebla, Oct. 2007. 5 Sistema Nacional de Indicadores de la Industria de TI (SNIITI), Empresas Certificadas en Modelos de Calidad, fecha de consulta 16.04.09, disponible en: http://www.edigital.economia.gob.mx/infoagent.aspx?docid=14 6 Beck Kent, “Test Driven Development by example.” 7 Conery, Guthrie, Haak, Hanselman. Professional ASP NET MVC 1.0, 2009. 8 Centeno, Adolfo. Propuesta de Proyecto Doctoral en Ingeniería de Software. Centro interdisciplinario de Posgrado. Universidad Popular Autónoma del Estado de Puebla, México. 2009

Acerca del autor

El M.C. Adolfo Centeno Téllez estudió la licenciatura en Informática en el Instituto Tecnológico de Orizaba. Posteriormente se graduó como Maestro en Ciencias Computacionales en la misma institución. Actualmente cursa el Doctorado en Ingeniería de Software en la Universidad Popular Autónoma del estado de Puebla y se desempeña como profesor en la Universidad Veracruzana, Campus Ixtac. E-mail: [email protected] La Dra. Pilar Gómez Gil obtuvo una licenciatura en Ingeniería en Sistemas Computacionales de la Universidad de las Américas A.C. (hoy Universidad de las Américas, Puebla) en 1983, en Puebla, México; una maestría en Ciencias de la Computación de Texas Tech University (EUA) en 1991, y un doctorado en Ciencias de la Computación de Texas Tech University (EUA) en 1998. Actualmente se desempeña como Investigadora Titular en la Coordinación de Computación del Instituto Nacional de Astrofísica, Óptica y Electrónica. E-mail: [email protected]

Autorización y renuncia

Los autores del presente artículo autorizan a la Universidad Popular Autónoma del Estado de Puebla (UPAEP) para publicar el escrito en el libro electrónico del Quinto Coloquio de Investigación Interdisciplinaria de Posgrado, en su edición 2012. La UPAEP o los editores no son responsables ni por el contenido ni por las implicaciones de lo que está expresado en el escrito.