Está en la página 1de 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

Pilar Gómez-Gil

Instituto Nacional de Astrofísica, Óptica y Electrónica, coordinación de computación. Tonantzintla, Puebla

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.

DEPYM, AGIL, TDD.

Palabras clave

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

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

es facilitar a las organizaciones dedicadas al desarrollo Figura 1.- Modelo de procesos de TDD [3].

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.

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

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

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

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.

de software La Figura 1 muestra el diagrama general del modelo DEPYM. Figura 1.- Diagrama en

Figura 1.- Diagrama en bloques del modelo DEPYM

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

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.

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

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

   

Factores ambientales del cliente

1

Configuración inicial

Definición de arquitectura

Requerimientos no funcionales

Estándar de codificación

Administración de la configuración del software

Plan de comunicación

   

Determinar roles

2

Planeación

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

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

   

Llenar la forma de historias de usuario

   

Identificar las historias de usuario

3

Diseño

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

   

Planear el siguiente entregable

6

Cierre

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

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

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.

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

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: acenteno@uv.mx

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: pgomez@acm.org

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.