Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Desarrollo de Requisitos
wFactura
Febrero 2010
Objetivos
Conocer las distintas fuentes de requisitos.
Explicar algunas tcnicas de recoleccin de requisitos.
Entender como se pueden aplicar estas tcnicas para la obtencin
de requisitos tanto de alto nivel (requisitos de negocio, features)
como de bajo nivel (requisitos de usuario, requisitos funcionales,
etc).
Entender los casos de uso como tcnica para recolectar requisitos
de usuario.
Conocer la importancia de priorizar los requisitos antes de
desarrollarlos.
Aplicar tcnicas de Aseguramiento de la Calidad en los requisitos de
software.
Contenido
Introduccin
Fuentes de requisitos de software.
Planeacin y recomendaciones para la recoleccin de requisitos.
Tcnicas de recoleccin de requisitos.
Anlisis de Requisitos
Especificacin de Requisitos
Validacin y/o Verificacin de Requisitos
Fase de Requisitos
en Moprosoft
Ingeniera de Requisitos:
Fundamentos
Introduccin a la Ingeniera de
Requisitos
Problemas de Requisitos(1)
La mayor consecuencia de los problemas de
requisitos es el RETRABAJO rehacer algo que se
pensaba que estaba listo.
El retrabajo puede consumir de 30 a 50% del
costo de desarrollo total.
Boehm, B. and Papaccio, P. Understanding and Controlling
Software Costs, IEEE Transactions on Software
Engineering, 1998, vol. 14 no. 10, pp. 1462-1476.
Problemas de Requisitos(2)
Algunos de los riesgos de requisitos ms comunes:
Participacin insuficiente del usuario
Requisitos que crecen sutlmente
Requisitos ambiguos
Requisitos Gold plating
Especificacin mnima
Pasar por alto clases de usuarios
Planeacin incorrecta
Beneficios de un proceso
de IR de buena calidad
Las organizaciones que implementan un buen
proceso de IR pueden cosechar mltiples beneficios.
Los posibles beneficios que se podran disfrutar en
cuanto ahorro de tiempo y dinero:
Caractersticas de
excelentes requisitos
La mejor manera de checar si la sentencia de un
requisito tiene estas caractersticas es poner a varios
stakeholders a revisar cuidadosamente el SRS
(documento de especificacin de requisitos).
Completo
Correcto
Factible
Necesario
Priorizado
No ambiguo
Verificable
Rastreable
Niveles de Requisitos
Wiegers, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003. Pg.9
Proceso de Desarrollo de
Requerimientos de SW
Ingeniera de Requisitos
Ingeniera de Requisitos
Desarrollo de
Requisitos
Elicitacin
Anlisis
Administracin de
Requisitos
Especificacin
Validacin
Wiegers, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003. Pg.13
Elicitacin
Anlisis
Especificacin
Validacin
Martin Fowler
Desarrollo de Requisitos
Descubrimiento y Recoleccin
Ingeniera de Requisitos
Ingeniera de Requisitos
Desarrollo de
Requisitos
Recoleccin
Anlisis
Administracin de
Requisitos
Especificacin
Validacin
Wiegers, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003. Pg.13
Fuentes de Requisitos
Entrevistas y discusiones con usuarios potenciales
Documentos que describen los productos actuales
SRSs
Reportes de problemas y solicitudes de mejoras para un sistema
actual (mesa de servicio)
Encuestas de mercado y cuestionarios de usuarios
Anlisis de escenarios de tareas de usuarios
Modelo de negocio
10
Stakeholders
Los stakeholders son los individuos, grupos, u
organizaciones
quines
estn
activamente
involucrados en un proyecto, son afectados por su
resultado, o son capaces de influenciar en l.
Analistas
Testers
Legal Staff
Clientes $$
Usuarios
Desarrolladores
Project Managers
11
Clases de usuarios
Una jerarqua
(stakeholders)
de
clientes
usuarios
Wiegers,, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003
Wiegers
12
Ejemplo
Listar al menos cinco clases distintas de stakeholders para el
sistema de ATM.
Nombre
Representa
Rol
Champion
Director General
Ejecutivo de la compaa
Juan Prez
Equipo de Desarrollo
Sern quienes
desarrollarn el software
de ATM
Luis Garca
Gerente de Sucursal
Facilitador para la
instalacin del ATM en su
sucursal
Pedro Torres
Dar mantenimiento al
ATM
Hugo Ruiz
13
Ejercicio
Listar al menos cinco clases distintas de stakeholders para uno
de los sistemas que estn desarrollando. Al menos uno debe
ser un usuario final (deseable poner dos).
Nombre
Representa
Rol
Champion
Diagrama de Contexto
La descripcin del alcance establece el lmite y conexin entre
el sistema que se est desarrollando y todo lo dems en el
universo.
Identifica los terminadores fuera del sistema que interfacean
con l de alguna manera, tambin como datos, flujos de
control entre los terminadores y el sistema.
14
Usuarios
El Nuevo Sistema
Sistemas
Legados
Reportes
Soporte
Comunicaciones
Definicin de Elicitation
(Del Merrian Webster On Line Dictionary)
15
Recoleccin
El corazn de la ingeniera de requisitos es la recoleccin,
el proceso de identificar las necesidades y restricciones de
los distintos stakeholders para un sistema de software.
Recomendaciones en la Recoleccin
Usar el vocabulario del dominio de la aplicacin en vez
de usar la jerga computacional.
Los clientes deberan entender que una discusin acerca
de cierta posible funcionalidad no es un compromiso
para incluirla en el producto.
Plantear y clarificar cualquier suposicin que el cliente
pueda tener.
Registar sabiamente toda la informacin obtenida.
16
17
Proceso
Producto
MetaMeta-Preguntas
18
Lluvia de Ideas
Reglas para la Lluvia de Ideas
Ejercicio
Realizar una lluvia de ideas (brainstorming) para recolectar las
necesidades para el sistema elegido que estn desarrollando
actualmente.
Features
Versin 1
Versin 2
19
Workshops de Recoleccin
Workshops de grupos colaborativos son una tcnica
altamente efectiva para reunir a usuarios y desarrolladores
Tips de recomendaciones para conducir sesiones de
recoleccin efectivas son:
Establecer reglas base (iniciar y terminar a tiempo, una
conversacin a la vez, enfocarse en issues no en personas)
No salirse del alcance (usar documento de visin y alcance)
Apuntar ideas o elementos para una consideracin posterior
(llevar una lista de issues que son importantes y se pueden
discutir despus)
Discusin Timebox (poner lmite de tiempo a cada punto)
Mantener un equipo pequeo e incluir a los participantes
correctos
Mantener involucrados a todos (fomentar la participacin de
todos los integrantes)
Propsitos:
Clarificar y completar los requerimientos
Explorar alternativas de diseo
Prototipo Horizontal
Forma Final, funciones y tecnologa
Bote lo menos que pueda
Prototipo Vertical (pruebas de concepto)
Validan la factibilidad tecnolgica; exponen los riesgos potenciales
Desechables
Eliminan riesgos de requisitos mal entendidos
Bote todo exceptuando el conocimiento ganado
Evolutivo
Este prototipo se llega a convertir en el producto final
20
21
Alcanzarlos
Alcanzarlos
BAJO
Entrevistas
Investigacin
Bosquejos
Talleres de Requerimientos
Problema Enredado
Enredado
Lluvia de Ideas
Actuacin de Roles
Bosquejos
Entrevistas
Talleres de Requerimientos
Maduros
Maduros
Vendiendo/
Vendiendo/Enseando
Enseando
Prototipo Evolutivo
Especificacin de Requerimientos
Bosquejos
Casos de uso
Reingeniera de Procesos del Negocio
Talleres de Requerimientos
BAJO
ALTO
EXPERIENCIA DEL DESARROLLADOR
Algunas precauciones
acerca de la recoleccin
Usar Product Champions para validar la entrada de
varios usuarios.
El documento de Visin y Alcance puede cambiar
despus del proceso de recoleccin.
No incluir informacin acerca de la solucin dentro
de los requisitos (no especificar nada que tenga que
ver con el diseo ni construccin de la solucin).
22
Dudas o comentarios ?
23
Casos de Uso
Por qu usar un Modelo de Casos de Uso para entender las
necesidades de los afectados?
Persona que
Llama
Llamada Local
Llamada Internacional
Cliente
Facturar al cliente
Receptor de la
llamada
Administrador
De Facturacin
24
25
Mquina de Reciclaje
Cliente
Reciclar Objetos
Operador
Administrador
Ejercicio
Identifique Actores para el ATM
26
Ejercicio
Identificar Casos de Uso para el ATM
Desarrollo de Requisitos
Anlisis
27
Ingeniera de Requisitos
Ingeniera de Requisitos
Desarrollo de
Requisitos
Recoleccin
Anlisis
Administracin de
Requisitos
Especificacin
Validacin
Wiegers, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003. Pg.13
Anlisis de Requisitos
Esta etapa dentro del proceso de Desarrollo de
Requisitos se enfoca principalmente a analizarlos
para:
Detectar y resolver conflictos entre requisitos
Clasificar los requisitos de acuerdo al nivel
Separar los requisitos de manera modular (que llegarn a
formar parte de componentes de software)
Priorizar los requisitos
Crear el modelo conceptual
28
Anlisis de Requerimientos
Priorizacin de requisitos basada en Importancia y Urgencia
Importante
No Importante
Urgente
Prioridad Alta
No hacer estos !
No Urgente
Prioridad Media
Prioridad Baja
Dudas o comentarios ?
29
Desarrollo de Requisitos
Especificacin
Ingeniera de Requisitos
Ingeniera de Requisitos
Desarrollo de
Requisitos
Recoleccin
Anlisis
Administracin de
Requisitos
Especificacin
Validacin
Wiegers, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003. Pg.13
30
Documento de Especificacin de
Requisitos de Software (SRS)
Para Moprosoft, este documento debe llevar:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Introduccin
Funcionales
Interfaz con Usuario
Interfaces con otro Software o Hardware
Confiabilidad
Eficiencia
Mantenimiento
Portabilidad
Interoperatividad
Reusabilidad
Restricciones de Diseo y Construccin
Legales y Reglamentarios
31
Ejercicio
Liste los problemas que encuentre en la especificacin del
siguiente requisito. Proponga una mejor redaccin de ser
posible (en caso que sea necesario puede descomponerlo
en varios requisitos).
El clculo de la nmina puede ejecutarse una vez al mes sin que nadie
tenga que activarla. Este proceso se debera ejecutar lo ms rpido posible
para que el da de la ejecucin antes de la hora de la comida todos los
empleados tengan su sueldo depositado. La cantidad a depositar para cada
empleado es simplemente la resta entre su sueldo asignado y las
deducciones. Adems, la informacin de los empleados incluyendo su sueldo,
no debera poder ser vista por el personal encargado de administrar la base
de datos que no tengan que ver con dicha informacin.
Posible Solucin
RF-1. El sistema deber ejecutar de manera automtica el clculo de la
nmina el ltimo da de cada mes natural. Es imprescindible que su
ejecucin quede lista antes de la 1 pm. Ver RN-1 para el clculo del sueldo.
Ver RNF-1 para polticas de seguridad.
RN-1. El sueldo mensual de un empleado se calcula por medio de la
siguiente frmula:
Sueldo Total = Sueldo_Asignado Total_Deducciones
donde Total_Deducciones se obtiene
RNF-1. nicamente el personal de recursos humanos podr ver y/o
actualizar la informacin personal de los empleados. Ni siquiera el personal
de bases de datos lo debe poder hacer.
32
Disponibilidad
Eficiencia
Integridad
Confiabilidad
Escalabilidad
Usabilidad
Fcil de mantener
Fcil de evolucionar
Portabilidad
Reusabilidad
Fcil de probar
33
Interfases Externas
IE1. El sistema deber ser capaz de comunicarse con el mdulo de RH.
IE2. El sistema interactuar con el sistema de nmina ya existente en la
empresa.
34
Mantenimiento
M1. Un programador deber ser capaz de modificar los reportes existentes
con 20 horas o menos de esfuerzo en desarrollo.
M2. Las llamadas a funciones no debern pasar de 2 niveles de
anidamiento.
Portabilidad
P1. El mdulo de facturacin deber ser capaz de ejecutarse sobre
cualquier terminal PC con sistema operativo Linux o Windows.
Legales y Reglamentarios
LR1. El sistema deber implementar las regulaciones del gobierno actual.
LR2. El costo unitario del producto ser de $50 en compras de 100 o ms
unidades, y en compras de menos unidades el costo unitario ser de
$70.
LR3. Por cada tres retardos que un empleado acumule a lo largo del mes
actual, se le descontar un da de sueldo.
35
Tarea
Hacer un documento de especificacin de requisitos para
el Sistema ATM. Este documento deber tener al menos
un caso de uso y al menos un requisito no funcional en
cada punto de la norma.
NOTA: Esto debe ser hecho por la persona o personas
que jugarn el rol de Analistas en el proyecto de
Moprosoft.
36
Desarrollo de Requisitos
Validacin
Ingeniera de Requisitos
Ingeniera de Requisitos
Desarrollo de
Requisitos
Recoleccin
Anlisis
Administracin de
Requisitos
Especificacin
Validacin
Wiegers, Karl E., Software Requirements, 2nd edition, Microsoft Press, 2003. Pg.13
37
Validacin de Requisitos
La fase de validacin es la cuarta y ltima del rea de
Desarrollo de Requisitos.
Las actividades de la validacin de requisitos
intentan asegurar que:
El documento de especificacin de requisitos (SRS) describe las
capacidades y caractersticas del sistema que cumplirn las
necesidades de los stakeholders.
Los requisitos estn completos y son de alta calidad.
Todas las representaciones son consistentes con las dems.
Los requisitos proveen una base adecuada para proceder con el diseo
y la construccin.
Los requisitos son especificados de acuerdo a los estndares
establecidos.
Validaciones y Verificaciones en
Moprosoft
Verificacin o
Validacin
Producto
Rol
Descripcin
Verificacin
Especificacin de
Requisitos
RE
Validacin
Especificacin de
Requisitos
CL,
US,
RPU
Verificacin
Plan de Pruebas de
Sistema
RE
Verificacin
Manual de Usuario
RE
38
La calidad es gratis:
Inspecciones de Software
Las inspecciones de software son la mejor tcnica que
existe para remover defectos antes de llegar a la fase de
pruebas. (Inventadas por Michael Fagan a mediados de los
70s).
Para maximizar la calidad del producto se deben realizar
ms inspecciones.
Las inspecciones son costosas: consumen tiempo y
recursos.
Sin embargo
Por cada hora invertida en una inspeccin, se ahorra
alrededor de 10 horas de retrabajo en el testing.
Por cada dlar invertido en inspecciones, se ahorran de 3 a
10 dlares en la fase de pruebas.
Moderador
Lder de la inspeccin.
Planea y coordina las actividades de la inspeccin con el autor.
Distribuye el material a ser inspeccionado a los inspectores das antes de
la reunin.
Dirige el proceso de inspeccin y mantiene el enfoque en encontrar
defectos en vez de resolver problemas.
Se asegura que el autor realice las modificaciones despus de la
inspeccin.
39
Escritor (apuntador)
Usa formatos para registrar los defectos encontrados durante la
reunin de inspeccin.
40
Inspeccin de Software:
Criterios de Entrada
Inspeccin de Software:
Fases de la Inspeccin (1)
1. Planificacin. Cuando el autor termina su producto de trabajo se
forma un grupo de inspeccin y se designa un moderador. ste ltimo
asigna roles y planifica los tiempos y recursos necesarios.
2. Overview. Si los inspectores no estn familiarizados se da una vista
general del producto a inspeccionar. Es opcional.
3. Preparacin. Los inspectores se preparan individualmente para la
evaluacin en la reunin estudiando los productos de trabajo y el
material relacionado.
4. Junta de Inspeccin. Los inspectores se renen. El moderador lleva la
reunin. Es importante que no dure ms de 2 horas.
5. Retrabajo. El autor corrige todos los defectos encontrados por los
inspectores.
6. Seguimiento. El moderador checa las correcciones del autor. Si est
satisfecho la inspeccin est completa.
41
Inspeccin de Software:
Fases de la Inspeccin (2)
Inspeccin de Software:
Criterios de Salida
Todos los defectos encontrados han sido removidos.
Cualquier cambio hecho al producto inspeccionado
fue realizado correctamente.
El documento inspeccionado ha sido puesto bajo
gestin de la configuracin.
El documento ha sido corregido ortogrficamente.
42
Ejercicio
Lleva a cabo un proceso de inspeccin con el
SRS que les ser proporcionado y cumpliendo
los tiempos siguientes:
Planificacin (5 minutos)
Overview (5 minutos)
Preparacin Individual (10 minutos)
Reunin de Inspeccin (20 minutos)
Retrabajo (5 minutos)
Seguimiento (10 minutos)
Resumen
Introduccin
Fuentes de requisitos de software.
Planeacin y recomendaciones para la recoleccin de requisitos.
Tcnicas de recoleccin de requisitos.
Anlisis de Requisitos
Especificacin de Requisitos
Inspeccin de software para validacin de requisitos
43
Dudas o comentarios ?
44