Académique Documents
Professionnel Documents
Culture Documents
Requerimientos
Anlisis
Especificacin
Ingeniera de Requerimientos
Validacin
Anlisis
El objetivo del anlisis es descubrir problemas, inconsistencias y faltantes en los requerimientos adquiridos. Esto sirve de retroalimentacin para las personas interesadas, de manera que se puedan resolver mediante un proceso de negociacin
Temas
Priorizar Identificar problemas Identificar oportunidades Negociar
Priorizar
Los proyectos de software tienen recursos limitados Es importante priorizar los requerimientos
Ayuda a resolver conflictos Permite planificar las entregas Facilita el uso adecuado de los recursos Balancear beneficios y costos
Priorizar
Es un trabajo realizado entre usuarios/clientes y desarrolladores
Usuarios/clientes definen las funciones con mayores beneficios Desarrolladores definen costos, riegos tcnicos, y dificultad de cada funcin
Todos los requerimientos pactados se implementarn, pero algunos no son tan esenciales
Priorizar
Escalas
Pocos valores
Puede ser subjetiva Todos deben estar de acuerdo en el significado
Tres valores
Alta Media Baja Esencial Condicional Opcional Crtica Importante - til
Priorizar
Alta Esencial
Requerimiento de misin crtica El software no es aceptable sin l
Priorizar
Media Condicional
Operaciones de soporte del sistema Ampla la funcionalidad del software, pero se puede aceptar sin l al comienzo
Baja Opcional
Interesante tener esta funcionalidad o cualidad, si los recursos lo permiten Funciones que no son muy valiosas
Priorizar
La prioridad de cada requerimiento debe ir en la especificacin de los casos de uso o en la especificacin de los requerimientos En un caso de uso con varias alternativas, algunas pueden tener mayor prioridad que otras
Priorizar
Identificar
Regulaciones externas Funciones ncleo del negocio y/o diferenciadoras
Priorizar
RUP
Priorizar basado en:
Beneficios (para el negocio)
Crtico, importante, til
Impacto en la arquitectura
Ninguno, extiende, modifica
Riesgos
Priorizar
Pasos (1)
Hacer una lista con los casos de uso y los requerimientos del sistema que no estn en los casos de uso Para cada caso de uso/requerimiento se califican de 0 a 3 los siguientes aspectos:
Significativo para la arquitectura Riesgo Naturaleza crtica (beneficio)
Priorizar
Pasos (2)
Se determina el peso que se dar a cada aspecto, en un rango de 1 a 3 Se calcula la prioridad de cada caso de uso/requerimiento, sumando los valores de cada aspecto (multiplicados previamente por su respectivo peso) Los valores ms altos corresponden a las mayores prioridades
Priorizar
Ejemplo:
Requisito
Procesar venta
Tipo
CU
Arq.
2
Riesgo
0
Beneficio
3
Suma
11
Gestionar devoluciones
Soporte para varios lenguajes
CU
Req.
1
3
1
2
1
1
6
10
Priorizar
XP
Planning Game Priorizar basado en:
Importancia para el negocio Esfuerzo (costo) Riesgo
Priorizar
XP
Los usuarios/clientes definen el valor para el negocio (crtico significante - til) Los desarrolladores definen el riesgo (bajo, medio, alto) y estiman el esfuerzo Se negocian las prioridades y se selecciona la historia de usuario que se implementar
Priorizar
Karl Wiegers
Priorizar basado en:
Valor del requerimiento
Beneficio, costo de no tenerlo
Costo y riesgo
Implementacin, elementos tcnicos
La prioridad est directamente relacionada con el valor e inversamente relacionada con el costo y el riesgo
Priorizar
Pasos (1)
Listar los requerimientos, caractersticas o casos de uso que se desean priorizar Estimar el beneficio relativo (1 muy bajo, 9 el mximo)
Basado en los objetivos del negocio Determinado principalmente por los clientes
Priorizar
Pasos (2)
Estimar el costo de no tener la funcin (1 bajo, 9 alto) Valor = Suma del beneficio y el costo
Se puede dar un peso a cada uno
Priorizar
Pasos (3)
Estimar el riesgo asociado (1 bajo, 9 alto)
Falta de experiencia, tecnologa nueva,
Se puede dar pesos al costo y al riesgo El porcentaje es con respecto al total de todas las funciones evaluadas
Priorizar
Pasos (4)
Ordenar de forma descendente Los primeros elementos, por tener un balance favorable en costo/beneficio, son candidatos a tener alta prioridad
Priorizar
Ejemplo
Req. Beneficio Costo no tener Valor % Valor Costo % Costo Riesgo % Riesgo Prioridad
R1
13
8.4
4.8
1.3
R2
25
T: 154
16.2
5
T: 42
11.9
3
T: 33
9.1
0.9
Priorizar
Tablas:
Son una herramienta de gran ayuda, que incluye elementos numricos en una valoracin que generalmente es subjetiva Los resultados obtenidos deben ser revisados, pues sirven de gua pero no son absolutos
Priorizar
Otros aspectos que se pueden considerar
Volatilidad de los requerimientos Competidores Recursos
Ejercicio
Elabore una plantilla para calcular las prioridades de los requerimientos
Priorizar
Otras tcnicas
Voto acumulativo (100-Dollar Test)
Distribuir 100 unidades (pesos, horas) entre los requerimientos
Puntuacin (Ranking)
Dar un puntaje de 1 a N (para N requerimientos), donde 1 es el menos importante
Temas
Priorizar Identificar problemas Identificar oportunidades Negociar
Identificar problemas
Determinar
Los requerimientos son factibles
Tcnicamente Econmicamente Operacionalmente
No hay contradicciones/inconsistencias
Identificar problemas
Algunas tcnicas
Lista de preguntas Revisar casos de uso Matriz de requerimientos Matriz CRUD
Identificar problemas
Ejemplo Lista de preguntas
Los requerimientos son consistentes con los objetivos propuestos? Hay requerimientos cosmticos, es decir, que no son realmente necesarios? Se requiere tecnologa con la que no se cuenta actualmente? Algn requerimiento se puede dividir en otros requerimientos?
Identificar problemas
Revisar casos de uso (1)
El diagrama de casos de uso presenta claramente el comportamiento del sistema
No hay cadenas de relaciones include y/o extends Hay pocas dependencias entre casos de uso
Identificar problemas
Revisar casos de uso (2)
Se han identificado todos los casos de uso No hay casos de uso innecesarios Si el modelo es muy grande o las responsabilidades estn distribuidas, se han utilizado paquetes
Los paquetes hacen el modelo ms fcil de entender
Identificar problemas
Matriz de requerimientos
Filas y columnas con los requerimientos Cero (0) si son independientes Uno (1) si presentan algn conflicto Dos (2) si tienen elementos comunes, es decir, se solapan
Identificar problemas
Ejemplo - Matriz de requerimientos
R1 R1
R2 0
R3 2
R4 0
R5 1
R6 1
R2
R3 R4 R5
0
2
0
0 1
0
2 1 0
R6
Identificar problemas
Matriz CRUD
Permite encontrar requerimientos faltantes
Filas Casos de uso Columnas Entidades - Conceptos Celdas:
C: Crear R: Leer - Consultar U: Actualizar D: Borrar
Identificar problemas
Ejemplo Matriz CRUD
Entidades
Casos de uso
Ingresar orden Cambiar orden Gestionar inventario de qumicos Reporte de rdenes Editar solicitantes R Orden C U,D C,U,D R R C,U,R Qumico R Solicitante R R Proveedor R R
Identificar problemas
Entidades que no tengan alguna de las acciones
Falta un caso de uso? Algn caso de uso est incompleto? El objeto no es necesario? Falta determinar alguna regla del negocio?
Ejercicio
Elabore la matriz CRUD para los casos de uso y entidades en el ejemplo Determine posibles requerimientos faltantes
Temas
Priorizar Identificar problemas Identificar oportunidades Negociar
Identificar oportunidades
Refinar los requerimientos
Requerimiento
Restricciones de datos
Identificar oportunidades
Requerimientos explcitos
Se declaran y establecen
Requerimientos implcitos
Se asume que se deben cumplir
Requerimientos innovadores
Van ms all de las expectativas del cliente
Identificar oportunidades
Mejorar usabilidad (facilidad de uso) del sistema
Ayudas o guas para el usuario
No son triviales, impactan positivamente
Temas
Priorizar Identificar problemas Identificar oportunidades Negociar
Negociar
Consiste en llegar a un acuerdo en los requerimientos, con las personas interesadas en el proyecto Se realiza
Cuando hay conflictos
Diferentes objetivos y perspectivas de las personas interesadas
Negociar
Se deben identificar los conflictos
Elementos en conflicto Autores, Fuentes
Participarn en la negociacin
Negociar
Plantilla propuesta
Conflicto Descripcin Requerimientos relacionados Alternativas Consecuencias <id> - <nombre>
Posibles soluciones
Comentarios
Negociar
Se deben evitar los conflictos emocionales
Contar con un buen facilitar
Adems de los conflictos y las alternativas, se deben hace explcitas las argumentaciones
Apoyan la solucin seleccionada
Negociar
Pasos (1)
Definir el problema Definir los interesados Identificar los objetivos de cada interesado Analizar los objetivos
Inconsistencias Riesgos Supuestos
Negociar
Pasos (2)
Determinar los criterios/reglas para evaluar las alternativas Negociacin, basada en:
Realizar propuestas y definir qu aspectos se est dispuesto a cambiar Buscar alternativas para los puntos en conflicto Establecer beneficios y compromisos de cada una de las partes
Negociar
Se pueden usar herramientas que ayuden en el proceso
Plantillas para identificar conflictos Tormentas de ideas y votaciones Espacios de trabajo compartidos herramientas colaborativa Wikis Herramientas automticas
Negociar
Herramientas automticas
NSS (Negotiation Support Systems)
Aspire Negoisst Easy Win-Win SmartSettle
Negociar
Modelo Win-Win
Elementos: Condiciones ganadoras (Condiciones Win)
Objetivos y definiciones de los interesados con respecto al sistema
Acuerdo
Una condicin ganadora que no presenta conflictos
Problema
Se crea cuando hay un conflicto entre condiciones ganadoras
Opciones
Soluciones sugeridas
Negociar
Modelo Win-Win:
involucra Condicin Win resuelven
Problemas
Opciones cubre
adopta
Acuerdos
Negociar
Pasos (1)
Establecer una forma de clasificar los elementos, para
Entender el dominio del negocio Buscar elementos rpidamente
Negociar
Pasos (2)
Se identifican conflictos
Se anotan en tarjetas Se anotan en otras tarjetas las opciones Se discuten los argumentos para seleccionar una de las opciones anotadas