• No se han encontrado resultados

Introducción a la Ingeniería de Requerimientos. Parte 1: Qué es y Porqué. Parte 2: Fundamentos. Parte 3: Entregables

N/A
N/A
Protected

Academic year: 2022

Share "Introducción a la Ingeniería de Requerimientos. Parte 1: Qué es y Porqué. Parte 2: Fundamentos. Parte 3: Entregables"

Copied!
19
0
0

Texto completo

(1)

Introducción a la Ingeniería de Requerimientos

Parte 1: Qué es y Porqué.

Parte 2: Fundamentos.

Parte 3: Entregables

(2)

Sebastian Uchitel 2

(Repaso)

La Ingeniería de Software

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

• Sus dos problemáticas fundamentales son:

– Lidiar con la escala y complejidad de sistemas de software actuales.

– Identificar que significa alta calidad

• Requiere (como todas las ingenierías)

– Rigor, creatividad, documentación y gestión.

(3)

Calidad ~ Cumplimiento con Propósito

• Software se desarrolla para un propósito

• El propósito es relativo a actividades humanas

– E.g. El propósito de un sistema bancario se relaciona con los negocios de un un banco y las necesidades de sus clientes.

• El propósito es generalmente complejo.

• Mucha gente y actividades involucradas

• Intereses contrapuestos

• ...

• Ingeniería de Requerimientos trata (en parte) con la

identificación del propósito.

(4)

Sebastian Uchitel 4

Qué es 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

(transparencia de Steve Easterbrook)

(5)

El Software siempre está embebido

• Si la calidad del software depende del grado de cumplimiento de su propósito, entonces debemos considerar el software como

embebido...

• Embebido en Hardware

– Propiedades de hardware?

– Obvio, pero a veces olvidado...

• Embebido en actividad humana

– Propiedades?

• Embebido en un mundo físico

– Propiedades?

• En este curso hablaremos de Sistemas Intensivos en Software (o

“Sistema”) para referirnos a Software + Hardware + Entorno

• Ingeniería de Requerimientos de Sistemas (Intensivos en Software)

(6)

Sebastian Uchitel 6

La voz de la experiencia...

• Poor requirements are ubiquitous ...

"requirements need to be engineered and have continuing review & revision"

(Bell & Thayer, empirical study, 1976)

• RE is hard & critical ...

"hardest, most important function of SE is the iterative extraction & refinement of requirements"

(F. Brooks, 1987)

• Prohibitive cost of late correction ...

"up to 200 x cost of early correction"

(Boehm, 1981)

(transparencia de Emmanuel Letier)

(7)

El Costo de Corrección Tardía (Boehm, 1981)

Requerimientos

Diseño

Codigo

Test de Unidad

Test de Aceptaci ón

Mantenimiento

200

50 10 20

1 5

Costo Relativo de Correción de Errores

El costo de un error depende del numero de decisiones que luego se

hacen sobre él

Errores cometidos al entender los

requerimientos tienen el potencial de ser los de mayor costo, porque

muchas decisiones de diseño dependen de

estos.

(8)

Sebastian Uchitel 8

Problemas de Desarrollo: Un ejemplo regional...

(transparencia de Miguel Felder)

(9)

El Problema de los Requerimientos:

(más recientemente...)

• Relevamiento de proyectos de software en EEUU por el Standish Group

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

28%

31%

Cancelados

46%

53%

Con problemas

26%

16%

Exitosos

1998 1994

3.

2.

1.

Falta de recursos Requerimientos

cambiantes Clara descripción de

requerimientos

Falta de input de los usuarios

Requerimientos incompletos Apoyo de gerencia

ejecutiva

Requerimientos incompletos Falta de input de

los usuarios Usuarios involucrados

Cancelado Con problemas

Exitoso

(10)

Sebastian Uchitel 10

Factores que ponen en problemas un proyecto

23.0%

Otros

3.7%

Tecnología nueva 10.

4.3%

Tiempos poco realistas 9.

5.3%

Objetivos poco claros 8.

5.9%

Expectativas no realistas 7.

6.4%

Falta de recursos 6.

7.0%

Incompetencia técnica 5.

7.5%

Falta de apoyo de gerencia ejecutiva 4.

11.8%

Requerimientos y Especificaciones cambiantes 3.

12.3%

Requerimientos y Especificaciones Incompletos

2.

12.8%

Falta de input de los usuarios 1.

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

(transparencia de Emmanuel Letier)

(11)

Factores que causan una cancelación

9.9%

Otros

4.3%

Incompetencia Tecnológica 10.

6.2%

Falta de gestión 9.

7.5%

“Ya no lo necesitabamos”

8.

8.1%

Falta de planificación 7.

8.7%

Requerimientos y Especificaciones cambiantes

6.

9.3%

Falta de apoyo gerencial 5.

9.9%

Expectativas no realistas 4.

10.6%

Falta de recursos 3.

12.4%

Falta de involucramiento de usuarios 2.

13.1%

Requerimientos incompletos 1.

(12)

Sebastian Uchitel 12

Factores que contribuyen al éxito

13.9%

Otros

10.

2.9%

Visión y Objetivos claros

9.

5.3%

Ownership

8.

7.2%

Personal competente

7.

7.7%

Entregas (milestones) mas pequeñas

6.

8.2%

Expectativas realistas

5.

9.6%

Planificación Apropiada

4.

13.0%

Descripción de Requerimientos Clara

3.

13.9%

Apoyo de Gerencia Ejecutiva

2.

15.9%

Involucramiento de Usuarios

1.

(transparencia de Emmanuel Letier)

(13)

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, 1996)

(14)

Sebastian Uchitel 14

Porqué IR es tan difícil?

• Sistemas compuestos: Gente + Software + Dispositivos físicos.

– Modos de interacción: complejos, de larga duración, iniciativa híbrida, iniciativa mixta, social.

– Software le da forma a la actividad humana de manera compleja.

• Muchos de los problemas que queremos resolver son

“difíciles”

– Formulación definitiva del problema?

– Correctitud de Soluciones no suele ser blanco o negro – Cada problema es único hasta cierto punto

– Cada problema puede ser tratado como síntoma de otro – Problemas suelen tener dimensiones políticas, éticas y y/o

profesionales de peso.

(15)

Porqué IR es tan difícil?

• 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

• Stakeholders (partes interesadas) con antecedentes e intereses diversos

– clientes, usuarios, expertos del dominio, desarrolladores, ...

conflictos

(16)

Sebastian Uchitel 16

Qué hace un Ingeniero de Requerimientos? (1)

• “Elicitar” Información

– Objetivos, contexto y alcance

– Conocimiento del Dominio y Requerimientos

• Modelado y Análisis

– Objetivos, objetos, casos de uso, escenarios, ...

• Comunicar requerimientos

– resultados del análisis (Feedback), Documento de Especificación de Requerimientos, prototipos, ...

(transparencia adapteda de E. Letier)

Elicit: to evoke or draw out (a response, answer, or fact) from someone in

reaction to one's own actions or questions

(17)

Qué hace un Ingeniero de Requerimientos? (1)

• Negociación y acuerdo de requerimientos

– Manejo de conflictos y riesgos

– Ayuda en selección y priorización de requerimientos

• Gestión y Evolución de Requerimientos

– Trazabilidad de requerimientos

– Gestión de pedidos de cambios a requerimientos y sus

impactos

(18)

Sebastian Uchitel 18

El rol central de modelos de requerimientos

elicitación y modelado

generación de entregables

stakeholders

documentos sistemas existentes

análisis y validación

Modelos de Requerimientos

Especificación de Requerimientos

(transparencia adapted de E. Letier)

(19)

Resumen de Parte 1

• Definición de Ingeniería de Requerimientos

• Importancia y dificultades de IR en el desarrollo de sistemas

• Actividades del Ingeniero de Requerimientos

• Rol central de modelos en IR

Referencias

Documento similar

Se han sintetizado aminoésteres soportados mediante el anclaje directo del clorhidrato del éster del aminoácido a resinas Merrifield, que han resultado excelentes puntos de partida

Centro Multidisciplinar Ondas Palencia Verónica Herrero y Mélanie Tejedor.?. Breve introducción de

También en el ámbito económico, la espiritualidad ha despertado el interés tanto de líderes del sector, que quieren integrar en sus instituciones la vivencia trascendente, como

La investigación educativa tiene entre sus métodos la selección de una muestra pequeña que se investiga en su propio contexto para comprender las acciones y

Tabla 26: Número de defunciones al año de alta, en función ingreso en Unidad de Ortogeriatria (U.O.). Tabla 27 : Total de pacientes ingresados de nuestra muestra en año

La relevancia de esta investigación en el campo de la Educación con énfasis en Tecnología Educativa radica, en primer lugar, en que se aporta un modelo teórico de

En todo caso, existe una amplia base de información proveniente de la investigación acerca de distintos aspectos relevantes en el proceso de construcción de los tests (Tindal

leguas de término, sin tener en todo él pueblo formado, ni muro, ni casa fuerte para su reparo, ni armas, a lo menos defensivas, que la prolija guerra y los españoles las han