Ingeniería de Software II
Segundo Cuatrimestre de 2015
Buenos Aires, 20 de agosto de 2015 Clase Práctica 1: Estimación Ágil y Planning Poker
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Estimaciones
El objetivo de este ejercicio es realizar una estimación del
esfuerzo
necesario para desarrollar una pieza de
software, dada por un subconjunto de las funcionalidades
que se describen en el enunciado de un Trabajo Práctico
anterior (Proyecto SUBITE).
Nos vamos a concentrar en una estimación ágil.
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
¿Qué incluye la estimación?
Las estimaciones incluirán:
Actividades de análisis
Actividades de diseño
Codificación
Pruebas unitarias
Pruebas de integración y aceptación
Corrección de errores
Documentación funcional, de diseño y resultados de
pruebas
Instalación en el ambiente de pruebas
La verificación final del producto generado ante los
promotores del proyecto
Todas las actividades de gestión que permitan obtener
un producto listo para ser instalado en el ambiente
productivo.
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
¿Qué no incluye la estimación?
Las estimaciones no incluirán:
despliegues en ambientes productivos
adquisición de equipamientos, manuales o
capacitaciones a usuarios
ni ninguna otra actividad que no forme parte
directamente del desarrollo de software.
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Proyecto Subite
“El gobierno nacional ha decidido emprender un
ambicioso proyecto de renovación del transporte público
con el fin de crear empleos, reducir el traslado de dinero
en efectivo y controlar a las empresas prestadoras. El
proyecto, llamado SUBITE, consiste principalmente de la
unificación de todos los sistemas de pago de transporte
público de colectivos en las grandes urbes del país. “
Componentes del Sistema:
Terminal de Cobro
Terminal de Recarga
Sistema Central
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Terminal de Cobro
6
uc SUBITE
Terminal de cobro
Pagar boleto
Pasaj ero
Cancelar pago
Selecciontar tipo y cantidad de boletos
Marcar final de recorrido
Descargar log de auditoría
Descargar transacciones Validar tarj eta y
saldo
Cargar tipos y precios de boletos
Inspector
Chofer
Imprimir boleto
«include»
«extend»
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Cosas que necesitamos saber
Comunicación Terminal de Cobro – Sistema Central
Las terminales utilizarán la tarjeta para autenticar e
identificar al pasajero, pero obtendrán y actualizarán la
información de su saldo consultando al sistema central.
El boleto será emitido por las actuales máquinas
expendedoras. Cada empresa proveedora entregará un
controlador para interactuar con la misma
Comunicación Online: Tecnología 3G provista por las
empresas de telefonía móvil.
Comunicación Offline: Se utiliza el saldo de la tarjeta y se
valida con datos locales. Se almacena localmente la
transacción para sincronizarse luego.
Auditoría de datos:
Fin de recorrido: Se envía manualmente, de manera segura
y encriptadas, todas las transacciones realizadas al sistema
central.
Log interno de Auditoría: Registro plano que utilizan cada
compañía para controles internos.
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Stories
1. Como pasajero quiero seleccionar la cantidad y el tipo de boleto para poder ver el total a pagar y pagar el pasaje
2. Como pasajero quiero cancelar el pago del boleto para poder ingresar otro tipo y/u otras cantidades
3. Como pasajero quiero pagar el boleto pasando la tarjeta por la terminal para obtener mi boleto
4. Como dueño quiero que se verifiquen las habilitaciones de las tarjetas para no sufrir estafas
5. Como dueño quiero que se puedan pagar los boletos cuando no hay conectividad para no perder pasajes
6. Como chofer quiero marcar el final del recorrido para registrar los tiempos de viaje
7. Como dueño quiero que se marque el final del recorrido para enviar automáticamente la información al serv. Central
8. Como inspector quiero descargar la información de los viajes para poder realizar una auditoría interna
9. Como inspector quiero descargar la información de los viajes para enviarla al servidor central manualmente
10.Como inspector quiero cargar los tipos y precios de boletos para poder cobrar los boletos a los pasajeros 8
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Proceso para la Estimación
Se discute el enunciado y las funcionalidades a estimar,
comentando las tareas a realizar, las complicaciones que
se encuentran, las indefiniciones e incertidumbres y sus
probables alternativas de resolución.
No se hacen estimaciones durante esta discusión, sólo se
trata de lograr un consenso sobre qué incluye el trabajo a
realizar.
Si se considera necesario, se puede descomponer o
unificar las funcionalidades que haga falta.
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Estimación Ágil
Cada integrante del grupo tiene cartas de estimación con
valores 1, 2, 3, 5, 8, 13 o "no tengo idea”.
Para cada funcionalidad, los integrantes mostrarán
simultáneamente una tarjeta con su estimación relativa
(un número que puede ser 1, 2, 3, 5, 8, 13 o "no tengo
idea").
Una funcionalidad estimada en “3” se entiende como tres
veces más costosa que una estimada en “1”.
Previamente, se asigna alguna funcionalidad como de
valor 1 para tener de referencia.
Luego de cada ronda de estimación, el equipo debe
buscar un acuerdo. Para esto, los estimadores más
“extremos” exponen sus argumentos y se debate
grupalmente sobre cuál es el número que mejor
representa la estimación.
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Estimación Ágil
11
¿Cuál es la más sencilla para asignarle estimación 1?
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Stories
1. Como pasajero quiero seleccionar la cantidad y el tipo de boleto para poder ver el total a pagar y pagar el pasaje
2. Como pasajero quiero cancelar el pago del boleto para poder ingresar otro tipo y/u otras cantidades
3. Como pasajero quiero pagar el boleto pasando la tarjeta por la terminal para obtener mi boleto
4. Como dueño quiero que se verifiquen las habilitaciones de las tarjetas para no sufrir estafas
5. Como dueño quiero que se puedan pagar los boletos cuando no hay conectividad para no perder pasajes
6. Como chofer quiero marcar el final del recorrido para registrar los tiempos de viaje
7. Como dueño quiero que se marque el final del recorrido para enviar automáticamente la información al serv. Central
8. Como inspector quiero descargar la información de los viajes para poder realizar una auditoría interna
9. Como inspector quiero descargar la información de los viajes para enviarla al servidor central manualmente
10.Como inspector quiero cargar los tipos y precios de boletos para poder cobrar los boletos a los pasajeros 12
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Stories
1. Como pasajero quiero seleccionar la cantidad y el tipo de boleto para poder ver el total a pagar y pagar el pasaje
2. Como pasajero quiero cancelar el pago del boleto para poder ingresar otro tipo y/u otras cantidades
3. Como pasajero quiero pagar el boleto pasando la tarjeta por la terminal para obtener mi boleto
4. Como dueño quiero que se verifiquen las habilitaciones de las tarjetas para no sufrir estafas
5. Como dueño quiero que se puedan pagar los boletos cuando no hay conectividad para no perder pasajes
6. Como chofer quiero marcar el final del recorrido para registrar los tiempos de viaje
7. Como dueño quiero que se marque el final del recorrido para enviar automáticamente la información al serv. Central
8. Como inspector quiero descargar la información de los viajes para poder realizar una auditoría interna
9. Como inspector quiero descargar la información de los viajes para enviarla al servidor central manualmente
10.Como inspector quiero cargar los tipos y precios de boletos para poder cobrar los boletos a los pasajeros 13
© Cátedra de Ingeniería de Software II – FCEyN – UBA, 2011
Stories
1. Como pasajero quiero seleccionar la cantidad y el tipo de boleto para poder ver el total a pagar y pagar el pasaje
2. Como pasajero quiero cancelar el pago del boleto para poder ingresar otro tipo y/u otras cantidades
3. Como pasajero quiero pagar el boleto pasando la tarjeta por la terminal para obtener mi boleto
4. Como dueño quiero que se verifiquen las habilitaciones de las tarjetas para no sufrir estafas
5. Como dueño quiero que se puedan pagar los boletos cuando no hay conectividad para no perder pasajes
6. Como chofer quiero marcar el final del recorrido para registrar los tiempos de viaje
7. Como dueño quiero que se marque el final del recorrido para enviar automáticamente la información al serv. Central
8. Como inspector quiero descargar la información de los viajes para poder realizar una auditoría interna
9. Como inspector quiero descargar la información de los viajes para enviarla al servidor central manualmente
10.Como inspector quiero cargar los tipos y precios de boletos para poder cobrar los boletos a los pasajeros 14