01-introduccion ir bn

43
Ingeniería de Requerimientos Parte 1 Qué, Por qué, Quién, Cómo y Cuándo

Upload: jose-daniel-jacinto-guzman

Post on 10-Dec-2015

219 views

Category:

Documents


3 download

DESCRIPTION

tesis seminarioinenieria gegraficatemsario util para

TRANSCRIPT

Page 1: 01-Introduccion IR BN

Ingeniería de Requerimientos

Parte 1 Qué, Por qué, Quién, Cómo y Cuándo

Page 2: 01-Introduccion IR BN

¿Qué es la Ingeniería de Requerimientos?

Page 3: 01-Introduccion IR BN

3

¿Experiencia Previa?

•  Quién alguna vez hizo (en el mundo real): –  Relevamiento de requerimientos –  Entrevistas con clientes –  Análisis funcional –  Tests de Aceptación/Sistema –  Validación de Especificación de

Requerimientos – Negociación de Funcionalidad

Sebastian Uchitel

Page 4: 01-Introduccion IR BN

4 Sebastian Uchitel

La Ingeniería de Software

•  Se ocupa de construir un producto de software de alta calidad bajo restricciones de tiempo y presupuesto.

•  Problemáticas fundamentales: –  Escala y complejidad. –  ¿Qué significa alta calidad?

Page 5: 01-Introduccion IR BN

5 Uchitel - LAFHIS, 2007

Calidad y Propósito

•  Software se desarrolla para un fin o propósito •  El propósito es relativo a actividades humanas

–  Está lejos del software mismo.

•  Podemos definir calidad como el grado con que el software cumple con el propósito

•  Ingeniería de Requerimientos trata (en parte) de la identificación del propósito. –  Si no conocemos el propósito no podemos construir un sistema

de calidad –  Un entendimiento pobre del propósito lleva a sistemas de baja

calidad

Page 6: 01-Introduccion IR BN

6 Uchitel - LAFHIS, 2007

Software vs Sistema •  Software siempre es embebido

–  Embebido en hardware –  Embebido en actividad humana (personas, organizaciones) –  Embebido en un mundo físico

•  Visión Sistémica: –  Sistemas intensivos en Software: Software + Hardware + Entorno –  El software es un componente más –  Ingeniería de Requerimientos de Sistemas Intensivos en

Software –  El problema (y solución) es el resultado del comportamiento

emergente de la interacción entre los componentes del sistema

Page 7: 01-Introduccion IR BN

7 Uchitel - LAFHIS, 2007

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...

Page 8: 01-Introduccion IR BN

8 Uchitel - LAFHIS, 2007

Ejemplo 2

•  Sistema de gestión de vuelo –  Componentes: pilotos, controladores de tráfico

aéreo, instrumentos de abordo y en tierra, el sistema de prevención de colisiones, etc...

–  Software: el piloto automático a ser desarrollado –  Propiedades emergentes: Transportación rápida y

segura de pasajeros, distancias mínimas entre aviones, capacidad de aterrizajes en aeropuerto en hora pico, ...

Page 9: 01-Introduccion IR BN

9 Sebastian Uchitel

La Ingeniería de Requerimientos

Requirements Engineering (RE) is a set of activities concerned with

identifying and communicating the purpose of a software-intensive

system, and the contexts in which it will be used. Hence, RE acts as the bridge between the real world needs

of users, customers, and other constituencies affected by a software

system, and the capabilities and opportunities afforded by software-

intensive technologies

No es una fase o etapa!

Comunicación es tan importante

como la recolección y análisis

Calidad signifíca que cumple con su

propósito. No se puede decir

nada acerca de calidad si no se

entiende el propósito.

Diseñadores necesitan saber cómo y donde el

sistema será utilizado.

Requerimientos tratan en parte de lo que se necesita…

…y en parte de lo que es posible

Necesidad de indentificar todas las partes involucradas - no sólo el usario y

cliente

Page 10: 01-Introduccion IR BN

¿Por qué la Ingeniería de Requerimientos es relevante?

Page 11: 01-Introduccion IR BN

11 Sebastian Uchitel

La voz de la experiencia...

•  RE is hard & critical ... "hardest, most important function of SE is the iterative

extraction & refinement of requirements" (F. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering, 1987)

•  Requirements is one of the six key activities... (D. L. Parnas , ”Inaugural Lecture” U. Limerick, 2003)

•  Requirements...Engineering? the requirements for a system do not rise naturally; instead, they

need to be engineered..." (T. E. Bell, T. A. Thayer. Software Requirements:

Are They Really a Problem? ICSE 1976)

Page 12: 01-Introduccion IR BN

12 Sebastian Uchitel

El Costo de Corrección Tardía

200

50

20 10 5 1

Cost

o Re

lati

vo d

e Co

rrec

ción

de

Erro

res

( B.W. Boehm, “Software Engineering Economics”, Prentice Hall, 1981. B.W. Boehm, "Verifying and Validating Software Requirements and Design Specifications," IEEE Software, 1984)

Page 13: 01-Introduccion IR BN

13 Sebastian Uchitel

El Problema de los Requerimientos (más recientemente: 1994/1998)

•  Standish Group: proyectos de software en EEUU

•  Causa percibida de éxito y fracaso (Top 3)

1994 1998 Exitosos 16% 26% Con problemas 53% 46% Cancelados 31% 28%

Exitoso Con problemas Cancelado 1. Usuarios involucrados Falta de input de

los usuarios Requerimientos incompletos

2. Apoyo de gerencia ejecutiva

Requerimientos incompletos

Falta de input de los usuarios

3. Clara descripción de requerimientos

Requerimientos cambiantes

Falta de recursos

Page 14: 01-Introduccion IR BN

14 Sebastian Uchitel

Factores que ponen en problemas un proyecto

1. Falta de input de los usuarios 12.8%

2. Requerimientos y Especificaciones Incompletos

12.3%

3. Requerimientos y Especificaciones cambiantes 11.8%

4. Falta de apoyo de gerencia ejecutiva 7.5%

5. Incompetencia técnica 7.0%

6. Falta de recursos 6.4%

7. Expectativas no realistas 5.9%

8. Objetivos poco claros 5.3%

9. Tiempos poco realistas 4.3%

10. Tecnología nueva 3.7%

Otros 23.0%

Posiblemente anecdótico pero da una indicación de los problemas percibidos en el desarrollo de software

Page 15: 01-Introduccion IR BN

15 Sebastian Uchitel

Factores que causan una cancelación

1. Requerimientos incompletos 13.1%

2. Falta de involucramiento de usuarios 12.4%

3. Falta de recursos 10.6%

4. Expectativas no realistas 9.9%

5. Falta de apoyo gerencial 9.3%

6. Requerimientos y Especificaciones cambiantes

8.7%

7. Falta de planificación 8.1%

8. “Ya no lo necesitabamos” 7.5%

9. Falta de gestión 6.2%

10. Incompetencia Tecnológica 4.3%

Otros 9.9%

Page 16: 01-Introduccion IR BN

16 Sebastian Uchitel

Factores que contribuyen al éxito

1. Involucramiento de Usuarios 15.9% 2. Apoyo de Gerencia Ejecutiva 13.9% 3. Descripción de Requerimientos Clara 13.0%

4. Planificación Apropiada 9.6% 5. Expectativas realistas 8.2% 6. Entregas (milestones) mas pequeñas 7.7% 7. Personal competente 7.2% 8. Ownership 5.3%

9. Visión y Objetivos claros 2.9% 10. Otros 13.9%

Page 17: 01-Introduccion IR BN

17 Sebastian Uchitel

Resultados similares en otros estudios ...

•  Relevamiento de 3800 organizaciones europeas, 17 países

Los problemas mayores en software son... –  Especificación de requerimientos

> 50% respuestas –  Gestión de requerimientos

> 50% respuestas (European Software Institute, Technical Report 1996-

TR95104)

Page 18: 01-Introduccion IR BN

18 Sebastian Uchitel

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

Page 19: 01-Introduccion IR BN

19 Sebastian Uchitel

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 –  ...

Page 20: 01-Introduccion IR BN

20 Sebastian Uchitel

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, ...

Page 21: 01-Introduccion IR BN

Ingeniería de Requerimientos

¿ Cómo, Cuándo y Quién?

Page 22: 01-Introduccion IR BN

22 Sebastian Uchitel

Separación del Problema y la Solución

Descripción del Problema

Descripción de la Solución

Sistema

•  Descripción del Problema –  a ser concensuado con

interesados –  base de un contrato –  usado para evaluar diferentes

opciones de diseño –  una fuente de casos de test –  base para dimensionar,

organizar y dirigir un equipo de trabajo

•  Requiere controlar si: –  El problema se corresponde

con las verdaderas necesidades

–  La solución correctamente resuelve la descripción del problema

Problema

Page 23: 01-Introduccion IR BN

23 Sebastian Uchitel

Validación y Verificación

•  Validación: proceso cuyo objetivo es incrementar la 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

•  Verificación: un proceso cuyo objetivo es garantizar que una descripción formal es correcta con respecto a otra

–  Ej. garantizar que la descripción del problema satisface la descripción de la solución

Cor

resp

onde

? C

orre

cto?

Estos definiciones valen no solo para IR sino para todo IS

Page 24: 01-Introduccion IR BN

24 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

Page 25: 01-Introduccion IR BN

25 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

Elicit: •  to evoke or draw out (a

response, answer, or fact) from someone in reaction to one's own actions or questions

•  Evocar (una contestación, respuesta, dato) de alguien como reacción a preguntas o acciones....

•  ¿Cómo es el sistema actual? •  ¿Cuáles son sus problemas? •  ¿Qué objetivos de mejora hay? •  ¿Qué estrategias para lograr

estos objetivos existen?

Page 26: 01-Introduccion IR BN

26 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

Documentación orientada al análisis: •  Abstraer y estructurar lo

elicitado •  Documentar de manera

rigurosa

Page 27: 01-Introduccion IR BN

27 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

•  Verificación inter e intra modelos

•  ¿Existen contradicciones? •  ¿Hay riesgos obstáculos a

tener en cuenta? •  ¿Los objetivos de negocio

están garantizados?

Page 28: 01-Introduccion IR BN

28 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

•  ¿Entendimos bien? •  ¿Modelamos bien? •  ¿Los modelos reflejan

la realidad? •  ¿Los requerimientos

reflejan necesidades reales?

Page 29: 01-Introduccion IR BN

29 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

•  ¿Cómo comparan las distintas estrategias de alcance de objetivos?

•  ¿Cuáles son los criterios de evaluación?

•  ¿Cuales son los criterios de preferencia de los interesados?

Page 30: 01-Introduccion IR BN

30 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

•  ¿Cuál es la “mejor” alternativa?

•  ¿Cómo uniformamos criterios entre los interesados?

Page 31: 01-Introduccion IR BN

31 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

•  Generación de “el entregable” •  Documentación completa y

detallada •  Documentación orientada a

•  lectura, •  contrato, •  encliclopedia,...

Page 32: 01-Introduccion IR BN

32 Sebastian Uchitel

Actividades de IR

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Desarrollo de Requerimientos

Gestión de Requerimientos

“Elicitación”

Modelado

Análisis

Validación

Negociación

Especificación

Priorización

Page 33: 01-Introduccion IR BN

33 Sebastian Uchitel

elicitación y modelado

especificación stakeholders

documentos

sistemas existentes

análisis y validación

Modelos de Requerimientos

Especificación de Requerimientos

negociación y priorización

Actividades y Entidades

Page 34: 01-Introduccion IR BN

34

Modelos para Ingeniería de Requerimientos

Diagrama de Contexto Diagramas de Clases,

Objetos, Entidad - Relación

Casos de Uso, Pre/Post

Maquinas de Estado, Diagramas de Secuencia

Grafos de refinamiento Y/O Ing. Soft 2

Page 35: 01-Introduccion IR BN

35 Sebastian Uchitel

Ciclo de Vida de la IR (Según Boehm, 1988 - Kontoya/Somerville, 1997)

Propuestas Alternativas

Requerimientos Documentados

Requerimientos Acordados

Requerimientos Consolidados

Negociación

Especificación

Elicitación

Verificación y Validación

Page 36: 01-Introduccion IR BN

36 Sebastian Uchitel

Caracterización de Progreso

Completitud de requerimientos

Acuerdo sobre requerimientos

Formalidad de representación de requerimientos

Completo

Parcial

vista personal

Vista común

informal formal

[Pohl 1996]

Page 37: 01-Introduccion IR BN

37 Sebastian Uchitel

Diseño

Requerimientos

Implementación

Instalación

Validación

Integración

Ciclo de Vida del Desarrollo de Software Modelo Cascada (Royce, 1970)

Page 38: 01-Introduccion IR BN

38 Sebastian Uchitel

El Modelo V

requerimientos de sistema

requerimientos de software

diseño preliminar

diseño detallado

programación y debugging

test de unidad

test de componentes

integración

test de aceptación

integración de sistema

“análisis, descomposición

y diseño”

“testeo e integración”

time

abst

racc

ión

+ -

Page 39: 01-Introduccion IR BN

39 Sebastian Uchitel

Ciclo de Vida del Desarrollo de Software Modelo Espiral (Boehm, 1988)

Page 40: 01-Introduccion IR BN

40 Sebastian Uchitel

Ciclo de Vida del Desarrollo de Software Unified SW Development Process (Jacobson, 1999)

Gerenciamiento Entorno

Modelado de Negocios

Implementación Test

Análisis y Diseño

Iteración Preliminar

Iter. #1

Fases Workflows de Proceso

Iteraciones

Workflows de Soporte

Iter. #2

Iter. #n

Iter. #n+1

Iter. #n+2

Iter. #m

Iter. #m+1

Puesta en Producción

Adm. de Config.

Requerimientos

Elaboración Transición Concepción Construcción

Page 41: 01-Introduccion IR BN

41 Sebastian Uchitel

El Modelo Twin Peaks

Grado de dependencia con la implementación Dependiente Independiente

General

Detallado

Nivel de

Detalle

Definición de la Solución

Definición del Problema

Exploración

Page 42: 01-Introduccion IR BN

42 Sebastian Uchitel

¿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?

Page 43: 01-Introduccion IR BN

43 Sebastian Uchitel

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