De nición y Adaptación de un Proceso de Desarrollo de ...

162

Transcript of De nición y Adaptación de un Proceso de Desarrollo de ...

Page 1: De nición y Adaptación de un Proceso de Desarrollo de ...

De�nición y Adaptación de un Proceso de

Desarrollo de Software Efectivo en el Área de

Informática Educativa. Caso de Estudio: Grupo de

Desarrollo de LIDIE - Proyecto AVA

Trabajo de Tesispresentado al

Departamento de Ingeniería de Sistemas y Computación

por

Erick Escorcia

Asesores: Nicolás López, Rubby Casallas

Para optar al título deIngeniero de Sistemas

Ingeniería de Sistemas y ComputaciónUniversidad de Los Andes

Enero 2006

Page 2: De nición y Adaptación de un Proceso de Desarrollo de ...

A mi mamá

y a mis amigos,

que siempre han estado a mi lado en todo momento,

y a mi abuelita, que en estos momentos me cuida desde el cielo.

ii

Page 3: De nición y Adaptación de un Proceso de Desarrollo de ...

Prefacio

La motivación para este proyecto se debe a tres razones principales. La primera

razón fue poder aportar todo el conocimiento que adquirí mediante mis estudios

a una situación real, y que este aporte permitiera mejorar dicha situación. La se-

gunda razón fue diseñar la propuesta para este proyecto como una idea propia que

se generó por la constante observación del comportamiento de LIDIE, durante los

diferentes periodos de tiempo en los que trabajaba con ellos. Finalmente, la tercera

y última razón, y no menos importante, fue encontrar el apoyo necesario para que

está propuesta viera la luz, gracias al apoyo de LIDIE y QualDev.

iii

Page 4: De nición y Adaptación de un Proceso de Desarrollo de ...

Reconocimientos

Quiero agradecer a Luz Adriana Osorio por sus críticas objetivas, su disponibi-

lidad en todo momento y sus enseñanzas en el área de Pedagogía y Educación, a

Carlos Noguera por ser un guía en la construcción de esta propuesta, a Katalina

Marcos por su corto pero importante apoyo, a Rubby Casallas por apoyar la conti-

nuación de este trabajo y proveer los recursos necesarios para la �nalización de este

proyecto, a Sergio Rodriguez por su disponibilidad para resolver mis constantes pre-

guntas y ser un gran apoyo en la realización de este trabajo, a Guillermo Aristizábal

por su disponibilidad e interés en la ejecución de esta propuesta, a Andrés Rubio

por ayudarme a aliviar la carga de trabajo en momentos donde el tiempo no era

su�ciente, a Nicolás López por sus sugerencias, a Juan Pablo Quiroga por ser una

gran fuente de información y conocimiento y a Rafael García por el apoyo brindado

a mis amigos en momentos críticos.

También quiero agradecer a mi mamá, mi única familia, que creyó en mi como

profesional. Le agradezco mis amigos por esos momentos agradables y desagradables,

en especial a Patricia y a Sonia por ser ejemplos de compromiso y fortaleza en lo

que se involucran, a Frank por seguir sus convicciones, a Ricardo por ser un buen

compañero de trabajo y ser ejemplo de liderazgo y determinación, a Sebastian por

no abrumarse ante la adversidad y verle lo bueno a todo, a Saulo y Camilo por ser

ejemplos de profesionalismo y compromiso en los proyectos en los que se envuelven

y por último y no menos importante, a Jose por ser ejemplo de superación y de

compromiso con sus amigos y con su carrera.

Finalmente, agradezco a Dios por proveerme de su inmensa sabiduría en los

momentos más difíciles.

iv

Page 5: De nición y Adaptación de un Proceso de Desarrollo de ...

Tabla de Contenido

Dedicatoria ii

Prefacio iii

Reconocimientos iv

Lista de Figuras viii

Resumen ix

Objetivos 1

I. Introducción 2

II. Arquitectura de TI 4

III. Modelos de Ciclo de Vida de Software 6

3.1. De�nición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2. Procesos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3. Tipos de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.1. Modelos Centrados en la Actividad . . . . . . . . . . . . . . 11

3.3.2. Modelos Centrados en la Entidad . . . . . . . . . . . . . . . 20

3.4. Marco de Comparación de los Modelos de Ciclo de Vida . . . . . . . 22

IV. Diseño de Procesos 25

V. Caso de Estudio: LIDIE 28

5.1. De�nición de LIDIE . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.1.1. Grupos Interdisciplinarios . . . . . . . . . . . . . . . . . . . . 29

5.1.2. El Proyecto AVA . . . . . . . . . . . . . . . . . . . . . . . . . 30

v

Page 6: De nición y Adaptación de un Proceso de Desarrollo de ...

5.2. Estado Actual de LIDIE . . . . . . . . . . . . . . . . . . . . . . . . 37

5.2.1. Arquitectura de TI . . . . . . . . . . . . . . . . . . . . . . . 37

5.2.2. Características del MCVS del Proceso Actual . . . . . . . . . 40

5.2.3. Evaluación del Proceso de Desarrollo de Software . . . . . . . 41

VI. Construcción del Proceso 48

6.1. Marco para Caracterizar a LIDIE . . . . . . . . . . . . . . . . . . . 48

6.1.1. Identi�cación de las Características del Proceso Deseado . . . 48

6.1.2. Selección del Proceso . . . . . . . . . . . . . . . . . . . . . . 49

6.2. QualDev Community y la Adaptación del Proceso . . . . . . . . . . 49

6.2.1. QualDev Community . . . . . . . . . . . . . . . . . . . . . . 50

6.2.2. El Modelo IDEAL . . . . . . . . . . . . . . . . . . . . . . . . 50

6.2.3. Ejecución de la Adaptación del Proceso . . . . . . . . . . . . 51

VII.PAL: Proceso de Construcción de Software de LIDIE 60

7.1. De�nición del Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . 60

7.2. Fases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.2.1. LANZAMIENTO . . . . . . . . . . . . . . . . . . . . . . . . 61

7.2.2. ESTRATEGIA . . . . . . . . . . . . . . . . . . . . . . . . . . 69

7.2.3. PLANEACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . 81

7.2.4. ANÁLISIS DE REQUERIMIENTOS . . . . . . . . . . . . . 86

7.2.5. DISEÑO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

7.2.6. IMPLEMENTACIÓN . . . . . . . . . . . . . . . . . . . . . . 106

7.2.7. PRUEBAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.2.8. POSTMORTEM . . . . . . . . . . . . . . . . . . . . . . . . . 120

7.3. Manual de Uso del Proceso . . . . . . . . . . . . . . . . . . . . . . . 129

7.3.1. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . 129

7.3.2. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

vi

Page 7: De nición y Adaptación de un Proceso de Desarrollo de ...

7.4. Uso del Proceso en el Proyecto AVA . . . . . . . . . . . . . . . . . . 131

VIII.Evaluación de Herramientas 134

8.1. Herramientas Actuales . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.1.1. Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

8.1.2. Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . 135

8.2. Herramientas Sugeridas . . . . . . . . . . . . . . . . . . . . . . . . . 137

IX. Resultados 138

X. Conclusiones 141

XI. Trabajo a Futuro 143

Referencias 145

Anexos 148

vii

Page 8: De nición y Adaptación de un Proceso de Desarrollo de ...

Lista de Figuras

1. Tabla Comparativa de Actividades de MCVSs I . . . . . . . . . . . . 22

2. Tabla Comparativa de Actividades de MCVSs II . . . . . . . . . . . . 22

3. Tareas vs. Roles I: Tareas Generales Transversales . . . . . . . . . . . 33

4. Tareas vs. Roles II: Tareas de Análisis Educativo . . . . . . . . . . . 33

5. Tareas vs. Roles III: Tareas de Diseño . . . . . . . . . . . . . . . . . . 34

6. Tareas vs. Roles IV: Tareas de Diseño, Tareas de Desarrollo y Montaje 35

7. Tareas vs. Roles V: Tareas de Entrega y Postmortem . . . . . . . . . 35

8. Diagrama de Gant del Proceso de Desarrollo de Software en Lidie porEntregables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

9. Proceso PAL utilizado por el grupo de Desarrollo dentro del Procesode Construcción de un AVA. También se puede observar como seríael proceso utilizado por el grupo de Diseño Instruccional si tambiénutilizará el proceso PAL . . . . . . . . . . . . . . . . . . . . . . . . . 133

10. Problemas del Grupo de Desarrollo de LIDIE, pertenecientes a losprocesos de Administración. . . . . . . . . . . . . . . . . . . . . . . . 140

11. Problemas del Grupo de Desarrollo de LIDIE, pertenecientes a losprocesos de Desarrollo y a los procesos Transversales. . . . . . . . . . 140

viii

Page 9: De nición y Adaptación de un Proceso de Desarrollo de ...

Resumen

Este trabajo se basa en el análisis de los diferentes modelos de ciclo de

vida de software, con el �n de desarrollar un proceso de construcción de software

tomando como base un caso de estudio especí�co: el grupo de Desarrollo de LIDIE

y su proyecto AVA, para que el proceso resultante sea la base de su mejoramiento

continuo.

ix

Page 10: De nición y Adaptación de un Proceso de Desarrollo de ...

Objetivos

De�nir un proceso de construcción de Software para el grupo de Desarrollo de

LIDIE.

Adaptar una herramienta que soporte el proceso diseñado para el grupo de

Desarrollo de LIDIE.

Adaptar y ajustar el proceso diseñado a las necesidades identi�cadas de LIDIE

y de su grupo de Desarrollo.

1

Page 11: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo I

Introducción

Esta propuesta surgió de la observación durante periodos de dos meses más o

menos de una empresa, LIDIE. Una vez presentada la propuesta de mejorar su

proceso de desarrollo de software, fue necesario establecer un marco teórico fuerte y

un buen análisis del estado actual del grupo de Desarrollo para que la propuesta fuera

aprobada, una vez entregadas estas investigaciones, era necesario tener experiencia

en la adaptación de procesos para poder comenzar el mejoramiento del proceso de

desarrollo, por lo cual se solicitó el apoyo de QualDev. Gracias a la experiencia de

QualDev, se construyo el proceso a medida que se iba adaptando a las necesidades

de LIDIE.

Durante los capítulos siguientes se explica el proceso descrito anteriormente en

detalle, los primeros capítulos comprenden el marco teórico y el análisis de LIDIE los

cuales justi�can esta propuesta. En el Capítulo 2 - Arquitectura de TI, se justi�ca la

construcción del proceso para la etapa en la que se encuentra LIDIE como empresa,

luego en el Capítulo 3 - Modelos de Ciclo de Vida de Software se explica y se

establecen de�niciones que se van a utilizar a través de todo este documento sobre

los procesos y tipos de procesos de construcción de software para �nalmente hacer

una comparación de los modelos más conocidos, en el Capítulo 4 - Diseño de Procesos

se identi�can una serie de aspectos a tener en cuenta cuando se diseñan procesos, y

en el Capítulo 5 - Caso de Estudio: LIDIE se hace un análisis del funcionamiento de

LIDIE, como opera el equipo de trabajo en uno de sus proyectos más importantes,

especialmente las actividades del grupo de Desarrollo que están funcionando, las que

no o no existen y los objetivos y metas que tienen o esperan alcanzar.

2

Page 12: De nición y Adaptación de un Proceso de Desarrollo de ...

La segunda parte de este documento se caracteriza por ser la parte práctica de

esta propuesta donde se aplica todo lo de�nido, especi�cado y analizado en loa ca-

pítulos anteriores. En el Capítulo 6 - Construcción del Proceso se diseña un proceso

basado en los problemas y las necesidades del caso de estudio especi�cado, en los

procesos diseñados por QualDev los cuales se justi�can en su experiencia como grupo

de construcción de software. Luego en el Capítulo 7 - PAL: Proceso de Construcción

de Software de LIDIE se hace la de�nición del proceso junto con su manual de uso,

mientras que en el Capítulo 8 - Evaluación de Herramientas se hace un análisis de

las herramientas que actualmente utilizan para soportar su proceso de desarrollo,

se hacen una serie de sugerencias de como utilizar mejor dichas herramientas y se

hace una serie de sugerencias de herramientas ´necesarias para apoyar procesos es-

pecí�cos y mejorarían el uso del proceso. En el Capítulo 9 - Resultados se presentan

los resultados obtenidos de la ejecución de este proyecto, en especial de la adapta-

ción del proceso. A continuación, en el Capítulo 10 - Conclusiones se presentan las

conclusiones de este trabajo, y �nalmente en el Capítulo 11 - Trabajo a Futuro se

presentan los diferentes campos en los que se puede extender el trabajo realizado en

este proyecto.

3

Page 13: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo II

Arquitectura de TI

El desarrollo de un producto de software requiere un proceso de�nido para que sea

efectivo y e�ciente. Antes de de�nir una metodología es importante que la empresa

donde se va implantar cumpla una serie de requisitos: Que tenga una de�nición clara

y concreta de si misma (misión, visión, objetivos, metas, estrategias), el segundo paso

es asegurarse que la razón de ser de la empresa provea una ganancia de acuerdo a

las metas establecidas, y por último es necesario que la empresa desee progresar,

evolucionar y mejorarse continuamente para destacarse de la competencia. Una vez

establecido estos objetivos es necesario que la empresa identi�que el valor de la

tecnología y la forma en que puede favorecer a la empresa. Una vez hecho esto

y que la empresa haya identi�cado efectivamente la necesidad de la Tecnología de

Información (TI), en su empresa, es importante de�nir la Arquitectura de TI que

la empresa va a tener.

La Arquitectura de TI [Ros03] es la organización lógica de los aplicativos, datos y

la infraestructura tecnológica, incluyendo el conjunto de políticas y decisiones técni-

cas que soportan las estrategias de la organización. Las capacidades y la limitaciones

en TI se deducen de la arquitectura de TI. La arquitectura de TI especi�ca lo que

la Tecnología de Información permite hacer al negocio.

Para desarrollar la arquitectura de TI de una empresa se debe de�nir los objetivos

estratégicos de la empresa, de�nir las capacidades claves de TI para alcanzar esos

objetivos y de�nir las políticas y decisiones técnicas requeridas para el desarrollo de

esas capacidades.

El desarrollo de una arquitectura de TI, consta de 4 etapas:

4

Page 14: De nición y Adaptación de un Proceso de Desarrollo de ...

Arquitectura de Aplicativos Tipo Silo. Busca optimización funcional mediante

aplicativos individuales por unidad de negocio.

Arquitectura de Tecnología Estandarizada. Busca e�ciencia en TI, mediante la

estandarización de la tecnología incluyendo centralización.

Arquitectura de datos racionalizados. Busca optimización de los procesos me-

diante la expansión a la estandarización de datos y procesos.

Arquitectura Modular. Busca elecciones estratégicas mediante estándares em-

presariales con aplicativos levemente acoplados con componentes de datos y

tecnología que preservan los estándares globales permitiendo diferencias loca-

les.

Para crear una capacidad en arquitectura de TI se debe concentrar los esfuerzos

de su arquitectura en los procesos claves del negocio, no saltarse etapas (El orden es:

estandarización de datos, luego estandarización de procesos y �nalmente desarrollo

de módulos y servicios.), reconocer que en organizaciones complejas pueden coexis-

tir diversas arquitecturas en etapas diferentes, institucionalizar su arquitectura a

través de los mecanismos apropiados de gobierno de TI, mantener el diálogo y su

alineamiento con las estrategias del negocio y desarrollar una capacidad interna de

de�nición y control de la arquitectura.

Este trabajo se enfoca en la tercera etapa, por lo cual una estandarización de

tecnología es necesaria para el establecimiento de una estandarización de procesos

de una empresa, lo cual LIDIE posee.

5

Page 15: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo III

Modelos de Ciclo de Vida de Software

3.1. De�nición

Un Modelo de Ciclo de Vida de Software (MCVS) [Ltd05], es la descripción de

los principales componentes del desarrollo de software, y su interacción entre ellos.

Puede ser representado grá�camente para facilitar su comprensión y entendimiento.

Inicialmente, no existía un MCVS a seguir, por lo cual para el desarrollo de

proyectos pequeños esta carencia de un modelo a seguir era su�ciente, pero al rea-

lizar un proyecto grande, esa carencia se convertía en un proceso caótico que no

era su�ciente debido a la necesidad de trabajar con un grupo grande de personas,

por lo tanto la división de trabajo era indispensable. Debido a la carencia de un

procedimiento a seguir, la efectividad y e�ciencia del equipo de trabajo recaía sobre

sus integrantes, por lo cual se debía tener un equipo de desarrollo excelente. Ante

la necesidad de tener un �equipo de desarrollo perfecto�, lo cual es prácticamente

imposible, se de�nió la forma de trabajo en estándares y de esta forma nacieron los

MCVS.

Un MCVS establece reglas y procedimientos claros para el desarrollo de Software,

facilitando la comprensión de la forma en la cual se va a trabajar para desarrollar

un determinado artefacto1 , las reglas y procedimientos utilizados son:

De�nición del trabajo a realizar. Para poder desarrollar un artefacto, es impor-

tante saber cual es la necesidad que se va a satisfacer, identi�cando claramente

todas las variables que lo afectan y los recursos a utilizar, teniendo en cuenta

1Objeto que ha sido manipulado por el hombre, en este caso, es el producto del desarrollo deun proceso o subproceso

6

Page 16: De nición y Adaptación de un Proceso de Desarrollo de ...

siempre las especi�caciones dadas por el cliente.

División del trabajo en piezas manejables. Al desarrollar un artefacto, espe-

cialmente uno de grandes dimensiones, es claro que para poder realizar un

trabajo e�ciente es necesaria una distribución de trabajo que evite con�ictos

entre ellos. Por otro lado, una división de trabajo se debe hacer de una manera

efectiva, para evitar dependencia entre las tareas de sus miembros y de esta

forma retrasar el desarrollo del artefacto, debe permitir evaluar el desarrollo

del artefacto, dividiendo el trabajo en etapas, y evaluar el desarrollo del arte-

facto al �nalizar cada etapa, mediante un seguimiento de la manera como se

está construyendo el producto.

Determinar las métricas mediante las cuales el desempeño del proyecto será

evaluado. Las métricas son un factor importante para evaluar tanto a los de-

sarrolladores como las herramientas utilizadas, la infraestructura de trabajo

y los recursos disponibles. Su importancia radica en que mediante el uso de

métricas, se puede identi�car los problemas existentes al observar que aspec-

tos medidos tienen cali�caciones bajas y buscar soluciones viables, en cuanto

a las cali�caciones aceptables o buenas se puede investigar nuevas alternativas

para mejorarlas (Mejoramiento continuo). De esta forma no solo se puede me-

jorar las condiciones de trabajo, sino en algunos casos se puede innovar para

aumentar el desempeño de los proyectos.

De�nir la interacción de las unidades de trabajo. Mientras una unidad de tra-

bajo es un conjunto de tareas desarrolladas, mediante las cuales un conjunto de

recursos son transformados en un artefacto; su interacción con otras unidades

de trabajo se hace mediante el desarrollo de un conjunto de actividades sobre

el artefacto que cada unidad desarrolla para poder llegar al producto �nal. Es-

ta interacción puede ser el desarrollo de un artefacto mediante la construcción

individual de artefactos para luego integrarlos o añadirle más características a

artefactos previamente desarrollados en unidades de trabajo anteriores.

7

Page 17: De nición y Adaptación de un Proceso de Desarrollo de ...

Especi�car como se va a almacenar los artefactos (Administración de con-

�guraciones). Cada artefacto resultante debe estar almacenado en un sitio

especi�co el cual debe ser conocido y de fácil acceso para facilitar las consultas

(artefactos existentes que son similares a los que se están realizando), entregas

(artefactos �nales listos para su entrega al cliente), modi�caciones posteriores

y evaluaciones (Como ha sido la efectividad del producto).

De�nir la estrategia de desarrollo a utilizar (Planeación). Debe ser establecida

la forma en la cual se va a realizar el trabajo y el tiempo destinado, deben

ser establecidos para evitar ambigüedades durante el tiempo de desarrollo del

producto, mediante un seguimiento constante de lo realizado contra lo planea-

do.

Comunicar la estrategia de desarrollo a las personas interesadas (Clientes,

superiores, compañeros de trabajo). La comunicación entre todos los partici-

pantes del grupo es fundamental para el correcto desarrollo de un producto,

para poder hacer un seguimiento de la elaboración correcta del producto y

para el control de riesgos. Este control de riesgos evita que un incidente se

convierta en un problema, evitando la desviación de recursos y el aumento de

costos que genera la solución de problemas.

Un MCVS alcanza estas reglas y procedimientos al:

Proveer una grá�ca simple del trabajo a ser realizado. Es importante saber

comunicar la forma en la cual se está trabajando, por lo que para poder expli-

car cualquier procedimiento, o cualquier proceso un profesor, un gerente, un

administrador, o un ingeniero utiliza dibujos y esquemas, porque para cual-

quier persona es más fácil entender un grá�ca que una serie de procedimientos

complejos explicados oralmente o escritos en un papel, de la misma manera,

es más fácil para los mismo empleados recordar su forma de trabajo.

Permitir enfocarse en aspectos importantes de trabajo, dejando a un lado los

detalles excesivos. Identi�cando los aspectos más importantes del trabajo, un

8

Page 18: De nición y Adaptación de un Proceso de Desarrollo de ...

MCVS permite priorizar las actividades y de esta forma organizar adecuada-

mente la forma de trabajar.

Proveer una unidad de trabajo jerárquica estándar para la descomposición pro-

gresiva del trabajo en piezas manejables. Esto permite una buena distribución

de trabajo, una buena forma de hacer seguimiento al artefacto que se está

produciendo.

Proveer adaptación a bajo costo. Esto permite mayor �exibilidad y mantenibi-

lidad tanto a los procesos como a los artefactos cuando se presenten cambios.

3.2. Procesos

Para planear correctamente el desarrollo de un producto de software, este con-

junto de actividades se debe ver como un proceso, el cual a su vez se compone de

un conjunto de subprocesos, los cuales se clasi�can de la siguiente manera:

Procesos de Soporte del Proyecto. Es el conjunto de procesos que se re�eren al

manejo del desarrollo del software y que debe ejecutarse durante todo el ciclo

de vida del proyecto. La administración de con�guraciones es un ejemplo de

este tipo de procesos.

Procesos de Desarrollo. es el conjunto de procesos, típicamente interdepen-

dientes, que contribuyen directamente al desarrollo del entregable del proyecto.

Análisis, diseño e implementación son ejemplos claros de este tipo de procesos.

Procesos Transversales o Integrales. Son el conjunto de procesos que son desa-

rrollados en el contexto de más de una actividad, por ejemplo la administración

de los documentos y la administración de riesgos se aborda tanto en la fase de

diseño, como en la de implementación y de la misma forma en otras activida-

des.

Cada proceso está conformado por un conjunto de unidades de trabajo, haciendo

una analogía, cada unidad de trabajo se puede ver como una pequeña fábrica, la cual

9

Page 19: De nición y Adaptación de un Proceso de Desarrollo de ...

tiene: unos criterios de entrada, que en este caso serían las condiciones necesarias

para que la unidad de trabajo pueda comenzar trabajar, unos criterios de salida, los

cuales son un conjunto de condiciones por medio de los cuales se puede a�rmar que

la unidad de trabajo ha cumplido su objetivo. Estos criterios se encargan de veri�car

que los �ujos de trabajo, tanto de entrada como de salida, sean los indicados, mientras

que estos �ujos de trabajo son los artefactos que �uyen de una unidad de trabajo a

otra. Finalmente, los estamentos de trabajo se encargan de describir como se realiza

el trabajo para transformar los �ujos de entrada en �ujos de salida. Cada unidad de

trabajo da retroalimentación a una unidad de trabajo precedente. El de�nir caminos

de retroalimentación, provee mecanismos para el desarrollo de artefactos de mejor

calidad, lo cual permite generar artefactos completos y correctos en su primer punto

de aprobación. Para poder de�nir estos caminos de retroalimentación, es necesario

establecer procedimientos mediante los cuales se identi�quen errores y su contraparte

para corregirlos.

Aunque las unidades de trabajo son pequeñas partes del problema a solucionar

mediante el desarrollo de un producto, siguen siendo complejas por lo cual se requiere

descomponer estas grandes unidades de trabajo en niveles, por lo general se utilizan

tres niveles y son:

Nivel de Fases. Las fases describen los niveles más altos de actividad en el

proyecto. Por ejemplo: Estrategia, Diseño o Implementación.

Nivel de Actividades. Las actividades son unidades de trabajo de una fase,

generalmente se hacen en equipos. Por ejemplo: la entrevista con un usuario

es una actividad que hace parte de la fase de Análisis.

Nivel de Tareas. Las tareas son componentes de una actividad que general-

mente son realizadas por una o dos personas, y tienen un tiempo establecido

en un cronograma. Por ejemplo, se podría establecer que el tiempo promedio

para la elaboración de una tarea simple es de 5 días de trabajo, el tiempo

máximo es de 15 días de trabajo.

Los MCVSs se dividen en dos enfoques[BD04], de acuerdo al aspecto que ataca,

el proceso o el producto. Si el objetivo es atacar el proceso se dice que el modelo es

10

Page 20: De nición y Adaptación de un Proceso de Desarrollo de ...

centrado en la actividad, pero si el objetivo es el producto, se dice que el modelo

es centrado en la entidad. A continuación se explica cada uno de los enfoques y los

procesos principales que corresponden a ellos.

3.3. Tipos de Modelos

3.3.1. Modelos Centrados en la Actividad

Los modelos centrados en la actividad se caracterizan por la manera en que los

productos son creados. Existen dos formas de manejar el modelo, secuencialmente

o iterativamente.

3.3.1.1. Modelos Secuenciales

Los modelos secuenciales se caracterizan por ser vistos como líneas de producción

en una fábrica. La debilidad de estos modelos, consiste en asumir que una vez una

actividad es �nalizada y revisada, el artefacto asociado puede considerarse como

línea base y esto sólo sería apropiado sí la especi�cación de los requerimientos fuera

altamente con�able y estable. Los principales modelos secuenciales son:

Cascada. Este es uno de los primeros modelos que se plantearon, propuesto por

W. W. Royce en 1970 [Roy70]. Su autor recomendaba su uso repetidamente (ite-

rativamente), pero este factor nunca se tuvo en cuenta. El modelo de cascada se

caracteriza por la ejecución secuencial de actividades: Procesos de desarrollo y de

administración. Las fases de las que consta son: Análisis de Requerimientos, Diseño,

Implementación, Pruebas, Integración y Mantenimiento. Al �nalizar una fase todas

las actividades de esa fase deben estar terminadas y no se puede regresar a una fase

anterior. Durante todo el proceso hace una veri�cación (Fase de Pruebas) constante

para evitar requerimientos no deseados y se mide el progreso por el número de tareas

que se han completado. Se asume que el desarrollo de software puede ser programado

como un proceso �paso por paso� que transforma las necesidades del usuario en un

artefacto (código).

Ventajas. Es simple para comprender y usar.

11

Page 21: De nición y Adaptación de un Proceso de Desarrollo de ...

Desventajas. Cuando se utilizan iteraciones, estas crean problemas en el do-

minio de la aplicación. Una versión no funcional solo estará disponible hasta

el �nal del proyecto. No puede haber retroalimentación.

V. Este modelo es una variación del modelo de cascada, sus primeras publicaciones

fueron en 1995 por Bröhl y Dröschel [BH95] y la versión sacada en 1997 fue adoptada

por la administración federal de Alemania para regular el proceso de desarrollo de

software. Este modelo consta de 7 fases clasi�cadas en:

Actividades de Especi�cación. Especi�caciones de los requerimientos del Usua-

rio, Especi�caciones Funcionales, Especi�caciones del diseño.

Actividades de Desarrollo. Dependiendo del tipo de sistema y el enfoque de la

fase de Desarrollo, estas actividades pueden consistir de codi�cación, con�gu-

ración, o personalización.

Actividades de Cali�cación. Cali�cación de la Instalación, Cali�cación de la

Operación, Cali�cación del Desempeño.

Durante toda la duración del proceso, existe una dependencia entre las activida-

des de desarrollo y las actividades de veri�cación, de esta manera desde la fase de

requerimientos hasta la fase de desarrollo se enfoca en construir incrementalmente

una representación detallada del sistema, mientras que de la fase de desarrollo a

la de desempeño se enfoca en validar el sistema. La última versión corresponde al

año 2005, llamada V-Model XT, la cual actualiza el modelo del 97 con los nuevos

desarrollos tecnológicos, regulaciones y estándares.

Ventajas. Enfatiza la importancia de tener en cuenta desde un comienzo las

pruebas. Las pruebas después de cada fase proporcionan retroalimentación.

Desventajas. El diseño e implementación de pruebas es costoso. Cuando se

utilizan iteraciones, estas crean problemas en el dominio de la aplicación.

12

Page 22: De nición y Adaptación de un Proceso de Desarrollo de ...

3.3.1.2. Modelos Iterativos

Los modelos iterativos se enfocan en el desarrollo de un producto en ciclos, es

decir que las fases del proyecto son repetidas varias veces, una secuencia de fases es

un ciclo. Los principales modelos son mencionados a continuación:

Espiral. Este modelo fue de�nido por Barry Boehm en su artículo �A Spiral Model

of Software Development and Enhancement� en 1986 [Boe86], y está caracterizado

por ser el primer modelo en explicar la importancia de las iteraciones además de

adicionar actividades como Administración de riesgos, Reutilización y Desarrollo de

Prototipos para cada fase; estas actividades vistas como una extensión al modelo de

cascada, son llamadas espirales. Las espirales atacan los riesgos incrementalmente en

orden de prioridad. Cada ciclo está compuesto de cuatro fases que se repiten cíclica-

mente en cada espiral: Determinación de los Objetivos y Limitaciones del Proyecto,

Evaluación de los Riesgos, Ingeniería (Desarrollo y Veri�cación del siguiente nivel

del Producto) y, Administración y Planeación. Es utilizado en proyectos de gran

tamaño.

Ventajas. Enfatiza la importancia de hacer un análisis de riesgos. Fácilmente

se puede integrar con otro MCVS.

Desventajas. Es necesario una considerable experiencia en la administración

de riesgos.

Prototyping. El concepto de prototyping, rápidamente generar un prototipo2 ,

ha existido desde hace mucho tiempo, pero fue en 1981 que fue introducido por

Gomaa y Scott como una práctica e�ciente para determinar los requerimientos del

cliente antes de establecer las especi�caciones del sistema para el nuevo producto

de software. Pero fue hasta 1987 que fue de�nido como un MCVS por Guillemete,

Gervickas y Renaldo [Mob99].

Prototyping esta compuesto de cuatro fases: Análisis, Diseño, Prototyping y

2Boceto o borrador de un nuevo producto

13

Page 23: De nición y Adaptación de un Proceso de Desarrollo de ...

Evaluación del Usuario. En la fase de análisis se identi�can y se de�nen los reque-

rimientos planteados por el usuario en la aplicación a desarrollar, luego en la fase

de diseño es integrada la información recogida en la fase de análisis, después en la

fase de prototyping se diseña el prototipo, y �nalmente en la fase de evaluación el

usuario cali�ca el prototipo y se comienza otro ciclo desde la fase de Prototyping, al

generar un nuevo prototipo teniendo en cuenta la retroalimentación proporcionada

en la fase de evaluación.

Ventajas. Un prototipo ayuda a comprender mejor el problema y a obtener

retroalimentación del cliente. El re�namiento y el cambio en el prototipo se

basan en la retroalimentación.

Desventajas. No considera la calidad ni la mantenibilidad a largo plazo. Gran

cantidad de compromisos de implementación son hechos, por lo cual el pro-

ducto �nal podría ser inapropiado o ine�ciente.

RAD - Rapid Application Development. Este modelo fue planteado por Ja-

mes Martin en 1991 [Mar91], y se caracteriza por el desarrollo muy rápido de siste-

mas, la dependencia de las características especí�cas del proyecto y el uso de varias

técnicas para la optimización del proceso basado en la rapidez.

El enfoque, la información, las decisiones, el equipo, la arquitectura y los reque-

rimientos no funcionales del proyecto son las características especí�cas del proyecto.

El enfoque está conformado por los objetivos del proyecto, los cuales deben estar

bien de�nidos. La información es el conjunto completo o parcial de datos necesarios

para el desarrollo del proyecto. Las decisiones, son hechas por un número peque-

ño de personas que están disponibles y trabajan relativamente cerca. El equipo, es

pequeño (menor a 7 personas). La arquitectura, debe ser clara y debe estar bien de�-

nida, y los componentes tecnológicos claves se deben encontrar en el lugar de trabajo

y ya debieron haber sido probados. Los Requerimientos no funcionales(tiempos de

respuesta, rendimiento del procesamiento, tamaño de las bases de datos, etc.), son

razonables dentro de las capacidades de la empresa.

Prototipos (Prototyping), iteración y la entrega a tiempo (Timeboxing), son las

14

Page 24: De nición y Adaptación de un Proceso de Desarrollo de ...

principales técnicas de optimización. Los Prototipos permiten crear un resultado

demostrable tan pronto como sea posible y re�nándolo según la interacción con el

cliente, donde el problema radica en hacerlo demasiado temprano o demasiado tarde.

La Iteración permite hacer desarrollo incremental basado en el re�namiento. Y la

Entrega a Tiempo centra la atención en la entrega por encima de todos los otros

aspectos que involucra el proceso.

Además empresas como Creative Data Inc. [CD05] utilizan una metodología de

desarrollo llamada Joint Application Development (JAD), la cual es un proceso ori-

ginalmente desarrollado por Wood y Silver en 1995 [WS95] para diseñar un sistema

basado en un computador.

El uso del JAD, permite agrupar a la gente perteneciente al área del negocio y

a los profesionales de TI en un taller estructurado enfocado altamente en el traba-

jo, mediante sesiones. Las sesiones se caracterizan por estar muy bien enfocadas,

conducirsen en un ambiente dedicado, rápidamente manejar los principales requeri-

mientos y el �look and feel� de la interfaz grá�ca. Los participantes de las sesiones

típicamente incluyen:

1 facilitador, que se encarga de reforzar las reglas y moderar las discusiones.

De 3 a 5 usuarios �nales, quienes asisten a todas las sesiones.

De 2 a 3 desarrolladores, quienes hacen preguntas para clari�car el producto

�nal que se desea.

1 cortador de vínculos, el director del proyecto, quien se encarga de cortar los

vínculos de los usuarios, usualmente no asiste.

2 o 3 observadores, quienes no hablan.

Un limitado número de expertos en el tema para comprender el negocio y la

tecnología.

Este MCVS consta de tres fases:

Planeación.

15

Page 25: De nición y Adaptación de un Proceso de Desarrollo de ...

Construcción. Esta fase se caracteriza por conformar la parte iterativa del

MCVS, en la cual se desarrollan actividades (Requerimientos documentados,

Diseño, Desarrollo, Pruebas, Evaluación del Usuario y JAD) secuencialmente

en pequeños ciclos

Despliegue.

Ventajas. Optimización del proceso, basado en talleres de discusión interdis-

ciplinarios, priorización de la entrega y comunicación constante con el cliente

para la muestra de prototipos y generación de retroalimentación tanto para el

cliente, como para el desarrollador.

Desventajas. El diseño del prototipo debe hacerse en el momento correcto,

ni demasiado temprano, ni demasiado. El priorizar la fecha de entrega puede

ocasionar que no se tenga en cuenta otros aspectos importantes del proyecto.

tarde.

UP - Uni�ed Process. El proceso uni�cado, es el primer proceso robusto que fue

planteado por Ivar Jacobson en su libro �The Uni�ed Software Development Process�

de 1999 [IJ99]. Su robustez se debe a la gran cantidad de prácticas que utiliza. En este

proceso se identi�can rangos de tiempo llamados çiclos", los cuales son considerados

como el grado de madurez en el tiempo de vida de un sistema de software. Cada

ciclo está compuesto de cuatro fases: Inicio, Elaboración, Construcción y Transición;

y a su vez cada fase puede consistir de un número determinado de iteraciones,

donde cada iteración hace referencia a un conjunto de casos de uso relacionados o

mitiga algunos de los riesgos identi�cados al inicio de la iteración. Durante cada

iteración, unas actividades son desempeñadas en paralelo y son llamadas �ujos de

trabajo (Work�ows). Los �ujos de trabajo orientados al desarrollo son llamados �ujos

de trabajo de ingeniería (Requerimientos, Diseño, Implementación y Pruebas). Se

distinguen cuatro actividades transversales llamadas �ujos de trabajo de soporte:

(Administración, Ambiente, Valoraciones, Despliegue). Continuamente se enfatiza

la asignación de recursos para cada �ujo de trabajo durante fases e iteraciones al

manejar cada iteración como un proyecto de software aislado.

16

Page 26: De nición y Adaptación de un Proceso de Desarrollo de ...

Este proceso está compuesto por un modelo de casos de uso que se relaciona con

un modelo de cada �ujo de trabajo, de esta forma cada modelo está relacionado con

otro al tener elementos claramente relacionados debido a que un elemento en un �ujo

de trabajo avanzado es producto de uno o más elementos de un modelo anterior.

Las dependencias entre modelos pueden ser mantenidas de diferentes maneras:

Ingeniería. Proceso de Software soportado en documentos de diseño del pro-

ducto �nal, los cuales fueron realizados para sentar las bases de como atacar

el desarrollo de la aplicación �nal.

Ingeniería en Reversa. Proceso se Software en el cual el desarrollo del producto

se hace primero y los documentos de diseño al �nal.

Ingeniería de Viaje Completo. Proceso de Software que utiliza Ingeniería para

soportar el proceso mediante documentos de diseño de la aplicación, e Inge-

niería en Reversa para actualizar esos documentos de diseño hechos anterior-

mente.

Ventajas. Desarrolla una documentación detallada y especí�ca.

Desventajas. Es muy pesado y complejo.

XP - Extreme Programming. Extreme Programming fue desarrollado por Kent

Beck, Ward Cunningham, and Ron Je�ries, cuyo trabajo fue publicado en 1999 por

Beck en su libro �Extreme Programming Explained� [Bec99]. Este modelo se carac-

teriza por el uso de 15 prácticas, las cuales son generalmente utilizadas con otros

MCVSs. Se le considera un proceso liviano, debido a las pocas prácticas que usa y

a la simplicidad que logra alcanzar cuando se cuenta con un buen grupo de diseña-

dores. Los grupos de trabajo generalmente son pequeños o medianos (Menor a 15

personas). Su principal objetivo es mejorar el manejo del proceso en una organiza-

ción mediante seguimiento y la de�nición de métricas, centrado en la comunicación

(Retroalimentación, cliente involucrado en el proceso). Las prácticas que el mode-

lo utiliza son: Planeación, Iteraciones Pequeñas, Metáfora del Sistema (Utilización

de las palabras adecuadas), Diseño simple (Utilización cuidadosa de Patrones de

17

Page 27: De nición y Adaptación de un Proceso de Desarrollo de ...

Diseño), Testing, Refactoring, Pair Programming, Propiedad colectiva del Código,

Estándar de codi�cación, 40 horas a la semana, Integración continua, Cliente en el

sitio de los desarrolladores, Retroalimentación, Pasos Sostenibles y Simplicidad.

Ventajas. La interacción entre desarrolladores y clientes permite resolver dudas

y priorizar los requerimientos, gracias a la retroalimentación dada por el clien-

te. La generación de código simple, permite que la reconstrucción del sistema

y la ejecución y desarrollo de pruebas sea simple.

Desventajas. Si no se de�ne una buena forma de trabajo puede llegar a ser

ine�ciente debido a que carece de una estructura de�nida y un orden a seguir.

Si no se cuenta con buenos diseñadores puede ser caótico.

RUP - Rational Uni�ed Process. Como su nombre lo indica, es descendiente

del Proceso Uni�cado (Sección 3.3.1.2). Este MCVS fue planteado por G. Booch,

I. Jacobsen and J. Rumbaugh, integrando el UP con herramientas3 metodologías

utilizadas en UML4 por Rational Company [Kru03], para la cual trabajaban. Con

respecto al UP, se adicionó un �ujo de trabajo llamado �Modelación del Negocio�

antes del análisis, y debido a las herramientas utilizadas para soportar el proceso el

RUP es más e�ciente. las fases utilizadas por el RUP, son las mismas que en el UP:

Inicio. Toma aproximadamente el 10% del esfuerzo hacerlo, hace énfasis en

hacerse una idea y visión del producto, se hace la planeación (Estimación de

costos, recursos y planeación de la siguiente fase), y se identi�can los riesgos

y sus prioridades. Los �ujos de trabajo Administración y Requerimientos, son

dominantes.

Elaboración. Toma aproximadamente el 20% del esfuerzo hacerla, se especi�-

can los casos de usos5 , se genera la línea base de la Arquitectura de Software,

se hace una estimación detallada de costos y recursos, se re�nan los estimados

3Rational Unify Process (RUP)4Unify Modelling Language5Especi�cación detallada de la funcionalidad

18

Page 28: De nición y Adaptación de un Proceso de Desarrollo de ...

iniciales, y se revisan los requerimientos y el modelo de casos de usos por cali-

dad y estimación de riesgos. Los �ujos de trabajo Requerimientos y Análisis,

son dominantes.

Construcción. Toma aproximadamente el 70% del esfuerzo hacerla, el sistema

se construye en una serie de iteraciones incrementales, se utilizan los procesos

de Desarrollo (Basado en el Diseño previo) y Pruebas del software. El artefacto

desarrollado al �nal de la etapa, se conoce como alpha-release. Los �ujos de

trabajo Análisis, Diseño e Implementación son dominantes.

Transición. Toma aproximadamente el 10% del esfuerzo hacerlo, Los artefactos

resultantes en esta fase son llamados b-release. Los �ujos de trabajo Diseño,

Pruebas y Mantenimiento, son dominantes.

Ventajas. Desarrolla una documentación detallada y especí�ca.

Desventajas. Es muy pesado y complejo. Está atado a las herramientas que

usa Rational Company.

TSP. El Team Software Process fue planteado por Watts S. Humphrey en su li-

bro �Introduction to the Team Software Process� del 2000 [Hum00]. TSP centra

sus objetivos en asegurar la calidad de los productos de software mediante métricas

de�nidas en un Plan de Calidad, crear productos de software seguros y mejorar la

administración de los procesos en la organización mediante el uso de estándares de

medidas de calidad y desempeño, para poder hacer Seguimiento y Planeación del

proyecto. El TSP también cuenta con una administración individual (Responsabi-

lidad, metas, Principios Sólidos) para permitir una independencia limitada de los

miembros al completar su misión, la cual esta limitada para poder hacer un buen

trabajo en equipo (Participación Activa, Metas Grupales) a la vez. Este desempe-

ño individual y grupal al mismo tiempo se hace mediante roles de�nidos (División

del Trabajo, Especialización de los Integrantes, Aprovechamiento de las Cualidades,

Habilidades y Experiencias Individuales, Compromisos).

19

Page 29: De nición y Adaptación de un Proceso de Desarrollo de ...

Para la optimización del proceso se busca la reutilización de código a través

de ciclos, mejorar la productividad, la producción en cada ciclo de una versión de

prueba de una parte del producto �nal y el seguimiento del proceso a nivel grupal

e individual (PSP - Personal Software Process). El equipo de trabajo se caracteriza

por estar compuesto de dos o más personas cuyo trabajo está encaminado hacia

un objetivo en común. Debido al uso de ciclos puede utilizarse tanto para grandes

como para pequeños proyectos, pero está centralizado en el desarrollo de grandes

proyectos.

Ventajas. Se desarrolla métricas claras, claramente identi�cables. los objetivos

planteados son medibles. La planeación se basa en el desarrollo de proyectos

o ciclos anteriores. Permite el seguimiento del proceso y del trabajo de cada

uno de los integrantes del grupo.

Desventajas. Se requiere disciplina por parte de los integrantes del grupo. Se

requiere de buenas herramientas para que el seguimiento no sea muy costoso.

Un buen ejemplo de la especi�cación de un proceso utilizando este MCVS, es el

planteado por Hugo Arboleda [J.04].

3.3.2. Modelos Centrados en la Entidad

Los modelos centrados en la entidad enfocan sus prácticas en el contenido y la

estructura de los productos trabajados. El modelo basado en eventos es uno de los

mejores ejemplos [BD04].

Basado en Eventos. Este modelo esta basado en la lógica (rationale) del sistema

como un modelo de eventos. Cada proyecto inicia con un conjunto de eventos, en

el cual ocurren cambios frecuentes, los cuales son el objetivo a tratar. La principal

base del modelo es un historial de eventos, si este no existe, se utiliza la experiencia

del administrador o un documento estándar existente.

Los eventos están de�nidos en forma de preguntas, los cuales son guardados

en una �base de datos� de eventos disponible a los participantes del proyecto. Los

20

Page 30: De nición y Adaptación de un Proceso de Desarrollo de ...

eventos se caracterizan por tener un estado, el cual puede ser cerrado, cuando el

evento ha sido resuelto, pero puede ser reabierto debido a cambios ocurridos en la

aplicación o en el domino de la solución; o abierto, cuando un evento no ha sido

resuelto. Estos eventos son resueltos a través de la discusión y de la negociación de

los participantes (desarrolladores, clientes) del proyecto. Los eventos también pueden

depender de otros eventos.

Este MCVS es recomendado, cuando la información y las relaciones son comple-

jas.

Ventajas. Es muy útil cuando la información y las relaciones son muy comple-

jas.

Desventajas. Si los cambios en el sistema no son muy frecuentes no se reco-

mienda su uso.

Actualmente se tiene una tendencia más alta a la utilización de MCVSs iterativos,

debido a que son más �exibles, y se pueden utilizar en ingeniería concurrente al

hacerles pequeñas modi�caciones.

21

Page 31: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 1: Tabla Comparativa de Actividades de MCVSs I

3.4. Marco de Comparación de los Modelos de Ciclo de Vida

Observando y analizando los diferentes ciclos de vida, los criterios de comparación

son las características únicas y especí�cas que diferencian un modelo del resto (Ver

Figuras 1 y 2).

Las descripción de las actividades comparadas, clasi�cadas por procesos (Sección

3.2), es la siguiente:

Procesos de Soporte del Proyecto.

Administración. Esta actividad corresponde al establecimiento de objetivos y tác-

ticas de la empresa o grupo de desarrollo, tanto individuales como de grupo.

Aunque muchas veces esto se establece en la de�nición operativa de una empre-

sa, es necesario evaluarla al inicio de un nuevo proyecto cuando las necesidades

del proyecto lo ameriten, por lo cual puede que al iniciar un nuevo proyecto se

22

Page 32: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 2: Tabla Comparativa de Actividades de MCVSs II

necesite rede�nirla totalmente.

Soporte y Mantenimiento. Esta actividad corresponde a la administración de

las con�guraciones y versiones en un proyecto.

Estrategia. Esta actividad corresponde al establecimiento de objetivos y tácticas

(Estimación de la duración del proyecto, como se piensa abordar, riesgos iden-

ti�cados y sus planes de mitigación, el alcance y la estructura de archivos a

utilizar) del proyecto.

Administración del Conocimiento. Esta actividad corresponde a la administra-

ción de la información capturada y transformada en conocimiento adquirido a

través del desarrollo de proyectos, la cual comprende tareas de a�anzamiento

del conocimiento al interior del grupo, mediante la consideración de ese cono-

cimiento como una propiedad colectiva y la capacitación de sus miembros en

nuevas prácticas.

23

Page 33: De nición y Adaptación de un Proceso de Desarrollo de ...

Procesos de Desarrollo.

Especi�cación (Análisis y Diseño). Esta actividad corresponde a la de�nición

de requerimientos funcionales y no funcionales, diseño de diagramas y docu-

mentación.

Implementación. Estas actividad corresponde a la creación de la herramienta

computacional mediante la implementación de código.

Veri�cación. Esta actividad corresponde al diseño, implementación y ejecución de

pruebas.

Despliegue. Esta actividad corresponde a la presentación, entrega y lanzamiento

del producto �nal.

Procesos Transversales.

Historial de Eventos. Registro de la historia del desarrollo de las aplicaciones,

como tiempos, actividades desarrolladas, técnicas utilizadas, los productos de-

sarrollados y los clientes.

Optimización. Esta actividad corresponde a la utilización de técnicas para el me-

joramiento continuo y aumento de la productividad.

Refactoring. Esta actividad corresponde a la reutilización y actualización de ar-

tefactos existentes.

Prototyping. Esta actividad corresponde al desarrollo de prototipos de la aplica-

ción.

Planeación y Seguimiento. Esta actividad corresponde a la de�nición de un cro-

nograma en base en el cual se le hace seguimiento tanto al proceso como al

producto.

Taller Interdisciplinario de Discusión. Esta actividad corresponde a la discu-

sión del desarrollo de un proyecto, con representantes de cada uno de los roles

que participan en el proyecto.

24

Page 34: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo IV

Diseño de Procesos

Una vez establecido el MCVS (Cap. 3) a utilizar para el desarrollo de software,

es necesario diseñar el modo de operación de las actividades y tareas a realizar en

cada fase, para lo cual sin descuidar los aspectos ya tratados en el diseño de un

MCVS, es necesario tener en cuenta los siguientes aspectos:

Experiencia. La experiencia es fundamental como fuente de información al dise-

ñar una actividad especí�ca no solo cuando ya se han diseñado actividades similares,

sino también cuando se han utilizado o se ha sido cliente de una actividad similar,

es decir, cuando se ha recibido un artefacto de dicha actividad. Este aspecto es fun-

damental cuando se están optimizando actividades ya existentes, debido a que es la

base del mejoramiento continuo en un proceso.

De�nición de Objetivos. Es necesario establecer objetivos medibles para la acti-

vidad, tanto para poder evaluarlos, como para poder de�nir el alcance de la actividad

y el artefacto que será generado.

Artefacto a generar. Es necesario establecer las características del artefacto que

será producido durante la actividad, y su utilidad a lo largo del proceso.

Identi�cación de posibles lagunas. Un grave incidente para la ejecución de una

actividad, es cuando surgen lagunas o �malas interpretaciones� durante el desarrollo

de una actividad, debido a que puede producirse un artefacto no esperado y con

poca o ninguna relación con los objetivos planteados en un comienzo.

25

Page 35: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad Anterior. Para el diseño de una actividad es necesario tener claro que

actividades deben estar ya realizadas para poder ejecutar la actual, debido a que se

utilizan artefactos realizados en esas actividades anteriores.

Actividad Siguiente. Para que una actividad llegue a buen término es necesario

saber que actividades necesitan los artefactos realizados por dicha actividad.

Análisis de las tareas. Debido a que cada actividad esta compuesta generalmente

por más de una tarea, es necesario establecer, según Chase y Aquilano [CA00]: la

descripción de las tareas, la secuencia de las tareas, la función de las tareas, la

frecuencia de las tareas, la importancia de las tareas, la relación con tareas de otros

trabajos, los requisitos de actuación, los requisitos de información, el control de los

requisitos, las posibilidades de error, la duración de las tareas, y los requisitos de

herramientas.

Análisis del trabajador. Debido a que la realización de una tarea especí�ca

requiere que la persona a asignar a dicha tarea tenga ciertas características y habili-

dades especí�cas, por lo cual es necesario establecer según Chase y Aquilano [CA00]:

requisitos de capacidad, requisitos de actuación, evaluación, nivel de habilidad, en-

trenamiento del trabajo, requisitos físicos, tensión mental, tedio, motivación, número

de trabajadores, nivel de responsabilidad, nivel de supervisión, responsabilidad de

calidad y nivel de empoderamiento.

Análisis Ambiental. Las características del entorno de trabajo son fundamen-

tales para garantizar la efectiva realización de este por lo cual es necesario, según

Chase y Aquilano [CA00], tener en cuenta: la situación del lugar de trabajo, la lo-

calización del proceso, la temperatura y humedad, la iluminación, la ventilación, la

seguridad, la logística, los requisitos de espacio, el nivel de ruido y la vibración.

Medición del Trabajo. Es necesario y fundamental el medir cada una de las

tareas realizadas por lo cual se utiliza el tiempo como unidad de medida para medir

cuanto fué la demora en la realización de dichas tareas. Adicionalmente, se pueden

26

Page 36: De nición y Adaptación de un Proceso de Desarrollo de ...

establecer diferentes medidas tomando como base las características especí�cas de

las tareas o del artefacto generado. Según Niebel [Nie04], la medición del trabajo

facilita la identi�cación del tiempo improductivo y la de�nición de tiempos �jos para

la realización del trabajo.

La importancia del diseño de procesos yace en el conocimiento global que debe

tener cada miembro de una empresa en el desarrollo de todos sus procesos, por lo

cual al establecer este diseño en documentos facilita la comprensión de las funcio-

nes de cada miembro en la empresa, además de evitar tiempo improductivo en el

entendimiento de esas funciones y de su rol como miembro activo de esa empresa.

Aún más, cuando hablamos de una empresa de desarrollo de software, este tema se

vuelve vital, ya que el tiempo es uno de sus recursos más importantes.

27

Page 37: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo V

Caso de Estudio: LIDIE

Para poder estudiar a LIDIE, es necesario saber cuales son sus objetivos y hacia

donde se dirigen, además de conocer su forma de trabajo, por lo que se vió en la

necesidad de hacer una serie de encuestas para conocer como están organizados los

grupos interdisciplinarios de trabajo y como desarrollan su trabajo, para lo cual se

realizaron tres entrevistas, cada una dirigida a un grupo interdisciplinario utilizando

un formato de�nido (Ver Anexo 1 ).

5.1. De�nición de LIDIE

LIDIE es el Laboratorio de Investigación y Desarrollo sobre Informática en Edu-

cación del Departamento de Ingeniería de sistemas de la Universidad de Los Andes,

el cual comenzó hace 10 años como el Grupo de Informática Educativa (GIE).

LIDIE busca contribuir al mejoramiento de la educación en Colombia, mediante

la integración de nuevas tecnologías de información y comunicación a los procesos de

aprendizaje. Para esto el laboratorio hace investigación y desarrollo sobre ambientes

educativos computarizados de altísima calidad técnica y educativa; lleva a cabo

proyectos multidisciplinarios en áreas críticas para el desarrollo de la educación

y hace alianzas estratégicas con grupos líderes en educación e informática y con

organismos interesados en solucionar problemas educativos con apoyo de tecnología.

Así mismo asesora a empresas e instituciones académicas que deseen incursionar en el

mundo del software educativo, en metodologías, herramientas, estándares de calidad,

sistemas de evaluación, instrumentos de planeación estratégica de la información,

entre otros aspectos. Lidie se encuentra conformado por una Administración, la

28

Page 38: De nición y Adaptación de un Proceso de Desarrollo de ...

cual se encarga de establecer y administrar proyectos, administrar las �nanzas y

de la administración de los recursos y liderar los cinco grupos interdisciplinarios

encargados de la construcción de los proyectos. Para más información acerca de

LIDIE, se puede consultar su página web [LID05].

5.1.1. Grupos Interdisciplinarios

Para el desarrollo de sus proyectos, LIDIE se encuentra conformado por cuatro

grupos interdisciplinarios: Pedagógico, Diseño Instruccional, de Desarrollo (El cual

consta de dos subgrupos: Implementación y Diseño Grá�co) y Evaluación.

Pedagógico. Está conformado por psicólogos, trabajadores sociales y peda-

gogos. Su principal objetivo es el diseño de metodologías de aprendizaje de

acuerdo a las necesidades educativas identi�cadas. Tiene un contacto constan-

te con el grupo de Desarrollo, debido a que se necesita una revisión continua

entre el proceso de desarrollo del producto y la satisfacción de esas necesidades

educativas identi�cadas, para que el producto cumpla el propósito para el cual

fue diseñado. Existe un líder del grupo, quien recibe el cargo de coordinador,

y es quien se carga de establecer y de�nir las líneas de investigación del grupo,

así como de guiarlo para que cumpla sus objetivos y metas establecidos.

Diseño Instruccional. Está conformado por ingenieros de sistemas en diferentes

niveles profesionales que van desde estudiantes de pregrado hasta maestros.

Su rol consiste en ser un mediador experto en tecnología entre el cliente y los

demás grupos interdisciplinarios, está labor la complementa al crear manuales

de usuario y asumir el rol de analista de sistemas para realizar el análisis de

requerimientos de la herramienta tecnológica que se va a desarrollar.

Desarrollo. Está conformado por ingenieros de sistemas, diseñadores grá�cos

y artistas. Se divide en dos subgrupos. El grupo de Implementación se encarga

de hacer el diseño y el desarrollo de los productos de software producidos, del

montaje de las aplicaciones y del apoyo tanto a los otros grupos de Desarrollo

como a los otros grupos interdisciplinarios. El grupo de Diseño Grá�co se

29

Page 39: De nición y Adaptación de un Proceso de Desarrollo de ...

encarga de la construcción de la parte grá�ca del proyecto. Al igual que en el

grupo pedagógico, el grupo de desarrollo también tiene su coordinador, el cual

se encarga de establecer procedimientos y estrategias para el desarrollo de los

proyectos, así como de establecer todo el conjunto de herramientas necesarias

para el buen desempeño del trabajo del grupo.

Evaluación. Está conformado por psicólogos y antropólogos. Se encarga de la

evaluación de los procesos metodológicos y pedagógicos con y sin el producto

realizado, y de los productos desarrollados por el laboratorio. También se en-

carga de hacer encuestas y entrevistas, y su respectivo análisis para las tareas

que lo ameriten. Hacen seguimiento de los proyectos veri�cando los objetivos

contra la solución y su efectividad. Y al �nalizar un producto se encarga de ha-

cer su respectivo informe de análisis de impacto. Al igual que los otros grupos,

el grupo Pedagógico también cuenta con un coordinador, quien se encarga de

guiar el trabajo en cada uno de los proyectos como del mejoramiento continuo

de sus procedimientos y las líneas de investigación que surgen y pueden ser

aprovechadas.

5.1.2. El Proyecto AVA

Actualmente, LIDIE se encuentra desarrollando uno de sus más grandes e im-

portantes proyectos, el cual está orientado hacia los cursos presenciales de pregrado

dictados en la Universidad de Los Andes. El proyecto AVA - Ambientes Virtuales

de Aprendizaje, busca ser un apoyo a los docentes de planta, en donde mediante

un apoyo virtual se motive al estudiante en su aprendizaje a través del curso. Este

apoyo en el aprendizaje es desarrollado de acuerdo a la necesidad educativa y a los

requerimientos establecidos por el profesor que dicta el curso, teniendo en cuenta

el área de conocimiento en el que se desenvuelve el curso. De esta manera LIDIE

de�ne su proyecto en su página web [LID05] y en el portal diseñado especí�camente

para este proyecto [LID06c].

Los roles establecidos para el desarrollo de un AVA se dividen en roles globales, los

cuales comprenden todo el proyecto y los roles locales, los cuales están delimitados

30

Page 40: De nición y Adaptación de un Proceso de Desarrollo de ...

por el grupo interdisciplinario al que pertenecen. Los roles identi�cados son los

siguientes:

Roles Globales

Coordinador de AVA. Su función es la de gerenciar el desarrollo del AVA, por

lo cual debe estar pendiente de su desarrollo por cada una de las fases por las

cuales pasa, y estar en comunicación constante con el cliente. Los coordinadores

de AVA del grupo Pedagógico tienen la capacidad de trabajar en 5 AVAs a

la vez. El coordinador de AVA del grupo de Evaluación se encarga de que el

modelo de evaluación realizado a un AVA especí�co se cumpla.

Coordinador de Grupo. Su función consiste en coordinar el trabajo de su grupo

y presentar propuestas para la mejora en el desempeño de su trabajo.

Director. Su función consiste en dirigir el laboratorio al recibir, identi�car y

aceptar propuestas de desarrollo de AVAs.

Cliente. El cliente puede ser uno o más profesores de un mismo curso, quienes

están interesados en encontrar la solución a una necesidad educativa insatisfe-

cha mediante el desarrollo de un producto, el cual en este caso es un AVA del

curso que el profesor dicta. El cliente debe estar en constante comunicación

con los desarrolladores del AVA para que el producto cumpla las expectativas y

los objetivos planteados para solucionar la necesidad insatisfecha identi�cada.

Roles Locales

Pedagogo. Su función consiste en proponer metodologías de aprendizaje para

el AVA. Este rol es desempeñado por cada uno de los miembros del grupo

Pedagógico.

Interlocutor. Su función consiste en ser un canal de comunicación entre el clien-

te y el grupo de Desarrollo, apoyar la solución desde una parte tecnológica al

establecer las limitaciones tecnológicas que se encuentren e identi�car y hacer

31

Page 41: De nición y Adaptación de un Proceso de Desarrollo de ...

el levantamiento de los requerimientos de las herramientas computacionales

que el AVA necesita, para poder realizar a continuación un buen diseño de la

solución. Este rol pertenece al grupo de Diseño Instruccional.

Desarrollador. Su función consiste en desarrollar las aplicaciones necesarias

para la realización del AVA. Este rol es desempeñado por los miembros del

grupo de Desarrollo.

Diseñador. Su función consiste en desarrollar toda la parte grá�ca del AVA,

la cual consiste en el desarrollo de animaciones, grá�cas y plantillas html, y

su continua comunicación con el cliente para que la parte grá�ca del AVA sea

coherente con lo que el cliente desea. Este rol es desempeñado por el subgrupo

de Diseño Grá�co.

Soporte. Su función consiste en solucionar problemas tecnológicos y apoyar al

grupo de Desarrollo con el montaje de los AVAs, sus funciones son prestadas

a todo el laboratorio. Este rol es desempeñado por el grupo de Desarrollo.

Evaluador. Su función consiste en generar modelos de evaluación, realizar en-

trevistas, encuestas y observaciones de clase cuando se requieran, además de

hacerle seguimiento al AVA para veri�car que las metas y necesidades educa-

tivas fueron satisfechas al cumplir el modelo de evaluación de�nido. Este rol

es desempeñado por el grupo de Evaluación.

El proceso utilizado para el desarrollo de un AVA fue de�nido por Álvaro Galvis

en su libro �Ingeniería de Software Educativo� [Gal92], al cual se suma los roles

creados por LIDIE para el proyecto AVA, ocasionando que el proceso funcione de la

siguiente manera:

Actividades Generales Transversales. Este conjunto de actividades que no

corresponden a una fase especí�ca, siendo actividades que se repiten en cada fase o

las que marcan el inicio del proyecto, como lo es la aceptación del desarrollo de un

proyecto (Ver Figura 3).

32

Page 42: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 3: Tareas vs. Roles I: Tareas Generales Transversales

Análisis Educativo. En esta fase se identi�ca la población objetivo y sus ne-

cesidades educativas, para plantear la metodología y las herramientas pedagógicas

necesarias, para construir el modelo de evaluación (Ver Figura 4).

Participantes:

Coordinador de AVA.

Evaluadores.

Interlocutor.

Productos:

Documento de Análisis Educativo.

Documento del Modelo de Evaluación.

Diseño. En esta fase se de�nen las actividades a realizar, la motivación para los

estudiantes, los roles participantes, los objetivos de aprendizaje y la organización

33

Page 43: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 4: Tareas vs. Roles II: Tareas de Análisis Educativo

del AVA. Se divide en varias subfases, de acuerdo al documento a entregar, donde

primero se desarrolla la subfase de Diseño Educativo (Objetivos y Actividades de

aprendizaje), luego la subfase de Análisis de Requerimientos(De�nición del Sistema,

Glosario y Pruebas de Usuario o de Caja Negra) y �nalmente el Diseño Compu-

tacional (Diseño Arquitectónico, Diseño Detallado, Diseño de Interfaz). (Ver Figura

5).

Participantes:

Coordinador de AVA.

Diseñador.

Desarrollador.

Interlocutor.

Pedagogo.

Cliente.

34

Page 44: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 5: Tareas vs. Roles III: Tareas de Diseño

Productos:

Documento de Diseño Educativo.

Documento de Análisis de Requerimientos.

Documento de Diseño Computacional.

Desarrollo y Montaje. En esta fase se construye el ambiente virtual basado en

el diseño previamente hecho, mediante el desarrollo de las herramientas necesarias

y el montaje del curso1 para que se encuentre disponible para los estudiantes y

profesores en cualquier momento (Ver Figura 6).

Participantes:

Coordinador de AVA.

1Integración de los contenidos con la parte grá�ca, plantillas y herramientas computacionalesdesarrolladas

35

Page 45: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 6: Tareas vs. Roles IV: Tareas de Diseño, Tareas de Desarrollo y Montaje

Diseñador.

Desarrollador.

Soporte.

Productos:

AVA funcional.

Entrega. En esta fase se le hacen las pruebas necesarias al AVA, para �nalmente

hacer una entrega formal del AVA al profesor, mediante una completa capacitación

de su manejo (Ver Figura 7).

Participantes:

Coordinador de AVA.

36

Page 46: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 7: Tareas vs. Roles V: Tareas de Entrega y Postmortem

Cliente.

Interlocutor.

Productos:

AVA Corregido y Lanzado formalmente.

Postmortem. En esta fase se realizan ajustes necesarios los cuales sólo se identi-

�caron cuando el AVA ya estaba en uso. Esta fase se termina con la realización del

informe de Impacto (Ver Figura 7).

Participantes:

Coordinador de AVA.

Evaluador.

Cliente.

Desarrollador.

37

Page 47: De nición y Adaptación de un Proceso de Desarrollo de ...

Soporte.

Productos:

AVA Ajustado.

Documento de Informe de Impacto.

Todo este proceso de desarrollo del AVA se hace para cada proyecto, debido a que

generalmente cada proyecto no es de un gran tamaño, por lo tanto varios proyectos

se construyen al mismo tiempo. Esto genera un gran problema en el control del

proceso de desarrollo de los AVAs, ya que estos se hacen concurrentemente, a la vez

que el trabajo de cada grupo es concurrente al �nal y al inicio de las fases.

Los principales problemas identi�cados a través de todos los grupos son:

La incertidumbre de los cursos, ya que en cualquier momento de cualquier fase

se puede cancelar el desarrollo de un AVA.

La carencia de un número establecido de AVAs que entran a desarrollarsen en

un tiempo determinado, lo cual puede generar un cuello de botella en cualquier

fase debido al número de AVAs que se están desarrollando y a la complejidad

de cada uno de ellos.

La de�nición de un acuerdo escrito mediante el cual se de�ne especí�camente

los compromisos que tiene LIDIE con el AVA, y con el profesor y la duración

de dichos compromisos.

38

Page 48: De nición y Adaptación de un Proceso de Desarrollo de ...

5.2. Estado Actual de LIDIE

5.2.1. Arquitectura de TI

Para el primer semestre del 2005, LIDIE tiene una arquitectura de silos, de acuer-

do a lo especi�cado en el (Cap. 2, debido a que utiliza una herramienta para cada

tarea, esta herramienta busca ser la mejor herramienta disponible para que se adecúe

a las necesidades para la tarea que se necesita hacer. Entre esas necesidades se busca

que la herramienta tenga el menor costo posible, y que sea completa, garantizando

de esta forma un desarrollo e�ciente de dicha tarea. Otra característica de este tipo

de arquitectura, y que afecta el modo en el cual se trabaja en LIDIE, es el bajo

grado de integración de estas aplicaciones, por lo cual no existe una comunicación

entre ellas que facilite el desarrollo de las tareas, es decir no existe un �ujo de trabajo

(De�nido en la Sección 3.1) que lo soporte, por ejemplo la comunicación constante

del estado de un proyecto con otro grupo de trabajo.

La Arquitectura de Software está conformada de acuerdo a los grupos interdis-

ciplinarios (De�nidos en la Sección 5.1.1) por:

Grupo de Evaluación

SPSS - Software de ciencias sociales para manejo de estadísticas. Es utilizado

para analizar la población objetivo de la necesidad del proyecto a satisfacer, y

el análisis de impacto del proyecto.

Atlas TI - Software para análisis cualitativo de encuestas. Es utilizado para

la identi�cación de los indicadores del modelo a formular y para facilitar el

análisis cualitativo de encuestas.

Perseus - Software para aplicación y administración de encuestas. Esta herra-

mienta es utilizada para facilitar más adelante los análisis cuantitativos de las

encuestas hechas.

O�ce - Software utilizado como herramienta de productividad, para el desa-

rrollo de documentos.

39

Page 49: De nición y Adaptación de un Proceso de Desarrollo de ...

Grupo Pedagógico

O�ce - Software utilizado como herramienta de productividad, para el desa-

rrollo de documentos.

Dotproject - Bitácora del tiempo y de las tareas realizadas por cada persona

en el proyecto.

Grupo de Desarrollo

O�ce - Software utilizado como herramienta de productividad, para el desa-

rrollo de documentos.

MySQL - Manejo de Bases de Datos.

Eclipse - Programación. Esta herramienta es utilizada por el subgrupo de

Implementación para desarrollar las herramientas computacionales.

Macromedia Dreamweaver - Desarrollo de Páginas web. Esta herramienta es

utilizada para el desarrollo de plantillas por el subgrupo de Diseño Grá�co y

para la edición y/o creación de plantillas y/o páginas web por el subgrupo de

Implementación.

Apache - Plataforma utilizada para el servidor de LIDIE. Es administrada por

el subgrupo de Implementación.

Macromedia Flash, Fireworks y Director - Desarrollo de animaciones. Estas

herramientas son utilizadas por el subgrupo de Diseño Grá�co para crear y

editar animaciones y videos.

Adobe Photoshop - Diseño grá�co. Esta herramienta es utilizada por el sub-

grupo de Diseño Grá�co, para crear y editar imágenes.

Dotproject - Bitácora del tiempo y de las tareas realizadas por cada persona

en el proyecto.

40

Page 50: De nición y Adaptación de un Proceso de Desarrollo de ...

CVS - Administración de versiones y de con�guración de los proyectos. Esta

herramienta es utilizada para la administración de los backups de los AVAs

terminados y para las herramientas computacionales creadas.

phpWiki - Hosting. Esta herramienta es utilizada para el hospedaje de herra-

mientas y documentos, y como bitácora de los productos.

Tomcat - Java Servlet Engine. Esta herramienta es utilizada por Apache para

el correcto funcionamiento del servidor manejado por el subgrupo de Imple-

mentación.

La Arquitectura de Hardware está conformada por:

1 servidor. Este servidor está instalado en una máquina con Windows 2000, la

cual se utiliza de dominio.

18 PCs. Estos computadores están distribuidos entre los tres grupos interdisci-

plinarios, los cuales son indispensables para realizar el trabajo correspondiente

de cada uno de los miembros del laboratorio.

1 LAN. Esta red es utilizada para la conexión externa como lo es el acceso a

Internet, y para el acceso a herramientas públicas e n la red interna como lo

es una de las impresoras.

2 portátiles. Estos portátiles son utilizados como medios de apoyo para el

trabajo individual cuando haga falta un computador para en el cual trabajar.

3 impresoras. Las impresoras son utilizadas para imprimir el trabajo realizado,

como ayuda presentada en documentos, o documentos que se necesiten.

1 escáner. El escáner es utilizado para tareas varias, como lo es digitalizar una

imagen.

1 cámara digital. El uso de la cámara digital se hace cuando se necesiten

fotografías para la parte grá�ca del AVA o para realizar alguna otra tarea

relacionada.

41

Page 51: De nición y Adaptación de un Proceso de Desarrollo de ...

5.2.2. Características del MCVS del Proceso Actual

LIDIE, especí�camente su grupo de Desarrollo, consta con un grupo de acti-

vidades (Ver Figura 8), que en el proyecto AVA (De�nido en la Sección 5.1.2) se

encuentra ubicado en:

5.2.2.1. Fase de Diseño

Especi�cación.

Diseño Computacional. Establecimiento del diseño de la herramienta, me-

diante la elaboración de los diagramas necesarios para su correcto enten-

dimiento. El artefacto generado durante este proceso es el documento de

Diseño Computacional.

5.2.2.2. Fase de Desarrollo y Montaje

Desarrollo. Construcción de la herramienta computacional y montaje del

AVA.

Veri�cación. Realización de pruebas por requerimientos para veri�car el

correcto funcionamiento de la aplicación.

5.2.2.3. Fase de Diseño y Fase de Desarrollo y Montaje

A través de todo el proceso especi�cado en las fases anteriores se realizan las

siguientes actividades:

Soporte Instalación de las herramientas adecuadas y administración de ver-

siones de código de los backup de los productos.

Planeación y Seguimiento Realización de tareas de planeación semanal,

y reuniones de seguimiento de dicha planeación.

42

Page 52: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 8: Diagrama de Gant del Proceso de Desarrollo de Software en Lidie porEntregables

43

Page 53: De nición y Adaptación de un Proceso de Desarrollo de ...

5.2.3. Evaluación del Proceso de Desarrollo de Software

En LIDIE, especí�camente en el grupo de Desarrollo se ha visto la necesidad de

mejorar su proceso, lo cual ha generado que el área de investigación del grupo de

Desarrollo se centre en la mejora de su proceso de construcción de AVAs probando el

uso de varias prácticas para mejorar su proceso. Al observar su proceso de desarrollo

se identi�caron las actividades de los procesos (Sección 3.4) que están funcionando,

las que no y los objetivos y metas que se esperan para mejorar las actividades de

cada proceso:

5.2.3.1. Actividades que están funcionado

Procesos de Soporte del Proyecto

Administración. La diferenciación de los roles, genera un alto grado de

especialización no técnica, facilitando la asignación de tareas de acuerdo a sus

habilidades.

Optimización. La planeación de actividades, con sus respectivos tiempos

asignados para su desarrollo, genera un efectivo control del tiempo y experien-

cia para planear mejor el siguiente cronograma de actividades.

Procesos de Desarrollo.

Desarrollo. El desarrollo esta funcionando y cumple con los requerimientos

establecidos.

Despliegue. La presentación y entrega se hace de una forma adecuada.

44

Page 54: De nición y Adaptación de un Proceso de Desarrollo de ...

5.2.3.2. Actividades que no están funcionado o que no existen

Procesos de Soporte del Proyecto

Administración.

No se tienen objetivos establecidos del grupo y de cada uno de los roles

de los participantes que sean medibles.

No se tiene asignado un rol que se encargue del seguimiento y la planea-

ción de actividades lo que ocasiona que uno de los miembros del grupo

de Implementación se encargue de esta labor, ocasionando que una gran

cantidad de tiempo se gaste en tareas de seguimiento.

No se tiene asignado un rol que se encargue del aseguramiento de la

calidad, tanto del producto como del proceso, ocasionando que no se

sigan los pocos estándares de�nidos, y que el valor agregado del producto

se incremente.

El �contrato� con el profesor no está de�nido, por lo cual no es clara la

mantenibilidad del producto en cuanto a actualización, el mantenimiento

que se le debería hacer y la persona responsable de ello.

No se tienen políticas de�nidas para la administración de la calidad.

No se tiene un modelo de ciclo de vida en el cual se base el proceso, y el

proceso no esta de�nido, por lo cual no existe una correspondencia entre

el modelo de ciclo de vida y el proyecto.

Soporte y Mantenimiento.

La migración de los productos terminados es problemática, debido a que

además de los backup de los AVAs terminados, estos pasan a estar a cargo

de la DTI, y el proceso de migración es costoso, dispendioso, y no está

de�nido.

No está de�nido el alcance del soporte que se le hace al producto.

45

Page 55: De nición y Adaptación de un Proceso de Desarrollo de ...

La integración de las herramientas es poca lo que ocasiona la alta frag-

mentación de la información, y el difícil acceso a ella para los demás

grupos interdisciplinarios.

Estrategia.

No se tiene ni objetivos ni tácticas a utilizar.

No se hace un análisis de riesgos, ocasionando que no se haga una ad-

ministración de riesgos, por lo tanto no se tiene políticas de�nidas para

cuando el profesor no cumple con su tarea en la identi�cación de las nece-

sidades educativas y ocasiona el retraso en el desarrollo del AVA del cual

es responsable. Esto también ocasiona retrasos en el proceso de desarrollo

de otros AVAs.

Administración del Conocimiento.

La información y el conocimiento del grupo está disperso.

No se tiene establecido un plan de capacitación tanto para nuevos como

para antigüos miembros.

Procesos de Desarrollo.

Especi�cación.

El establecimiento de los requerimientos de una aplicación, debido a los

constantes cambios en los objetivos de aprendizaje y a la falta de comuni-

cación en el momento requerido para esta comunicación de cambios entre

los grupos interdisciplinarios.

Implementación.

No se tiene un proceso de�nido y documentado que soporte el proceso de

construcción de la herramienta computacional.

46

Page 56: De nición y Adaptación de un Proceso de Desarrollo de ...

Veri�cación. No se hace un diseño de pruebas, por lo que las pruebas a

veces llegan a ser incompletas y super�ciales.

Procesos Transversales.

Historial de Eventos.

La documentación es casi inexistente.

La información se encuentra fragmentada por la de�ciencia en la docu-

mentación de los productos y de los procesos, y por la rotación continua

de los miembros del grupo.

La documentación existente que se tiene es poco útil.

Optimización.

El realizar trabajo en equipo es difícil, aunque se intenta, debido a la

gran cantidad de proyectos a desarrollar obligando a cada miembro del

subgrupo de Implementación a trabajar individualmente.

No hay un análisis del proceso de construcción de las herramientas de-

sarrolladas en cada uno de los proyectos con el cual retroalimentar el

proceso.

Refactoring.

La reutilización no es efectiva debido a la de�ciencia en la ubicación y

centralización de la información de proyectos anteriores, ocasionando que

la consulta de la información sea difícil.

La información se encuentra fragmentada por la ausencia de documenta-

ción de los productos y de los procesos, y por la rotación continua de los

miembros del subgrupo de Implementación.

Prototyping. No se tiene ni un proceso, ni estándares para la construcción

y modi�cación de los prototipos de la herramienta, ya sea antes o durante su

desarrollo.

47

Page 57: De nición y Adaptación de un Proceso de Desarrollo de ...

Planeación y Seguimiento.

No se tienen objetivos del proyecto establecidos que sean medibles.

El seguimiento del proceso, aunque se ha mejorado un poco, falta mucho

debido a que el grupo se encuentra en etapa de experimentación de prác-

ticas para mejorar el proceso y debido a que no existen documentos de

estándares a seguir.

No existen estándares de métricas para medir el grado de cumplimiento

de las actividades planeadas con respecto a los objetivos establecidos.

Taller Interdisciplinario de Discusión. La comunicación no es efectiva,

ni clara con los otros grupos interdisciplinarios cuando intercambian artefactos

entre si al comienzo y al �nal de las fases, lo cual ocasiona grandes lagunas

en la interpretación de lo que es requerido para la elaboración correcta del

trabajo.

5.2.3.3. Objetivos y Metas

Los objetivos van orientados hacia el grupo de Desarrollo, pero debido a

que es un grupo interdisciplinario, este depende de los artefactos realizados por otros

grupos, por lo que cuando de habla de proyecto se re�ere al AVA en el que el grupo de

Desarrollo está participando con los otros grupos interdisciplinarios. La aplicación de

estos objetivos para los otros grupos interdisciplinarios es responsabilidad de ellos,

por lo cual es recomendable que ellos también los apliquen ya que afecta el trabajo

del grupo de Desarrollo en ese proyecto y por lo tanto todo el proyecto en sí. Estos

objetivos y sus metas son planteados como una propuesta que re�eja la forma de

solucionar los problemas anteriormente expuestos, y no todos serán abordados en la

de�nición del proceso que construcción de software de LIDIE, que es el eje principal

de esta propuesta debido a que el alcance es demasiado grande, sin embargo los

objetivo o metas que no sean abordados servirán como guía al grupo de Desarrollo

de LIDIE para el mejoramiento continuo de sus procesos.

48

Page 58: De nición y Adaptación de un Proceso de Desarrollo de ...

Mejorar el Trabajo en Grupo.

Establecer mejores canales de comunicación a nivel grupal(# de con�ictos

<1).

Establecer mejores canales de comunicación a nivel del proyecto(# de

con�ictos <5).

Establecer una mejor distribución del trabajo a nivel grupal (El desfase

en tiempo de la carga de trabajo de un integrante del grupo debe ser

menor al 5% con respecto al integrante con menor carga de trabajo).

Establecer una mejor distribución del trabajo a nivel del proyecto (El

desfase en tiempo de la entrega del proyecto debe ser menor al 5% con

respecto al tiempo estimado).

De�nición de las tareas que le corresponden a cada rol a nivel grupal-

roles locales(# de con�ictos <1).

De�nición de las tareas que le corresponden a cada rol a nivel del proyecto

- roles globales(# de con�ictos <1).

Mejorar la Calidad del Producto y del Proceso.

Aumentar la satisfacción del cliente(# de quejas o reclamos <1).

Entregar el producto a tiempo (El desfase en tiempo de la entrega del

proyecto es medido como el porcentaje del valor absoluto de la diferencia

entre el tiempo estimado y el tiempo utilizado, el cual debe ser menor a

l 5%).

Disminuir el tiempo utilizado en la modi�cación del producto en las fases

�nales del proceso (El # de errores encontrados en la fase de veri�cación

anterior a la entrega del producto, debe ser menor a 5).

Optimizar el uso de recursos (El desfase en tiempo de la entrega del

proyecto es medido como el porcentaje del valor absoluto de la diferencia

entre el tiempo estimado y el tiempo utilizado, el cual debe ser menor a

l 5%).

49

Page 59: De nición y Adaptación de un Proceso de Desarrollo de ...

Evaluar el proceso de desarrollo (El desfase entre la correspondencia de

métricas por objetivo debe ser mayor o igual a 1).

Tener una propiedad colectiva de conocimiento (Por cada nuevo tema

investigado y aplicado un documento explicando lo realizado con dicho

tema).

Mejorar el Manejo de la Población Flotante.

Realizar e implantar un buen plan de formación.

Mejorar el proceso de selección (Per�les especí�cos para la selección de

nuevos integrantes).

Mejorar la e�ciencia en el desarrollo de tareas (De�nir procedimientos

claros y concisos).

Mantener información actualizada de cada integrante �otante(Por cada

integrante �otante, una �cha técnica).

Realizar e implantar un buen plan de formación.

Mejorar la e�ciencia en el desarrollo de las tareas (La relación tiempo-

complejidad de una tarea disminuye gradualmente con respecto a la tarea

anterior).

Mejorar la administración de con�guraciones.

Estandarizar artefactos.

Estandarizar los artefactos (Utilización de patrones únicos en el desarrollo

de los artefactos).

50

Page 60: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo VI

Construcción del Proceso

Para la construcción de un proceso de desarrollo, es necesario identi�car prime-

ro las necesidades más importantes que se desean cubrir y la metodología que se

va a utilizar para su construcción, ya que estas son las principales bases para la

construcción de un buen proceso.

6.1. Marco para Caracterizar a LIDIE

Antes de abordar una metodología de construcción de procesos es necesario esta-

blecer las características principales del proceso que se desean en el producto �nal, y

en el diseño de un proceso de construcción de software es indispensable establecer en

que MCVS se va a basar, no quiere decir que sea una garantía pero si aumentará la

probabilidad de que el resultado sea lo deseado. Las principales características sobre

las cuales se va a basar la construcción del proceso provienen de dos análisis previa-

mente realizados, el primero es la evaluación del proceso actual de construcción de

software del grupo de Desarrollo (Sección 5.2.3) y el segundo es la comparación de

MCVSs (Sección 3.4).

6.1.1. Identi�cación de las Características del Proceso Deseado

Las características identi�cadas y que el proceso de construcción de software de

LIDIE debería tener, son:

Estándares claros para el manejo de los contenidos de la documentación, pa-

ra la ubicación de documentos y para el nombramiento de artefactos y su

versionamiento.

51

Page 61: De nición y Adaptación de un Proceso de Desarrollo de ...

Métricas claras para poder medir la calidad y efectividad del producto.

Liviano y fácil de soportar por herramientas de software libre y que no se ate

a una tecnología especí�ca.

Fácilmente adaptable a nuevos proyectos que puedan surgir, es decir que no

sea fuertemente dependiente del proyecto que se va a desarrollar.

6.1.2. Selección del Proceso

Teniendo en cuenta la tabla comparativa de MCVSs (Figuras 1 y 2), el modelo

más adecuado es una combinación entre TSP (Sección 3.3.1.2 y XP (Sección 3.3.1.2,

debido a que el TSP es uno de los MCVSs más completos, y las técnicas que utiliza

XP pueden adaptarse fácilmente al TSP, además de complementarlo y mejorarlo.

Uno de los aportes de XP es la propiedad colectiva del código, el cual se extiende a

una propiedad colectiva del conocimiento necesario en un grupo que realiza proyectos

concurrentemente, el otro aporte es la simplicidad de la comprensión del proceso, lo

cual no signi�ca que haya poco trabajo o que la complejidad de las tareas sea trivial,

signi�ca que hay un alto grado de entendimiento sobre las tareas que se tienen que

realizar, y el aporte �nal son iteraciones pequeñas, que a pesar que el proceso utiliza

ciclos para todo su desarrollo, las iteraciones pequeñas se aplicarán a las fases que

contengan las actividades más complejas.

6.2. QualDev Community y la Adaptación del Proceso

Para la adaptación del proceso se decidió utilizar como base el proceso de�nido

para el Proyecto Changeset, proyecto perteneciente a QualDev Group [Gro06e], que

hace parte del grupo de Construcción de Software de la Universidad de Los Andes.

El proceso de Changeset se caracteriza por ser un TSP �light�, debido a la aplicación

de varias prácticas de XP y otros procesos para el desarrollo de proyectos ágiles. Para

poder hacer esta adaptación se requirió entrar a participar en QualDev Group para

conocer más de cerca la forma de trabajo y observar el proceso que utilizaban en

el desarrollo de su proyecto Changeset, cuyo �n es desarrollar un software de apoyo

52

Page 62: De nición y Adaptación de un Proceso de Desarrollo de ...

a la administración de con�guraciones, utilizando tecnología de punta y realizando

un proceso de desarrollo con énfasis en calidad [Gro06c]. Mediante esta alianza se

entró a participar en el proyecto QualDev Community, mediante el cuál se utilizó el

Modelo IDEAL para la adaptación del proceso de Changeset a la realidad que vive

el grupo de Desarrollo de LIDIE en la construcción de software.

6.2.1. QualDev Community

El proyecto QualDev Community tiene como �n ayudar a las empresas peque-

ñas y medianas de software de la industria nacional creando una relación en ambos

sentidos, donde QualDev como equipo aporta su conocimiento en procesos y herra-

mientas y las empresas como LIDIE acercan el proceso de Changeset a contextos

reales dentro de la industria del software [Gro06d]. Para el caso de LIDIE, la relación

creada con QualDev le permitió la creación de su proceso y a QualDev le permi-

tió retroalimentarse y estrechar sus vínculos con LIDIE para la creación de nuevos

proyectos a futuro.

6.2.2. El Modelo IDEAL

El proyecto de QualDev Community llevaba 4 meses de creado antes de su im-

plantación para la creación del proceso de LIDIE, pero el equipo de QualDev lleva

ya tres años de experiencia en conocimiento acerca de procesos, lo cual facilitó la

adaptación del proceso debido a la ejecución del modelo IDEAL, metodología uti-

lizada para la planeación de mejoramiento de procesos de desarrollo de software

propuesta por el Instituto de Ingeniería de Software (SEI por sus siglas en inglés) en

la Universidad de Carnegie Mellon [Uni06]. La implementación del modelo IDEAL

se basó en la metodología a seguir para su correcta implementación, descrita por

Camilo Rincón y Sergio Rodriguez en su tesis �Mejoramiento del Proceso de Planea-

ción y Seguimiento de Proyectos de Desarrollo de Software en Pequeñas Empresas�

[ySR05].

La metodología IDEAL recibe su nombre de las cinco iniciales de las fases que la

53

Page 63: De nición y Adaptación de un Proceso de Desarrollo de ...

componen: Initiating (Inicialización), Diagnosis (Diagnóstico), Establishing (Esta-

blecimiento), Acting (Ejecución) y Leverage (Aprendizaje). El objetivo de la metodo-

logía es desarollar un trabajo efectivo cuando se construyen planes de mejoramiento

de procesos, este trabajo efectivo se realiza mediante la ejecución de la secuencia de

fases en iteraciones, de esta forma se presentan resultados a los objetivos planteados

inicialmente y al iniciar nuevos ciclos se ejecutan nuevos objetivos para continuar el

mejoramiento del proceso de construcción de software.

6.2.3. Ejecución de la Adaptación del Proceso

La ejecución del modelo IDEAL se realizó en dos ciclos, pero para el segundo ciclo

no se modi�có ni la fase de inicialización ni el diagnóstico debido a que los mismos

objetivos de la inicialización se mantuvieron para el segundo ciclo y el diagnóstico

continuaba siendo vigente. A continuación se describen todos los puntos a tratar en

cada fase del modelo IDEAL y como su ejecución permitió la adaptación del proceso

de construcción de software.

Inicialización. La inicialización es considerada la fase donde se de�nen las pautas

principales que se van a llevar durante toda la ejecución del modelo IDEAL para

lograr aplicar la metodología, por lo tanto se de�ne el proceso que se va a mejo-

rar, los objetivos globales, el alcance y �nalmente las responsabilidades para cada

participante.

Punto Crítico a Trabajar. La selección del punto crítico a trabajar se basó

en la identi�cación de los problemas encontrados en el grupo de Desarrollo

de LIDIE (Sección 5.2.3.2 y debido a que el alcance hubiera sido demasiado

grande si se hubiera considerado que se atacarían todos los problemas, por lo

tanto se escogió el proceso de Administración del Conocimiento. La selección

del proceso de Administración del Conocimiento como punto crítico a trabajar

se debió a que:

• No hay un proceso documentado ni unas líneas básicas que seguir, lo cual

ocasionaría un gran caos si se decidiera atacar cualquier otro problema,

54

Page 64: De nición y Adaptación de un Proceso de Desarrollo de ...

debido a que se asumiría muchas cosas que no existen, por ejemplo si se

decidiera atacar el proceso de planeación, al �nal no se podría evaluar el

grado de éxito de la implantación debido a que no se de�nieron objetivos

medibles sobre los cuales evaluar dicho proceso.

• La administración de conocimiento contempla la propiedad colectiva del

conocimiento un punto importante, el cual debido a que no se tiene un

proceso de�nido, abarca todo el problema de de�nición del proceso ata-

cando todos los problemas encontrados en el grupo de Desarrollo de LI-

DIE en cierto grado, que por pequeño que sea sienta las bases para luego

poder atacar esos problemas puntualmente. Por ejemplo, al de�nir en el

proceso de construcción de software la fase de Estrategia, se comienza a

atacar la Administración de Riesgos.

Objetivos Globales.

• Centralizar el conocimiento del grupo de Desarrollo.

• Mejorar la metodología de construcción de software del grupo de Desa-

rrollo.

• Integrar el proceso de Construcción de Software del grupo de Desarrollo

con el proceso de Administración del Conocimiento.

Alcance de la Implantación. Implantación de un espacio de administración del

conocimiento que soporte el proceso de construcción de software que se genere

para el grupo de Desarrollo de LIDIE.

Asignación de Roles. Las responsabilidades asignadas para cada participante

son:

• Luz Adriana Osorio y Sergio Rodriguez se encargarían de hacer segui-

miento del proceso, lo cual generó sugerencias y recomendaciones a través

de la ejecución de la adaptación del proceso.

• Guillermo Aristizábal se encargaría de la revisión y discusión de la im-

plantación del proceso de Administración del Conocimiento. Gracias a

55

Page 65: De nición y Adaptación de un Proceso de Desarrollo de ...

este rol, se entablaron discusiones sobre la adaptación de cada fase y

las actividades que se necesitarían en cada una, ayudando a construir el

proceso de construcción de software.

• Erick Escorcia se encargaría de la implantación del proceso de adminis-

tración del conocimiento. Al ejecutar este rol se construyó lo que sería

el proceso de construcción de software y su adaptación al ambiente de

LIDIE.

Diagnóstico. En esta fase, como su nombre lo indica, se hace un diagnóstico del

proceso que se decidió atacar, en este caso fue la Administración del Conocimiento,

especi�cando los objetivos a trabajar por niveles, y describiendo tanto el estado

actual del proceso como el estado deseado.

Objetivos Concretos a Trabajar. Se especi�can los objetivos globales por niveles

donde el número del nivel indica la profundidad de la especi�cación del objetivo

y al atacar los objetivos de los niveles más especí�cos se alcanzan los objetivos

del nivel superior:

• Nivel 1: Mejorar la Metodología de Construcción de Software del grupo

de Desarrollo.

• Nivel 2:

◦ Administrar y centralizar el conocimiento del grupo de Desarrollo.

◦ Integrar el proceso de Construcción de Software del grupo de Desa-

rrollo con el Proceso de Administración de Conocimiento.

◦ Implantación de un TSP básico y liviano adaptado al grupo de De-

sarrollo.

• Nivel 3:

◦ De�nición y adaptación de un espacio para la administración de cono-

cimiento: Wiki.

◦ De�nir las fases, las actividades necesarias por fase y sus plantillas.

◦ De�nir la clasi�cación de requerimientos y sus plantillas.

56

Page 66: De nición y Adaptación de un Proceso de Desarrollo de ...

◦ De�nir los artefactos por fases y por tipos de requerimientos y sus

plantillas.

Estado Actual del Proceso.

• Descripción General: El proceso de construcción de software se centra en

la creación de aplicaciones tanto web (Basadas o no en un LMS - Learning

Management System) como standalone para el proyecto AVA (Ambientes

Virtuales de Aprendizaje), y no tienen un proceso de Administración de

Conocimiento que soporte dicho proceso.

• Detalle de la Metodología Actual: Actualmente la metodología que se

sigue está en las personas que trabajan en el grupo de Desarrollo, y se ca-

racteriza por hacer un diseño de la herramienta luego su implementación

y �nalmente pruebas de usuario.

• Puntos de Falla Identi�cados:

◦ No existe una metodología de construcción del software de LIDIE

que se pueda consultar.

◦ No hay una metodología para capacitar al personal de rotación.

◦ El conocimiento esta centrado en una sola persona: no hay propiedad

colectiva del conocimiento.

◦ No se tienen métricas para evaluar el proceso y el producto.

◦ No se tienen objetivos establecidos a nivel de grupo.

◦ No se hace una planeación global, que soporte la planeación indivi-

dual que se hace.

• Herramientas de Soporte: Se tiene una Wiki que no se utiliza y que está

desactualizada, es una Wiki orientada al desarrollador: phpWiki

• Reportes y Entregables:

◦ Diseño Computacional.

◦ AVA (Producto) Funcional.

57

Page 67: De nición y Adaptación de un Proceso de Desarrollo de ...

Estado Deseado del Proceso.

• Descripción General: Se desea una administración del conocimiento que

soporte las labores de capacitación de la rotación personal, que facilite el

uso de estándares constantemente y que permita una propiedad colectiva

del conocimiento.

• Herramientas que se Pueden Implementar: Una Wiki, que se actualice

fácil y continuamente y que no este orientada únicamente al desarrollador,

ya que se desea extender el uso de la Wiki a todo LIDIE y LIDIE no esta

conformado sólo por ingenieros de sistemas, por lo cual la Wiki estaría

orientada a la edición de documentos: DokuWiki.

• Diagnóstico de la Ayuda del Qualdev Process: Se adaptará el Change-

set Process, basándose en las necesidades del grupo de Desarrollo junto

con el desarrollo de una Wiki, para que el grupo como equipo sea ca-

paz de administrar su conocimiento y descentralice el conocimiento de la

metodología del proceso para que se comience a generar una propiedad

colectiva de este en todo el grupo de Desarrollo. Debido a las caracterís-

ticas de LIDIE, para los procesos adicionales que se requieran de�nir y el

Changeset Process no lo de�na, se recurrirá principalmente al QualDev

Process y a TSP.

Establecimiento y Ejecución. En la fase de Establecimiento se de�ne el crono-

grama detallado. Para la de�nición de los cronograma de trabajo para la construcción

del proceso de LIDIE, se especi�có la tarea, su descripción, su fecha estimada de

entrega, su duración y el responsable. En cada uno de los ciclos se trabajo en la

adaptación de cada una de las fases a trabajar y su registro correspondiente en la

Wiki.

El objetivo de la fase de Ejecución es ejecutar el cronograma de�nido en la fase

de Establecimiento, y registrar cada una de las reuniones realizadas. La adaptación

del proceso para los dos ciclos consistió en llevar una propuesta para cada una de

las fases a adaptar, se discutía la propuesta, a la siguiente reunión se llevaba la

58

Page 68: De nición y Adaptación de un Proceso de Desarrollo de ...

propuesta con las modi�caciones acordadas, y en la próxima reunión se dejaba lista

dicha fase y se llevaba lista la propuesta de la siguiente fase, de esta forma se adaptó

cada una de las fases (Sección 7.2. Al mismo tiempo que se adaptaba cada fase, se

iba preparando la Wiki [LID06a].

A continuación se describe lo planeado y se compara con lo realizado en la fase

de Ejecución:

Ciclo 1. El ciclo comenzó en septiembre y terminó en noviembre, como estaba

estipulado, aunque hubo problemas con respecto a la instalación de la Wiki,

debido a problemas de migración, se resolvió invirtiéndole más tiempo a la

instalación y al retraso que hubo en cuanto a la de�nición del proceso en la

Wiki, a pesar de que ya se tenía de�nido en documentos temporales. Las fases

adaptadas fueron: Lanzamiento, Estrategia, Planeación y Análisis de Requeri-

mientos; de las cuales hubo problemas de planeación en la de�nición de la fase

de Estrategia debido a que implicó la de�nición de más tareas de las cuales al-

gunas eran complejas como la administración de riesgos y la administración de

con�guraciones. Aunque el Análisis de Requerimientos no pertenece al grupo

de Desarrollo sino al grupo de Diseño Instruccional, fue necesario de�nir este

proceso para tener claro lo que necesitaba el grupo de Desarrollo para realizar

un correcto Diseño Computacional.

Ciclo 2. El ciclo comenzó en noviembre y terminó en diciembre, como estaba

estipulado, continuó el retraso que ocasionó la documentación del proceso en

la Wiki pero se terminó con éxito. Las fases adaptadas fueron: Diseño1 ,

Implementación, Pruebas y Postmortem. Se añadieron instructivos a manera

de tutoriales además de las plantillas para la correcta comprensión de como se

deberían llenar dichas plantillas.

Aprendizaje. En la fase de aprendizaje se evalúan los objetivos propuestos en

la fase de inicialización, se identi�can las lecciones aprendidas durante la ejecución

1De aquí en adelante a la fase de Diseño que pertenece al grupo de procesos de Desarrollo se ledenominará Diseño, la explicación se hace para evitar que sea confundido el nombre de la fase conla fase de Diseño propia del proyecto AVA y para simpli�car el lenguaje manejado.

59

Page 69: De nición y Adaptación de un Proceso de Desarrollo de ...

del modelo IDEAL y �nalmente las propuestas de mejora, ya sean para próximos

ciclos o para una próxima ejecución del modelo IDEAL en la adaptación de nuevos

procesos.

Evaluación de los Objetivos. Debido a que los objetivos del nivel tres eran los

objetivos más especí�cos, esos fueron los que se evaluaron:

• Ciclo 1:

◦ De�nición y adaptación de un espacio para la administración de cono-

cimiento: Wiki. Como inconvenientes encontrados, hubo problemas

con la con�guración de la Wiki y con la disponibilidad del servidor

donde se debía instalar; mientras que como resultados de las mejoras,

el grupo de Desarrollo y el grupo de Diseño Instruccional comenzaron

a explorar la herramienta.

◦ De�nir las fases, las actividades necesarias por fase y sus plantillas.

Como inconvenientes encontrados, se percibió la inercia del grupo de

Desarrollo y su resistencia al cambio. Como resultados de las mejoras,

el grupo comenzó a concientizarse de que debían mejorar su proceso

debido a las exigencias que le estaba haciendo la DTI y a con�ictos

con el grupo de Diseño Instruccional con respecto a las tareas que

cada grupo debía realizar y la mejor forma para realizarlas; y �nal-

mente se de�nieron las fases de Lanzamiento, Estrategia, Planeación

y Análisis.

◦ De�nir la clasi�cación de requerimientos y sus plantillas. Como in-

convenientes encontrados no se percibió ninguno; mientras que como

resultados de las mejoras se identi�caron dos tipos de requerimientos

adicionales a los funcionales y no funcionales, que fueron los requeri-

mientos grá�cos y los de interacción.

◦ De�nir los artefactos por fases y por tipos de requerimientos y sus

plantillas. Como inconvenientes encontrados no se percibió ninguno;

mientras que como resultados de las mejoras se identi�có que desde la

60

Page 70: De nición y Adaptación de un Proceso de Desarrollo de ...

fase de análisis hasta la de implementación se generaba un artefacto

por fase que debía contener cada uno de los tipos de requerimientos.

• Ciclo 2:

◦ De�nición y adaptación de un espacio para la administración de cono-

cimiento: Wiki. Como inconvenientes encontrados, hubo problemas

con la exportación a pdf debido a que para la versión de html2ps

instalada se maneja diferente a la versión con la cual se especí�co en

el tutorial de QualDev �Adaptación de DokuWiki� [Gro06a] y pre-

senta algunos problemas en algunos navegadores; mientras que como

resultados de las mejoras, el grupo de Desarrollo y el grupo de Diseño

Instruccional comenzaron a registrar su información en la Wiki.

◦ De�nir las fases, las actividades necesarias por fase y sus plantillas.

Como inconvenientes encontrados, se continúo percibiendo la inercia

del grupo de Desarrollo y su resistencia al cambio, aunque compa-

rándola con el ciclo anterior se redujo bastante; mientras que como

resultados de las mejoras, el grupo comenzó a reconocer lo necesario

de la de�nición de las tareas en un alto nivel de detalle y se de�nieron

las fases de Diseño, Implementación, Pruebas y Postmortem.

◦ De�nir la clasi�cación de requerimientos y sus plantillas. Como in-

convenientes encontrados no se percibió ninguno; mientras que como

resultados de las mejoras se corrigieron y mejoraron las plantillas

creadas el ciclo pasado.

◦ De�nir los artefactos por fases y por tipos de requerimientos y sus

plantillas. Como inconvenientes encontrados no se percibió ninguno;

mientras que como resultados de las mejoras se corrigieron los arte-

factos generados por fase al igual que las tareas especi�cadas para la

generación de dichos artefactos.

Lecciones Aprendidas. Las lecciones aprendidas constituyen la principal base

de retroalimentación del proceso de adaptación con respecto al conocimiento

adquirido gracias a su utilización.

61

Page 71: De nición y Adaptación de un Proceso de Desarrollo de ...

• Ciclo 1:

◦ Es importante la retroalimentación que se hace y la comunicación de

las dos partes en todo momento.

◦ Los cambios deben hacerse poco a poco, ser adaptativos y utilizar el

diálogo adecuadamente para evitar con�ictos de intereses.

• Ciclo 2:

◦ La de�nición de tareas y sus plantillas no basta para a�anzar el cono-

cimiento, es necesario de�nir tutoriales, ejemplos y capacitaciones u

otras actividades complementarias.

◦ Es importante en la adaptación de procesos no seguir el proceso base

al pie de la letra sino proponer mejoras basadas en los comentario

recibidos de quienes lo utilizan diariamente y tener en cuenta otros

procesos existentes.

Puntos a Mejorar. Los puntos a mejorar se basan en los resultados obtenidos

de la evaluación de los objetivos y las lecciones aprendidas.

• Ciclo 1:

◦ Lograr mostrar cambios contínuamente y lo más rápido posible.

• Ciclo 2:

◦ Planear mejor las actividades a realizar de acuerdo al tiempo dispo-

nible y al tiempo requerido.

62

Page 72: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo VII

PAL: Proceso de Construcción de Software de

LIDIE

El proceso de Construcción de software de LIDIE se bautizó PAL para su fácil

reconocimiento y fácil referencia. Para la de�nición de PAL (Proceso de Administra-

ción de la Construcción de Software de LIDIE) se tomó la decisión de únicamente

centrar su de�nición en los procesos que representaban fases en el proceso de cons-

trucción de software de LIDIE, ya que esta es la base necesaria para la creación de

los procesos que extenderán a PAL a futuro.

7.1. De�nición del Proceso

Se toman los procesos analizados en el análisis hecho de los diferentes MCVSs

(Sección 3.4), para explicar el origen de cada una de las fases:

De los procesos de Soporte se de�nió la fase de Lanzamiento perteneciente

al proceso de Administración y la fase de Estrategia que representa el mismo

proceso que lleva su nombre.

De los procesos de Desarrollo se de�nieron las fases de Análisis de Reque-

rimientos y Diseño que pertenecen al proceso de Especi�cación, la fase de

Implementación que representa al proceso que lleva su mismo nombre y la fase

de Pruebas que es de�nida por el proceso de Veri�cación.

De los procesos Transversales se de�nió la fase de Planeación que hace parte

del proceso de Planeación y Seguimiento.

63

Page 73: De nición y Adaptación de un Proceso de Desarrollo de ...

Finalmente, la fase de Postmortem es generada de la interacción de los pro-

cesos de Soporte y los procesos Transversales, ya que del primer tipo utiliza

la evaluación de los objetivos de�nidos en Lanzamiento (Parte del proceso de

Administración) junto con las lecciones aprendidas (Parte del proceso de Ad-

ministración de Conocimiento) para rede�nir la ejecución de próximos ciclos

y proyectos; y del segundo tipo utiliza la reutilización de históricos (Parte de

los procesos de Historial de Eventos y Refactoring) para cada una de las fases

y de�nición de métricas para poder realizar seguimiento al proyecto y al pro-

ducto y generar propuestas de mejora (Parte de los procesos de Optimización

y, Planeación y Seguimiento).

7.2. Fases

Para cada una de las fases se de�nió su propósito, su motivación y las actividades

que componen cada fase. Para cada actividad se de�nió su justi�cación, criterio de

entrada, descripción, entregables o documentos de soporte, criterio de salida y par-

ticipantes en el desarrollo de la actividad descrita. La estructura utilizada proviene

de la estructura manejada por el proceso de Changeset [Gro06b]. A continuación se

especi�can cada uno de las de�niciones mencionadas anteriormente para cada fase,

el único punto que no se muestra a continuación son las plantillas, instructivos y

ejemplos que se generaron para apoyar el desarrollo de cada tarea, por lo tanto se

recomienda consultar la Wiki de LIDIE [LID06a] donde quedó de�nido el proceso

con sus documentos de soporte [LID06b].

7.2.1. LANZAMIENTO

7.2.1.1. Motivación

Al iniciar un proyecto, sin importar el tipo de proyecto o el mercado en el cual

se va a desarrollar, lo más importante es de�nir el equipo y las reglas de trabajo,

ya que estos elementos son indispensables para la correcta ejecución del proyecto, es

por esta razón que la fase de Lanzamiento se hace necesaria cuando se va a ejecutar

un proyecto.

64

Page 74: De nición y Adaptación de un Proceso de Desarrollo de ...

7.2.1.2. Propósito

La fase de Lanzamiento es el primer proceso de desarrollo que se lleva a cabo

una vez iniciado el proyecto. El lanzamiento de un proyecto de software consiste en

organizar el equipo y el proceso para que sean capaces de enfrentar el proyecto que se

inicia. Esta fase se realiza cada vez que se inicia un ciclo de desarrollo. Sin embargo,

su principal aporte ocurre en el inicio del proyecto cuando apenas se organiza toda la

infraestructura de desarrollo. Es por esta razón que el tiempo invertido en el proceso

de Lanzamiento es signi�cativamente mayor al inicio del proyecto.

El �n del proceso es lograr organizar el equipo bajo lineamientos claramente

establecidos, de manera que todos inviertan tiempo en actividades que converjan

al mismo punto. Esto se hace mediante la de�nición de roles, objetivos a diferentes

niveles, reglas de trabajo y horario de disponibilidad.

7.2.1.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Lan-

zamiento desde la perspectiva de esta propuesta.

Actividad 1. De�nición de Roles

Justi�cación. La principal característica de esta propuesta es la adaptabi-

lidad del marco de referencia. No se puede esperar que para todos los proyectos,

los mismos y tradicionales roles sean adecuados. Por ejemplo, en algunos casos

de proyectos ágiles es muy probable necesitar un rol de líder de RyD.

De manera adicional, liderar el desarrollo de un conjunto de actividades refuer-

za y expande los conocimientos de los desarrolladores en un área especí�ca.

También genera más empoderamiento y capacidad de liderar. Estas cualidades

son importantes dentro del equipo. Al dividir la responsabilidad de liderar, se

genera sinergia dentro del equipo dejando de lado las tradicionales estructuras

jerárquicas de líderes y desarrolladores.

65

Page 75: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Documento de casos de uso generales.

Descripción. Dentro de un equipo es necesario que existan diferentes �gu-

ras que aseguren el buen desarrollo de un conjunto de actividades lógicamente

agrupadas. Por ejemplo, para el conjunto de actividades de planeación, es ne-

cesario asignar un integrante del equipo que sea el responsable de que estas se

realicen adecuadamente. A estas �guras dentro del proyecto se dice que se les

asigna un rol. Para el caso del ejemplo, sería el rol de planeación. La de�nición

de roles generalmente está limitada tanto por el número de integrantes del

grupo como por las características especiales del proyecto a desarrollar, es por

esto que los roles se de�nen teniendo en cuenta estos dos elementos, y no al

contrario ya que la de�nición de roles es una tarea que soporta el desarrollo

del proyecto y no al contrario.

Cada rol tiene un conjunto de actividades y tareas de las cuales es responsable.

Es importante resaltar que la disposición innata de los integrantes para ejecu-

tar un rol, es la base para asegurar el éxito de la tarea de ejercerlo. Por esto,

los roles no deben ser impuestos a los desarrolladores. Los roles son asignados

de acuerdo a la disposición inicial, y con la experiencia conocida de cada de-

sarrollador. Con la evolución del proyecto se puede ver si los roles estuvieron

bien asignados o por el contrario deben ser rotados.

Esta actividad consiste básicamente en revisar el proyecto para determinar

los roles que será necesario asignar dentro del equipo. Esta actividad no toma

mucho tiempo. Sin embargo, es sumamente importante para asegurar el buen

desempeño de todo el conjunto de actividades que se realizan en cada periodo

de desarrollo.

Diferentes roles pueden ser de�nidos dentro de un proyecto. Los roles que

generalmente se de�nen son:

Líder del Proyecto.

66

Page 76: De nición y Adaptación de un Proceso de Desarrollo de ...

Líder de Planeación.

Líder de Calidad y del Proceso.

Líder de Desarrollo.

Líder de Soporte.

Es posible que para un proyecto particular sea necesario incluir nuevos roles

dentro del equipo. Por ejemplo, en el caso particular de los proyectos ágiles, se

hace necesario incluir un rol de pruebas. Adicionalmente al de�nir un nuevo

rol, es necesario establecer claramente cuales son las responsabilidades que este

va a tener.

Es importante aclarar que ejercer un rol no implica realizar todas las activida-

des del área a la que se re�ere el rol, en este caso como cada rol es el líder en

un área la persona que ejerce un rol es responsable de liderar esas actividades

más no hacerlas solo, a menos que así se especi�que en la fase de Estrategia.

También se pueden manejar diferentes tipos de roles, por ejemplo se pueden

manejar roles operativos y roles de coordinación, ya que en un proyecto de De-

sarrollo de Software todos los desarrolladores por la de�nición de su profesión

deben hacer tareas de desarrollo de software, de esta forma esta propuesta en-

fatiza la importancia de que cada miembro del equipo haga tareas operativas

(de desarrollo) y de coordinación, algo que es muy recomendado cuando un

grupo realiza proyectos ágiles, ya que puede que un desarrollador no realice

tareas de coordinación, pero lo contrario, un desarrollador que no realice tareas

operativas, nunca debe suceder.

Se propone la realización de las siguientes tareas:

1. Con base en el documento de levantamiento de requerimientos narrativos

se realiza un estudio que permita identi�car los roles necesarios para

abordar el proyecto. Esta información se consigna sobre el documento de

lanzamiento.

2. De ser necesario, se crean nuevos per�les de roles requeridos y se docu-

menta las responsabilidades necesarias sobre el documento de de�nición

67

Page 77: De nición y Adaptación de un Proceso de Desarrollo de ...

de roles.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describen la forma

de documentación de la fase de Lanzamiento del proyecto.

Ejemplo de la de�nición de varios tipos de roles.

Criterio de Salida.

1. Primera versión del documento de Lanzamiento del proyecto: De�nición

de Roles.

Participantes. Todos los roles.

Actividad 2. Conformación del Equipo

Justi�cación. Es importante que todos en el equipo se conozcan y puedan

saber las responsabilidades de cada miembro del equipo, así como su ubicación

y las maneras de comunicarsen entre sí. De esta forma se evitan retrasos o

con�ictos en la realización de las tareas.

Criterio de Entrada.

Información de personal disponible.

Documento de levantamiento de requerimientos narrativos.

Primera versión del documento de Lanzamiento del proyecto.

Descripción. Esta actividad consiste en escoger los miembros del equipo y

asignarles roles y responsabilidades. Las características de los proyectos ágiles

dejan un amplio margen de posibilidades para que un desarrollador pueda

pertenecer al equipo. No es necesario que los desarrolladores sean brillantes

o tengan cualidades difíciles de encontrar. Lo realmente importante de un

desarrollador que pertenezca al equipo que desarrolla proyectos ágiles, es que

68

Page 78: De nición y Adaptación de un Proceso de Desarrollo de ...

tenga disponibilidad para buscar las oportunidades de mejora y adaptar el

proceso de desarrollo a la conveniencia del proyecto. Lógicamente, todo esto es

posible con constancia en el trabajo y responsabilidad al momento de cumplir

con las actividades asignadas.

Si el proyecto ágil se desarrolla en medio de una organización con su�cientes

recursos disponibles, es posible que la actividad tenga algo más de complejidad.

Se propone la realización de las siguientes tareas:

1. El personal disponible es clasi�cado de acuerdo a sus áreas de experiencia

e interés.

2. Se asignan los roles buscando la manera de fortalecer los puntos débiles

y al mismo tiempo, expandir el conocimiento y experiencia del equipo.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describen la forma

de documentación de la fase de Lanzamiento del proyecto.

Criterio de Salida.

1. Segunda versión del documento de Lanzamiento del proyecto: Se añadió

la Información del Equipo.

Participantes. Todos los roles.

Actividad 3. Establecimiento de Objetivos

Justi�cación. Cada objetivo debe estar asociado con métricas que per-

mitan al momento de realizar una evaluación, conocer si el objetivo ha sido

cumplido. Es importante de�nir métricas cuantitativas que permitan ponderar

los logros obtenidos en el tema de objetivos trazados.

Con los objetivos y las métricas es posible conocer la evolución del equipo,

el producto y el proyecto. En cuanto al equipo es posible conocer el avance

69

Page 79: De nición y Adaptación de un Proceso de Desarrollo de ...

en la adaptabilidad y la sinergia del trabajo en equipo, para el producto se

puede evaluar su completitud y su calidad y, para el proceso se pueden evaluar

estándares utilizados y cumplimiento de compromisos. Esto se re�eja en los

alcances logrados en cada proyecto desarrollado.

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Segunda versión del documento de Lanzamiento del proyecto.

Descripción. Dentro de los proyectos ágiles se debe establecer dos grupos

de objetivos en la fase de lanzamiento. Los objetivos del equipo y los objetivos

del proyecto. Mientras que según TSP se añaden los objetivos de los roles y

los objetivos de los miembros del grupo.

Los objetivos del equipo hacen referencia a lo esperado en el tema de la evolu-

ción del grupo de desarrollo en las metodologías de trabajo y el apoyo general

de cada integrante a todo el grupo. Los objetivos del proyecto son más espe-

cí�cos y dependen del proyecto sobre los que se establezcan. Los objetivos de

los roles describen las actividades que va a liderar cada rol. Finalmente, los

objetivos de los miembros del grupo se re�eren a los objetivos que busca cada

miembro del equipo como individuo al realizar el proyecto.

Se propone la realización de las siguientes tareas:

1. Con base en las características del equipo y del proyecto, cada desarro-

llador escoge los objetivos que considere más importantes de alcanzar.

Estos objetivos deben ir acompañados de la de�nición de métricas que

sustenten el avance alcanzado.

2. Se realiza una lluvia de ideas para escoger nuevos objetivos y sus respec-

tivas métricas para su seguimiento.

70

Page 80: De nición y Adaptación de un Proceso de Desarrollo de ...

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Lanzamiento del proyecto.

Criterio de Salida.

1. Tercera versión del documento de lanzamiento del proyecto: Se añadieron

los Objetivos del Proyecto, del Grupo, de los Miembros del Equipo y de

los Roles.

Participantes. Todos los roles.

Actividad 4. Establecimiento de Reglas del Equipo

Justi�cación. Todo equipo necesita manejar un conjunto de reglas para su

correcto funcionamiento. Estas reglas incluyen desde horarios para reuniones

hasta penalidades por incumplimiento en las actividades asignadas. En general,

es el equipo quien determina las reglas necesarias para trabajar.

Criterio de Entrada.

Tercera versión del documento de Lanzamiento del proyecto.

Descripción. Se propone la realización de las siguientes tareas:

1. Con base en las características del equipo y del proyecto, cada desarro-

llador escoge las reglas que le parezca importantes seguir para el equipo

funcione adecuadamente.

2. Se realiza una lluvia de ideas para escoger nuevas reglas.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Lanzamiento del proyecto.

71

Page 81: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Versión �nal del documento de Lanzamiento del proyecto: Se añadieron

las Reglas de Trabajo, el Horario de Trabajo de cada integrante y, el

Horario y Lugar de las Reuniones de Seguimiento.

Participantes. Todos los roles.

7.2.2. ESTRATEGIA

7.2.2.1. Motivación

Cuando se forma un equipo es necesario de�nir el esquema de trabajo al igual

que las tácticas a utilizar para lograr los objetivos establecidos, es por eso que es

necesario de�nir esas tácticas, ya que son las que describen como se van a atacar los

eventos generados en el transcurso del camino para alcanzar los objetivos iniciales

de�nidos. Es aquí donde la fase de Estrategia es vital ya que el conjunto de tácticas

que se de�nen forman la estrategia para alcanzar los objetivos planteados en la fase

de Lanzamiento.

7.2.2.2. Propósito

El propósito de esta fase es establecer lineamientos especí�cos de la forma en

como el equipo, de�nido en la fase de Lanzamiento, va a trabajar y que tácticas

va a utilizar para alcanzar los objetivos propuestos, también de�nidos en la fase de

Lanzamiento. Estos lineamientos y tácticas son vitales para el grupo ya que es en

esta fase donde el grupo gana una primera apreciación del trabajo que debe hacerse.

Las actividades realizadas dentro de esta fase en el entorno de proyectos ágiles

con una arquitectura orientada a componentes, son: Planeación preliminar, Admi-

nistración de Riesgos, Modi�cación de procesos. Adicionalmente TSP especi�ca:

Estrategia General, Estrategia Especí�ca, Estrategia de Aseguramiento de Calidad,

Alcance del Ciclo, Administración de Con�guraciones. Como la modi�cación de los

procesos es una táctica a tomar para poder ejecutar el proyecto, esta se incluye en

la parte de Estrategia de TSP.

72

Page 82: De nición y Adaptación de un Proceso de Desarrollo de ...

7.2.2.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Es-

trategia desde la perspectiva de esta propuesta.

Actividad 1. Estrategia General

Justi�cación. Para la ejecución correcta de un proyecto es necesario tener

una comprensión preliminar de cual es la �nalidad del proyecto, que es lo

que se desea hacer y como se piensa realizar, es por eso que en esta primera

actividad se especi�ca la forma de trabajo no solo del primer ciclo de desarrollo,

sino de todos los ciclos de desarrollo del proyecto, esta forma de trabajo se va

adaptando o modi�cando de acuerdo a las necesidades que se presenten durante

cada ciclo de desarrollo.

Esta tarea ayuda a los participantes del proyecto a pulir sus habilidades para

abordar los proyectos de acuerdo a sus características particulares y generales.

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Documento de Lanzamiento del proyecto.

Descripción. La Estrategia General consiste en la especi�cación de tres

elementos que de�nen la forma en la que se va a trabajar durante todo el

proyecto. Estos elementos son:

Adaptación del Proceso.

Identi�cación de Requerimientos.

Identi�cación Preliminar de Objetos.

En la adaptación del proceso, se establece la forma que en que se va a opti-

mizar el proceso de desarrollo para la ejecución del proyecto, esta adaptación

puede consistir de la fusión de fases, la supresión de algunas de ellas o cam-

bios en su orden de ejecución, en todo caso la decisión que se tome debe estar

73

Page 83: De nición y Adaptación de un Proceso de Desarrollo de ...

justi�cada. Si no se modi�ca el proceso para la ejecución del proyecto, igual

se debe especi�car las fases que se van a seguir, y la importancia de seguir el

proceso de esta manera. También se debe especi�car cuantos ciclos se van a

ejecutar para que el proyecto llegue a buen término o la estimación del tiempo

invertido en cada ciclo.

La identi�cación de requerimientos, consiste en la realización de una lista de

requerimientos de todo el proyecto que debe contener un identi�cador y un

nombre por cada requerimiento. Esto es vital para las siguientes tareas en

donde se hace una planeación preliminar y la de�nición del alcance del ciclo.

Finalmente, se hace una identi�cación de los objetos que pertenecen al dominio

del problema, con el único objetivo de tener una idea preliminar de que sustan-

tivos representan componentes y tienen fuertes relaciones entre ellos mismos

en el sistema, y de esta forma facilitar la planeación preliminar que se debe

hacer posteriormente.

Se propone la realización de las siguientes tareas:

1. Con base en las entradas en el documento de levantamiento de requeri-

mientos narrativos y el documento de lanzamiento, se establece como se

va adaptar el proceso de desarrollo al proyecto.

2. Teniendo en cuenta el documento de levantamiento de requerimientos

narrativo se nombran los requerimientos teniendo en cuenta el lenguaje

del cliente y se les asigna un identi�cador de acuerdo a los estándares

establecidos o a los que se van a establecer en la administración de con-

�guraciones.

3. Finalmente, se listan los posibles componentes o entidades que se van ma-

nejar de acuerdo al lenguaje utilizado en el documento de levantamiento

de requerimientos narrativos.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

74

Page 84: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Primera versión del documento de Estrategia del proyecto: Estrategia

General.

Participantes. Todos los roles.

Actividad 2. Estrategia Especí�ca

Justi�cación. Una vez especi�cada la forma en que se va a abordar el

proyecto, es necesario especi�car un nivel más detallado el trabajo a desarrollar

para que los avances sean fácilmente percibibles, para lo cual el desarrollo por

ciclos es adecuado. Pero para que este desarrollo sea adecuado es necesario

especi�car que es lo que se va a realizar en cada ciclo que soporte las decisiones

que se tomaron con respecto a la ejecución total del proyecto. La Estrategia

Especí�ca de cada ciclo especi�ca en detalle la Estrategia general del proyecto,

ayudando a identi�car el alcance que va a tener el ciclo de desarrollo.

Esta actividad ayuda a los participantes a administrar mejor el proyecto y de

acuerdo a esto establecer la mejor forma de trabajo para que el proceso no

obstaculice el desarrollo del proyecto debido a su tamaño.

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Documento de Lanzamiento del proyecto.

Primera versión del documento de Estrategia del proyecto.

Descripción. La estrategia especí�ca consiste en la especi�cación de tres

elementos que de�nen la forma en la que se va a trabajar durante el ciclo de

desarrollo del proyecto. Estos elementos son:

Objetivo del Ciclo.

Esquema y Alcance de las Fases del Ciclo.

75

Page 85: De nición y Adaptación de un Proceso de Desarrollo de ...

Esquema de Trabajo.

En el objetivo del ciclo se establecen las metas que se persiguen en el ciclo

actual, las cuales van a ser los criterios de selección para escoger que requeri-

mientos se van implementar en el ciclo.

En el esquema y alcance por fases del ciclo se establecen que tareas por fase se

van a desarrollar, que tareas transversales a las fases se van a ejecutar, como

se va a hacer el seguimiento y como se van a desarrollar dichas tareas.

Finalmente en el esquema de trabajo se asignan responsabilidades a cada

miembro del grupo por actividades, por componentes de la arquitectura, o

por requerimientos de acuerdo a los conocimientos de cada integrante.

Cada uno de los elementos anteriores deben tener explícitas las razones que

llevaron a tomar dichas decisiones.

Se propone la realización de las siguientes tareas:

1. Establecer el objetivo del ciclo.

2. Establecer el esquema y alcance de las fases del ciclo.

3. Establecer el esquema de trabajo del ciclo del proyecto.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

Criterio de Salida.

1. Segunda versión del documento de estrategia del proyecto: Se añadió la

Estrategia Especí�ca.

Participantes. Todos los roles.

76

Page 86: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad 3. Estrategia de Aseguramiento de Calidad

Justi�cación. Al desarrollar un proyecto, no basta con tener un proceso de

desarrollo de�nido con unas serie de pasos establecidos a seguir, es importante

que con cada desarrollo del proyecto este evolucione, y eso sólo se puede hacer

evaluando dicho proceso, es por esta razón que es importante asegurarnos que

tanto el proceso como el proyecto cumpla las expectativas que se establecieron

en un inicio.

Criterio de Entrada.

Documento de Lanzamiento del proyecto.

Segunda versión del documento de Estrategia del proyecto.

Descripción. El propósito del aseguramiento de la calidad es proveer al

equipo de trabajo una adecuada visibilidad sobre el proceso que se está ade-

lantando y de los productos que están siendo construidos, para que se pueda

veri�car que el proceso se esta realizando de acuerdo a lo establecido y que los

resultados sean válidos y aplicables al proyecto.

Para cumplir este proceso, se deben de�nir las tareas que se ejecutarán para

controlar las actividades. Las cuales son:

1. De�nición del plan de administración de con�guraciones.

2. Evaluación sobre productos entregables y no entregables.

3. Plan de seguimiento, revisión y documentación del mismo.

4. De�nición del esquema de retroalimentación.

5. Formulación del Plan de Aceptación por parte del cliente.

6. De�nición de las técnicas de inspección y documentación de sus resulta-

dos.

7. De�nición de diseño y ejecución de pruebas y la documentación de sus

resultados.

77

Page 87: De nición y Adaptación de un Proceso de Desarrollo de ...

Para la realización de las actividades anteriores, son necesarias todas las en-

tradas, la secuencia en que se realicen no importa.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

Criterio de Salida.

1. Tercera versión del documento de Estrategia del proyecto: Se añadió la

Estrategia de Aseguramiento de Calidad.

Participantes. Todos los roles.

Actividad 4. Planeación Preliminar

Justi�cación. En todo proyecto es necesario hacer una planeación para po-

der estimar los costos que se van a generar, pero esta planeación generalmente

necesita una buena cantidad de información para generarse de una manera

adecuada. Debido a que realizar una planeación detallada en la fase de Estra-

tegia es demasiado lejano, se debe hacer una planeación preliminar para tomar

decisiones concernientes al alcance del ciclo que se debe de�nir en la siguiente

tarea.

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Tercera versión del documento de Estrategia del proyecto.

Descripción. La planeación preliminar consiste en la estimación del tra-

bajo a desarrollar por casos de uso de todo el proyecto y por fases del ciclo,

algunas veces se pueden necesitar estimaciones adicionales (Por módulos o

componentes), entonces las tareas que generalmente se realizan son:

78

Page 88: De nición y Adaptación de un Proceso de Desarrollo de ...

Estimación de casos de uso.

Estimación de fases.

La estimación de casos de uso se hace generalmente por tiempo y por líneas

de código, aunque se pueden agregar otros criterios, como costos.

La estimación de fases se hace generalmente por tiempo, y es muy útil agregarle

el porcentaje estimado que cada fase representa en la ejecución de todo el

proyecto.

Se propone la realización de las siguientes tareas:

1. Estimar el tiempo y el tamaño de cada caso de uso del proyecto.

2. Estimar el tiempo y el porcentaje de la ejecución del proyecto que toma

cada fase para el ciclo actual.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

Criterio de Salida.

1. Cuarta versión del documento de Estrategia del proyecto: Se añadió la

Planeación Preliminar.

Participantes. Todos los roles.

Actividad 5. Alcance del Ciclo

Justi�cación. En el desarrollo de un proyecto es necesario realizar las cosas

bien, y para ello es necesario tomarse el tiempo adecuado para cumplir con

las expectativas del cliente, debido a esto es fundamental partir el proyecto

en ciclos, ya que para proyectos grandes se facilita su control y modi�cación

cuando eventos inesperados ocurran, además que le permite al cliente estar

79

Page 89: De nición y Adaptación de un Proceso de Desarrollo de ...

informado sobre los avances del proyecto. Debido a esto es necesario de�nir

que parte del proyecto se va a realizar en cada ciclo.

Criterio de Entrada.

Cuarta parte del documento de Estrategia del proyecto.

Descripción. En el alcance del ciclo se de�nen los requerimientos a desa-

rrollar para el ciclo actual.

Se propone la realización de la siguiente tarea:

1. Escoger los requerimientos a desarrollar en el ciclo teniendo en cuenta la

lista de requerimientos de�nida en la Estrategia General y la estimación

de los casos de uso en la Planeación Preliminar.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

Criterio de Salida.

1. Quinta versión del documento de estrategia del proyecto: Se añadió el

Alcance del Ciclo.

Participantes. Todos los roles.

Actividad 6. Administración de Riesgos

Justi�cación. En el desarrollo de un proyecto es necesario identi�car los

eventos inesperados que puedan surgir y seleccionar cuales afectarían a gran

escala la ejecución del proyecto, es por esta razón que es necesario establecer

los riesgos que puedan surgir y la manera como se van a afrontar.

80

Page 90: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Quinta versión del documento de Estrategia del proyecto.

Descripción. Esta tarea consiste en la realización de tres actividades del

proceso de Administración de Riesgos. Estas actividades son:

Identi�cación, de�nición y valoración de riesgos.

Priorización de riesgos a mitigar.

De�nición de planes de mitigación y contingencia.

En la identi�cación, de�nición y valoración de riesgos se establece su identi�-

cación, su nombre, su descripción, su probabilidad de ocurrencia y su impacto,

de acuerdo a los tipos de riesgo establecidos (Por ejemplo: Proyecto, Producto,

Proceso, Costo). De acuerdo a lo anterior los riesgos identi�cados se priorizan

de acuerdo a su importancia la cual se re�eja en una matriz de ocurrencia

contra impacto. Finalmente, se escogen los riesgos más importantes y se crean

los planes de mitigación y contingencia para cada uno de ellos.

Se propone la realización de las siguientes tareas:

1. Con base en el documento de levantamiento de requerimientos narrativo

cada integrante de�ne un número determinado de riesgos.

2. Uno de los integrantes (Por ejemplo el líder del proyecto) se encarga de

priorizar los riesgos y de asignarlos a los otros integrantes del grupo.

3. Cada integrante se encarga de de�nir los planes de mitigación y contin-

gencia de los riesgos que le fueron asignados.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

81

Page 91: De nición y Adaptación de un Proceso de Desarrollo de ...

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la Administración de Riesgos del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la Identi�cación, De�nición y Valoración de Riesgos

del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación del Control y Seguimiento de Riesgos del proyecto.

Criterio de Salida.

1. Sexta versión del documento de Estrategia del proyecto: Se añadió la

Administración de Riesgos.

Participantes. Todos los roles.

Actividad 7. Administración de Con�guraciones

Justi�cación. Al desarrollar un proyecto, la información necesitada y ge-

nerada debe ubicarse en un solo sitio para que todo el grupo pueda acceder a

ella en cualquier momento, además de tener un centro de información, se ne-

cesita que la consulta sea fácil para que las tareas que se necesiten desarrollar

se demoren lo menos posible, es por esta razón que se necesita el manejo de

estándares en todos los productos generados durante la ejecución del proyecto.

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Sexta versión del documento de Estrategia del proyecto.

Descripción. La Administración de Con�guraciones se hace mediante el

establecimiento de estándares para cada producto que se genera durante la

ejecución del proyecto, estos estándares pueden ser de ubicación o de nombra-

miento, y deben ser seguidos durante toda le ejecución del proyecto ya que son

estos estándares los que in�uyen directamente en la calidad del producto �nal.

82

Page 92: De nición y Adaptación de un Proceso de Desarrollo de ...

Para la de�nición de estándares es necesario tener en cuenta todas las entradas

ya que ellas indican los documentos que se generan por fases y las herramientas

que se van a utilizar durante todo el proyecto y para las cuales se necesitan

de�nir dichos estándares.

La propuesta que se presenta a continuación busca de�nir las características

mínimas de la administración de la con�guración, que asegure las caracterís-

ticas mínimas requeridas, en las que se asegure la asociación de los productos

de trabajo intermedios del proyecto (Documentos, avances de implementación,

etc).

Se proponen las siguientes tareas:

1. De�nición de estándares de nombramiento.

2. De�nición del versionamiento de artefactos.

Cuando el versionamiento o los estándares de nombramiento que se tiene para

el grupo o empresa cambian de proyecto a proyecto se genera un documento de

Administración de Con�guraciones Especí�ca el cual enumera y describe los

cambios que se le hicieron al documento de Administración de Con�guraciones

General.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Estrategia del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la Administración de Con�guraciones General del

proyecto.

Ejemplo que describe la forma de documentación de la Administración

de Con�guraciones Especí�ca del proyecto. Su plantilla e instructivo son

los mismos que se utilizan para la Administración de Con�guraciones

General.

83

Page 93: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Versión �nal del documento de Estrategia del proyecto: Se añadió la Ad-

ministración de Con�guraciones.

Participantes. Todos los roles.

7.2.3. PLANEACIÓN

7.2.3.1. Motivación

La planeación de un proyecto de desarrollo de software se lleva a cabo a lo largo

de todo el proyecto, adaptando los planes en cada fase tanto como sea necesario.

Todo desarrollo inicia con una declaración de requerimientos que realiza el cliente.

Normalmente las horas invertidas en estas reuniones preliminares no son cargadas a

un proyecto en particular dado que este todavía no existe. Una vez terminadas las

reuniones preliminares de familiarización con el problema, y una vez un proyecto ha

sido establecido, el proceso de planeación inicia. Desde ese momento se debe llevar a

cabo una planeación activa. El concepto de planeación activa hace referencia a una

planeación que se realiza a lo largo de todo el desarrollo, revisando continuamente

el plan y adaptándolo a las necesidades del proyecto.

Gran parte de los éxitos o fracasos de los proyectos de desarrollo son atribuidos

al proceso de planeación. Este debe estar claramente de�nido, pero debe construirse

de tal manera que tenga en cuenta los cambios que se puedan presentar en cualquier

momento a lo largo del proyecto.

7.2.3.2. Propósito

Dadas las limitaciones de tamaño del equipo en el contexto de proyectos ági-

les, resulta crítico invertir demasiados recursos para administrar el plan. Por eso

la estrategia establecida para el proceso se basa en el apoyo de todo el grupo de

desarrolladores para llevarlo a cabo. El proceso debe ser apoyado por todos los de-

sarrolladores, de�niendo claramente un responsable principal, pero sin dejar la res-

ponsabilidad completa sobre él a menos que las características propias del proyecto

84

Page 94: De nición y Adaptación de un Proceso de Desarrollo de ...

lo exijan.

Aunque la adaptación de los planes del proyecto en cada iteración del desarrollo

es fundamental para lograr hacer predecibles los resultados de cada actividad, se

debe tener en cuenta las fechas globales de terminación de cada ciclo de desarrollo.

Cuándo se establecen fechas con el cliente, estas deben ser respetadas. Es por eso

que se debe realizar un monitoreo constante del avance del proyecto durante todo el

ciclo, e impactar los planes cuando se haga necesario. Con un seguimiento continuo

de planeación, se puede conocer con tiempo de anticipación si es requerido mover

fechas de entregas a los clientes. De esta manera se puede negociar con el cliente

para no generar falsas expectativas de entregas que incurran en costos adicionales,

como costos generados por cláusulas de incumplimiento.

A lo largo de un ciclo de desarrollo, los planes de trabajo deben incluir cada

actividad necesaria para desarrollar el producto de software requerido, y su completa

documentación técnica y de soporte.

Entre las características de los proyectos ágiles está el poco conocimiento inicial

de métricas de velocidad de desarrollo. Esta característica afecta de manera directa

el proceso de planeación ya que se hace complicado realizar planes con estimaciones

acertadas en las primeras iteraciones del proyecto. De ahí la importancia de adaptar

constantemente los planes a medida que se tienen más métricas de desarrollo. De

igual forma, el mantenimiento de históricos de los planes modi�cados es fundamen-

tal para aprender acerca de los cambios y re�ejar este aprendizaje en métricas de

desarrollo.

7.2.3.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Pla-

neación desde la perspectiva de esta propuesta.

Actividad 1. Planeación Global

Justi�cación. Para lograr hacer adaptable el proceso y los planes de tra-

bajo, es necesario dividir el desarrollo en varios ciclos. Esto es lo que se conoce

85

Page 95: De nición y Adaptación de un Proceso de Desarrollo de ...

como desarrollo iterativo. Además de la adaptabilidad lograda, el desarrollo

iterativo hace posible construir productos de software terminados en cortos

espacios de tiempo, de manera que se pueda presentar avances funcionales al

cliente. Estos avances permiten al cliente conocer el desarrollo y retroalimentar

al equipo. De igual forma, permite de�nir acciones preventivas y correctivas

para ajustarse a un plan que permita �nalizar un desarrollo de acuerdo a las

fechas programadas.

Realizar ciclos de desarrollo cortos favorece la comunicación de un equipo

disperso. Las actividades llevadas a cabo dentro de un ciclo corresponden al

desarrollo de un grupo pequeño de requerimientos, por lo que se hace más

manejable el intercambio de información dentro del equipo. Los ciclos de de-

sarrollo permiten planear gradualmente actividades que apoyen el proceso de

investigación y desarrollo necesario para mejorar el conocimiento del equipo

en el tema tecnológico y de lógica del negocio.

Criterio de Entrada.

Documento de Lanzamiento del proyecto.

Documento de Estrategia del proyecto.

Descripción. El proceso de planeación consiste en aumentar la granurali-

dad de las tareas por cada fase del proceso desarrollo, de tal forma que se pueda

estimar el costo de implementar un caso de uso en el ciclo de desarrollo actual,

de acuerdo al alcance y la forma de trabajo especi�cados en el documento de

estrategia y a la disponibilidad de los recursos especi�cada en el documento

de lanzamiento.

Para cada ciclo de desarrollo se estiman sus fechas de inicio y �nalización.

Estas fechas deben estar comprendidas entre 4 y 6 semanas, pero esto es muy

dependiente de las características inherentes de cada proyecto. Además de

de�nir la duración del ciclo, se debe de�nir la periodicidad que tendrán las

reuniones de seguimiento de planeación dentro de este. A esta periodicidad se

le llama periodo de desarrollo. Se recomienda que los periodos de desarrollo

86

Page 96: De nición y Adaptación de un Proceso de Desarrollo de ...

sean semanales. Sin embargo, dada la dispersión de los equipos en proyectos

ágiles, el equipo escoge el tiempo que resulte más conveniente.

La estimación de los casos de uso a implementar se debe cruzar con las fases

que se ejecutarán durante el ciclo actual de desarrollo, entre más se pueda

dividir una tarea la estimación será más precisa y de esta forma las fechas

serán más exactas.

Para aumentar la precisión de la estimación y distribuir adecuadamente el

recurso del tiempo en el desarrollo de un proyecto se sugiere el uso de las

siguientes fórmulas:

Casos de uso de alto nivel con prioridad asociada + modelo conceptual

+ estimación de tiempo de desarrollo de cada caso de uso + tiempo

disponible en el ciclo + recursos de personal disponible = casos de uso a

implementar.

Casos de uso de alto nivel con prioridad asociada + modelo conceptual

+ estimación de tiempo de desarrollo de cada caso de uso + casos de uso

a implementar + recursos de personal disponible = tiempo disponible en

el ciclo.

Las fórmulas anteriores se pueden modi�car de acuerdo a las fases del proceso

de desarrollo que se deseen ejecutar. Fácilmente se puede observar que se

podrían añadir otros elementos como pruebas e implantación.

Se propone la realización de las siguientes tareas:

1. Se de�ne la planeación por fases y por casos de uso teniendo en cuenta el

número y duración de los ciclos de desarrollo estimados en el documento

de Estrategia en la sección de Estrategia General, así como la Planea-

ción Preliminar de ese mismo documento y la Disponibilidad de Recursos

(Equipo de Trabajo) de�nida en el documento de Lanzamiento.

2. Se asignan los tiempos estimados de duración y la fechas estimadas de

inicio y �n de cada tarea.

87

Page 97: De nición y Adaptación de un Proceso de Desarrollo de ...

3. A medida que se van realizando las tareas se ingresa el tiempo real de du-

ración de la tarea el cual corresponde al tiempo utilizado en la realización

de cada tarea.

Es recomendable utilizar una herramienta para manejar la planeación, la cual

también permita el ingreso de reportes en los cuales se pueda especi�car como

se realizó la tarea y los problemas ocurridos y como se solucionaron. Esto

facilitará la realización del postmortem del ciclo de desarrollo si adicionalmente

se pueden generar reportes de los tiempos invertidos y de los comentarios

realizados por cada tarea.

Entregables o Documentos de Soporte.

Plantilla y su correspondiente Instructivo que describe la forma de docu-

mentación de la fase de Planeación del Ciclo de Desarrollo, documentos

utilizados por el grupo de Diseño Instruccional para planear las tareas

correspondientes a la fase de Análisis de Requerimientos. La secuencia

de planeación de las tareas debe ser: Planeación (Se especi�ca el tiempo

estimado para la planeación de las tareas de Análisis de Requerimientos),

Reuniones, Documento de Levantamiento de Requerimientos Narrativos,

Análisis de Requerimientos. La fase de Análisis está dividida por Itera-

ciones(Fachada, Detallar, Focalizar, Finalizar)1 en las cuales el orden de

las actividades se resume de la siguiente manera: Descripción del Sistema,

De�nición del Sistema, Glosario, Pruebas de Caja Negra, Inspecciones.

Plantilla y su correspondiente Instructivo que describe la forma de docu-

mentación de la fase de Planeación del Ciclo de Desarrollo, documentos

utilizados por el grupo de Desarrollo para planear las tareas correspon-

dientes a las fases de Diseño, Implementación, Pruebas e Implantación.

La actividad de Planeación se re�ere al tiempo gastado en la planeación

de estas actividades. La secuencia de planeación de actividades de Diseño,

1Los nombres de las iteraciones y las actividades a realizar dentro de cada iteración para estafase son tomadas de las notas del curso �Taller de Análisis y Diseño de Software por Objetos�,dictado en el segundo semestre del 2005 por Gloria Cortés.

88

Page 98: De nición y Adaptación de un Proceso de Desarrollo de ...

la cual al igual que la fase de Análisis de Requerimientos esta dividida

por iteraciones (Fachada, Detallar, Focalizar, Finalizar), es: Validación

de Entradas, Justi�cación, Diseño del Mundo, Diseño de Arquitectura,

Diseño de Interfaz, Inspecciones, Diseño de Persistencia. La secuencia a

seguir para la fase de Implementación corresponde: Automatización de

Pruebas, Implementación de la Aplicación (Lógica del Negocio, Interfaz

y Persistencia) e Inspección de Código. Para la fase de Pruebas primero

se hace el diseño de las pruebas faltantes (No funcionales), para luego

ejecutar todas las pruebas y presentar el producto al cliente. Luego sigue

la fase de Postmortem: Análisis Global, Análisis por Persona, Evalua-

ción de Pares, Evaluación de Objetivos y el PIP. Finalmente, para la fase

de Implantación, se hace la Implantación en producción, y los manuales

técnicos de uso de la aplicación.

Criterio de Salida.

1. Documento de Planeación Global del ciclo por Fases y por Casos de Uso.

Participantes. Participantes Líder de Desarrollo, Interlocutor.

7.2.4. ANÁLISIS DE REQUERIMIENTOS

7.2.4.1. Motivación

Después de haber comenzado la ejecución de un proyecto de construcción de

software, el proceso de análisis es la línea base de la solución que se va a desarrollar

para llevar a buen terminó el proyecto. Por está razón este proceso es el que describe

la esencia de la solución debido a que en este punto es independiente de la tecnología

que se va a utilizar.

7.2.4.2. Propósito

El proceso de análisis de caracteriza por ser un primer acercamiento a la solu-

ción �nal, pero por ser el primer acercamiento no es menos importante ya que a

89

Page 99: De nición y Adaptación de un Proceso de Desarrollo de ...

pesar de que se modi�que va a in�uenciar las consecuentes modi�caciones y nuevas

soluciones. Como primer acercamiento a la solución �nal, esta es independiente de

la tecnología y estructuras de datos a manejar por lo cual se plantean las siguientes

tareas: Descripción del Sistema, De�nición del Sistema, Glosario, Pruebas de Caja

Negra e Inspección de Requerimientos.

Al realizar todas las actividades concernientes a este proceso secuencialmente

puede generar imprecisiones o errores como en cualquier proceso secuencial, y para

que estos errores no se pasen por alto, se recomienda hacer este proceso por itera-

ciones: Fachada, Detallar, Focalizar y Finalizar. La �nalidad de hacer un proceso

de análisis por iteraciones, es la de disminuir errores, presentar avances al cliente

inmediatamente superior (En cualquier empresa hay tanto clientes internos como

otros departamentos o grupos interdisciplinarios, y externos como usuarios �nales)

y garantizar al �nalizar cada iteración que la esencialidad de la solución se está de-

sarrollando de tal forma que permita entender tanto el problema como su solución.

7.2.4.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Aná-

lisis de Requerimientos desde la perspectiva de esta propuesta.

Actividad 1. Descripción del Sistema

Justi�cación. Describir adecuada y completamente el objeto de un análisis

es una de las tareas más importantes en un proyecto, por lo tanto el describir

el proyecto es fundamental tener en cuenta cada una de las características

especi�cadas por el usuario �nal y que de una u otra manera deberán in�uir

en la solución que se va a de�nir.

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Documento de Lanzamiento del proyecto.

Documento de Estrategia del proyecto.

90

Page 100: De nición y Adaptación de un Proceso de Desarrollo de ...

Descripción. Para una correcta descripción del sistema se debe tener en

cuenta la información, los objetivos y los usuarios del sistema, así como las

reglas de negocio que maneja el sistema.

Para la elaboración de esta actividad se propone el desarrollo de las siguientes

tareas por iteraciones:

1. Iteración Fachada

Información del Sistema: Es un resumen que describe la aplicación

que se va a desarrollar. Se debe tener en cuenta que no debe especi-

�car nada técnico (Por ej. no debe indicar que se realizará en java o

que su persistencia se hará con archivos).

Objetivos del Sistema: Son los objetivos que el sistema deberá cum-

plir una vez esté realizado.

Actores del Sistema: Los usuarios �nales que interactuarán con el

sistema (Por ej. estudiante y profesor cuando es una apliación edu-

cativa o empresa e inversionista cuando es una aplicación referente a

un portafolio o bolsa de acciones).

Reglas de Negocio: Son las características especi�cas que debe cum-

plir la lógica del negocio como comportamientos y atributos (Por

ej. al ejecutar una de las opciones deberá indicar cuales están se-

leccionadas, o al entregar un trabajo deberá noti�cársele por correo

electrónico a todo el grupo).

2. Iteración Detallar

Actores del Sistema: Se de�nen sus características (Función, conoci-

miento, nivel cultural, objetivo, visibilidad y prioridad).

Reglas de Negocio: Se adicionan, complementan y corrigen.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Análisis de Requerimientos del proyecto

91

Page 101: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Primera versión del documento de Análisis de Requerimientos: Descrip-

ción del Sistema.

Participantes. Interlocutor.

Actividad 2. De�nición del Sistema

Justi�cación. En el análisis de requerimientos la de�nición del sistema

es el eje central de la solución al problema planteado por el proyecto que

se está desarrollando, debido a esto es indispensable de�nir detalladamente

esta solución para evitar ambigüedades y malas interpretaciones, tanto a nivel

interno (En el equipo), como externo (Con el cliente).

Criterio de Entrada.

Documento de levantamiento de requerimientos narrativos.

Primera versión del documento de Análisis de Requerimientos.

Descripción. La De�nición del Sistema comprende la realización del mode-

lo de casos de uso y la especi�cación de los requerimientos. Para la elaboración

de esta actividad se propone el desarrollo de las siguientes tareas por iteracio-

nes:

1. Iteración Fachada

Modelo de Casos de Uso

• Diagrama de Casos de Uso: Es un diagrama UMP de Casos de

Uso, el cual describe la interacción entre los actores y los casos

de uso (Requerimientos Funcionales Gruesos).

Requerimientos

92

Page 102: De nición y Adaptación de un Proceso de Desarrollo de ...

• Funcionales Gruesos: Son los casos de Uso en los cuales se especi-

�ca su Contrato con Identi�cador, Nombre, Importancia, Necesi-

dad, Actores, Autor, Fecha, Categoría, Descripción, Precondición

y Postcondición.

• No funcionales: Su contrato se caracteriza por tener Identi�cador,

Tipo, Nivel y Descripción.

• Grá�cos: Se caracterizan por tener Identi�cador, Nivel y Descrip-

ción.

2. Iteración Detallar

Modelo de Casos de Uso

• Matriz de Casos de Uso Granulados: Mediante una Matriz se

relacionan los casos de uso granulados con sus actores.

Requerimientos

• Funcionales Granulados: Son los casos de Uso granulados a par-

tir de uno de los casos de uso grueso (p. ej el caso de uso R1.1-

Adicionar Usuario es un caso de uso granulado del caso de uso

grueso R1-Administrar Usuarios) en los cuales se especi�ca su

Contrato con Identi�cador, Nombre, Importancia, Necesidad, Ac-

tores, Autor, Fecha, Categoría, Descripción, Precondición y Post-

condición, los cuales son tomados de los casos de uso gruesos

pero más especí�cos. Adicionalmente a los contratos se les agre-

ga Curso Básico de Eventos, Caminos Alternativos, Caminos de

Excepción, Puntos de Extensión, Criterios de Aceptación.

• No funcionales: A su contrato se les adiciona criterios de acepta-

ción.

• Grá�cos: A su contrato se les adiciona criterios de aceptación.

• De Interacción: Se crea el prototipo (Este puede ser uno o varios

archivos).

93

Page 103: De nición y Adaptación de un Proceso de Desarrollo de ...

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Análisis de Requerimientos del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de los requerimientos funcionales gruesos.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de los requerimientos funcionales granulados.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de los requerimientos no funcionales.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de los requerimientos grá�cos.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de los requerimientos de interacción.

Criterio de Salida.

1. Segunda versión del documento de Análisis de Requerimientos, corres-

pondiente a la �nalización de la iteración Fachada: Se añadió parte de la

De�nición del Sistema.

2. Tercera versión del documento de Análisis de Requerimientos, correspon-

diente a la �nalización de la iteración Detallar: Se añadió parte de la

De�nición del Sistema.

3. Séptima y última versión del documento de Análisis de Requerimientos,

correspondiente a la �nalización de la iteración Finalizar: Se añadió la

De�nición del Sistema inspeccionada y terminada.

Participantes. Interlocutor, Diseñador Grá�co.

94

Page 104: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad 3. Glosario

Justi�cación. Es claro que en el mundo existe una gran diversidad de idio-

mas, dialectos y regionalismos, sin contar las múltiples de�niciones que existen

de una misma palabra, esto ocasiona que los signi�cados múltiples de una pa-

labra sean mal interpretados si no existe un ambiente de comunicación como

lo hay durante una conversación o en un escrito hecho correctamente. Por esta

razón existen diccionarios y por esta razón se necesita uno en el análisis de

requerimientos, que describa el signi�cado de las palabras que se utilizan y que

justi�que su uso.

Criterio de Entrada.

Tercera versión del documento de Análisis de Requerimientos.

Descripción. El Glosario está compuesto de todas las palabras utilizadas

para nombrar los objetos y acciones que describen la de�nición y descripción

del sistema, las cuales provienen del lenguaje utilizado por el cliente y se

encuentran en el documento de levantamiento de requerimientos narrativos.

Se propone la realización de las siguientes tareas en la Iteración Detallar:

1. Identi�cación de conceptos utilizados.

2. Organizar los conceptos alfabéticamente.

3. De�nir los conceptos en lenguaje natural (No técnico).

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Análisis de Requerimientos del proyecto.

Criterio de Salida.

1. Cuarta versión del documento de Análisis de Requerimientos: Se añadió

el Glosario.

Participantes. Interlocutor.

95

Page 105: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad 4. Planes de Prueba de Caja Negra

Justi�cación. Esta es la primera actividad dentro del grupo de actividades

de aseguramiento de calidad del producto que sigue el principio de Test First

Design (Pruebas antes de diseño). Las TFD además de apoyar el proceso de

veri�cación ayudan a llevar a cabo el proceso de validación. Estas pruebas

hacen que se generen inquietudes alrededor de los requerimientos de manera

que el entendimiento de desarrolladores y clientes sea absoluto en cuanto a lo

que se quiere construir.

Los planes de prueba, y en general todas las actividades de pruebas de veri�-

cación, permiten asegurar el entendimiento de los requerimientos funcionales

por parte de todos los integrantes de equipo, incluso los que se encuentran

dispersos.

Criterio de Entrada.

Cuarta versión del Documento de Análisis de Requerimientos.

Descripción. Con los requerimientos documentados, se construyen planes

de prueba que ayudan a la veri�cación del trabajo realizado sobre los requeri-

mientos. La entrada de esta actividad son los requerimientos funcionales que

se implementan en un ciclo de desarrollo. Parte de la inspección sobre estos

requerimientos es realizada construyendo lo que se conoce como un plan de

pruebas. De esta manera el plan de pruebas apoya la labor de corrección de

los requerimientos funcionales.

Se propone la realización de la siguiente tarea en la iteración Detallar:

1. Cada responsable de la construcción de los planes de prueba los construye

con base en el instructivo, sobre el formato de construcción de planes de

prueba.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Análisis de Requerimientos del proyecto.

96

Page 106: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Quinta Versión del Documento de Análisis de Requerimientos: Se añadió

los Planes de Prueba de Caja Negra.

Participantes. Interlocutor.

Actividad 5. Inspecciones

Justi�cación. Cuando realizamos un documento de cualquier tipo que es de

suma importancia es necesario revisarlo para que este coherente y presentable,

de la misma forma uno debe realizar esta tarea en esta fase. La importancia

de de�nir las inspecciones como una tarea, radica en que, por ejemplo, debido

a que el formato del contrato es extenso y se basa en la metodología que Craig

Larman, de�nida en su libro �Applying UML and Patterns: An Introduction

to Object-Oriented Analysis and Design� de 1998 [Lar98], es necesario hacer

la inspección contra listas de chequeo debido a que el estándar con el que se

realiza los requerimientos debe ser manejado por cada uno de los integrantes

del equipo y debido al tamaño de los contratos es fácil cometer errores que le

quitan claridad a la especi�cación y ocasionarán errores en las siguientes fases

especialmente en la de Diseño, lo cual sería costoso sino se identi�carán en esta

fase, ya que además de corregir el documento de Análisis de Requerimientos

también se tendría que corregir el documento de Diseño.

Criterio de Entrada.

Lista de Chequeo de Casos de Uso.

Lista de Chequeo de Planes de Prueba.

Quinta Versión del Documento de Análisis de Requerimientos.

Descripción. La inspección de requerimientos consiste en una compara-

ción de cada uno de los campos de los contratos o de los planes de prueba

97

Page 107: De nición y Adaptación de un Proceso de Desarrollo de ...

de los requerimientos, contra una lista de chequeo que indica como deben es-

tar los elementos especi�cados. Al encontrarse alguna inconsistencia esta se

documenta en un reporte con la descripción del defecto encontrado.

Esta tarea se realiza durante la Iteración de Focalizar, si se quiere inspeccio-

nar los requerimientos y los planes de prueba en una sola inspección, pero se

recomienda hacer inspecciones individuales apenas se termina la elaboración

de cada documento, si el tiempo empleado no es un recurso limitado.

Se propone la realización de las siguientes tareas:

1. Seleccionar la metodología para realizar la inspección (Grupal o Indivi-

dual).

2. Asignar la(s) persona(s) encargadas de realizar la inspección.

3. Estimar el tiempo destinado a la inspección.

4. Realizar la inspección reportando los defectos encontrados y el tiempo

invertido.

5. Asignar la corrección de los defectos encontrados.

6. Corregir los defectos asignados.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Análisis de Requerimientos del proyecto.

Lista de Chequeo de Casos de Uso para la Inspección de Requerimientos.

Lista de Chequeo de Planes de Prueba para la Inspección de Planes de

Prueba de Caja Negra.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación del Reporte de Defectos.

Criterio de Salida.

1. Sexta versión del Documento de Análisis de Requerimientos: Requeri-

mientos y Planes de Prueba corregido e inspeccionados.

98

Page 108: De nición y Adaptación de un Proceso de Desarrollo de ...

2. Reporte de Defectos Encontrados.

Participantes. Interlocutor, Líder de Desarrollo.

7.2.5. DISEÑO

7.2.5.1. Motivación

En la construcción de software, el proceso de diseño es uno de los más importantes

ya que el diseño del sistema que es obtenido al �nal de proceso es la base para la

construcción de la herramienta que será obtenida al �nal el proyecto. No solo en los

proyectos de software es importante hacer un diseño, ya que para cualquier actividad

metodología o herramienta a realizar es fundamental tener un diseño previo ya que

este es el resultado del análisis del problema realizado al traer a la realidad dicho

análisis para su consecuente implementación.

7.2.5.2. Propósito

La fase de Diseño busca acercar a la realidad el análisis realizado en la fase ante-

rior (Análisis de Requerimientos) para identi�car las herramientas metodológicas, de

software y de hardware que son necesarias para implementar la solución propuesta

en la siguiente fase (Implementación).

Es en la fase de diseño, donde se de�nen las herramientas más fuertes del proceso

que soportan la implementación de la herramienta, más especí�camente es la razón

para implementar la solución de esa manera. Además, también sirve como soporte

para su posterior mantenimiento o actualización y para que la persona que diseño o

implementó la herramienta no sea la única persona que pueda modi�carla.

Para el diseño del sistema es indispensable la documentación posea unos buenos

estándares para facilitar la comprensión del documento realizado y para que su man-

tenimiento sea efectivo, por lo cual se recomienda tener una buena Administración

de Con�guraciones que se pueda consultar.

99

Page 109: De nición y Adaptación de un Proceso de Desarrollo de ...

7.2.5.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Diseño

desde la perspectiva de esta propuesta.

Actividad 1. Justi�cación de las Decisiones de Diseño

Justi�cación. Antes de diseñar una solución a un problema dado con un

conjunto de decisiones tomadas, es necesario registrar las causas de la elección

de dichas soluciones con su respectiva justi�cación y comunicarlas al grupo

entero para evitar más adelante preguntas innecesarias sobre la causa de tomar

dicha decisión sobre el diseño de la solución. Una buena justi�cación es la

selección de patrones de diseño de construcción de software que fácilmente

soporten la elección tomada, evaluando no solo la correcta selección del patrón

de diseño, sino también la viabilidad que la solución signi�ca para el proyecto.

Criterio de Entrada.

Documento de Análisis de Requerimientos.

Descripción. Esta actividad consiste en de�nir las decisiones que se to-

marán para el diseño de la solución, con su respectiva justi�cación, la cual

debe ser completa, clara y su�cientemente convincente para cada uno de los

miembros del equipo.

Para la realización de esta actividad se proponen las siguientes tareas:

Identi�cación de las principales decisiones de diseño, que se pueden obtener

fácilmente al revisar el documento de Análisis de Requerimientos. Identi�ca-

ción de las posibles decisiones de diseño adicionales que se podrían tomar y

selección de las mejores en términos de viabilidad y que a la vez sean acordes

con las decisiones de diseño identi�cadas del documento de análisis de requeri-

mientos. Registro de las decisiones de diseño y su correspondiente justi�cación.

100

Page 110: De nición y Adaptación de un Proceso de Desarrollo de ...

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Diseño del proyecto.

Criterio de Salida.

1. Primera versión del documento de Diseño: Justi�cación de las Principales

Decisiones de Diseño.

Participantes. Líder de Desarrollo.

Actividad 2. Diseño del Mundo

Justi�cación. Al diseñar un sistema se pasa por la realización de prototipos

en diferentes momentos, por lo cual el realizar un prototipo en UMP de una

aplicación no es la excepción y es la base fundamental de la construcción

de software por objetos. Por esta razón para el poder realizar esta tarea es

necesario tener identi�cado del análisis las entidades y sus comportamientos

entre sí y con su entorno para que este prototipo se genere de una forma

adecuada.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Primera versión del documento de Diseño del proyecto.

Descripción. El desarrollo de un modelo del mundo es fundamental, ya que

permite la identi�cación de los objetos y sus comportamientos en la solución

que se está desarrollando. Generalmente este modelo se comienza a desarrollar

en la fase de Análisis y se completa en la fase de Diseño, pero en proyectos

ágiles generalmente es omitido y se pasa directamente al diseño de arquitec-

tura en la fase de Diseño, lo cual no es recomendable ya que es la primera

aproximación a la organización y estructura del sistema y generalmente ayuda

101

Page 111: De nición y Adaptación de un Proceso de Desarrollo de ...

a simpli�car el problema a diferencia de cuando se empieza con el diseño de

la arquitectura. Para apoyar este diseño de entidades generalmente se utilizan

diagramas de secuencia para describir como se comportan los casos de uso

dentro del diagrama de entidades, pero estos diagramas no son los únicos ya

que los diagramas de secuencia son utilizados cuando un requerimiento utiliza

muchas entidades al ejecutarse esto implica que el sistema es altamente com-

plejo en su lógica. Cuando las relaciones son simples pero la utilización de un

diagrama de secuencia no es nada útil es mucho mejor utilizar un diagrama

de colaboración, además es fácilmente comprendido por el usuario �nal si se

le es mostrado para explicarle el comportamiento del sistema. Finalmente el

diagrama que se seleccione para explicar la relación entre los requerimientos y

el diagrama de entidades es responsabilidad de las personas que participan en

esta fase de Diseño, y debe estar claramente justi�cado en la Justi�cación de

las Principales Decisiones de Diseño, actividad previamente desarrollada.

Se propone la realización de las siguientes tareas:

1. Iteración Fachada

Identi�cación de sustantivos y verbos que describen el comportamien-

to de la solución detallada en el documento de Análisis de Requeri-

mientos (El Glosario es la primera fuente que se debe consultar).

Diseño del diagrama del mundo teniendo en cuenta que los sustanti-

vos representan entidades o atributos de alguna entidad y los verbos

representan relaciones entre las entidades.

Diseño de los diagramas que describen la relación entre el diagrama de

entidades del mundo y los requerimientos. Generalmente se hace uno

por cada requerimiento. Pueden ser de secuencia o de colaboración.

2. Iteración Detallar

Identi�cación de las estructuras y los tipos a utilizar para convertir

el diagrama de entidades a un diagrama de clases del mundo.

Modi�cación del diseño del diagrama del mundo para adicionarle

estructuras de datos y tipos que se van a manejar.

102

Page 112: De nición y Adaptación de un Proceso de Desarrollo de ...

Modi�cación de los diagramas que describen el comportamiento del

sistema (De secuencia o de colaboración) para adicionarle estructuras

de datos y tipos que se van a manejar de acuerdo al diagrama de

clases.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Diseño del proyecto, para las iteraciones

Fachada y Detallar.

Criterio de Salida.

1. Segunda versión del documento de Diseño: Se añadió el Diseño del Mundo.

Participantes. Líder de Desarrollo.

Actividad 3. Diseño de la Arquitectura

Justi�cación. Cuando se diseñan aplicaciones complejas, el diseño de una

solución está fuertemente ligado a los requerimientos no funcionales, por lo cual

es necesario de�nir componentes que pueden garantizar esos requerimientos no

funcionales y que afectarán dicha solución, es por esta razón que la arquitectura

de un sistema y en especial su diseño son tan importantes.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Segunda versión del documento de Diseño del proyecto.

Descripción. Debido a la complejidad del sistema y al nivel de detalle

que se necesite, se puede hacer un diseño general de la arquitectura, en el

cual se especi�que lo necesario. Se especi�ca desde las estructuras que cada

componente contiene hasta las excepciones y como va a ser su manejo. Si es

103

Page 113: De nición y Adaptación de un Proceso de Desarrollo de ...

necesario se realizan diagramas que describan el comportamiento de la lógica

del sistema (Diagramas de secuencia o de colaboración).

Se propone la realización de las siguientes tareas:

1. Iteración Detallar

Diseño del diagrama de componentes o Nodos que describe el tipo de

arquitectura que se va a manejar.

Diseño del diagrama general por componentes de la arquitectura (Si

se necesita más detalle se construye un diagrama especí�co para el

componente más representativo y que sirva de ejemplo para los de-

más).

Justi�cación de los Atributos de Calidad (Como los Requerimientos

no funcionales requeridos se ven re�ejados en los diagramas de la

arquitectura).

2. Iteración Focalizar

De�nición detallada de la arquitectura mediante la especi�cación de

los requerimientos y las clases que tienen que ver con el Diseño del

Mundo en el diagrama general o en el diagrama del componente re-

presentativo previamente realizado.

Realización de un diagrama del comportamiento de la arquitectu-

ra del sistema (Depende de que tipos de diagrama se utilizaron en

el Diseño del Mundo, ya sean de secuencia o de colaboración) que

sea de un requerimiento representativo (El más complicado, el más

importante o el más prioritario).

Creación de la línea base del código con las clases de�nidas en el Di-

seño de Arquitectura y su respectiva documentación (Documentación

para clases, métodos y atributos).

Entregables o Documentos de Soporte.

Ejemplo que describe la forma de documentación de la fase de Diseño del

proyecto.

104

Page 114: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Tercera versión del documento de Diseño: Se añadió el Diseño de Arqui-

tectura del Sistema.

Participantes. Líder de Desarrollo.

Actividad 4. Diseño de Interfaz

Justi�cación. Al diseñar una aplicación generalmente el esfuerzo en el di-

seño se centra en la lógica del negocio, pero la interacción con el usuario es

igual de importante y a veces podría ser más importante ya que esa interfaz

que se comunica con el usuario �nal representa la primera impresión de dicho

usuario e in�uencia mucho los demás criterios que el usuario �nal utiliza para

la cali�cación de la aplicación. Debido a esto y dependiendo de las caracte-

rísticas del negocio para el cual se hace la aplicación es necesario dedicarle el

tiempo su�ciente al Diseño de la Interfaz y no restarle importancia.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Tercera versión del documento de Diseño del proyecto.

Descripción. Esta actividad consta de dos partes, la primera consiste en

diseñar el diagrama de clases de la interfaz y el segundo es el diseño de los pro-

totipos grá�cos. La primera actividad debe tener en cuenta principalmente los

requerimientos de interacción, los requerimientos funcionales y no funcionales

y el diseño realizado hasta el momento, mientras que la segunda actividad debe

tener en cuenta los requerimientos grá�cos y los de interacción. Prácticamente

la segunda tarea consiste en mejorar los requerimientos de interacción espe-

ci�cados en el documento de análisis de requerimientos. Una tarea adicional

y dependiendo de la complejidad de la interfaz es el diseño de diagramas de

estado, los cuales se utilizan cuando el sistema que se está desarrollando es

105

Page 115: De nición y Adaptación de un Proceso de Desarrollo de ...

altamente interactivo y la funcionalidad está representada más en la parte de

la interfaz que en la lógica del negocio o cuando la interfaz o la relación de la

interfaz con la lógica del negocio tiene un alto grado de complejidad.

Se propone la realización de las siguientes actividades:

1. Iteración Focalizar

Diseño del diagrama de clases de la interfaz.

Diseño del prototipo grá�co de la interfaz (Rediseño de los requeri-

mientos de interacción teniendo en cuenta los requerimientos grá�-

cos).

2. Iteración Finalizar

Diseño del diagrama de estados que re�eje la interacción entre la

lógica del negocio y la interfaz.

Creación de la línea base del código con las clases de�nidas en el

diagrama de clases de la interfaz y su respectiva documentación (Do-

cumentación para clases, métodos y atributos).

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Diseño del proyecto.

Criterio de Salida.

1. Cuarta versión del documento de Diseño: Se añadió el Diseño de la In-

terfaz.

Participantes. Líder de Desarrollo, Diseñador Grá�co.

Actividad 5. Inspecciones

Justi�cación. Cuando se realiza un documento de cualquier tipo que es de

suma importancia, es necesario revisarlo para que esté coherente y presentable,

106

Page 116: De nición y Adaptación de un Proceso de Desarrollo de ...

de la misma forma uno debe realizar esta tarea en esta fase. La importancia de

de�nir las inspecciones como una tarea, radica en que, por ejemplo, debido a

que el diseño de diagramas en UMP es complejo y dispendioso pero muy claro

e informativo es necesario hacer la inspección contra listas de chequeo debido

a que el estándar con el que se realiza los diagramas debe ser manejado por

cada uno de los integrantes del equipo y debido al detalle que debe tener los

diagramas de clases en UMP es fácil cometer errores que le quitan claridad

al diseño y ocasionará errores en las siguientes fases especialmente en la de

Implementación, lo cual sería costoso.

Criterio de Entrada.

Lista de Chequeo de Diagramas.

Cuarta Versión del Documento de Análisis de Requerimientos.

Descripción. La inspección de diagramas consiste en una comparación de

cada uno de los ids de una lista de chequeo contra los diagramas realizados,

para veri�car que cada uno de los elementos y su descripción correspondan

con la forma en que se diseñó la aplicación. Al encontrar alguna inconsistencia

esta se documenta en un reporte con la descripción del defecto encontrado.

Esta tarea se realiza durante la Iteración de Focalizar.

Se propone la realización de las siguientes tareas:

1. Seleccionar la metodología para realizar la inspección (Grupal o Indivi-

dual).

2. Asignar la(s) persona(s) encargadas de realizar la inspección.

3. Estimar el tiempo destinado a la inspección.

4. Realizar la inspección reportando los defectos encontrados y el tiempo

invertido.

5. Asignar la corrección de los defectos encontrados.

6. Corregir los defectos asignados.

107

Page 117: De nición y Adaptación de un Proceso de Desarrollo de ...

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Diseño del proyecto.

Lista de Chequeo de Diagramas para la Inspección de Diseño.

Ejemplo , plantilla y su correspondiente instructivo que describe la forma

de documentación del Reporte de Defectos.

Criterio de Salida.

1. Quinta versión del documento de Diseño: Se inspeccionaron y corrigieron

los diagramas del Diseño del Mundo y de la Arquitectura del Sistema.

2. Reporte de Defectos Encontrados.

Participantes. Líder de Desarrollo.

Actividad 6. Diseño de la Persistencia

Justi�cación. El diseño de la persistencia es muy importante y en algunos

proyectos es la base de toda la solución por esto es necesario establecer su

necesidad de acuerdo a la lógica que maneja el negocio y a los requerimien-

tos, generalmente los requerimientos no funcionales son los que nos indican la

necesidad de una base de datos o un parser para el manejo de la persistencia.

Criterio de Entrada.

Quinta versión del documento de Diseño del proyecto.

Descripción. El diseño de la persistencia consiste en la especi�cación de

como la aplicación va a manejar la persistencia, esta debió verse re�ejada

un poco en el Diseño de la Arquitectura, a causa de los requerimientos no

funcionales, o en el Diseño del Mundo, di la persistencia era sencilla de manejar.

La persistencia se puede manejar de diversas formas, ya sea utilizando una base

de datos, archivos planos o parsers especí�cos (p. ej. XML, DTD, XHTML).

108

Page 118: De nición y Adaptación de un Proceso de Desarrollo de ...

Se propone la realización de las siguientes tareas correspondientes a la iteración

�nalizar:

1. Diseño del Manejo de la persistencia. Dependiendo de como se va a ma-

nejar la persistencia se hace lo siguiente:

Base de Datos: Diagrama Entidad-Relación.

Parser: Diagrama de clases del parser y descripción del estándar de

almacenamiento de los archivos.

Archivos Planos: Diagrama de clases (Si no fue especi�cado en el

diagrama de clases del mundo o en el diagrama por componentes) o

descripción del estándar de almacenamiento de los archivos.

2. Creación de la línea base del código con las clases de�nidas en el diseño

de la persistencia y su respectiva documentación (Documentación para

clases, métodos y atributos).

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Diseño del proyecto.

Criterio de Salida.

1. Versión �nal del documento de Diseño: Se añadió el Diseño de la Persis-

tencia del Sistema.

Participantes. Líder de Desarrollo

7.2.6. IMPLEMENTACIÓN

7.2.6.1. Motivación

La construcción de una solución llega a su etapa crítica cuando ingresa a la fase

de Implementación, debido a que ya se tiene un análisis y un diseño que sustenta

la construcción de la solución, y es en esta fase donde se ven los resultados de las

109

Page 119: De nición y Adaptación de un Proceso de Desarrollo de ...

fases de análisis y diseño, ya que si algo quedó mal en las fases antes mencionadas

se verán re�ejadas en el proceso de ejecución o en el artefacto resultante de esta

fase. Es indispensable que si se encuentran defectos en los documentos resultantes

de las fases anteriores, se corrijan inmediatamente ya que entre más tarde sean las

correcciones incrementa el tiempo gastado en la mantenibilidad de la solución.

7.2.6.2. Propósito

Al terminar esta fase es donde se pueden ver resultados prácticos de la solución

propuesta, por lo tanto en esta fase es en donde se crea la solución diseñada y se crean

las pruebas de caja negra (Pruebas para los casos de uso) y las pruebas de caja blanca

(Pruebas unitarias ya sea por clases o por componentes). Esta es una de las fases

cuyas actividades no tienen un orden de ejecución secuencial y se pueden realizar en

el orden deseado o hasta concurrentemente. Se recomienda en aplicaciones grandes

el codi�car por requerimientos (Las tareas se podrían hacer por requerimientos,

por componentes o por el criterio que más se adapte a las necesidades), pero todo

depende de la lógica que maneja el proyecto y la organización que se tiene.

7.2.6.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Im-

plementación desde la perspectiva de esta propuesta.

Actividad 1. Automatización de Pruebas

Justi�cación. Justi�cación Cuando una solución es creada es necesario pro-

barla y entre más automáticas sean estas pruebas mejor ya que la prueba de

una aplicación es una de las actividades consume más tiempo junto con las

correcciones e inspecciones. Por esta razón es necesario automatizar las prue-

bas mediante la codi�cación en un lenguaje especí�co, generalmente se utiliza

el mismo que se maneja para la construcción de la aplicación, pero se podrían

utilizar otros lenguajes (p. ej. en webservices se podría probar con otro lenguaje

para demostrar su interoperabilidad entre diversos sistemas o lenguajes).

110

Page 120: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Documento de Diseño del proyecto.

Descripción. En esta actividad se codi�can las pruebas de caja negra y las

pruebas unitarias de acuerdo a los estándares y herramientas a utilizar especi-

�cadas en el documento de Administración de Con�guraciones. Esta tarea se

considera opcional, debido a que podría resultar poco viable el automatizar las

pruebas, ya sea porque el tiempo gastado en su elaboración no es justi�cable

o porque es más rápido realizar las pruebas sin necesidad de automatizarlas.

Se propone la realización de las siguientes tareas:

1. Codi�cación de las pruebas de caja negra teniendo en cuenta los planes

de prueba construidos.

2. Codi�cación de las pruebas de caja blanca, se recomienda que sea por

componentes cuando se utiliza una arquitectura multinivel, de lo contrario

se recomienda que las pruebas sean por clase.

Entregables o Documentos de Soporte.

Ninguno

Criterio de Salida.

1. Pruebas de Caja Negra y Caja Blanca codi�cadas en el sitio donde se

encuentra el código de la aplicación.

Participantes. Líder de Desarrollo.

Actividad 2. Implementación de la Lógica del Negocio

Justi�cación. Esta actividad consiste en la implementación de la base de

la funcionalidad de la aplicación, donde se de�nen los comportamientos (Mé-

todos) de los objetos o entidades (Clases) con sus similares y con el usuario, es

111

Page 121: De nición y Adaptación de un Proceso de Desarrollo de ...

en donde se de�nen todos los elementos necesarios que se necesitan para que

los requerimientos de�nidos por el cliente se ejecuten correctamente según su

de�nición en el documento de Análisis de Requerimientos y con la estructura

y patrones propuestos en el documento de Diseño.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Documento de Diseño del proyecto.

Descripción. Esta actividad se caracteriza por la implementación de los

métodos necesarios para que los requerimientos funcionales se ejecuten, los

cuales fueron de�nidos en la línea base del código que se hizo en la fase de Di-

seño. Generalmente también se completan cosas como atributos o métodos no

de�nidos en la línea base del código y el ambiente de ejecución de la aplicación.

Se propone la realización de las siguientes tareas:

1. Revisión y corrección de la línea base del código.

2. Implementación del ambiente de ejecución de la aplicación (P. ej. scripts

para la automatización de la generación del código, con�guración de la

comunicación con el servidor).

3. Codi�cación de la lógica del negocio.

Entregables o Documentos de Soporte.

Ninguno.

Criterio de Salida.

1. Código de la lógica del negocio en el sitio donde se encuentra el código

de la aplicación.

2. Código del ambiente de ejecución en el sitio donde se encuentra el código

de la aplicación.

Participantes. Líder de Desarrollo.

112

Page 122: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad 3. Implementación de la Interfaz

Justi�cación. Toda aplicación debe tener una interfaz amigable, sencilla,

llamativa e informativa, es por esta razón que la implementación de la interfaz

debe tener la misma importancia que la implementación de la lógica del negocio

o la de la persistencia, ya que como se mencionó en el documento de Diseño

es la parte de la aplicación le proporciona al cliente la primera impresión del

producto desarrollado.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Documento de Diseño del proyecto.

Descripción. En esta actividad no solo se codi�ca la interfaz, sino que se

añaden todos los recursos grá�cos que fueron establecidos en los requerimientos

grá�cos y en los requerimientos de interacción.

Se propone la realización de las siguientes tareas:

1. Se añaden los recursos necesarios.

2. Codi�cación de Interfaz.

Entregables o Documentos de Soporte.

Ninguno.

Criterio de Salida.

1. Recursos grá�cos en el sitio donde se encuentra el código de la aplicación.

2. Codi�cación de la interfaz en el sitio donde se encuentra el código de la

aplicación.

Participantes. Líder de Desarrollo.

113

Page 123: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad 4. Implementación de la Persistencia

Justi�cación. La persistencia es generalmente una de las características

manejadas por los requerimientos no funcionales más importantes en una apli-

cación, y de acuerdo a su grado de importancia, también es el grado de di�cul-

tad y esfuerzo que se requiere para su implementación. Su importancia radica

en el grado de disponibilidad que debe tener la información y la cantidad de

recursos que representan dicha información, características de la persistencia

entre muchas otras que la aplicación debe manejar para su correcta ejecución.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Documento de Diseño del proyecto.

Descripción. Esta actividad depende del tipo de persistencia que se debe

manejar, ya que lo que se debe hacer para una base de datos es diferente para

el manejo de archivos planos o un parser especí�co. El tipo de persistencia

también in�uye en el orden de ejecución de las tareas de esta fase, por ejemplo,

para el manejo de la persistencia con una base de datos es necesario tener la

base de datos con todas las tablas listas para poder con�gurar correctamente

el ambiente de ejecución, tarea que pertenece a la actividad de Codi�cación

de la Lógica del Negocio.

Se propone la realización de las siguientes tareas:

1. Base de Datos

Tomando como base el diagrama de entidad-relación generar los scripts

de creación y eliminación de tablas y, los scripts de inserción y elimi-

nación de datos.

2. Archivos Planos

Si falta codi�car clases que funcionan como parsers para el manejo

de estos archivos implementarlas.

114

Page 124: De nición y Adaptación de un Proceso de Desarrollo de ...

3. Parser Especí�cos

Si falta codi�car clases para el manejo de estos archivos implemen-

tarlas.

Entregables o Documentos de Soporte.

Ninguno.

Criterio de Salida.

1. Artefactos de persistencia en el sitio donde se encuentra el código de la

aplicación.

Participantes. Líder de Desarrollo.

Actividad 5. Inspección de Código

Justi�cación. Cuando realizamos un documento de cualquier tipo que es de

suma importancia es necesario revisarlo para que este coherente y presentable,

de la misma forma uno debe realizar esta tarea en esta fase. La importancia de

de�nir las inspecciones como una actividad, radica en que, por ejemplo, debido

a que la codi�cación de la aplicación es compleja y dispendiosa es necesario

hacer la inspección contra listas de chequeo debido a que el estándar con el

que se codi�ca debe ser manejado por cada uno de los integrantes del equipo

y debido a la cantidad de nombres que se manejan para nombrar variables y

métodos es fácil cometer errores que ocasionan poca claridad del código, oca-

sionaría errores de comprensión y di�cultaría el mantenimiento debido a que

no es probable que la persona que escribió el código vaya a permanecer siempre

en la empresa o grupo que participó en el proyecto o que recuerde dentro de

10 años de lo que hizo especí�camente en una línea de código especí�ca.

Criterio de Entrada.

Lista de Chequeo de Código.

115

Page 125: De nición y Adaptación de un Proceso de Desarrollo de ...

Documento de Análisis de Requerimientos del proyecto.

Descripción. La inspección de código consiste en una comparación de cada

uno de los ids de una lista de chequeo contra el código, para veri�car que cada

uno de los elementos y su descripción correspondan con la forma en que se

codi�có la aplicación. Al encontrar alguna inconsistencia esta se documenta

en un reporte con la descripción del defecto encontrado.

Se propone la realización de las siguientes tareas:

1. Se agrega el link del sitio donde se encuentra el link de la aplicación.

2. Seleccionar la metodología para realizar la inspección (Grupal o Indivi-

dual).

3. Asignar la(s) persona(s) encargadas de realizar la inspección.

4. Estimar el tiempo destinado a la inspección.

5. Realizar la inspección reportando los defectos encontrados y el tiempo

invertido.

6. Asignar la corrección de los defectos encontrados.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Implementación del proyecto.

Lista de Chequeo de Código para la Inspección de Código.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación del Reporte de Defectos.

Criterio de Salida.

1. Sitio donde se encuentra el código de la aplicación.

2. Reporte de Defectos Encontrados.

Participantes. Líder de Desarrollo.

116

Page 126: De nición y Adaptación de un Proceso de Desarrollo de ...

7.2.7. PRUEBAS

7.2.7.1. Motivación

Las pruebas del sistema corresponden a las pruebas de validación del software

construido. El proceso de validación se lleva a cabo para saber que el software

desarrollado cubre las expectativas del cliente. Por lo tanto en esta fase se completan

los planes de prueba para hacer las pruebas más robustas. De está forma se tiene

una mayor certeza y seguridad para decir que el sistema cumple con las necesidades

identi�cadas del cliente.

7.2.7.2. Propósito

El principal �n de este proceso es asegurarse de que los objetivos del producto

fueron alcanzados mediante una solución efectiva y completa al problema inicial

planteado. Esto se veri�ca no solo con los planes de prueba, su codi�cación y la

codi�cación de pruebas unitarias, adicionalmente se necesita diseñar pruebas no

funcionales para �nalmente ejecutar todo este conjunto de pruebas y recopilar los

defectos encontrados. Cuando los participantes de esta fase son dos o más personas,

se recomienda que el encargado de reportar los defectos sea diferente del que diseño

las pruebas y quien los corrija sea diferente de quien encontró los defectos, esto

ayuda a retroalimentar el proceso con comentarios de los miembros del grupo sobre

la forma en como hacen las pruebas, la forma en como diseñan los planes de prueba,

la forma en como se describen los defectos encontrados y �nalmente la forma en

como se corrigen.

7.2.7.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Prue-

bas desde la perspectiva de esta propuesta.

117

Page 127: De nición y Adaptación de un Proceso de Desarrollo de ...

Actividad 1. Diseño de Pruebas de Req. No Funcionales

Justi�cación. No sólo la funcionalidad de una aplicación es importante, la

misma importancia tienen las características no funcionales que son especi�-

cadas por el cliente. Esos atributos de calidad afectan de una u otra forma

una aplicación dependiendo de la lógica que maneje. La seguridad por ejemplo

es indispensable en las organizaciones que centran su negocio en el manejo de

la información, mientras que un sistema de reserva de pasajes se basa en su

persistencia y disponibilidad.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Documento de Diseño del proyecto.

Descripción. La elaboración de pruebas no funcionales depende mucho de

la aplicación que se ha construido, a veces las mismas pruebas de caja negra o

de caja blanca pueden probar persistencia o seguridad, por lo que las pruebas

no funcionales no siempre se pueden automatizar o seguir un esquema de�nido.

Se propone la realización de las siguientes tareas:

Por cada requerimiento no funcional, describir como se va a realizar la prueba

y los recursos necesarios para realizarla. Se diseña un plan de pruebas para

requerimientos no funcionales. Se codi�can las pruebas si es viable y recomen-

dable y si su automatización se justi�ca.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Pruebas del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la for-

ma de documentación de los planes de pruebas de los requerimientos no

funcionales.

118

Page 128: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Primera versión del documento de Pruebas del Sistema: Documento de

planes de prueba de los requerimientos no funcionales.

2. Codi�cación de las pruebas de requerimientos no funcionales en el sitio

donde se encuentra el código de la aplicación.

Participantes. Líder de Desarrollo.

Actividad 2. Ejecución de Pruebas de Caja Negra y Caja Blanca

Justi�cación. La ejecución de pruebas como parte de los procesos de veri-

�cación del software son de vital importancia para garantizar la funcionalidad

del sistema de acuerdo a los requerimientos establecidos por el cliente, debido

a que la fase de pruebas es la fase previa a la �nalización de un proyecto de

construcción de software, pero una de las más importantes ya que contempla

los ajustes �nales de la aplicación.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Código para la automatización de las pruebas.

Primera versión del documento de Pruebas del Sistema.

Descripción. Esta actividad, como hace alusión su título, se re�ere a la

ejecución de las pruebas de caja negra y caja blanca previamente construidas.

La ejecución de esta actividad se realiza con base en el plan de pruebas de caja

negra y en la codi�cación de estas pruebas y las de caja blanca. El resultado de

esta actividad corresponde a un reporte de defectos encontrados en ejecución.

Cuando no se hace la parte de automatización de las pruebas sólo se realiza la

ejecución en base a los planes de prueba.

Se propone la realización de las siguientes tareas:

119

Page 129: De nición y Adaptación de un Proceso de Desarrollo de ...

1. Se añade un link al documento de planes de prueba del documento de

Análisis de Requerimientos.

2. El desarrollador asignado realiza la ejecución de las pruebas codi�cadas

si las hay si no, se basa en el plan de pruebas diseñado en el documento

de Análisis de Requerimientos.

3. Se reportan los defectos encontrados sobre el documento de Reporte de

Defectos.

4. Asignación de la corrección de los defectos encontrados.

5. Corrección de los defectos asignados.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Pruebas del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación del Reporte de Defectos del sistema.

Criterio de Salida.

1. Segunda versión del documento de Pruebas del Sistema: Se añadió el

Reporte de Defectos.

Participantes. Líder de Desarrollo.

Actividad 3. Ejecución de Pruebas de Req. No Funcionales

Justi�cación. La ejecución de pruebas como parte de los procesos de veri-

�cación de software son de vital importancia no sólo para garantizar la funcio-

nalidad del sistema de acuerdo a los requerimientos establecidos por el cliente,

sino también para garantizar los requerimientos que deben soportar esa funcio-

nalidad aunque no se perciban a simple vista. Debido a que la fase de pruebas

es la fase previa a la �nalización de un proyecto de construcción de software y

120

Page 130: De nición y Adaptación de un Proceso de Desarrollo de ...

una de las más importantes ya que contempla los ajustes de la aplicación �nal,

es necesario garantizar la ejecución correcta de la aplicación y son los reque-

rimientos no funcionales los que dan esta garantía, al garantizar la ejecución

correcta de los requerimientos funcionales.

Criterio de Entrada.

Segunda versión del documento de Pruebas del Sistema.

Código para la automatización de las pruebas.

Descripción. Esta actividad, como hace alusión su título, se re�ere a la

ejecución de las pruebas de requerimientos no funcionales previamente cons-

truidas. La ejecución de esta actividad se realiza con base en el plan de pruebas

de requerimientos no funcionales y en su codi�cación. El resultado de esta acti-

vidad corresponde a un reporte de defectos encontrados en ejecución. Cuando

no se hace la parte de codi�cación de las pruebas sólo se realiza la ejecución

en base a los planes de prueba.

Se propone la realización de las siguientes tareas:

1. El desarrollador asignado realiza la ejecución de las pruebas codi�cadas

si las hay, sino se basa en el plan de pruebas diseñado anteriormente.

2. Se reportan los defectos encontrados sobre el documento de reporte de

defectos.

3. Asignación de la corrección de los defectos encontrados.

4. Corrección de los defectos asignados.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Pruebas del proyecto.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación del Reporte de Defectos del sistema.

121

Page 131: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Tercera versión del documento de Pruebas del Sistema: Se modi�có el

Reporte de Defectos.

Participantes. Líder de Desarrollo.

Actividad 4. Presentación del Producto

Justi�cación. Esta actividad consiste en la presentación del producto al

cliente. Esta presentación se realiza con el �n de obtener una retroalimentación

�nal del cliente al estar interactuando con el resultado del desarrollo del ciclo.

La ejecución de esta actividad se realiza con base en el plan de pruebas de

caja negra, y el resultado corresponde a un reporte de defectos encontrados en

ejecución.

Criterio de Entrada.

Documento de Análisis de Requerimientos del proyecto.

Tercera versión del documento de Pruebas del Sistema.

Descripción. Se propone la realización de las siguientes tareas:

1. El desarrollador asignado realiza la ejecución del plan de pruebas del

sistema junto con el responsable asignado por el cliente.

2. Se reportan los defectos encontrados sobre el documento de reporte de

defectos.

3. Asignación de la corrección de los defectos encontrados.

4. Corrección de los defectos asignados.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Pruebas del proyecto.

122

Page 132: De nición y Adaptación de un Proceso de Desarrollo de ...

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación del Reporte de Defectos del sistema.

Criterio de Salida.

1. Cuarta versión del documento de Pruebas del Sistema: Se modi�có el

Reporte de Defectos.

Participantes. Líder de Desarrollo, Cliente.

7.2.8. POSTMORTEM

7.2.8.1. Motivación

La fase de Postmortem corresponde al último proceso en la secuencia de procesos

de desarrollo. El objetivo de este proceso es revisar el ciclo de desarrollo en busca

de oportunidades de mejora. De forma paralela se identi�can y resaltan las buenas

prácticas seguidas en el ciclo, de manera que se institucionalicen dentro del equipo

de desarrollo.

El proceso de Postmortem es el punto de referencia en el que se basa la carac-

terística de adaptabilidad de los proyectos ágiles. Reconocer las actividades que son

efectivas dentro del proceso de desarrollo, y las que no lo son, sirven como guía para

establecer un plan de mejoramiento del proceso. Realizar de manera consciente un

buen proceso de postmortem, e implantar cambios que surjan de la revisión del pro-

ceso, asegura un mejoramiento continuo junto con la adaptabilidad de los procesos

que lo requieran.

El proceso de postmortem tiene como resultado un producto de trabajo que

resume al �nal del ciclo las impresiones de todo el equipo en el tema de seguimiento

del proceso.

7.2.8.2. Propósito

La participación activa del equipo en el proceso de Postmortem, apoya el proceso

de culturización de los desarrolladores en el tema de adaptación y mejoramiento de

123

Page 133: De nición y Adaptación de un Proceso de Desarrollo de ...

los procesos. Con esto se puede lograr que todo el equipo se convierta en multiplica-

dor de la cultura. Esta fase tiene como �n, lograr generar habilidades para aprender

a capitalizar el conocimiento adquirido en cada proceso de un proyecto de desarrollo.

7.2.8.3. Proceso

A continuación se presentan las actividades que hacen parte del proceso de Post-

mortem desde la perspectiva de esta propuesta.

Actividad 1. Análisis Global

Justi�cación. Cuando se �naliza cualquier trabajo, actividad, proyecto o

tarea, inconscientemente se re�exiona sobre lo que se hizo y sobre las decisiones

tomadas y que posibles decisiones podrían haber sido una mejor elección. Es

vital tener esa información y registrarla en algún lado, pero es más importante

hacer un análisis más detallado para asegurarnos de que lo que pensamos es lo

correcto, porque la opinión personal podría estar sesgada por diversos factores

ya que se tiene solo un punto de vista.

Criterio de Entrada.

Documento de Planeación Global del proyecto.

Documento de Diseño del proyecto.

Código de la Aplicación.

Documento de Pruebas del proyecto.

Descripción. Esta actividad consiste en la evaluación del trabajo realizado

en los diferentes frentes (Proceso y Producto), que servirá de base para la

evaluación de los objetivos planteados en la fase de Lanzamiento.

Se propone la realización de las siguientes tareas:

1. Generación de reportes por medio de grá�cas o tablas. Se proponen los

siguientes reportes cuando el equipo maneja únicamente un proyecto a la

vez:

124

Page 134: De nición y Adaptación de un Proceso de Desarrollo de ...

Reporte de Tiempo por fase.

Reporte de Tiempo por persona.

Reporte de Porcentaje de Tiempo gastado en cada fase por persona.

Reporte de Tiempo por actividad.

Reporte de Tiempo estimado de cada requerimiento por fase.

Reporte de Tiempo gastado de cada requerimiento por fase.

LOC Global (Líneas de Código de la Aplicación).

Tamaño Detallado: Descripción de cada una de las interfaces, clases,

métodos, etc que formen el producto identi�cando el componente al

que pertenecen y sacando total, promedio y desviación estándar. Se

pueden sacar varios tipos de reportes (Número de Clases, Número

de Interfaces, Número de Atributos, Número de Métodos, Número

de Métodos Estáticos, Número de Atributos Estáticos, DIT, Com-

plejidad Ciclomática, Peso de los métodos por clase, Acoplamiento

Aferente y Eferente, Instanciabilidad, Número de Parámetros, Pro-

fundidad de los Bloques Anidados).

Reporte de Defectos (Defectos por fase contra defectos encontrados

por fase, contra defectos corregidos por fase).

Productividad (Líneas de Código por Hora para cada Fase).

Se sugiere que dependiendo del tipo y el tamaño del proyecto se saquen

únicamente los reportes necesarios y los cuales efectivamente van a ser

analizados, debido a que la tarea de generación es dispendiosa. Se reco-

mienda utilizar herramientas que ayuden en la generación de los reportes,

en especial los que tienen que ver con el tamaño detallado.

2. Generación de reportes por medio de grá�cas o tablas. Se proponen los

siguientes reportes cuando el equipo maneja varios proyectos a la vez:

Reporte de Tiempo gastado por proyecto.

Reporte de Tiempo estimado por proyecto.

Reporte de Porcentaje de Tiempo gastado del proyecto en cada fase.

125

Page 135: De nición y Adaptación de un Proceso de Desarrollo de ...

Reporte de Tiempo estimado de cada requerimiento por fase.

Reporte de Tiempo gastado de cada requerimiento por fase.

Reporte de Defectos (Defectos por fase contra defectos encontrados

por fase, contra defectos corregidos por fase).

Productividad (Líneas de Código por Hora para cada Fase).

De la misma forma que se recomienda el uso de herramientas para la

generación de reportes cuando se trabaja en un solo proyecto a la vez,

también se recomienda para el manejo concurrente de los proyectos, ya

que el tiempo invertido en la generación de estos reportes es alto, y generar

únicamente los reportes necesarios.

Los reportes mencionados anteriormente no son los únicos que se pueden ge-

nerar, se pueden hacer combinaciones entre ellos, depende de los gustos y las

comparaciones que se deseen hacer.

Entregables o Documentos de Soporte.

1. Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Postmortem del proyecto.

Criterio de Salida.

1. Primera versión del documento de Postmortem: Análisis Global.

Participantes. Participantes Todos los roles.

Actividad 2. Análisis por Persona

Justi�cación. Un análisis global no es el único criterio para observar el

trabajo realizado, ya que es necesario observar el desempeño de cada persona

individualmente, y su in�uencia en el trabajo del equipo, por esta razón es

necesario analizar el trabajo desempeñado por cada persona.

126

Page 136: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Entrada.

Reportes del trabajo realizado y el tiempo utilizado por cada persona.

Primera versión del Documento de Postmortem.

Descripción. Este análisis consiste en observar el trabajo de cada persona

durante todo el proceso de ejecución del proyecto y su aporte tanto al proceso

como al producto, esto permite evaluar la efectividad de la ejecución de las

actividades propuestas a cada rol y poder mejorarlas o mejorar su distribución

entre los demás integrantes del equipo. También permite examinar el equipo

y sus relaciones entre sus integrantes.

Se propone la realización de las siguientes tareas:

1. Generación de los siguientes reportes por persona (Es útil añadir una

comparación entre los integrantes y una comparación contra lo estimado,

para observar el desempeño de un integrante contra otro y para observar

él desfase en la planeación de las actividades que realizó cada persona):

Cuando el equipo trabaja en un sólo proyecto se recomienda sacar

los siguientes reportes:

• Reporte de Porcentaje de Tiempo gastado en cada fase por per-

sona.

• Reporte de Porcentaje de tiempo gastado por cada persona sobre

el total del equipo.

Cuando el equipo trabaja en varios proyectos se recomienda sacar los

siguientes reportes:

• Reporte de Porcentaje de Tiempo gastado de cada proyecto por

persona.

• Reporte de Porcentaje de Tiempo gastado de cada persona por

proyecto.

• Reporte de Porcentaje de tiempo gastado por cada persona sobre

el total del equipo.

127

Page 137: De nición y Adaptación de un Proceso de Desarrollo de ...

2. Realizar un resumen del trabajo realizado por cada persona de acuerdo a

los reportes del trabajo realizado y el tiempo utilizado por cada persona.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Postmortem del proyecto.

Criterio de Salida.

1. Segunda versión del documento de Postmortem: Se añadió el Análisis por

Persona.

Participantes. Todos los roles.

Actividad 3. Evaluación de Pares

Justi�cación. La característica más importante que se debe tener en cuen-

ta para que un desarrollador trabaje en un proyecto ágil, es la constancia y

el compromiso con el proyecto. El equipo no debe estar integrado por desa-

rrolladores brillantes, pero sí necesita desarrolladores comprometidos. Por el

esquema de trabajo que se propone, y especialmente por la característica de

dispersión del equipo, el trabajo de un desarrollador se mide de acuerdo a los

resultados y al aporte general para el proyecto. Esto se puede revisar al �na-

lizar cada periodo de desarrollo. Sin embargo, es importante al �nal del ciclo,

revisar si el resto del equipo está conforme con el trabajo de un desarrollador.

De no ser así, este debe adaptar su forma de trabajo a los parámetros del

equipo, o debe salir de este.

Criterio de Entrada.

Reportes del trabajo realizado y el tiempo utilizado por cada persona.

Segunda versión del documento de Postmortem.

128

Page 138: De nición y Adaptación de un Proceso de Desarrollo de ...

Descripción. Esta actividad consiste en la realización por parte de cada

integrante del equipo de una evaluación del resto de los integrantes. Esta eva-

luación tiene como objetivo recoger la opinión de cada integrante, acerca de

sus compañeros. En la evaluación se debe tener en cuenta diferentes tópicos

que agrupen el comportamiento general del desarrollador.

Se propone la realización de la siguiente tarea:

1. Cada integrante del equipo llena el formato de evaluación de pares con

base en el instructivo de formato de evaluación de pares.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la Evaluación de Pares.

Criterio de Salida.

1. Documentos de Evaluación de Pares de cada integrante del equipo.

Participantes. Todos los roles.

Actividad 4. Evaluación de Objetivos

Justi�cación. Todos los objetivos propuestos deben ser evaluados cuando

se alcanzan o en la fecha para la cual se determinó que se alcanzarían, de esta

forma se evalúa el grado o porcentaje alcanzado de los objetivos de acuerdo a

las métricas iniciales que se establecieron.

Criterio de Entrada.

Documento de Lanzamiento del Proyecto.

Reportes del trabajo realizado y el tiempo utilizado por cada persona.

Segunda versión del Documento de Postmortem.

Documentos de Evaluación de Pares de cada integrante del equipo.

129

Page 139: De nición y Adaptación de un Proceso de Desarrollo de ...

Descripción. Esta actividad consiste en la evaluación de los objetivos es-

tablecidos en el documento de Lanzamiento del proyecto de acuerdo a las

métricas establecidas para las metas de cada objetivo.

Se propone la realización de las siguientes tareas:

1. Evaluación de cada objetivo de acuerdo a los reportes del trabajo reali-

zado, de acuerdo a lo registrado hasta el momento en el postmortem y

de acuerdo a los documentos de Evaluación de Pares.

2. Resumen del alcance del ciclo, todo lo que se hizo teniendo en cuenta lo

que se planeó y lo que no fue planeado pero se realizó, y lo que no se

realizó o no se logró terminar.

Entregables o Documentos de Soporte.

Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Postmortem del proyecto

Criterio de Salida.

1. Tercera versión del documento de Postmortem: Se añadió la Evaluación

de Objetivos.

Participantes. Todos los roles.

Actividad 5. PIP

Justi�cación. Al �nalizar todo proyecto es necesario recopilar toda la ex-

periencia aprendida y plantear mejoras para el proceso de ejecución de nuevos

proyectos y de esta forma evitar cometer los mismos errores. Durante la ejecu-

ción de un proyecto y de cualquier otra actividad es necesario estar consciente

de que constantemente se está en un proceso de aprendizaje continuo. El PIP

(Process Improvement Proposal) es una de las actividades más enriquecedoras

para cualquier proceso que aplique o desee aplicar políticas de mejoramiento

continuo.

130

Page 140: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Entrada.

Reportes del trabajo realizado y el tiempo utilizado por cada persona.

Tercera versión del documento de Postmortem.

Descripción. Está es la ultima actividad del proceso de postmortem pero

no la menos importante, ya que puede que su importancia no sea tan relevante

para este proyecto o para este ciclo, pero para próximos proyectos es vital para

el continuo del contínuo mejoramiento del proceso y el equipo así como de los

nuevos productos que van a ser generados.

Se propone la realización de las siguientes tareas:

Resumen de los principales problemas encontrados durante la ejecución

del proyecto.

Evaluación de la Administración de Riesgos (¿Que riesgos se administra-

ron?, ¿cómo se mitigaron o detuvieron?, ¿sirvieron los planes de mitiga-

ción y contingencia?, propuestas de mejoramiento).

Evaluación de las Herramientas utilizadas (¿Qué herramientas se utiliza-

ron?, ¿para que se utilizaron?, ¿se utilizaron adecuadamente?, ¿al utili-

zar las herramientas se mejoraron las tareas en las que fueron utilizadas?,

¿si no se utilizaran, que ocurriría?, propuestas de Mejoramiento)

Propuestas de Mejoramiento del Proceso.

Propuestas de Mejoramiento del Trabajo en Equipo.

Propuestas de Mejoramiento del Producto.

Enumeración de las Lecciones Aprendidas por los miembros del equipo.

Enumeración de los objetivos para próximos ciclos o proyectos.

Entregables o Documentos de Soporte.

1. Ejemplo, plantilla y su correspondiente instructivo que describe la forma

de documentación de la fase de Postmortem del proyecto.

131

Page 141: De nición y Adaptación de un Proceso de Desarrollo de ...

Criterio de Salida.

1. Versión �nal del documento de Postmortem: Se añadió el PIP.

Participantes. Todos los roles.

7.3. Manual de Uso del Proceso

La de�nición de un proceso no es su�ciente para su aplicabilidad, por lo tanto a

continuación se explica como usarlo.

7.3.1. Recomendaciones

Para utilizar adecuadamente el proceso PAL se debe tener en cuenta las siguientes

recomendaciones cada vez que se vaya a utilizar dicho proceso:

El proceso se debe considerar como una guía para la construcción de software,

por lo que si en algún momento el proceso no se aplica, se debe adaptar al

proyecto en el que se va a utilizar. Si la adaptación produjo buenos resulta-

dos, es bueno evaluarla en la fase de Postmortem y proponerla como cambió

al proceso con su correspondiente justi�cación, esta es una de las bases del

mejoramiento continuo.

Siempre se deben buscar herramientas que soporten el proceso y no al con-

trario, porque una herramienta se actualiza más rápido que un proceso, y el

hacer un proceso dependiente de la tecnología causa que sea poco mantenible

cuando la tecnología se vuelva obsoleta. Pero esto no signi�ca que no se uti-

lice ninguna herramienta sino que hay que saber escoger las herramientas y

utilizarlas adecuadamente.

Todo cambio permanente al proceso debe ser documentado, si se hace una

adaptación al proceso que sólo será momentánea esta debe ir en el documento

de Estrategia del proyecto.

132

Page 142: De nición y Adaptación de un Proceso de Desarrollo de ...

Siempre se debe leer el proceso antes de su aplicación, debido a cambios que

se pudieron realizar entre ejecución de cada proyecto, esto permitirá aclarar

dudas a tiempo evitando de esta manera afectar la ejecución del proyecto.

7.3.2. Metodología

Teniendo en cuenta las anteriores recomendaciones la metodología que se debe

seguir para la aplicación del proceso, es la siguiente:

1. Con el primer documento que se utiliza de base para iniciar un proyecto (Do-

cumento de levantamiento de requerimientos narrativos), se debe reconocer la

viabilidad de la aplicación del proyecto de acuerdo a como se de�nió el proceso

en esta propuesta. Generalmente, esta viabilidad se reconoce en la fase de Es-

trategia, pero puede haber algunos proyectos que de acuerdo a la información

dada en un principio se pueden reconocer modi�caciones inmediatas que se le

deben hacer al proceso, pero se necesita establecer la organización especí�ca

del equipo (Lanzamiento), para poder plantear las modi�caciones al proceso

con justi�caciones claras (Estrategia).

2. Identi�car las herramientas que se van a utilizar para soportar el proceso, si ya

se tiene alguna experiencia, la identi�cación de las herramientas que se pueden

utilizar será más fácil pero al igual que las personas que no tienen experiencia

es bueno investigar nuevas herramientas que mejoren la ejecución del proceso.

3. Si se tiene ya un documento de estándares, ubicarlo en un lugar de fácil ubica-

ción y acceso para todo el equipo, si ya se ha desarrollado proyectos con este

proceso se debe hacer buen uso de los históricos y utilizar la sección de Admi-

nistración de Con�guraciones de los documentos de Estrategia, de lo contrario

crear un documento de estándares muy básico y que sirva como un criterio de

entrada más para la construcción de la Administración de Con�guraciones.

4. Se recomienda establecer una buena administración de riesgos que no se limite

a identi�car riesgos del producto del proceso o del equipo, su extensión puede

133

Page 143: De nición y Adaptación de un Proceso de Desarrollo de ...

alcanzar criterios como el costo o el soporte, estos tipos de riesgos pueden ser

importantes para una empresa con poca capacidad de adquisición de recursos,

pero pueden no ser importantes para otras empresas que tienen un alto capital

y un buen poder de adquisición o simplemente en el proyecto no se identi�can

ese tipo de riesgos.

5. Se debe de�nir un buen proceso de seguimiento, si no se tiene es bueno de�nirlo

en la fase de Estrategia del proyecto e incluirlo en la sección de Aseguramiento

de la Calidad, de esta forma facilita los cambios, la adaptación, la solución de

problemas y futuras mejoras a este proceso.

6. Finalmente, es necesario considerar los históricos de proyectos pasados, junto

con la administración de con�guraciones del proyecto actual como criterios de

entrada para cada una de las fases del proceso y sus respectivas actividades.

7.4. Uso del Proceso en el Proyecto AVA

Para el grupo de Desarrollo, y en especial para la ejecución del proyecto AVA,

debido a sus características se de�nió:

Los documentos De Lanzamiento y Estrategia que se utilizarán en la etapa en

la cual se encuentra el proyecto AVA en este momento, la cual se caracteriza

por la creación de varios AVAs concurrentemente, son iguales para cada AVA,

por lo que los ciclos de desarrollo contemplan las fases de Planeación, Diseño,

Implementación, Pruebas y Postmortem. El Análisis de Requerimientos debe

ser manejado por ciclos también, pero está fase es responsabilidad del grupo

de Diseño Instruccional y se sale del alcance de esta propuesta.

Debido a que en el documento de Estrategia se especi�can actividades depen-

dientes del ciclo en el que se ejecutan, se extrae las secciones de Alcance del

Ciclo, Planeación Preliminar y Administración de Riesgos, para formar una

fase que va antes de la Planeación denominada Estrategia del Ciclo.

134

Page 144: De nición y Adaptación de un Proceso de Desarrollo de ...

Las fases de Lanzamiento y Estrategia se trabajan en equipo, por lo cual

participan los roles de Líder de Equipo y Líder de Desarrollo.

La correspondencia entre roles del Grupo de Desarrollo y los roles del proceso

es:

• El Coordinador del grupo de Desarrollo asume el rol de Líder de Equipo.

• Los desarrolladores asumen el rol de Líderes de Desarrollo, debido a que

como su rol lo indica se encargan de �Liderar el Desarrollo� de los AVAs

que les fueron asignados por el Líder del Equipo.

La asignación de los AVAs a los desarrolladores se hace en la fase de Estrategia.

El tipo de AVA se debe de�nir en la fase de Diseño, pero la decisión del tipo

de AVA es tomada por el Interlocutor y debe ir a modo de sugerencia con

su respectiva justi�cación al Desarrollador en el momento de entregarse el

documento de Análisis de Requerimientos para su validación.

El máximo nivel de detalle que se debe alcanzar en el documento de Planeación

Global, en la Planeación Preliminar de la fase de Estrategia del ciclo y en los

reportes generados de la fase de Postmortem es el de Requerimiento.

El máximo nivel de detalle que se debe alcanzar en el Análisis del Ciclo del

Postmortem es el de Fase.

El grupo de Diseño Instruccional es el responsable de facilitarle el documento

de levantamiento de requerimientos narrativo al grupo de Desarrollo.

Debido a que el grupo de Diseño Instruccional es el encargado de realizar el

documento de Análisis de Requerimientos, se puede simpli�car el proceso al

cambiar el documento de levantamiento de requerimientos narrativos por el

documento de Análisis de Requerimientos como criterio de entrada de la fase

de Estrategia, como consecuencia el documento de Estrategia y el documento

de Planeación se mejoran acercándolos mejor a la realidad del proyecto (Ver

Figura 9).

135

Page 145: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 9: Proceso PAL utilizado por el grupo de Desarrollo dentro del Proceso deConstrucción de un AVA. También se puede observar como sería el proceso utilizadopor el grupo de Diseño Instruccional si también utilizará el proceso PAL

136

Page 146: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo VIII

Evaluación de Herramientas

Finalmente, teniendo en cuenta el proceso de�nido en el capítulo anterior, es

necesario evaluar las herramientas actuales que sirven de soporte al proceso de cons-

trucción de software en el grupo de Desarrollo para realizar unas recomendaciones

sobre como usar las herramientas actuales y como usarlas adecuadamente.

8.1. Herramientas Actuales

Actualmente, el grupo de Desarrollo utiliza dos herramientas de soporte al proce-

so de construcción de software: DotProject y una Wiki. Existen otras herramientas

utilizadas como lo son Eclipse y Poseidon, pero no dan soporte a todo el proceso

sino a fases especí�cas por lo que no hacen parte de la evaluación.

8.1.1. Descripción

DotProject Es una herramienta para la administración de proyectos [Dot06].

LIDIE la utiliza para la administración de sus proyectos, documentando en que

fase se encuentra el proyecto en un momento determinado de la ejecución del

proyecto, el coordinador que es responsable del AVA y todas las personas vin-

culadas al proyecto, así como la planeación de cada una de las actividades que

van a ser ejecutadas para la ejecución del proyecto. A medida que va avanzan-

do el proyecto, se van registrando los tiempos utilizados por cada actividad con

su correspondiente comentario sobre la descripción de la actividad que se hizo

y los problemas encontrados. Finalmente, esta herramienta también se utiliza

para adjuntar los documentos relacionados con el proyecto, tanto documentos

137

Page 147: De nición y Adaptación de un Proceso de Desarrollo de ...

con información proveída por el cliente, como entregas generadas no sólo por

el grupo de Desarrollo sino también por los demás grupos interdisciplinarios.

Wiki Es una herramienta para la construcción de documentos colaborativa-

mente en la red, permitiendo su consulta en línea, es considerada �la base de

datos en línea más simple que pueda funcionar�[Fou06]. Inicialmente LIDIE

intentó usar una Wiki llamada phpWiki, en la cual se quería registrar toda la

documentación y herramientas que utilizaba el grupo de Desarrollo, se quería

utilizar como un sitio de información centralizada para el grupo de Desarrollo.

Debido a sus limitaciones en cuanto a edición y a la poca documentación que

se manejaba en el grupo de Desarrollo sobre los proyectos en los cuales parti-

cipaba, su acogida fue muy baja. Actualmente, para soportar la de�nición del

proceso PAL, artefacto resultante del objetivo de mejorar la Administración

de Conocimiento para LIDIE, se reevaluó el uso de la Wiki, dando como re-

sultado la instalación de la DokuWiki cuyo principal objetivo es registrar todo

el conocimiento adquirido por el Grupo de Desarrollo, lo cual incluye desde

manuales para la utilización de herramientas y plantillas hasta la descripción

de los diferentes procesos que se ejecutan para sus proyectos.

CVS Es una herramienta para el control de versiones [Xim06], mediante el

cual se registra los artefactos generados con sus respectivos comentarios y

que permite el trabajo colaborativo distribuido, permitiendo que los proyectos

trabajados bajo esta herramienta puedan estar disponibles para su trabajo en

cualquier momento. LIDIE utiliza esta herramienta únicamente en su grupo

de Desarrollo para las aplicaciones que se encuentran en desarrollo.

8.1.2. Recomendaciones

DotProject

• Se debería clasi�car el estado del proyecto por fase en la que se encuentra

y no por grupo en el que se encuentra, o utilizar como segundo criterio

el grupo, porque actualmente pasa de estar clasi�cada por grupo a estar

138

Page 148: De nición y Adaptación de un Proceso de Desarrollo de ...

clasi�cada por fase lo que di�culta a�rmar el estado en el que se encuentra

el proyecto.

• Se debería utilizar estándares de nombramiento para los documentos que

son adjuntados, debido a que la búsqueda de un documento especi�co

no es nada fácil con los nombres que actualmente se le asignan a los

documentos.

• Se debería revaluar el uso se DotProject como repositorio, ya que el grupo

de Desarrollo ya utiliza un sistema controlador de versiones que es CVS.

y DotProject está orientado a la administración de proyectos y no como

un sistema controlador de versiones.

• Se debería utilizar un formato más liviano para la elaboración de do-

cumentos, o por lo menos hacer que los documentos adjuntados a Dot-

Project sean lo más livianos posible, para que el mantenimiento de la

documentación y de la herramienta sea sencillo. Se recomienda adjuntar

archivos en formato PDF.

Wiki

• Antes de comenzar a utilizar la Wiki, es bueno realizar un mapa de na-

vegación para que la ubicación de los documentos sea sencilla, además de

revisar la estructura que se está manejando actualmente.

• Cada página debería tener una pequeña explicación de lo que se puede

encontrar entre sus contenidos.

• Mediante un manejo adecuado de estándares de nombramiento y docu-

mentación la Wiki es una buena herramienta para el registro y generación

de documentación, debido a que no se necesita un programa adicional

para su edición por su facilidad para la edición de documentos en línea,

adicionalmente provee un sistema básico de control de versiones y permite

generar documentos portables en PDF o en XHTML.

• Se debe restringir el acceso a determinadas carpetas o secciones de la

Wiki de acuerdo a los roles especi�cados o a los grupos interdisciplinarios

139

Page 149: De nición y Adaptación de un Proceso de Desarrollo de ...

participantes, de esta forma el grupo de Desarrollo no puede editar los

documentos del grupo de Diseño Instruccional y viceversa.

8.2. Herramientas Sugeridas

Para que el proceso de�nido tenga un soporte completo es necesario contar con

herramientas adicionales a las mencionadas anteriormente, por lo que a continuación

se mencionan los procesos para los cuales se necesitan herramientas de soporte.

Se necesita una herramienta para la admininistración de riesgos, ya que este es

un proceso importante pero costoso en tiempo si se maneja una alta cantidad

de riesgos. La mayoría de las veces se priorizan los riesgos para poder admi-

nistrar los más importantes ocasionando que algunos riesgos no se tengan en

cuenta y hasta se menosprecien.

Se necesita una herramienta para el reporte de defectos encontrados en pruebas

e inspecciones, debido a que el mantenimiento y ejecución de históricos de estos

procesos es alto. Actualmente existen herramientas como Mantis e Insectivore

para el reporte de defectos y Hammurapi para la inspección de código.

Se necesita un herramienta para la generación de reportes y análisis de métricas

como HackyStat, también se puede pensar en extender la funcionalidad de

herramientas existentes, especialmente para herramientas de administración

de proyectos como DotProject.

Finalmente, es importante recordar que para la utilización de una nueva he-

rramienta es importante aprender a utilizarla adecuadamente, ya que aunque el

aprendizaje es una inversión alta y es altamente costoso cuando se esta empezando

a utilizar, es una buena práctica el saber administrar los recursos utilizados para

dicho aprendizaje.

140

Page 150: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo IX

Resultados

Los resultados generados de la elaboración del trabajo enunciando en este docu-

mento se presentan a continuación:

Durante la ejecución de este trabajo, el grupo de Desarrollo se concientizó

de sus propios problemas y comenzó a solucionarlos, de los cuales uno de

los más importantes fué la diferenciación de las responsabilidades del grupo de

Desarrollo de las responsabilidades del grupo de Diseño Instruccional. Además,

el grupo de Diseño Grá�co se independizó del grupo de Desarrollo ya que

además de prestar servicios en la parte grá�ca al grupo de Desarrollo, comenzó

a prestar servicios similares al grupo de Diseño Instruccional.

La de�nición del proceso permitió la estandarización de los procedimientos y

documentos, y la especi�cación de las tareas, de esta forma evitando malen-

tendidos y la mejor ubicación de los artefactos generados.

La adaptación del proceso permitió de�nir el proceso de acuerdo a las nece-

sidades que tenía LIDIE en cuanto a su proceso de desarrollo, esto ocasionó

que el proceso fuera fácilmente adaptable debido a las características de los

procesos manejados por QualDev.

Gracias al proyecto QualDev Community se pudo adaptar una herramien-

ta como la Wiki, que pudiera soportar el proceso de la Administración del

Conocimiento, comenzando con la de�nición del proceso en esta herramienta,

y extendiendo su uso a lo demás grupos interdisciplinarios para registrar su

141

Page 151: De nición y Adaptación de un Proceso de Desarrollo de ...

propio conocimiento.esto adicionalmente generó en el grupo de Desarrollo una

concientización de la importancia de la propiedad colectiva del conocimiento

como base para la administración del conocimiento en una empresa en continua

rotación de personal.

El uso del modelo IDEAL en el marco del proyecto QualDev Community

permitió hacer mejoras continuas a la adaptación del proceso, y de esta manera

la adaptación del cronograma de acuerdo a los problemas ocurridos.

Fácilmente se identi�có la adaptabilidad del proceso generado para el grupo

de Diseño Instruccional, en el cual se aplicarían las fases de Lanzamiento, Es-

trategia, Análisis de Requerimientos y Postmortem. La justi�cación de esta

adaptabilidad se reconoce al observar desde una perspectiva general que fácil-

mente las fases de Lanzamiento, Estrategia y Postmortem contienen prácticas

que deberían ser utilizadas por cualquier equipo de cualquier disciplina.

La de�nición del proceso, plantillas y tutoriales permitió fácilmente identi�car

y clasi�car los AVAs, y los requerimientos.

Para QualDev el desarrollo de este trabajo, además de retroalimentar las prác-

ticas utilizadas en la ejecución de los procesos utilizados en la construcción de

software y en la adaptación de sus procesos en otras empresas, generó un

vínculo para el desarrollo de nuevos proyectos que se basarán en el trabajo

desarrollado en esta propuesta.

Finalmente el estado de LIDIE al �nalizar este trabajo se puede observar en

las (Figuras 10 y 11) que clasi�can los problemas del grupo de Desarrollo

de LIDIE por proceso y por tipo de proceso, donde para cada problema se

identi�có la viabilidad de su solución, si era de un alto interés para LIDIE y

�nalmente, si el problema fue atacado1 , todo en el marco de esta propuesta.

1Que un problema fuera atacado no signi�ca necesariamente que fue solucionado completamente,pero si que el proceso al que pertenece fue mejorado para gradualmente eliminar los problemas quelo afectan

142

Page 152: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 10: Problemas del Grupo de Desarrollo de LIDIE, pertenecientes a los pro-cesos de Administración.

143

Page 153: De nición y Adaptación de un Proceso de Desarrollo de ...

Figura 11: Problemas del Grupo de Desarrollo de LIDIE, pertenecientes a los pro-cesos de Desarrollo y a los procesos Transversales.

144

Page 154: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo X

Conclusiones

A continuación se listan las conclusiones de este trabajo:

La principal di�cultad de este tipo de trabajos es el grado de acercamiento que

se tiene con la empresa analizada, ya que además de la necesidad de solicitar

la información correcta es necesario saber también solicitar la cantidad de

información necesaria y adecuada. Para la adquisición de la información es

necesario tener una comunicación continua y si es posible una relación estrecha

con los contactos de la empresa, debido a que durante todo el proceso se

presenta una retroalimentación continua como se dió en este caso para QualDev

y para LIDIE.

Para poder seleccionar el punto crítico a trabajar y la metodología adecuada,

fue necesario hacer un análisis global de los problemas encontrados en el grupo

de Desarrollo, para identi�car los procesos que tenían problemas. Luego se hizo

una identi�cación del proceso que al mejorarlo ocasionará el mayor impacto,

para �nalmente establecer la metodología que se iba a llevar a cabo para el

mejoramiento del proceso seleccionado. De no haberse hecho de esta forma la

identi�cación de los problemas hubiera sido sesgada y la solución identi�cada

no hubiera sido la correcta ocasionando que las actividades para ejecutar la

solución propuesta no mostrara resultados.

Debido a que no se tienen términos globales para el manejo de nombres de pro-

cesos, fue necesario analizar diferentes MCVSs, identi�car procesos comunes y

145

Page 155: De nición y Adaptación de un Proceso de Desarrollo de ...

de�nirlos para evitar un manejo inapropiado de conceptos. Esto adicionalmen-

te llevó a la identi�cación del MCVS adecuado para la de�nición y adaptación

del proceso de construcción de software para el grupo de Desarrollo de LIDIE.

La importancia de desarrollar este trabajo de la forma descrita en este do-

cumento, es que permitió la retroalimentación continua generando mejoras

continuas durante el proceso y sobre la cultura organizacional.

El proceso de construcción de software resultante, es fácilmente adaptable a las

necesidades del grupo de desarrollo de LIDIE, así como a otras empresas que

presenten características similares, debido a que permite adecuarse al proyecto

que se desee llevar acabo, de esta forma se considera que el proceso tiene

una alta mantenibilidad, especialmente cuando se utilizan las herramientas

adecuadas.

Finalmente, la construcción de un proceso de desarrollo de software educativo

no es diferente de la construcción de cualquier otro tipo de software, pero para

el caso de LIDIE y en especial para el proyecto AVA, la forma de trabajar

en equipo, sus integrantes y la naturaleza del proyecto si in�uencian la for-

ma de construir el software, debido a que es un proyecto que maneja varios

proyectos y a la interacción que tienen en la construcción del software grupos

interdisciplinarios diferentes al de Desarrollo como lo es el grupo de Diseño

Instruccional y el grupo de Diseño Grá�co.

146

Page 156: De nición y Adaptación de un Proceso de Desarrollo de ...

Capítulo XI

Trabajo a Futuro

Teniendo en cuenta los resultados (Cap. 9) y las conclusiones (Cap. 11), a con-

tinuación se presentan una serie de actividades (Sección 3.4) que se proponen como

continuación a este trabajo clasi�cadas por procesos (Sección 3.2):

De�nición y Adaptación de los procesos de Soporte:

• Formalización del proceso de Administración de Conocimiento.

• Aunque ya existe una Administración de Con�guraciones desarrollada

como producto de la fase de Estrategia, falta formalizar su proceso y

completarla.

• Utilizar Changeset como una herramienta de soporte para la adminis-

tración de los cambios en los requerimientos y manejar las prioridades,

así como clasi�car los proyectos de acuerdo a su tipo (Web-Standalone,

SICUA) y a su servicio (Soporte o Desarrollo).

• Aunque ya existe una Administración de Riesgos desarrollada adaptada

en la fase de Estrategia, es necesario una herramienta que facilite este

proceso, por lo cual sería interesante investigar sobre las herramientas

disponibles y su adaptación o el diseño de una nueva.

• Finalmente se necesita una herramienta que administre estadísticas, re-

portes y estados de los proyectos y que permita su integración con las

herramientas que se manejan para soportar cada uno de los procesos de

construcción de software.

147

Page 157: De nición y Adaptación de un Proceso de Desarrollo de ...

De�nición y adaptación de los procesos transversales:

• Aunque ya existe una Planeación desarrollada como una fase del proceso

de Desarrollo, falta formalizar la parte de su seguimiento y reforzar Dot-

project con el uso de una herramienta que facilite la creación de multiples

tareas y genere reportes y estadísticas.

• Aunque se especi�có brevemente en la Estrategia del Proyecto AVA prác-

ticas de Calidad en el plan de Aseguramiento de Calidad, es necesario for-

malización de la Administración de la Calidad perteneciente al proceso

de Optimización.

• Es necesario la adaptación de herramientas para la ejecución de inspec-

ciones tanto de código como de documentos y para la administración de

los defectos resultantes.

De los procesos de desarrollo, se necesita una herramienta general que auto-

matice la ejecución de pruebas, en especial para pruebas de requerimientos no

funcionales, y que administre los defectos resultantes.

148

Page 158: De nición y Adaptación de un Proceso de Desarrollo de ...

Referencias

[BD04] Bernd Bruegge and Allen H. Dutoit. Object-Oriented Software Enginee-ring: using UML, patterns and Java. Prentice Hall, New York, 2004.

[Bec99] Kent Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley Professional, 1st edition, October 1999.

[BH95] A.-P. Brohl and W. Droschel (Hrsg.). Das V-Modell � Der Standard furdie Softwareen-twicklung mit Praxisleitfaden. Software � Anwendungssys-teme � Informationssysteme, Oldenbourg, Munchen, second edition, 1995.

[Boe86] B.W. Boehm. A Spiral Model of Software Development and Enhancement,volume 11 (4). Software Engineering Notes, August 1986.

[CA00] Richard B. Chase and Nicholas J. Aquilano. Administración de la produc-ción y las operaciones. McGraw Hill Iberoamericana, 2000.

[CD05] Inc. Creative Data. Development methodology - joint application deve-lopment (jad). http://www.credata.com/research/jad.html, 2005.

[Dot06] DotProject. Dotproject. http://www.dotproject.net/, 2006.

[Fou06] Wikimedia Foundation. Wikipedia. http://es.wikipedia.org/wiki/Wiki,2006.

[Gal92] A. H. Galvis. Ingeniería de Software Educativo. Ediciones Uniandes,Santafé de Bogotá, 1992.

[Gro06a] QualDev Group. Adaptación de dokuwiki.http://chie.uniandes.edu.co/%7Echangeset/process/doku.php?id=development:resources:tutorials:tools:adaptacion_dokuwiki, 2006.

[Gro06b] QualDev Group. Changeset process.http://chie.uniandes.edu.co/%7Echangeset/process/doku.php?id=development:process:process, 2006.

149

Page 159: De nición y Adaptación de un Proceso de Desarrollo de ...

[Gro06c] QualDev Group. Changeset project.http://chie.uniandes.edu.co/%7Echangeset/process/doku.php?id=development:projects:changeset:changeset/, 2006.

[Gro06d] QualDev Group. Qualdev community.http://chie.uniandes.edu.co/%7Echangeset/process/doku.php?id=development:projects:empresas:empresas, 2006.

[Gro06e] QualDev Group. Qualdev group. http://chie.uniandes.edu.co/%7Echangeset/,2006.

[Hum00] Watts S. Humphrey. Introduction to the team software process. AddisonWesley Longman, Inc., Massachussets, 2000.

[IJ99] James Rumbaugh Ivar Jacobson, Grady Booch. The Uni�ed SoftwareDevelopment Process. Book News, Inc., Portland, 1999.

[J.04] Hugo Fernando Arboleda J. Procesos adaptables de desarrollo de softwarepara proyectos Ágiles. Master's thesis, Universidad de Los Andes, 2004.

[Kru03] P. Kruchten. The Rational Uni�ed Process. Addison-Wesley, May 2003.

[Lar98] Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design. Prentice Hall PTR, Upper Saddle River,N.J., 1998.

[LID05] LIDIE. Laboratorio de desarrollo e investigación sobre informática eneducación (lidie). http://lidie.uniandes.edu.co, 2005.

[LID06a] LIDIE. Lidiewiki. http://tereque.uniandes.edu.co/doku/doku.php?id=presentacion, 2006.

[LID06b] LIDIE. Pal: Proceso de administración de la construcción desoftware de lidie. http://tereque.uniandes.edu.co/doku/doku.php?id=desarrollo:proceso:descripcion, 2006.

[LID06c] LIDIE. Proyecto ava: Ambientes virtuales de aprendizaje.http://ava.uniandes.edu.co, 2006.

[Ltd05] Chambers & Associates Pty Ltd. Concept: Life cycle model.http://www.chambers.com.au/Sample_p/c_pmodel.htm, 2005.

[Mar91] James Martin. Rapid Application Development. Macmillan Coll Div, May1991.

150

Page 160: De nición y Adaptación de un Proceso de Desarrollo de ...

[Mob99] Prototyping Your Process, Team and Tools Improving the Usability ofWork. Karen L. Mobley and Judith R. Fisher, 1999.

[Nie04] Benjamin W. Niebel. Ingeniería Industrial, Métodos, Estándares y Diseñodel trabajo. Ediciones Alfaomega, 2004.

[Ros03] Jeanne W. Ross. Creating a strategic it architecture competency: Learningin stages. Center for Information Systems Research, (CISR WP 335),2003.

[Roy70] W. W. Royce, editor. Managing the Development of Large Software Sys-tems. IEEE WESCON, August 1970.

[Uni06] Carnegie Mellon University. The ideal sm model.http://www.sei.cmu.edu/ideal/, 2006.

[WS95] J. Wood and D. Silver. Joint Application Development. Wiley, New York,2nd edition, 1995.

[Xim06] Derek Robert Price & Ximbiot. Cvs - concurrent versions system.http://www.nongnu.org/cvs/, 2006.

[ySR05] Camilo Rincón y Sergio Rodríguez. Mejoramiento del proceso de planea-ción y seguimiento de proyectos de desarrollo de software en pequeñasempresas. Master's thesis, Universidad de Los Andes, 2005.

151

Page 161: De nición y Adaptación de un Proceso de Desarrollo de ...

Anexos

Anexo 1: Formato de Entrevistas

a. ¾Cómo es el proceso de desarrollo de un producto?

b. ¾De que manera se distribuye el trabajo?

c. ¾Qué herramientas son utilizadas?

d. ¾Qué tareas comunes son desarrolladas?

e. ¾Cómo es la interacción con los otros grupos de trabajo?

152

Page 162: De nición y Adaptación de un Proceso de Desarrollo de ...

f. ¾Cuales son los roles establecidos dentro del grupo?

g. ¾Qué aspectos de la manera en que el grupo trabaja, están funcionando?

h. ¾Qué aspectos de la manera en que el grupo trabaja, no están funcionando?

i. ¾Qué expectativas tiene?

153