Professional Documents
Culture Documents
Parte 1
Qué, Por qué, Quién, Cómo y Cuándo
¿Qué es la Ingeniería de
Requerimientos?
¿Experiencia Previa?
Sebastian Uchitel 3
La Ingeniería de Software
Sebastian Uchitel 4
Calidad y Propósito
Uchitel - LAFHIS,
2007 6
Ejemplo
• Sistema de remate por Internet
– Componentes: Compradores, Vendedores, Empresas
transportistas, subsistema de pago electrónico, sistema de
correo electrónico
– Software: el sistema a ser construido o extendido para
insertar y difundir ítems, manejo de ofertas, facturación a
oferente ganador, registro de evaluaciones de compradores y
vendedores, etc...
– El propósito es relativo a propiedades emergentes como:
Satisfacción de vendedores al lograr acceso a más clientes
potenciales, satisfacción de compradores al acceder a mayor
variedad de productos, relaciones de confianza entre
compradores y vendedores, etc...
Uchitel - LAFHIS,
2007 7
Ejemplo 2
Uchitel - LAFHIS,
2007 8
La Ingeniería de Requerimientos
No es una fase
o etapa!
Requirements Engineering (RE) is a
Comunicación set of activities concerned with
Diseñadores
es tan importante identifying and communicating the
necesitan saber
como la recolección purpose of a software-intensive cómo y donde el
y análisis system, and the contexts in which it sistema será
will be used. Hence, RE acts as the utilizado.
bridge between the real world needs
of users, customers, and other Requerimientos
Calidad signifíca constituencies affected by a software tratan en parte de
que cumple con su lo que se necesita…
system, and the capabilities and
propósito.
No se puede decir opportunities afforded by software-
intensive technologies …y en parte de lo
nada acerca de
que es posible
calidad si no se
entiende el Necesidad de indentificar todas las
propósito. partes involucradas - no sólo el usario y
cliente
Sebastian Uchitel 9
¿Por qué la Ingeniería de
Requerimientos es relevante?
La voz de la experiencia...
• Requirements...Engineering?
the requirements for a system do not rise naturally; instead, they
need to be engineered..."
200
Corrección de Errores
Costo Relativo de
50
10 20
1 5
1994
1998
Exitosos
16%
26%
Con problemas
53%
46%
Cancelados
31%
28%
Sebastian Uchitel 14
Factores que causan una cancelación
Sebastian Uchitel 15
Factores que contribuyen al éxito
Sebastian Uchitel 16
Resultados similares en otros estudios ...
Sebastian Uchitel 17
Los costos mas allá del dinero
• Sistema de lanzamiento personal de cohetes, Iraq, 2003
– Requerimiento faltante: Objetivo default sin definir
• IranAir A300, Iran, Julio 1988
– Requerimiento faltante: Secuencias de eventos relevantes no fueron considerados para
reconocer “amenazas”
– Requerimiento faltante: Información básica faltante en displays de aviones de combate
c.r.a altitud y ascenso/descenso de aviones “enemigos”
• American Airlines Boeing 757, Cali, Colombia, Diciembre 1995
– Presunción del dominio incorrecta: El aviso automático de extender flaps en coordinada X
llega antes de que el avión haya pasado X.
• Subte de Nueva York, Junio 1995
– Propiedad del dominio cambiante: El “peor caso de frenado” es peor hoy que en 1918.
• Sistema Bancario on-line
– Requerimiento de seguridad: Tres ingresos de PIN incorrecto -> cuenta inhabilitada
– Requerimiento faltante: Impedir probar el mismo PIN para múltiples cuentas
Sebastian Uchitel 18
Complejidad: ¿Esencia o Accidente?
– Alto acoplamiento entre personas y software
• Modos de interacción no triviales: complejos, de larga duración,
iniciativa mixta, con función social
• Software y Sociedad se moldean mutuamente: El cumplimiento del
propósito altera el contexto
– Imposibilidad de dar una formulación definitiva del problema
• No se puede formalizar un mundo fundamentalmente informal
– La correctitud de la solución no suele tener una respuesta
binaria
• Grado de satisfacción del propósito puede ser difícil de medir
– La dificultad de separar problemas y síntoma
– ...
Sebastian Uchitel 19
Complejidad: ¿Esencia o Accidente?
• Múltiples sistemas coexisten:
– sistema actual,
– múltiples propuestas de sistema a construir,
– familia de sistemas,
– posibles evoluciones del sistema
• Múltiples niveles de abstracción:
– de objetivos de negocios a detalles operativos
• Múltiples aspectos
– Funcional, calidad, desarrollo
– aspectos duros y blandos
• Múltiples partes interesadas
– con intereses contrapuestos
– con antecedentes e intereses diversos
– clientes, usuarios, expertos del dominio, desarrolladores, ...
Sebastian Uchitel 20
Ingeniería de Requerimientos
Sebastian Uchitel 22
Validación y Verificación
• Validación: proceso cuyo objetivo es incrementar la
Corresponde?
confianza de que una descripción formal se
corresponde con la realidad (es decir, el mundo
informal)
– Ej. si la descripción del problema se corresponde con
las necesidades reales
Correcto?
satisface la descripción de la solución
“Elicitación”
Modelado
Análisis
Validación
Priorización
Negociación
Especificación
Sebastian Uchitel 24
Actividades de IR
Desarrollo de
Requerimientos
Elicit:
“Elicitación” • to evoke or draw out (a
response, answer, or fact)
from someone in reaction to
Modelado one's own actions or
questions
Análisis • Evocar (una contestación,
respuesta, dato) de alguien
como reacción a preguntas o
Validación acciones....
“Elicitación”
Documentación orientada al análisis:
Modelado • Abstraer y estructurar lo
elicitado
• Documentar de manera
Análisis rigurosa
Validación
Priorización
Negociación
Especificación
Sebastian Uchitel 26
Actividades de IR
Desarrollo de
Requerimientos
“Elicitación”
Priorización
Negociación
Especificación
Sebastian Uchitel 27
Actividades de IR
Desarrollo de
Requerimientos
“Elicitación”
Modelado
• ¿Entendimos bien?
Análisis
• ¿Modelamos bien?
• ¿Los modelos reflejan
Validación la realidad?
• ¿Los requerimientos
reflejan necesidades
Priorización
reales?
Negociación
Especificación
Sebastian Uchitel 28
Actividades de IR
Desarrollo de
Requerimientos
“Elicitación”
Modelado
Análisis
• ¿Cómo comparan las
Validación distintas estrategias de
alcance de objetivos?
• ¿Cuáles son los criterios de
Priorización evaluación?
• ¿Cuales son los criterios de
Negociación preferencia de los
interesados?
Especificación
Sebastian Uchitel 29
Actividades de IR
Desarrollo de
Requerimientos
“Elicitación”
Modelado
Análisis
Validación
• ¿Cuál es la “mejor”
Priorización alternativa?
• ¿Cómo uniformamos
criterios entre los
Negociación interesados?
Especificación
Sebastian Uchitel 30
Actividades de IR
Desarrollo de
Requerimientos
“Elicitación”
Modelado
Análisis
Validación
• Generación de “el entregable”
• Documentación completa y
Priorización detallada
• Documentación orientada a
• lectura,
Negociación
• contrato,
• encliclopedia,...
Especificación
Sebastian Uchitel 31
Actividades de IR
Desarrollo de Gestión de
Requerimientos Requerimientos
“Elicitación” “Elicitación”
Modelado Modelado
Análisis Análisis
Negociación Negociación
Validación Validación
Priorización Priorización
Especificación Especificación
Sebastian Uchitel 32
Actividades y Entidades
Modelos de Requerimientos
stakeholders
especificación
elicitación
y modelado
sistemas
existentes
Especificación
de Requerimientos
documentos
análisis negociación y
y validación priorización
Sebastian Uchitel 33
Modelos para Ingeniería de Requerimientos
Grafos de
refinamiento Y/O Ing. Soft 2
Propuestas Alternativas
Elicitación Negociación
Requerimientos Requerimientos
Consolidados Acordados
Verificación y Especificación
Validación
Requerimientos Documentados
Sebastian Uchitel 35
Caracterización de Progreso
Completitud de
requerimientos
Vista
común
vista
personal
Parcial
Formalidad de
informal formal representación de
requerimientos
[Pohl 1996]
Sebastian Uchitel 36
Ciclo de Vida del Desarrollo de Software
Modelo Cascada (Royce, 1970)
Requerimientos
Diseño
Implementación
Integración
Validación
Instalación
Sebastian Uchitel 37
El Modelo V
+
requerimientos integración
de sistema de sistema
requerimientos test de
de software aceptación
abstracción
diseño
integración
preliminar
“análisis, “testeo
descomposición diseño test de e integración”
y diseño” detallado componentes
programación test de
y debugging unidad
-
time
Sebastian Uchitel 38
Ciclo de Vida del Desarrollo de Software
Modelo Espiral (Boehm, 1988)
Sebastian Uchitel 39
Ciclo de Vida del Desarrollo de Software
Unified SW Development Process (Jacobson, 1999)
Fases
Workflows de Proceso ConcepciónElaboración Construcción Transición
Modelado de Negocios
Requerimientos
Análisis y Diseño
Implementación
Test
Puesta en Producción
Workflows de Soporte
Adm. de Config.
Gerenciamiento
Entorno
Iteración Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Preliminar #1 #2 #n #n+1 #n+2 #m #m+1
Iteraciones
Sebastian Uchitel 40
El Modelo Twin Peaks
Grado de dependencia
Independiente con la implementación Dependiente
General
Exploración
Nivel
de
Detalle
Definición Definición
del Problema de la Solución
Detallado
Sebastian Uchitel 41
¿Quienes hacen Ingeniería de
Requerimientos?
• Muy difícil encontrar a una persona...
– que sepa entrevistar, escuchar, cuestionar
(pensamiento crítico), modelar, analizar,
facilitar discusiones y negociaciones,
observar, comunicar de manera verbal y
escrita, relacionarse con gente, innovar,...
– que tenga experiencia en el dominio del
problema y de la solución
• ¿Existen?
Sebastian Uchitel 42
Resumen
• Una introducción a la Ingeniería de Requerimientos
– De qué trata
– Por qué vale la pena
– Actividades principales
– Ciclo de vida
– Contexto en el ciclo de vida del desarrollo de software
– Quién lo hace
Sebastian Uchitel 43