Вы находитесь на странице: 1из 37

Ingeniera de

Requerimientos

Carlos Abaffy

Contenido
1. Motivacin
2. Fundamentos
3. Importancia de los Requerimientos
4. Proceso de Anlisis de Requerimientos
5. Conclusiones

Motivacin
Usuario

Desarrollador

Necesito una roca


No somos expertos en
el dominio
Un poco ms
pequea y azul

Grupos
Multidisciplinarios
Tiempo y Presupuesto
Lmitado

Un poco ms
circular

Motivacin
Usuario

Ascensores muy
lentos

Desarrollador
Desarrollo de
motores ms veloces
con frenos de disco

Sistema de Control
Inteligente para
optimizar el recorrido

Colocar un Espejo

Motivacin

La parte mas difcil de construir un sistema de software, es decidir


exactamente que se va a construir. Ningn otro componente del
trabajo conceptual tiene mayor dificultad que establecer los
requerimientos tcnicos detallados..... Ninguna otra parte del
trabajo afecta tanto los resultados si no es realizado
correctamente. Ninguna otra parte es mas difcil de rectificar
despus.
Fred Brooks [IEEE Computer, 1987 ]

Motivacin
La experiencia ha demostrado que:
Establecer y desarrollar
un conjunto de
requerimientos es un trabajo complicado.
Sin
un entendimiento claro de los
requerimientos de un sistema los desarrolladores
no saben que construir, los clientes no saben
que esperar del sistema y es imposible validar el
sistema.

Fundamentos
INGENIERIA DE REQUERIMIENTOS
Definiciones:

Es la rama de la ingeniera de software relacionada con


metas, servicios y restricciones de los sistemas de software.
IEEE, 1994
Disciplina para desarrollar un conjunto de especificaciones
completo, consistente y preciso, el cual servir como base
para todos los involucrados, describiendo que debe hacer el
sistema.
Boehm, 1979

Fundamentos
INGENIERIA DE REQUERIMIENTOS
Tradicionalmente considerado como parte de la Ingeniera de
Software.
Actualmente considerado
independiente.

como

un

campo

de

Diferentes foros establecidos a nivel mundial:


IEEE Task Force on Requirements Engineering.
British Computer Society RE Specialist Group.

estudio

Fundamentos
REQUERIMIENTO
(1) Una condicin o capacidad solicitada por un usuario para
resolver un problema o conseguir un objetivo.
(2) Una condicin o capacidad que debe cumplir un sistema o
componente para satisfacer un contrato, un estndar o una
especificacin.
(3) Una representacin documentada de la condicin o capacidad
como se especifica en (1) o (2).
IEEE Standard Glossary of Software Engineering

Fundamentos
ESPECIFICACIN DE REQUERIMIENTOS

Documento de requerimientos documentados para la


construccin de software.
Representa un modelo de que se necesita y una descripcin
del problema en consideracin.
Propsitos:
Provee un punto de comunicacin acerca del dominio del
problema, el negocio y el sistema propuesto.
Puede ser parte del contrato entre usuarios y
desarrolladores.
Puede ser usado para evaluar el producto final.

Importancia de los Requerimientos

Existe mucha evidencia anecdtica acerca de la importancia de


los requerimientos.

Tiene influencia en:

Efectividad tcnica del sistema.


Esfuerzo requerido para desarrollar y mantener el
sistema.
Aceptacin del sistema en la organizacin.

Importancia de los Requerimientos


FALLAS DEL SOFTWARE
Boehm (1981), report que 6% del costo del proyecto
y slo entre 9 y 12% de la duracin del mismo es
empleado en la etapa de requerimientos.
Anlisis de 9 proyectos de software por un total de
$6.8 millones (Jayaratna 1990)
47%
29%
19%
3%
2%

$ 3.2 M
$ 2.0 M
$ 1.3 M
$ 0.2 M
$ 0.1 M

Entregado pero no usado


Pagado pero nunca entregado
Abandonado
Usado despus de cambios
Usado como se entreg

Importancia de los Requerimientos


FUENTES DE ERROR EN EL
MANTENIMIENTO DE SOFTWARE

Otros
7%
Codigo
27%
Requeri.
56%
Diseo
10%

Importancia de los Requerimientos


ESFUERZO REQUERIDO PARA
CORREGIR ERRORES DE SOFTWARE

Codigo Otros
Diseo
1%
4%
13%

Requeri.
82%

Importancia de los Requerimientos


PROBLEMAS DE LA INGENIERIA DE
REQUERIMIENTOS
Problemas no tienen lmites bien definidos.
Los requerimientos se encuentran en contextos
organizacionales.
Anlisis de problemas es dinmico.
Solucin a los problemas requiere la participacin
de grupos interdisciplinarios.
No existe una solucin nica a los problemas
analizados.

Importancia de los Requerimientos


REQUERIMIENTOS CONFLICTIVOS Y
CAMBIANTES
Impacto Mercado
Clientes
Necesidades
Servicios

Impacto Empresa
Organizacin
Mercadeo
Legal
Financiera

Tecnologa
Productos
Desarrollos

Tecnologa
Productos
Competidores

Impacto Oculto
Desarrolladores
Herramientas
Trabajo Oculto

Regulaciones
Gobierno
Estndares

Documento de
Requerimientos

Importancia de los Requerimientos


OBSERVACIONES DE ESTUDIOS
EMPIRICOS
Usuarios frecuentemente asignan prioridad a los
requerimientos.
La validacin es normalmente realizada a travs
de revisiones formales.
Conocimiento del dominio es considerado
importante.
Tecnologa CASE no es utilizada en esta etapa.
Registro de asunciones y decisiones es
considerado importante.
Seguimiento de requerimientos es considerado
importante.

Proceso
ESPECIFICACION DE REQUERIMIENTOS
Requirimientos
Empresariales

Requerimientos
Funcionales

Especificacin de
Requerimientos

Requerimientos
No Funcionales

Proceso
ESPECIFICACION DE REQUERIMIENTOS
Requerimientos Empresariales
Modela los objetivos empresariales, actividades, actores y
recursos.
Requerimientos Funcionales
Modela el comportamiento del sistema a construir.
Ejm: El sistema debe realizar automaticamente la
replanificacin de los vuelos cuando ocurre algn atraso en
los vuelos planificados.
Requerimientos No Funcionales.
Modela las restricciones que el sistema a construir debe
cumplir.
Ejm: El sistema debe dar respuestas a consultas de los
pasajeros en menos de 3 segundos.

Proceso
PARTICIPANTES DEL PROCESO

Clientes
Vendedores
Compradores

Usuarios

Diseadores
Implementadores

PROCESO DE
INGENIERIA DE
REQUERIMIENTOS

Mantenimiento
Instalacin
Entrenamiento

Proceso
PARTICIPANTES DEL PROCESO
STAKEHOLDERS
Definicin:
Stakeholders en una organizacin es cualquier grupo o
individuo que puede afectar o ser afectado por el logro de los
objetivos de la misma. (Freeman 1984)
Grupos
Polticos

Accionistas

Gobierno

Proveedores
Organizacin
Comunidad
Financiera

Competidores

Empleados

Sindicatos

Clientes

Proceso
ACTIVIDADES DE LA INGENIERA DE
REQUERIMIENTOS
ELICITACION
Cual es el problema ?
Cual es el contexto del problema ?
ESPECIFICACION
Cmo se describe el problema ?
VALIDACION.
Cmo se asegura que los participantes coinciden en el
problema a resolver ?
Cmo se asegura que la solucin propuesta resuelve el
problema ?

Proceso
ARQUITECTURA DEL PROCESO
Retroalimentacin del
Usuario

Usuario
Requerimientos
Usuario
Especificacin
Requerimientos

Modelo de
Requerimiento

Conocimiento

Elicitacin

Modelo a ser
Validado por
el usuario

Especific.
Req. ms
Conocimiento

Validacin
Resultados
Validacin

Conocimiento
Dominio

Conocimiento
Dominio

Dominio
Problema
Loucopulos & Karakostas, 1995

Proceso
ELICITACION DE REQUERIMIENTOS
Es la primera actividad que se lleva a cabo y contina durante
todo el ciclo de vida del proceso.
Propsito: ganar conocimiento relevante del problema.
Entrada:
Informacin de expertos del dominio.
Literatura.
Aplicaciones Similares.
Estndares Nacionales e Internacionales.
Comunicacin con Stakeholders.
Salida: Modelos del dominio del problema (iterativos).

Proceso
ELICITACION DE REQUERIMIENTOS
Tcnicas
Enfoque Tradicional: Usuario pasivo, entrevistas,
cuestionarios, observacin.
Enfoque Socio-Tcnico: Grupo de Stakeholders, trabajo
en grupo, anlisis de tareas, etc.
Enfoque Asistido por Computadores: Uso de sistemas
expertos, especificaciones exixtentes, anlisis de dominio
asistido por computadores.

Proceso
ELICITACION DE REQUERIMIENTOS
Necesidades de los
Stakeholders

Servicio que el
sistema provee para
satisfacer las
necesidades de uno
o ms stakeholder

Necesidades

Dominio del Problema

Caractersticas

Requerimientos de Software

Dominio de la Solucin

Proceso
ESPECIFICACION DE REQUERIMIENTOS
Es el contrato entre los usuarios y los desarrolladores, el cual
define la funcionalidad deseada del software, sin mostrar como
esa funcionalidad ser desarrollada.
Propsito: contrato con el usuario y gua para el desarrollo del
sistema.
Entrada:
Conocimiento adquirido en la elicitacin y en la validacin.
Salida:
Variedad de modelos que corresponden a diferentes vistas
del problema ( Orientados al Usuario, Orientados al
Desarrollador).

Proceso
ESPECIFICACION DE REQUERIMIENTOS
Tcnicas:
Enfoque Informal: Descripcin en lenguaje natural.
Enfoque Asistido por Computadores: Texto Formateado
con enlaces a documentos que soportan el requerimiento
Enfoque de Modelado: Uso de mtodos formales,
representacin del conocimiento.

Proceso
VALIDACION DE REQUERIMIENTOS
Es el proceso que certifica que el modelo de requerimientos es
consistente con la intencin de clientes y usuarios.
Propsito: obtener un modelo consistente de requerimientos.
Entrada:
Cualquier modelo de requerimientos (formal o informal).
Salida:
Modelo de requerimientos consistente con las expectativas
del usuario.

Proceso
VALIDACION DE REQUERIMIENTOS
Tcnicas:
Enfoque Tradicional: Revisiones estructuradas.
Enfoque Asistido por Computadores: Construccin de
prototipos, animacin y visualizacin, sistemas expertos.

Proceso
MODELO DEL PROCESO DE INGENIERIA DE
REQUERIMIENTOS
Ingeniera de Requerimientos

Adquisicin
Problemas Conocimientos

Conocimiento
Dominio
Validacin

Diseo

Especificacin
Verificacin

Sistema
de
Informacin

Ingeniera de Diseo

Proceso
MODELAMIENTO DE REQUERIMIENTOS
EMPRESARIALES
Sistema de reservaciones de una lnea area: (Stakeholders)
CEO
Descuentos y tickets gratis para politicos y
personalidades
Informacin de viajeros frecuentes no debe ser
accesada por empresas externas.
Gerente de Catering
Las provisiones de comida estn directamente
relacionadas a los pasajeros por clase.
El sistema debe predecir el numero de pasajeros 24
horas antes de la salida del mismo.
Jefe de Seguridad
Lista de pasajeros no debe estar disponible para el
pblico.

Proceso
MODELAMIENTO DE REQUERIMIENTOS
FUNCIONALES

Modelos
estructurales:

Realizado por

Ticket
1,1

Empleado
0,m

1,m
Pertenece

Gerente
0,m

Vuelo

Reserva
0,m

Cliente
0,m

Staff

Proceso
MODELAMIENTO DE REQUERIMIENTOS
FUNCIONALES
Modelos
comportamiento:

Cliente

Requerimiento
Reservacin

Confirmacin
Reservacin

Detalles
Reservacin
Vuelo y
Asiento

Chequear
Disp.
Vuelo

Chequear
Disp.
Asiento
Vuelos
Disp.

Reservar
Vuelo y
Asiento

Proceso
MODELAMIENTO DE REQUERIMIENTOS NO
FUNCIONALES
Requerimientos de interfaz, rendimiento, capacidad, etc

Consultas de
Vuelos

Restriccin

RNF-02
Presentar todos
Los vuelos disponibles

Restriccin

RNF-01
Responder a Consultas
de Vuelos en menos de 10 seg.

Conclusion
es
La

correcta

captura

requerimientos

es

uno

especificacin
de

los

de

los

aspectos

ms

importantes de cualquier producto de software.


La

especificacin

de

los

requerimientos

debe

contemplar aspectos empresariales, funcionales y no


funcionales del sistema propuesto.
La

ingeniera

elicitacin,

de

requerimientos

representacin

contexto organizacional

contempla

validacin

en

un

Hay 2 formas de disear software: Una forma es hacerlo


tan sencillo que obviamente no hay deficiencias, y otra
es hacerlo tan complicado que no hay deficiencias
obvias. El primer mtodo es mucho ms complicado.
C.A.R. Hoare

GRACIAS POR SU ATENCION

Вам также может понравиться