Está en la página 1de 56

Ingeniera de

Requerimientos

Anlisis

Adquisicin Anlisis Desarrollo

Especificacin
Ingeniera de Requerimientos

Validacin

Control de Cambios Administracin Control de Versiones Seguimiento

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

Las dems caractersticas


Priorizar basados en costos, beneficios y riesgos

Priorizar
RUP
Priorizar basado en:
Beneficios (para el negocio)
Crtico, importante, til

Impacto en la arquitectura
Ninguno, extiende, modifica

Riesgos

Tienen ms alta prioridad los ms crticos, con mayor impacto y riesgo

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

Pesos: Arq: 1, Riesgo: 2, Beneficio: 3

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

Estimar el costo de implementar la funcin (1 bajo, 9 alto)


Complejidad, Interfaz de usuario, Determinado por los desarrolladores

Priorizar
Pasos (3)
Estimar el riesgo asociado (1 bajo, 9 alto)
Falta de experiencia, tecnologa nueva,

Calcular la prioridad, as:


Prioridad =
% Valor / (% Costo + % Riesgo)

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

Pesos: Beneficio: 2, Costo no tener: 1, Costo: 1, Riesgo: 0.5

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

Diez primeros (Top Ten)

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

Todas las relaciones entre los casos de uso estn justificadas

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

Cmo va a ser la entrada?

Cmo va a ser el resultado?

Requerimiento

Restricciones de datos

Restricciones de tiempo de ejecucin

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

Promedio de uso de cada accin


Acciones ms frecuentes tienen mayor prioridad y facilidad de acceso

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

Descripcin del conflicto Posibles alternativas Importancia / Urgencia

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

En tarjetas se anotan las condiciones ganadoras


Se clasifican y se dejan visibles (pegar en una pared)

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

Los acuerdos (condiciones ganadoras sin conflictos o las opciones seleccionadas)


Se pegan en otra pared