Professional Documents
Culture Documents
PERFECTO
lo voy a probar!
Esto no me vale!
FUNCIONA!
Cliente
Diferencia de
expectativas
pero funciona!
tiempo
Un requisito es
Requisitos son una especificacin de lo
que debera ser implementado. []
-- Ian Sommerville & Pete Sawyer
Qu es la Ingeniera de Requisitos?
una
especificacin
que el sistema o
producto debe
cumplir
Requisitos
RDM
GESTIN DE REQUISITOS
Captura de requisitos
Anlisis de requisitos
Especificacin de requisitos
Validacin de requisitos
2.
Patrones de diseo
Reutilizacin
Model Driven Development
Anlisis esttico de cdigo
Fuente: TynerBlain.com
Design Errors
(13%)
Project Analyzed
180
0- 5% invested in Req.
Management results in 80-200%
overcost
8-14% invested in Req.
Management results in 0-60%
overcost
% Overcost
160
140
120
100
80
60
40
20
0
0
10
15
20
25
Qu es un Requerimiento ?
Un requerimiento es una condicin o
capacidad a la que el sistema (siendo
construido) debe conformar [ Rational ].
Un requerimiento de software puede ser
definido como :
Una capacidad del software necesaria por el
usuario para resolver un problema o alcanzar
un objetivo.
Una capacidad del software que debe ser
reunida o poseda por un sistema o
componente del sistema para satisfacer un
contrato, especificacin, estndar, u otra
documentacin formal.
Anlisis y Diseo de Software
Rol de Requerimientos
Si un producto no es lo que el cliente o los
usuarios quieren, entonces la calidad de la
construccin es irrelevante.
El rol clave de los requerimientos es mostrar a
los desarrolladores y usuarios que se necesita
de un sistema. Proveer los requerimientos forma
parte de un lenguaje que todos comprenden, ya
que todos estn involucrados, incluyendo los
clientes.
El primer y bsico rol de los requerimientos es
por lo tanto la comunicacin.
Socios
Clientes
Analistas
Usuarios
Reporte de Problemas
Req. De Cambio
Requerimientos Funcionales
Describen la funcionalidad o los servicios que se
espera proveer el sistema.
Estos dependen del tipo de software y del sistema
que se desarrolle y de los posibles usuarios del
software.
Cuando se expresan como requerimientos del
usuario, habitualmente se describen de forma general
mientras que los requerimientos funcionales del
sistema describen con detalle la funcin de ste, sus
entradas y salidas, excepciones, etc.
Requerimientos No Funcionales
Son aquellos requerimientos que no se refieren
directamente a las funciones especficas que
entrega el sistema, sino a las propiedades
emergentes de ste como la fiabilidad, la
respuesta en el tiempo y la capacidad de
almacenamiento.
De forma alternativa, definen las restricciones
del sistema, como la capacidad de los
dispositivos de entrada/salida y la
representacin de datos que se utiliza en las
interfaces del sistema.
Sin embargo, estos requerimientos no siempre
se refieren al sistema de software a desarrollar.
Anlisis y Diseo de Software
Identificacin de Requerimientos
y Reglas del Negocio
Para identificar los requerimientos correctos del negocio
primero debemos de comprender como funciona, es decir
cuales son las reglas del negocio.
Mientras ms complejo es el sistema una mayor cantidad de
vistas del mismo son necesarias para comprender su
funcionamiento.
Las distintas vistas del negocio pueden conseguirse a travs de
un mapeo de la situacin actual (AS-IS) utilizando a un alto
nivel:
El Diagrama de descomposicin funcional o mapeo de
procesos.
Las cadenas de responsabilidad para la atencin de los
requerimientos
Los Diagramas de Actividad
Los Diagramas de Colaboracin
Los Diagramas de Interaccin de Roles
Casos de Uso del Negocio
Cadena de Responsabilidades
Es la cadena funcional que se
establece para la atencin de
un requerimiento.
Una cadena involucra las
interacciones producto de los
requerimientos de un actor
externo al negocio (cliente o
proveedor) con las
responsabilidades de un
trabajador de negocio.
CADENA DE RESPONSABILIDADES
Identificar afectados
Para determinar quienes se vern afectados por el sistema,
debemos realizar algunas preguntas.
Perspectivas y soluciones
Necesidad: "El cliente se queja mucho
por la enorme fila que debe formar para
realizar una transaccin bancaria".
Perspectiva:
del cliente = Prdida de tiempo
del banco = Posibles prdidas de
clientes
Posibles soluciones:
determinar por qu demoran los cajeros
colocar una nueva caja (implica contratacin
de nuevos cajeros)
abrir una nueva sucursal (involucra personal
nuevo y estudio de mercado)
realizar transacciones por otros medios
(telfono, internet, mediante cajeros
automticos, autobancos, etc).
Anlisis y Diseo de Software
Validacin
Evitar elevados costos
de mantenimiento
Validar requerimientos
definidos y del cliente
Verificar caractersticas
del SRS
Diferencias entre
Evaluacin y Validacin
Evolucin
Comprender y controlar los cambios en los req.
Propuesta de cambio o problema identificado
Anlisis de costos (rastreo y modificaciones)
Razones del cambio:
Porque al analizar el problema no se
hacen las preguntas correctas a las
personas correctas
Porque los usuarios cambiaron su
forma de pensar o sus perspectivas etc.
1) Entrevistas y Cuestionarios
Entrevistas y Cuestionarios
Tormenta de Ideas
Prototipos
Casos de Uso
1) Entrevistas y Cuestionarios
Ejemplos de Preguntas Abiertas:
1
2
3
4
5
Del Usuario
Quin es el cliente?
Quin es el usuario?
3) Prototipos
3) Prototipos
Tipos de prototipos:
Prototipo rpido:
y se validen
Prototipo evolutivo:
4) Casos de Uso
4) Casos de Uso
Representacin:
Sistema de ventas
Buscando
datos de
producto
Usa
Ingresando
Pedido
Empleado
de Ventas
Usa
Obteniendo
Ventas
Hereda
Sistema de
Estadsticas
Hereda
EIA / IS-632
RUP
Evaluar la informacin
disponible
Anlisis de
requerimientos
Anlisis de
Requerimientos
Identificacin de
requerimientos
Definir mtricas
efectivas
Anlisis funcional
Estudio de los
requerimientos
Identificacin de
restricciones del
sistema a
desarrollar
Comprender las
necesidades de
los involucrados
Sntesis
Validacin de
requerimientos
Anlisis de los
requerimientos
Definir el sistema
Crear un modelo de
los objetos
Actividades
Ventajas
Anlisis funcional
Representacin de los
requerimientos
Evaluacin y estudio
de funciones
Comunicacin de los
requerimientos
Modificar la definicin
del sistema
Crear un plan
secuencial de
construccin y
pruebas
Verificacin de
funciones
Validacin de
requerimientos
Administrar los
cambios de
requerimientos
Prototipos
Casos de Uso
Sntesis
Desventajas
Lluvia de Ideas
Ejecutar el anlisis
Estudio y evaluacin
del diseo
Verificacin fsica
Control
Entrevistas y
Cuestionarios
Evaluacin y
negociacin
Especificacin
de
Requisitos
Evolucin
Lluvia de Ideas
X
X
Prototipos
Documentos:
Anlisis Jerrquico
Casos de Uso
Validacin
X
X
X
X
Herramientas automatizadas
Herramientas automatizadas
RequisitePro: De IBM Rational Software
Herramientas:
Herramientas automatizadas
Doors: De Quality Systems and Software
Qu es JAD?
Podemos entenderlo como: Desarrollo compartido
de aplicaciones entre usuarios e ingenieros de
software.
El principal elemento es la sesin reunin de
gente para planificar un proyecto, disear un
sistema o tomar decisiones de negocio.
La sesin involucra:
Agenda detallada.
Ayuda visual.
Facilitador.
Escritor (llamado Notario).
El resultado es un Documento final.
5.
6.
La preparacin es tan
importante como la sesin.
7. Hacer una buena agenda y
adherirse a ella.
8. Usar tcnicas y herramientas
apropiadas en la sesin.
9. Mantener la jerga tcnica al
mnimo.
10. Producir un documento final
rpido y de calidad.
Se diferencian 5 fases:
1.
2.
3.
4.
5.
Posibles preguntas
Como se origino el
proyecto?
Cuales son sus
principales problemas?
Qu beneficios desea
obtener con el proyecto?
Qu limitaciones
deberamos considerar?
57
Definicin de la empresa
Fase 2: Investigacin
Programando la sesin
El tiempo depende del proyecto. Por lo gral., de 3 a 5
das.
Pueden ser sesiones de medio da o de da entero
(hace el proyecto mas corto).
59
60
10
Documentar proceso de
trabajo
Define las reglas para
usar los datos.
Se puede usar
diagramas de
descomposicin,
diagramas
dependientes o
matrices.
Para capturar los
procesos de trabajo se
usan los DFD.
El Notario debe
Ayudas visuales
Conocer su su rol.
Ayudan a mantener a
los participantes
Describirle el
enfocados y pueden
proceso de JAD.
clarificar las decisiones
Discutir el
tomadas.
proyecto.
Describir la sesin. Ej:
Diagramas
Luego de cada
Caones
sesin hay que
encontrarse con el
Proyectores.
notario para
Pizarrones
revisar las notas.
Digitalizadores,
etc.
Requerimientos de datos
Puede ir desde un
completo modelo de
datos a definir solo
unos nuevos elementos
de datos.
DER general, guiado
Abriendo la sesin
Al principio se debe exponer:
Discutir suposiciones.
Definir requerimientos de datos.
Disear procesos de trabajo.
Disear pantallas.
Resolver discusiones abiertas.
Pantallas
Los puntos ms
importantes son:
Flujo de pantalla.
Diseo de pantallas.
Diseo de pantallas
GUI.
Reportes
Similar a las pantallas
El objetivo es evaluar la
ES del sistema
11
Discusiones abiertas
principalmente en los
primeros proyectos.
Obtener el OK final
Para esto se firma el formulario de aprobacin.
LOGO
Lo entender?
Est en espaol
claro?, etc.
Tablas de decisin.
Tablas de procedimientos
(para cuando necesitamos
explicar como hacer algo).
Tablas de procesos (adems
de como hacer algo tiene
quien hace cada paso).
La reunin de revisin
5,2
5
4
Horas
3
por PF
2
2,5
NO uso JAD
Uso JAD
1
0
Proyectos
Anlisis y Diseo de Software
12