Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE
REQUISITOS
Ingeniera de Requisitos
Contexto
Crisis del software (problemas en requisitos:80%)
EL PROBLEMA ES ENTENDER EL
PROBLEMA (ej. Ambulancia de Londres:
http://cs.ucl.ac.uk/staff/A.Finkelstein/las/papers/lascase0.9.pdf)
Ingeniera de Requisitos
Importancia de RE en el desarrollo de software
"La tarea ms difcil de construir un sistema
del software es precisamente decidir qu
construir. Ninguna otra parte del trabajo
conceptual es tan difcil como establecer los
requisitos, incluyendo todas las interfaces a las
personas, a las mquinas, y otros sistemas del
software. Ninguna parte del trabajo lesiona tanto al
sistema resultante si hace mal. Ninguna otra parte es
ms difcil rectificar despus."[Brooks, No Silver
Bullets, 1987].
Surgimiento de Ingeniera de Requisitos como disciplina
Ingeniera de Requisitos
Ingeniera de Requisitos (RE)
RE es la rama de la ingeniera de sistemas que trata la
identificacin del propsito de un sistema de software y el
contexto en el cual ser usado. RE acta como un puente entre
las necesidades del mundo real de los clientes, usuarios y otros
actores afectados por el sistema de software, as como tambin
de las capacidades y oportunidades ofrecidas por la tecnologa
de software.
Trata sobre los objetivos del mundo real para los sistemas de
software as como tambin servicios provistos y restricciones.
Tambin trata sobre las relaciones de estos factores para
construir una especificacin precisa(?) del comportamiento
del sistema y su evolucin a travs del tiempo.
Ingeniera de Requisitos
Importancia de RE en el desarrollo de software
No tiene sentido ser preciso si no se sabe de que se est hablando [von
Neumann]
Ingeniera de Requisitos
Que es un requisito?
Es una condicin o capacidad que debe
cumplir o poseer un sistema o componente de
un sistema para satisfacer un contrato,
Standard, o especificacin o algn otro
documento impuesto.
El conjunto de requisitos forma la base para el
desarrollo de un sistema o una componente de
sistema.
Ingeniera de Requisitos
Qu es un requisito?
Un requisito podra describir:
Ingeniera de Requisitos
Propiedades del dominio: Cosas en el dominio de aplicacin que son
verdaderas independientemente que se construya o no el sistema de software
Requisitos: Cosas en el dominio de aplicacin que se desean sean verdaderas
mediante la construccin del sistema de software
Especificacin: descripcin de comportamiento (y datos) que el programa tiene
que tener para cumplir los requisitos
slo puede ser descrito en trminos de los fenmenos compartidos por la maquina y
el dominio de aplicacin
Ingeniera de Requisitos
Ingeniera de Requisitos
Universo de Discurso ( UD):
Ingeniera de Requisitos
Rol de los requisitos
Acuerdo desarrolladores-stakeholders
Aspecto contractual
Multipartes (comunicacin, conflicto y cambio de
visiones)
Base para el diseo del software
Minimizar defectos tanto como sea posible
Proyecto Tcnicamente factible
Soporte para verificacin y validacin
Soporte a la evolucin del sistema
Ingeniera de Requisitos
Stakeholder:
Entidad que ser afectada por el sistema y que tienen
una influencia directa o indirecta sobre los requisitos
del sistema.
Usuarios finales del sistema
Gerentes involucrados en los procesos organizacionales
influenciados o que influencian al sistema
Ingenieros responsables por el desarrollo y mantenimiento del sistema,
Clientes de la organizacin
Cuerpos externos tales como autoridades reguladoras o de
certificacin.
.
Ingeniera de Requisitos
Stakeholders
Posibles stakeholders de un sistema automatizado de
sealizacin ferroviaria:
Ingeniera de Requisitos
Requisitos funcionales y no funcionales
Requisitos funcionales: describen lo que el sistema
debera hacer
Ej.: el sistema debe proveer autenticacin de la identidad de un usuario
Ej.: el sistema debe emitir una factura
Ingeniera de Requisitos
Requisitos no funcionales
Performance
tiempo real
restricciones de tiempo
velocidad de procesamiento
Precisin
precisin numrica
informacin correcta en el tiempo correcto
Confiabilidad
disponibilidad de equipos
disponibilidad de informacin
integridad
Localizacin
geogrfica
de responsabilidades
Ingeniera de Requisitos
Requisitos no funcionales
Seguridad
permiso de acceso
niveles de seguridad
polticas de confiabilidad
distribucin de los datos
Interface
help
lookup de tablas
restricciones de entrada/visualizacin de datos
amigable
Mantenible
Portabilidad
Interoperabilidad
Restricciones particulares de la tecnologa de implementacin
Ingeniera de Requisitos
Documento de Requisitos
El documento de requisitos es un escrito oficial
de los requisitos del sistema para los clientes,
usuarios finales y desarrolladores de software.
Nombres:
especificacin funcional,
definicin de requisitos,
especificacin de los requisitos de software
Ingeniera de Requisitos
Documento de Requisitos
El documento describe:
Los servicios y funciones que el sistema debera proveer.
Las restricciones bajo las cuales el sistema debe operar
Las propiedades generales del sistema, es decir,
restricciones sobre las propiedades emergentes del sistema
Definiciones de otros sistemas con los cuales el sistema se
debe integrar.
Informacin acerca del dominio de aplicacin del sistema,
por ej. cmo llevar a cabo tipos particulares de clculos.
Restricciones sobre el proceso usado para desarrollar el
sistema
glosario
Ingeniera de Requisitos
Tipos de usuarios del documento de requisitos
Especifican los requisitos y los leen para
Clientes del sistema chequear que atienden sus necesidades.
Especifican cambios en los requisitos.
Ingeniera de Requisitos
IEEE/ANSI 830-1998:
Standard for Software Requirements Specification
1.Introduccin
1.1.Propsito del documento de requisitos
1.2.Alcance del proyecto
1.3.Definiciones, acrnimos y abreviaturas
1.4.Resumen del resto del documento
2.Descripcin General
2.1.Perspectiva del producto
2.2.Funciones del producto
2.3.Caractersticas de los usuarios
2.4.Limitaciones generales
2.5.Suposiciones y dependencias
3.Requisitos Especficos
3.1.Requisitos funcionales, no funcionales
4.Apndices
5.ndice
Ingeniera de Requisitos
Gua para escribir Requisitos
FICHA DE REQUISITO
Ingeniera de Requisitos
Proceso de RE
Conjunto de actividades que son seguidas
con el objetivo de descubrir, modelar, validar y
mantener un documento de requisitos.
Sistemas de informacin
existentes
Necesidades de los Requisitos acordados
stakeholders Modelos del sistema y
Standard de la proceso su entorno.
organizacin
Regulaciones, polticas e
informacin del dominio
Ingeniera de Requisitos
Caractersticas del proceso
El contexto en el cual RE se desarrolla es un sistema
de actividad humana y los dueos del problema son
personas.
Proceso Multidisciplinario
psicologa cognitiva (dificultades transmisin de necesidades)
antropologa (observar las actividades humanas )
Sociologa (impacto del sistema de software en personas)
Ingeniera de Requisitos
Qu debe hacer el ingeniero de Requisitos?
Punto de inicio
Nocin de existencia de un problema que debe ser resuelto, ej:
Insatisfaccin con estado corriente del sistema/negocio
Oportunidad del negocio
Potencial ahorro de tiempo, recursos, costos, etc.
Un ingeniero de requisitos en un agente de cambio
Ingeniera de Requisitos
Actividades del proceso de
Ingeniera de Requisitos
Elicitacin Modelado Anlisis Gestin
Ingeniera de Requisitos
Anlisis
Verificacin
Validacin
Negociacin
Ingeniera de Requisitos
Verificacin vs. Validacin
V&V
Universo Validaci Verificaci
n n
de Modelo 1 Modelo 2
Discurso
Verificaci
n
Verificacin
Are we building the Product RIGHT ?
(contra Productos)
Validacin
entre Modelos Are we building the RIGHT Product ?
(contra Intencin)
Ingeniera de Requisitos
Negociacin
Conciliar Requisitos
Analizar
Conflictos Resolver
Conflictos
Establecer
Prioridades
Decidir
Evaluar Propuestas
Propuestas
REQUISITOS ACORDADOS
Ingeniera de Requisitos
Evolucin del Universo de Discurso
ELICITAR ANALIZA
R
MODELA
R
GESTIONAR
t
Ingeniera de Requisitos
Gestin de Requisitos
Identificacin
Anlisis
Realizacin
Analizar y Costear
Cambios
Analizar Evaluar Estimar Determinar
Validez Impacto tiempo y Aprobacin o
costo Rechazo
Ingeniera de Requisitos
Rastreabilidad de los Requisitos
Backward Forward
Traceability Traceability
Traceability
Componente
Fuente
Ingeniera de Requisitos
RE dentro del ciclo de desarrollo del
software
modelo de Cascada
REQUISITOS
DISEO
CDIGO
TESTEO
Ingeniera de Requisitos
Re en Modelo Incremental
Release 1
R
E DISEO CODIGO TEST INTREGRACION
Q
U Release 2
I
DISEO CODIGO TEST INTREGRACION
S
I
Release 3
T
O DISEO CODIGO TEST INTREGRACION
S Cada versin agrega mas funcionalidad
Ingeniera de Requisitos
RE en Modelo Evolucionario
Versin 1
Ingeniera de Requisitos
RE en Metodologas giles
Origen eXtreme Programming(XP)
Principios bsicos:
Reduce las barreras de comunicacin con stakeholders
Reduce documentacin pesada
Confianza en las personas
Responder al cliente
Debilidades:
Depende de la memoria del programador
Depende de la comunicacin oral
Asume usuario simple
Planificacin corto tiempo
Ingeniera de Requisitos
RE y CMM
Niveles de CMM
1. Inicial
2. Repetible --- Gestin de requisitos
3. Definido
4. Gerenciado
5. Optimizacin
Ingeniera de Requisitos
Claves para RE
RE no puede hacerse de manera aislada a la organizacin y el
contexto social en el cual operar el SS. Esto hace que RE deba
aplicar tcnicas de las ciencias sociales, antropolgicas, entre otras.
Ingeniera de Requisitos
Claves para RE
RE no debe pretender construir un modelo de requisitos consistente
y completo y debe considerar muy seriamente la necesidad de
analizar y negociar los conflictos, negociar con los stakeholders y
razonar sobre modelos que contendrn inconsistencias
Ingeniera de Requisitos