Post on 23-Jan-2016
Gestión de Requerimientos
Los Requerimientos
¿Qué son los requerimientos?
¿Alguien sabe?
Requerimiento
Restricción sobre el espacio de soluciones de software.
Condición que debe ser cumplida por el software para que pueda ser recibido por el cliente.
Se negocia/determina de mutuo acuerdo con el cliente.
– No todas las necesidades y expectativas de los clientes son requerimientos.
¿Es un requerimiento?
Necesito pasar todo a “web” antes de 3 meses
¿es un requerimiento? ¿esta completo? ¿podremos cumplir?
Unas definiciones iniciales
Requerimiento– Característica requerida para recibir, aceptar o
adquirir un producto.– Restricción sobre el espacio de soluciones.
Si
No
Unas definiciones iniciales
El conjunto de requerimientos define el espacio de soluciones aceptables.
SolucionesAceptables
¿Cómo así un conjunto de restricciones?
¿Manejamos requerimientos en otros contextos?
¿un encargo de alguien? ¿la lista del mercado? ¿en el software es algo
diferente?
Unas definiciones iniciales
Ejemplo...– Comprar una videocasetera
Debe ser Sony Debe manejar VHS Debe costar menos de $200.000.oo Debe poderse pagar con tarjeta de crédito
Unas definiciones iniciales
Ejemplo... Comprar una videocasetera– ¿Compraría una grabadora de audio, Sony, de
menos de $300.000?.– ¿Compraría una videocasetera Panasonic, de
menos de $300.000?– ¿Compraría una videocasetera Sony de
$450.000?
Unas definiciones iniciales
Los requerimientos deben negociarse con los clientes– Las necesidades y expectativas de los clientes
son requerimientos potenciales.– La negociación permite determinar los
requerimientos del sistema/software.– Los requerimientos deben ser parte integral de
los contratos.
Unas definiciones iniciales
RequerimientosPotenciales
Necesidades, Deseos,
Expectativas del cliente
Requerimientos
Acuerdos entreDesarrolladores
y Clientes
EntrevistasEspecificaciónNegociación
¿Es un requerimiento?
Necesito pasar todo a “web” antes de 3 meses
¿Qué es todo? ¿Qué significa pasarlo a web? ¿se tendría que desarrollar
internamente? ¿podría comprarse?
Caso de Ejemplo
En una licitación para el software de recaudo y control de impuestos…
¿El software maneja fondos?
¿Qué tipos de requerimientos se manejan?
¿Qué se debe especificar?
¿Qué se debe negociar? ¿Cuáles son los
requerimentos?
Tipos de Requerimientos
No todos los requerimientos son requerimientos del software. Existen muchos requerimientos del sistema
– Redes– Equipos– Personal– Controles– Etc.
Existen también requerimientos de soporte y mantenimiento. (¿Se deben manejar igual?)
Tipos de Requerimientos
Al trabajar con requerimientos de software suelen diferenciarse varios tipos:– Funcionales– De Datos– Técnicos– Reglas
Tipos de Requerimientos
Requerimientos funcionales– Sobre la funcionalidad del software– No son aspectos procedimentales
– Representan las funciones que deben realizarse con el software
– Representan las funcionalidades esperadas del producto
¿Es un requerimiento funcional?
El software deberá utilizar el sistema de colas implementado en PL/SQL para mejorar el nivel de responsibidad ante los usuarios
¿Es un requerimiento funcional?
El software deberá ser parametrizable
¿Cuáles son requerimientos funcionales?
Para un equipo de comunicación personal (como un teléfono celular)
¿Qué quisiera como cliente?
¿Cuáles son requerimientos de software?
Tipos de Requerimientos
Requerimientos funcionales– Los usuarios “perciben primero” los
requerimientos funcionales
– Deseo que el software genere un reporte de ventas…
El reporte debe contener los siguientes datos…
Tipos de Requerimientos
Requerimientos de datos– Sobre los datos que se manejan al interior del software– Sobre la información que debe generarse a partir de ella
– No solo estructuras de almacenamiento (MER) También pantallas, reportes, estructuras en memoria, etc.
¿Cuáles son requerimientos de datos?
Para un equipo de comunicación personal (como un teléfono celular)
¿Qué datos le gustaría se manejaran en las diferentes funcionalidades?
Tipos de Requerimientos
Requerimientos técnicos– Otros requerimientos, exigencias del usuario, que
determinan aspectos del proyecto Tiempo de Desarrollo Costo Personal
Tipos de Requerimientos
Requerimientos técnicos Tiempo de Respuesta Plataforma de Desarrollo Plataforma de Operación Lenguaje de programación Impacto en memoria Impacto en disco Confiabilidad Tolerancia a Fallos Seguridad (etc.)
¿Cuáles son requerimientos técnicos?
Para un equipo de comunicación personal (como un teléfono celular)
¿Qué otros requerimientos se le ocurren?
Tipos de Requerimientos
Requerimientos de decisión (reglas)– Los requerimientos son contradictorios
SolucionesAceptables
Tipos de Requerimientos
Requerimientos de decisión (reglas)– Deben existir reglas o priorizaciones que
determinen cuales requerimientos prevalecen sobre otros.
– Idealmente deberían definirse en la etapa de requerimientos, antes de empezar el desarrollo
Caso de Ejemplo
En un software transaccional sobre la web para manejo de giros
¿Tiempo de respuesta? ¿Confiabilidad? ¿Seguridad?
¿Cuáles son sus prioridades?
Para un equipo de comunicación personal (como un teléfono celular)
¿Qué requerimientos deberían prevalecer?
Priorización de Requerimientos
Un aspecto que hace parte de la etapa, y que debe realizarse siempre, es la priorización de los requerimientos.
¿Cómo priorizar?
Priorización de Requerimientos
La priorización de los requerimientos obedece a una lógica de administración del proyecto
Relación Costo / beneficio– El modelo de Karl Weigers
Importancia Criticidad Complejidad Riesgo
¿Cuáles son sus prioridades?
Un proyecto de auditoria médica que opera sobre Palm, celulares y PDAs
¿Cuáles son las prioridades?
¿Cómo se escriben los requerimientos en su empresa?
¿Existe una forma de escribir los requerimientos en la empresa?
¿Cómo se validan? ¿Todos los
requerimientos se “escriben” igual?
Especificación de Requerimientos
La Especificación es:– El documento final que detalla, de manera
completa y no ambigüa, los requerimientos del software a desarrollar.
– El proceso de construcción de ese documento.
Especificación de Requerimientos
La Especificación puede realizarse de acuerdo a estándares internacionales reconocidos o a formatos de métodos formales de Ingeniería de Software
– ANSI/IEEE– NSA
NASA– RUP– Otros.
Especificación de Requerimientos
Construir un documento “perfecto” de requerimientos de software no es posible– Hay requerimientos contradictorios.
Fácil de Entender vs. No Ambigüo Fácil de Entender vs. Completo
¿Cómo se manejan los requerimientos en su empresa?
¿Existe una forma de manejar los requerimientos en la empresa?
¿Cómo se manejan? ¿Qué problemas se
tienen?
Problemas con los Requerimientos
El proceso de requerimientos no es fácil. No es simplemente “tomar nota” de las necesidades
del cliente. Es un proceso de comunicación.
– Es necesario entender que es lo que quiere el cliente.
Es un proceso de negociación.– Es necesario determinar que cosas podemos
comprometernos a hacer.
Problemas con los Requerimientos
No hay acuerdos en los Requerimientos– No se hizo ningún tipo de negociación y no hay acuerdos
reales entre los usuarios y desarrolladores.– No se ha realizado ningún tipo de verificación que posibilite
determinar si los desarrolladores han comprendido las exigencias de los usuarios.
Los Requerimientos no se han priorizado– No se ha hecho ningún estudio costo-beneficio, ni de
ningún otro tipo que posibilite la definición de prioridades y/o cronogramas basados en los requerimientos.
Problemas con los Requerimientos
Requerimientos incompletos– El listado de los requerimientos no incluye cosas que son
necesarias para que el software funcione.
Requerimientos contradictorios– Unos requerimientos parecen contradecir a otros
requerimientos. Si el software cumple a cabalidad con algunos requerimientos, ni puede cumplir con los otros.
Problemas con los Requerimientos
Requerimientos ambigüos– Existen múltiples interpretaciones para el requerimiento.
Cada usuario y/o desarrollador puede entender algo distinto. (Puede no existir ningún acuerdo).
Requerimientos de Desarrollador.– El desarrollador introduce requerimientos que no fueron
solicitados por el cliente, y que hacen díficil satisfacer los requerimientos reales. (Presunciones de Diseño).
Problemas con los Requerimientos
¿Cómo solucionar el problema?– Un proceso disciplinado que busque determinar y
solucionar los diferentes problemas de los requerimientos.
– Un sistema de especificaciones que posibilite comunicar y negociar los requerimientos eficientemente con los usuarios.
Procesos de Requerimientos
En la actualidad, a diferencia de los métodos tradicionales, existe una separación marcada entre los procesos de requerimientos y de análisis de requerimientos.
Existen varias opciones en torno a los procesos de Requerimientos– Ingeniería de Requerimientos
Procesos de Requerimientos
¿Se pueden aplicar los métodos tal cual como están en los libros?
Procesos de Requerimientos
Aplicando UML y Patrones, Larman
Declaración de
Trabajo
Listado de Casos de Uso
Casos de Uso
Esenciales
Casos de UsoReales
Prototipos
Procesos de Requerimientos
Use Case in Context, Kulak
Declaración de
Trabajo
Listado de Casos de Uso
Casos de Uso
Fachada
Casos de Uso
Terminados
PrototiposListado de
Actores
Casos de Uso
Completos
Casos de Uso
Enfocados
Procesos de Requerimientos
Use Cases, Texell
Declaración de
Trabajo
Listado de Casos de Uso
Especificación de Casos
de UsoEntrevistas Priorización
Procesos de Requerimientos
RUP
Visión de Producto
Casos de Uso
Especificación con Casos
de Uso
Prototipos
Glosario de Términos
Procesos de Requerimientos
Iconix
Declaración de
Trabajo
Casos de Uso
Prototipos
Procesos de Requerimientos
“Nuestra Clase”
Declaración de
Trabajo
Listado de Casos de Uso Casos
de UsoFachada
Casos de Uso
Terminados
PrototiposListado de
Actores
Casos de Uso
Completos
Casos de Uso
EnfocadosPriorizar
Especific.De Req.
Proceso de Requerimientos
El prototipo es el mecanismo para “revisar” las especificaciones de requerimientos.
La Especificación es el mecanismo para “formalizar” los acuerdos entre desarrolladores y usuarios.
Proceso de Requerimientos
Algunos métodos y autores sugieren comenzar con la definición de los prototipos
– ¿Será conveniente?– ¿Qué pasa si el usuario no sabe “a ciencia cierta” que es lo
que quiere?
La realización de los prototipos puede ser un “arma de doble filo”.