Diseño de una Metodología Ágil de
Desarrollo de Software.
Schenone Marcelo Hernán.
[email protected]
Tesis de Grado en Ingeniería en Informática.
Facultad de Ingeniería.
Universidad de Buenos Aires.
- 2004 -
Diseño de una Metodología Ágil de Desarrollo de Software
1º Cuatrimestre 2004 FIUBA
Abstract
Esta tesis tiene como propósito la construcción de una Metodología Ágil de
Desarrollo de Software la cual utiliza UML como notación. Si bien podrá ser empleada
en proyectos de distinto tamaño y complejidad, su aplicación tendrá como objetivo
proyectos de pequeña escala y riesgo limitado. También será independiente del lenguaje
o la arquitectura utilizada, así como del tipo de software que se está construyendo.
Para desarrollar esta metodología se comenzará por un relevamiento de las
metodologías y notaciones actualmente empleadas (Rational Unified Process, UML,
SCRUM, OPEN, Extreme Programming, etc), un posterior refinamiento de las mismas
y el desarrollo paulatino de un proceso que incorpore las mejores y más avanzadas
prácticas existentes en cada etapa del desarrollo.
Finalmente, se describe la realización de dos casos prácticos resueltos con la
metodología propuesta. El primer caso práctico estará basado en un sistema de
integración de servicios para ONGs, y el segundo en un sistema de administración de
recursos de hardware y software.
Marcelo Schenone
Página 3 de 184
Diseño de una Metodología Ágil de Desarrollo de Software
1º Cuatrimestre 2004 FIUBA
Tabla de Contenidos
Diseño de una Metodología Ágil de Desarrollo de Software.____________________ 1
Abstract _________________________________________________________________ 3
Tabla de Contenidos____________________________________________________ 4
Tabla de Contenidos Detallada ___________________________________________ 5
Prefacio______________________________________________________________ 8
Capítulo I - Introducción _______________________________________________ 10
Capítulo II - Descripción del Problema____________________________________ 39
Capítulo III - Solución Propuesta ________________________________________ 53
Patrones de Desarrollo Recomendados _______________________________________ 93
Enfoque Sistémico _______________________________________________________ 118
Aportes de AgEnD al Espectro Metodológico_________________________________ 134
Capitulo IV - Resultados Experimentales de las Prácticas de AgEnD __________ 137
Capitulo V - Conclusiones _____________________________________________ 166
Anexo A - Templates de Artefactos ______________________________________ 169
Anexo B - Tabla de Lenguajes de Programación ___________________________ 170
Anexo C - Glosario___________________________________________________ 175
Referencias Bibliográficas_____________________________________________ 177
Links en Internet sobre Metodologías Ágiles ______________________________ 184
Marcelo Schenone
Página 4 de 184
Diseño de una Metodología Ágil de Desarrollo de Software
1º Cuatrimestre 2004 FIUBA
Tabla de Contenidos Detallada
A. Diseño de una Metodología Ágil de Desarrollo de Software
a. Abstract
B. Tabla de Contenidos
C. Tabla de Contenidos Detallada
D. Prefacio
a. Organización de la Tesis
b. Agradecimientos
E. Capítulo I - Introducción
a. Breve Introducción a la Ingeniería de Software
b. Evolución de los Modelos de Proceso de Desarrollo
i. Modelo en Cascada
ii. Modelo en Espiral
iii. Modelo Iterativo
iv. Modelo Incremental
v. Modelo Basado en Prototipos
c. Surgimiento de las Metodologías Ágiles
i. XP
ii. Scrum
iii. Crystal Clear
iv. DSDM
v. FDD
vi. ASD
vii. XBreed
d. Estandarización de las Metodologías Ágiles
i. Manifesto for Agile Software Development
F. Capítulo II - Descripción del Problema
a. Por qué elegir un proceso
b. Orientado al proceso vs. Orientado a las personas
c. Consideraciones Humanas
d. Orientado a los productos vs. Orientado a las tareas
e. Desarrollo Iterativo
Marcelo Schenone
Página 5 de 184
Diseño de una Metodología Ágil de Desarrollo de Software
G. Capítulo III - Solución Propuesta
1º Cuatrimestre 2004 FIUBA
a. Descripción de Aspectos a Incluir en una Metodología Ágil
i. Características de la Metodología
ii. Roles
iii. Fases e Hitos
1. Concepción
2. Elaboración
3. Construcción
4. Transición
iv. Disciplinas dentro de las Fases
1. Factibilidad
2. Requerimientos – Análisis
3. Diseño
4. Implementación – Testing
5. Despliegue
v. Disciplinas de Soporte
1. Administración de Proyecto
2. Administración de la Configuración
3. Administración del Proceso
4. Administración de Personas
5. Administración del Conocimiento
vi. Artefactos
1. Visión
2. Plan de Proyecto
3. Lista de Riesgos
4. Modelo de Casos de Uso y Especificaciones de Casos
de Uso
5. Documento de Especificación de Requerimientos de
Software (SRS)
6. Descripción de la Arquitectura
7. Casos de Prueba
8. Scripts de Despliegue
9. Planilla de Incidentes
10. Repositorio del Proyecto
Marcelo Schenone
Página 6 de 184
Diseño de una Metodología Ágil de Desarrollo de Software
1º Cuatrimestre 2004 FIUBA
11. Nota de Entrega
b. Patrones de Desarrollo Recomendados
i. Máxima Comunicación
ii. Comunicación Interna al Equipo
iii. Participación Activa del Cliente
iv. Estimaciones Ágiles
v. Enfoque en la Arquitectura
vi. Integración Continua
vii. Peopleware
c. Enfoque Sistémico
i. Ambiente del Desarrollo de Software
ii. Implementación del Proceso
1. Adaptación Metodológica
2. Adaptación de las personas
a. La Organización
b. El Área de Desarrollo
c. El Individuo
d. Aportes de AgEnD al Espectro Metodológico
H. Capítulo IV - Resultados Experimentales
a. Overview
b. Experimentos de Prácticas recomendadas en AgEnD
i. Primer Ejemplo: Aplicación en FIDoNET
ii. Segundo Ejemplo: Aplicación en CONEST
I. Capítulo V - Conclusiones
J. Anexo A – Templates de Artefactos
K. Anexo B – Tabla de Lenguajes de Programación
L. Anexo C – Glosario
M. Referencias Bibliográficas
N. Links en Internet sobre Metodologías Ágiles
Marcelo Schenone
Página 7 de 184
Diseño de una Metodología Ágil de Desarrollo de Software
1º Cuatrimestre 2004 FIUBA
Prefacio
Esta Tesis de Grado fue realizada durante el período que va desde Agosto de
2001 hasta Abril de 2004.
La elección del tema surgió a partir de la investigación del autor en relación a los
Modelos de Proceso de Desarrollo observados en diversas materias de la carrera. A
medida que comenzaba la exploración llegó a su conocimiento la metodología eXtreme
Programming (XP) desarrollada por Kent Beck a las cuales se incorporaron muchas
cuales que conformarían el universo de metodologías ágiles. Dado el énfasis de las
mismas en cuestiones de Peopleware, Dinámica de Equipos, Psicología Social, Calidad
del Proceso, el tema fue elegido como base para la construcción de una metodología que
analizara estos aspectos, basándose en las mejores practicas de la industria e
incorporando aspectos interdisciplinarios tomados de la Psicología, Sociología,
Relaciones de Trabajo y Administración. La idea de la misma era que pudiera ser
utilizada dentro de la realidad de la informática en nuestro país. Así nace la presente
tesis que describe en detalle AgEnD, la metodología ágil que es motivo del presente
trabajo.
A fines del 2000, manteniendo conversaciones con el docente Sergio Villagra –
en ese momento jefe de trabajos prácticos de la cátedra de Proyectos Informáticos I de
la FIUBA – quien mostró gran interés en el tópico elegido, se planteó el ofrecimiento de
éste de trabajar como Tutor de la Tesis. Mediante la formalización del trámite de inicio
de la Tesis, comenzó el arduo desarrollo que finalizaría en el año 2004.
Organización de la Tesis
La Tesis está organizada de la siguiente forma.
• Prefacio, contiene información relevante a los orígenes y el desarrollo
del trabajo
•
Introducción, describe brevemente los temas a los que se hará
referencia durante el trabajo
• Descripción del Problema, describe sintéticamente la necesidad de
contar con un proceso de desarrollo y como las Metodologías Ágiles
Marcelo Schenone
Página 8 de 184
Diseño de una Metodología Ágil de Desarrollo de Software
1º Cuatrimestre 2004 FIUBA
intentan resolver distintos problemas surgidos de la complejidad
inherente al software
• Solución Propuesta, describe detalladamente la Metodología propuesta,
AgEnD, destacando los valores propuestos y analizándola en relación
al universo de Metodologías Ágiles
• Resultados Experimentales, narra las experiencias realizadas con las
diversas prácticas propuestas en AgEnD, junto con los resultados
derivados de estas
• Conclusiones, plantea las conclusiones obtenidas del desarrollo así
como futuras líneas de investigación a seguir
• Anexos, detallan temas que si bien no son centrales para la Tesis,
sirven para profundizar en aspectos mencionados en esta
• Bibliografía, contiene
confeccionar el trabajo
la
totalidad del material utilizado para
Agradecimientos
Quisiera agra
Comentarios de: Diseño de una metodología ágil de desarrollo software (0)
No hay comentarios