Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ENTREGA I
DESARROLLO DE UN SISTEMA DE CREACIÓN Y GESTIÓN DE EVENTOS
BAJO LA FILOSOFIA DE SOFTWARE LIBRE PARA EL REGISTRO E
INSCRIPCIÓN DE PERSONAS NATURALES QUE EVITE COLISIÓN DE
HORARIO SEGÚN LA PROGRAMACIÓN DE LAS ACTIVIDADES.
Presentación ................................................................................................................ 5
Requerimientos funcionales.................................................................................... 7
Requerimientos no funcionales............................................................................... 8
Razones por las cuales usar estos procesos de trabajo para desarrollar el software:
.......................................................................................................................................... 13
Es flexible. ........................................................................................................ 13
Una metodología ágil tiene varios principios para llevarse a cabo, entre los más
importantes tenemos: ........................................................................................................ 14
Planeación. ........................................................................................................ 14
Diseño. .............................................................................................................. 15
Codificación. ..................................................................................................... 16
Pruebas. ............................................................................................................. 17
Plan de trabajo ...................................................................................................... 17
Planificación de la iteración.................................................................................. 18
Programador. .................................................................................................... 24
Cliente. .............................................................................................................. 25
Consultor........................................................................................................... 25
Iteración 1 ............................................................................................................. 26
Iteración 2 ............................................................................................................. 27
Iteración 3 ............................................................................................................. 29
Hitos .......................................................................................................................... 30
Departamentos del proyecto ..................................................................................... 32
Objetivo general
Desarrollar un sistema de gestión de eventos que permita el registro de los
participantes e inscripción en las actividades, donde se organice el horario de asistencia
según la programación, evitando colisión y brindando facilidad de acceso a la
información, referente a las presentaciones, certificados y evaluación de ponencias.
Objetivos específicos
1. Diagnosticar la situación actual de la gestión de eventos por medio de software, y su
efectividad en cuanto a la organización.
2. Recolectar información acerca de la problemática, mediante encuestas y entrevistas
con el cliente.
3. Determinar la funcionalidad del sistema según el análisis sobre la información
recopilada.
4. Establecer el diseño del sistema de acuerdo a los requerimientos funcionales y no
funcionales.
5. Implementar el prototipo del sistema de gestión de eventos bajo la filosofía de
software libre.
6. Elaborar pruebas del sistema para que se ajuste a los estándares señalados para el
producto final.
7. Modificar el sistema según los resultados de las pruebas para que se ajuste a los
estándares del producto final.
Restricciones funcionales y no funcionales
Requerimientos funcionales
Requerimientos no funcionales
Razones por las cuales usar estos procesos de trabajo para desarrollar el software:
Mayor productividad.
Al optar por este método ágil utilizamos estrategias que le ahorraran a nuestro equipo
pasos innecesarios que no aportan al proyecto en sí, evitaremos concentrarnos en hacer
documentaciones extensas o en códigos muy densos que puedan entorpecer la forma en la
que el equipo se desenvuelve en el proyecto.
Es flexible.
Incentivaremos la flexibilidad al establecer una relación entre el equipo de desarrollo
y el cliente para que pueda aportar ideas a su propio proyecto y los cambios que se realicen
sean los deseados, además de ir haciendo los cambios necesarios conforme el proyecto vaya
evolucionando, sin necesidad de cambiarlo todo de inicio a fin.
Optimizar el tiempo.
Esta es, sin duda, una de las principales razones para seleccionar este proceso de
trabajo ágil, ya que XP optimiza el tiempo por medio de la comunicación entre los miembros
del equipo de desarrollo web, de manera que las ideas puedan intercambiarse en reuniones
periódicas, en estas reuniones se mejora el proyecto y se eliminan los posibles obstáculos,
además todo el equipo se mantiene trabajando constantemente mientras el proyecto va siendo
utilizable desde su inicio, gracias a que existen varias entregas, en lugar de una sola al final.
Un equipo motivado.
Este es un requisito indispensable que provee XP para tener al equipo satisfecho por
medio de reuniones para dar solución a problemas, a fin de generar una estrategia de
desarrollo exitosa, ya que según Hernández y Prieto (2002) explican que la motivación se
entiende como “Una fuerza que impulsa al individuo a actuar y a perseguir metas específicas;
de modo que es un proceso que puede provocar o modificar un determinado
comportamiento”. Es decir, un equipo motivado trabaja mucho mejor que uno frustrado, la
presión debe ser un reto y terminar debe ser una meta.
Una metodología ágil tiene varios principios para llevarse a cabo, entre los más
importantes tenemos:
Los individuos y sus interacciones son más importantes que los procesos y las
herramientas.
El software que funciona es más importante que la documentación exhaustiva.
Colaboración con el cliente en lugar de negociación de contratos.
No hay que seguir un plan cerrado, sino adaptarse al cambio.
Planeación.
En XP la planificación es un diálogo continuo entre las partes involucradas en el
proyecto, incluyendo al cliente, a los programadores y a los coordinadores, donde el proyecto
comienza recopilando las historias de usuarios, las que constituyen a los tradicionales casos
de uso, los cuales los programadores evalúan rápidamente el tiempo de desarrollo de cada
una. Los Conceptos básicos de la planificación son:
Las Historias de Usuarios. Representan una breve descripción del
comportamiento del sistema, se realizan por cada característica principal del sistema y son
utilizadas para cumplir estimaciones de tiempo y el plan de lanzamientos, así mismo
reemplazan un gran documento de requisitos y presiden la creación de las pruebas de
aceptación, cada historia de usuario debe ser lo suficientemente comprensible y delimitada
para que los programadores puedan implementarlas en unas semanas.
El Plan de Entregas (Release Plan). Es el cronograma resultado de una reunión
entre todos los actores del proyecto, después de escuchar las historias del usuario.
Plan de Iteraciones (Iteration Plan). Las historias de usuarios seleccionadas
para cada entrega son desarrolladas y probadas en un ciclo de iteración.
Reuniones Diarias de Seguimiento (Stand – Up Meeting). Para que el equipo se
mantenga en contacto, a fines de compartir problemas y soluciones, se ha optado por hacer
uso de medios de comunicación. La decisión es basada en el recurso del tiempo y
comodidad para los miembros del equipo, tomando en cuenta el traslado, la disponibilidad
de cada uno y el espacio dispuesto para la reunión. Además, la información queda
registrada y puede ser revisada las veces que sea necesario por todos los integrantes. Esto
garantiza la fluidez de la información. Entonces, Slack es una red dispuesta para el
desarrollo de proyectos, que brinda la facilidad de encuestas, mensajes directos,
organización de actividades, y cabe resaltar que facilita el contacto con los miembros a
cualquier hora que se requiera. A través de este medio los líderes y demás miembros del
equipo se comunican constantemente. Asimismo, los líderes empleando otra red
mantienen conferencias diarias. Por medio de Skype, las discusiones acerca de los tópicos
importantes del proyecto se realizan y luego son compartidas con el resto del equipo.
Diseño.
En XP los diseños son simples y claros. Los conceptos más importantes de diseño en esta
metodología son los siguientes:
Simplicidad. XP propone implementar el diseño más simple posible que funcione.
Soluciones “Spike”. Son pequeños programas de prueba para explorar diferentes
soluciones.
Recodificación “Refactoring”. Las metodologías de XP sugieren recodificar cada
vez que sea necesario.
Metáforas. XP sugiere utilizar este concepto como una manera sencilla de explicar el
propósito del proyecto, así como guiar la estructura del mismo.
Codificación.
Es una actividad imprescindible para el desarrollo del software, para XP esta actividad
incluye:
Disponibilidad del Cliente. En XP el cliente está disponible durante todo el proyecto,
no solamente como apoyo a los desarrolladores, sino formando parte del grupo. El cliente
proporciona las historias de usuarios que no contienen los detalles necesarios para realizar el
desarrollo del código, por lo cual deben ser discutidos con el cliente y los desarrolladores
durante la etapa de desarrollo.
Uso de Estándares. Todo debe ser fácilmente entendible por todo el equipo para
facilitar la recodificación.
Programación Dirigida por las Pruebas (“Test-Driven Programming”). En la
metodología XP primero se escriben los test que el sistema debe pasar, luego el desarrollo
debe ser el mínimo necesario para pasar las pruebas previamente definidas.
Programación en Pares. XP propone que se desarrolle en pareja, ambos
programadores trabajando juntos en un mismo ordenador ya que, al trabajar en pares se
minimizan los errores y se logran mejores diseños, compensando la inversión en horas,
obteniendo un producto que por lo general es de mejor calidad que cuando el desarrollo se
realiza por programadores individuales.
Integraciones Permanentes: Los desarrolladores necesitan trabajar siempre con la
“última versión” es por eso que XP promueve publicar lo antes posible las nuevas versiones,
aunque no sean las últimas, siempre que estén libres de errores.
Propiedad Colectiva del Código. En un proyecto XP, todo el equipo puede contribuir
con nuevas ideas que apliquen a cualquier parte del proyecto.
Ritmo Sostenido. XP indica que debe llevarse un ritmo sostenido de trabajo, es decir,
un ritmo constante y razonable sin sobrecargar de trabajo al equipo.
Pruebas.
Las características del software que no pueden ser demostradas mediante pruebas
simplemente no existen, en toda metodología de desarrollo del software son necesarias las
pruebas que dan oportunidad de saber si lo que se implementó es lo que en realidad lo que se
pensaba que se había implementado. Para esta fase XP propone tres técnicas a seguir:
Pruebas Unitarias. Todos los módulos deben de pasar las pruebas unitarias antes de
ser liberados o publicados.
Detección y Corrección de Errores. Si se encuentra un error éste debe ser corregido
inmediatamente, y se deben tener precauciones para que errores similares no vuelvan a
ocurrir.
Pruebas de Aceptación. Son creadas en base a las historias de usuarios, en cada ciclo
de la iteración del desarrollo. El Cliente debe especificar uno o diversos escenarios para
comprobar que una historia de usuario ha sido correctamente implementada.
Plan de trabajo
En un proyecto elaborado con XP al igual que para desarrollar en las otras
metodologías se necesita entender lo que el cliente necesita, estimar el esfuerzo, crear la
solución y entregar el producto final al cliente. Sin embargo, XP propone un ciclo de vida
dinámico, donde se admite expresamente que, en muchos casos, los clientes no son capaces
de especificar sus requerimientos al comienzo de un proyecto.
Por esto, en el plan de trabajo se debe realizar ciclos de desarrollo cortos (llamados
iteraciones), con entregables funcionales donde al finalizar cada ciclo se realizan entregas
parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor
del proyecto.
Este tipo de desarrollo se puede utilizar para proyectos en entornos complejos, donde
se necesita obtener resultados pronto (el cual es nuestro caso), donde los requisitos son
cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la
productividad son fundamentales.
El plan de desarrollo debe definir las iteraciones necesarias para llevar a cabo el
proyecto, donde en cada iteración se proporciona un resultado completo y un incremento del
producto final, en cada iteración se realiza un ciclo completo de análisis, diseño, desarrollo
y pruebas, pero utilizando un conjunto de reglas y prácticas que caracterizan a XP,
típicamente un proyecto con XP lleva 10 a 15 ciclos o iteraciones con duraciones de
aproximadamente 3 semanas cada una.
Planificación de la iteración
Planificar la iteración.
El proyecto se divide en iteraciones de menos de 3 semanas de duración, cada
iteración está compuesta de las historias de usuario definidas en el "Release planning"
para ser implementadas. Estas historias son divididas en tareas de entre 1 y 3 días de
duración que se asignarán a los programadores. En las primeras iteraciones se busca la
definición de una arquitectura base que se pueda presentar y que se vaya desarrollando a
lo largo de las iteraciones de manera incremental. En la última iteración ya debe de
cumplir con todos los requerimientos y entregarse como producto final. Es importante
tomar en cuenta que las iteraciones se siguen secuencialmente, es decir, una lleva a la otra,
y por lo tanto los objetivos no alcanzados le corresponden a la siguiente, tanto los que
hayan quedado incompletos como los que no funcionen como deberían.
Velocidad de la iteración.
Estimarla es muy sencillo, basta con contar el número de historias de usuario que
se pueden implementar en una iteración; de esta forma, se sabrá el cupo de historias que
se pueden desarrollar en las distintas iteraciones, en XP es necesario controlar que todas
las tareas se puedan desarrollar en el tiempo del que dispone la iteración, por lo cual es
conveniente reevaluar esta medida cada 3 ó 4 iteraciones y si se aprecia que no es adecuada
hay que negociar con el cliente un nuevo "Release Plan".
Ejecución de la iteración.
Existe un plan de iteraciones donde las historias de usuarios seleccionadas para
cada entrega son desarrolladas y probadas en un ciclo de iteración, de acuerdo al orden
preestablecido.
Cabe destacar que durante toda la iteración se realizan reuniones diarias de
seguimiento (para nuestro caso reuniones vía Skype por cuestiones de tiempo, distancia y
comodidad) con el objetivo de mantener la comunicación entre el equipo y compartir
problemas y soluciones.
Inspección y adaptación
Una de las grandes ventajas que tiene XP es ser una metodología de desarrollo del
software muy organizada, donde cada nueva iteración es planificada y se lleva registro de
cada tarea a realizar por medio de las siguientes herramientas que provee XP:
Historia de Usuario.
Compone toda la información relevante obtenida de la reunión del cliente y el
equipo.
Tabla 1
Planilla para las historias de usuarios
Atributo De La Historia De Usuario Descripción del atributo
Número Permite identificar a una historia de usuario
de usuario
historia de usuario
usuario
historia de usuario.
correspondiente
ingeniería
ingeniería
ingeniería
ingeniería
ingeniería
Pruebas de Aceptación.
Son de vital importancia para el éxito de una iteración y el comienzo de la
siguiente, con lo cual el cliente puede conocer el avance en el desarrollo del sistema y a
los programadores lo que les resta por hacer. Además, permite una retroalimentación para
el desarrollo de las próximas historias de usuarios a ser entregadas, son comúnmente
llamadas pruebas del cliente, por lo que son realizadas por el encargado de verificar si las
historias de usuarios de cada iteración cumplen con la funcionalidad esperada.
Tabla 3
Planilla para las pruebas de aceptación
Atributo De La Prueba Aceptación Descripción del atributo
aceptación
usuario
funcionalidad
Evaluación de la Prueba: Nivel de satisfacción del cliente sobre la
Aprobada y No Aprobada.
Participantes en el proyecto
Programador.
Es el Responsable de implementar las historias de usuario por el cliente, además,
estima el tiempo de desarrollo de cada historia de usuario para que el cliente pueda
asignarle prioridad dentro de la iteración y de diseñar y ejecutar los test de unidad del
código que ha implementado o modificado.
Cliente.
Determina la funcionalidad que se pretende en cada iteración y define las
prioridades de implementación según el valor de negocio que aporta cada historia, además
es el responsable de diseñar y ejecutar los test de aceptación.
Entrenador (coach).
Es el encargado de iniciar y de guiar a las personas del equipo en poner en marcha
cada una de las prácticas de la metodología XP.
Consultor.
Es un miembro externo del equipo con un conocimiento específico en algún tema
necesario para el proyecto, nos guiará para resolver un problema en específico.
Iteración 1
Nombre de tarea Duración Comienzo Fin
lun jue
Iteración 1 14 días
16/01/17 02/02/17
lun sáb
Planificación 5 días
16/01/17 21/01/17
Definición de la metodología a lun mié
3 días
trabajar 16/01/17 18/01/17
lun mar
Definición de los objetivos 2 días
16/01/17 17/01/17
Definición de las limitaciones lun mar
2 días
del proyecto 16/01/17 17/01/17
Análisis de los requerimientos mar jue
3 días
funcionales y no funcionales 17/01/17 19/01/17
Definición de los resultados del mar mar
1 día
proyecto 17/01/17 17/01/17
Planificación y adquisición de jue vie
2 días
recursos 19/01/17 20/01/17
Planeación de la calidad y los vie sáb
2 días
riesgos 20/01/17 21/01/17
Planeación de la comunicación y vie sáb
2 días
seguridad 20/01/17 21/01/17
mié vie
Diseño 3 días
18/01/17 20/01/17
Descripción de la arquitectura mié vie
3 días
general del software 18/01/17 20/01/17
Identificación de sus
mié mié
componentes y su organización y 1 día
18/01/17 18/01/17
relaciones en el sistema.
Definición y estructura de los mié mié
1 día
componentes y datos. 18/01/17 18/01/17
Definición de la arquitectura de mié vie
3 días
la base de datos 18/01/17 20/01/17
Definición de la fase de login y mié vie
3 días
registro 18/01/17 20/01/17
jue mar
Codificación 9 días
19/01/17 31/01/17
Creación de la base de datos jue lun
3 días
general del software 19/01/17 23/01/17
Creación de la vista de la fase jue lun
3 días
del login 19/01/17 23/01/17
Creación de la vista de la fase jue lun
3 días
del registro del usuario 19/01/17 23/01/17
Codificación de la fase del lun lun
6 días
registro del usuario 23/01/17 30/01/17
Codificación de la fase del login mié mar
5 días
del usuario 25/01/17 31/01/17
lun jue
Pruebas 4 días
30/01/17 02/02/17
lun mié
Realizar pruebas unitarias 3 días
30/01/17 01/02/17
mar jue
Ajuste y adecuaciones 3 días
31/01/17 02/02/17
Iteración 2
Nombre de tarea Duración Comienzo Fin
jue mié
Iteración 2 15 días
02/02/17 22/02/17
jue mar
Planificación 4 días
02/02/17 07/02/17
Análisis de los requerimientos jue vie
2 días
funcionales y no funcionales 02/02/17 03/02/17
Planificación y adquisición de sáb lun
2 días
recursos 04/02/17 06/02/17
Planeación de la calidad y los vie mar
3 días
riesgos 03/02/17 07/02/17
Planeación de la comunicación y vie mar
3 días
seguridad 03/02/17 07/02/17
sáb mié
Diseño 3 días
04/02/17 08/02/17
Definición de la creación y sáb mié
4 días
gestión de eventos 04/02/17 08/02/17
Definición de los registro de sáb mié
4 días
actividades de los usuarios 04/02/17 08/02/17
Definición de la generación de sáb mié
4 días
horarios 04/02/17 08/02/17
Definición de los registro de sáb mié
4 días
ponentes 04/02/17 08/02/17
mar lun
Codificación 10 días
07/02/17 20/02/17
Creación de las vistas de la mar jue
3 días
creación y gestión de eventos 07/02/17 09/02/17
Creación de las vistas del
mar jue
registro de actividades de los 3 días
07/02/17 09/02/17
usuarios
Creación de las vistas del mar jue
3 días
registro de ponentes 07/02/17 09/02/17
Codificación de la creación y jue mar
4 días
gestión de eventos 09/02/17 14/02/17
Codificación del registro de mar lun
5 días
actividades de los usuarios 14/02/17 20/02/17
Codificación de la generación de lun lun
6 días
horarios 13/02/17 20/02/17
Codificación del registro de lun lun
6 días
ponentes 13/02/17 20/02/17
jue mié
Pruebas 5 días
16/02/17 22/02/17
jue mar
Realizar pruebas unitarias 4 días
16/02/17 21/02/17
vie mié
Ajuste y adecuaciones 4 días
17/02/17 22/02/17
Iteración 3
Nombre de tarea Duración Comienzo Fin
mié mar
Iteración 3 15 días
22/02/17 14/03/17
mié vie
Planificación 3 días
22/02/17 24/02/17
Analisis de los requerimientos mié jue
2 días
funcionales y no funcionales 22/02/17 23/02/17
Planificación y adquisición de jue jue
1 día
recursos 23/02/17 23/02/17
Planeación de la calidad y los jue vie
2 días
riesgos 23/02/17 24/02/17
Planeación de la comunicaión y jue vie
2 días
seguridad 23/02/17 24/02/17
jue lun
Diseño 3 días
23/02/17 27/02/17
Definición para generar jue lun
3 días
certificados en PDF 23/02/17 27/02/17
Definción para hacer consultas jue lun
3 días
de los certificados 23/02/17 27/02/17
Definición para gestionar jue lun
3 días
asistencia de los usuarios 23/02/17 27/02/17
sáb mié
Codificación 9 días
25/02/17 08/03/17
Creación de las vistas para hacer sáb mar
3 días
consultas de los certificados 25/02/17 28/02/17
Codificación de la generación de mié mié
6 días
certificados en PDF 01/03/17 08/03/17
Codificación para las consultas mar mié
7 días
de los certificados 28/02/17 08/03/17
Codificación para la gestión de
mié mié
asistencia de los usuarios a los 6 días
01/03/17 08/03/17
eventos
mié mar
Pruebas 5 días
08/03/17 14/03/17
mié lun
Realizar pruebas unitarias 4 días
08/03/17 13/03/17
jue mar
Ajuste y adecuaciones 4 días
09/03/17 14/03/17
Hitos
Actividad
Inicio del Proyecto
Inicio de la Fase dePlanificación
Entrega y Aprobacion de la metodologia
Entrega y Aprobacion de los Objetivos
Entrega y aprovacion de las limitaciones del proyecto
Entrega y aprovacion de lagestion de riesgos
Entrega y Finalizacion de la fase de Planeación
Primera entrega del proyecto
Inicio Fase de Diseño
Entrega de la selección de herramienta de desarrollo
Entrega y Aprobacion de la arquitectura del software planteada
Aprobacion de la descrpción de la arquitectura planteda para el software
(componentes, organización y relacion en el sistema)
Aprobacion del diseño detallado del softwatre
Aprovacion del modelaje de datos
Aprobacion de los componentes y datos a utilizar en el proyecto
Aprobacion de la interface plateada para el software
Finalizacion de la fase de Diseño
Inicio fase de Codificación
Aprobacion de la base de datos a utilizar
Aprovacion codigo empleao para la face de registo
Aprovacion del codigo empleado para la face de Inscrpción
Aprovacioncodigo empleado para el chequeo de registro
Aprovacion del codigo empleado para el sistema de emisión y consulta
Finalizacios de la fase de Codificación
Inicio de la fase de Pruebas
Aprovacion de los ajustes realizados
Finalizacion de la fase de Pruebas
Entrega Final del proyecto
Departamentos del proyecto
El equipo de trabajo estará conformado por diversos proyectos con distintos cargos
y/o responsabilidades, los cuales son:
Departamento SQA
El departamento de gestión de calidad también conocido como SQA, es el
encargado de poder asegurar la calidad del proyecto y del proceso utilizado en su
desarrollo. Para asegurar la calidad, este departamento trabaja en conjunto con todos los
demás evaluando y a la vez siendo independiente y manteniendo una postura objetiva
debido que es el encargado de revisar la calidad de los entregables de planificación del
proyecto y los entregables de valoración del proyecto. Además evalúa el nivel de apego o
fidelidad al modelo de proceso de desarrollo de software y a los planes de Verificación,
Gestión de Proyecto y Gestión de Calidad, documentando y establecidos.
Esta encargado de poder verificar y evaluar la calidad en los procesos, el diseño
implementado, en la codificación, documentación, soporte, mantenimiento, seguridad y el
proyecto finalizado en general que cumpla con todos los estándares establecidos
anteriormente. En la realización de sus actividades es importante la realización de pruebas
o testing con la finalidad de poder determinar y detectar a tiempo los defectos en el
proyecto contrastando los resultados esperados de un programa informático con los
resultados reales de un conjunto dado de entradas.