Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

39
Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación

Transcript of Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Page 1: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1

Prototipación

Page 2: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 2

Temario

• ¿Qué es un prototipo?

• ¿Qué es prototipación?

• ¿Cuándo y cómo usar prototipación?

• ¿Cuál es el proceso de la prototipación?

• ¿Qué condiciones se tienen que cumplir para la prototipación?

• ¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 3: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 3

Distribución de Costos en el Ciclo de Vida de un Sistema

Estudio de Lientz

40%

10%

50% Desarrollo

Mant. por extensión o fallas deconstrucciónMant. por requerimientos incorrectoso incompletos

Page 4: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 4

Objetivos de la Ing. de Software

• Obtener un proceso de desarrollo eficaz.– Un proceso es eficaz si produce un sistema eficaz.– Un sistema es eficaz si cumple con las necesidades de los usuarios.

• Obtener un proceso de desarrollo eficiente.– Un proceso es eficiente cuando produce un sistema eficaz en el

menor tiempo posible y al menor costo posible.

• Una forma de alcanzar eficacia y eficiencia: incrementar la calidad de la definición y especificación de requerimientos.

• Una forma de incrementar la calidad de los requerimientos: PROTOTIPACION.

Page 5: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 5

Temario

¿Qué es un prototipo?

• ¿Qué es prototipación?

• ¿Cuándo y cómo usar prototipación?

• ¿Cuál es el proceso de la prototipación?

• ¿Qué condiciones se tienen que cumplir para la prototipación?

• ¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 6: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 6

Prototipo

• “Modelo operativo de un sistema de información (o de una parte de él) en el cual se hace énfasis en algunos aspectos del sistema.” [VONK].

• “Implementación parcial de un sistema, sin proveer funcionalidad, para que usuarios y desarrolladores aprenden algo sobre el problema.” [DAVIS].

Page 7: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 7

Conclusiones sobre la Definición de Prototipo de Software

• Un prototipo es un modelo (o representación) del sistema.

• Por ser un modelo no se tienen en cuenta atributos (requerimientos) como: calidad, eficiencia, robustez, mantenibilidad, etc.

• Por no considerar los atributos mencionados su construcción puede y debe ser quick and dirty.

• La diferencia con otros modelos es que es operativo, por tanto muestra el comportamiento del sistema.

• La utilidad del prototipo es aprender sobre el dominio del problema.

• Se busca eliminar incertidumbre sobre un conjunto de requerimientos (en cualquier fase de desarrollo).

Page 8: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 8

Tipos de Prototipos

• Mock-up.– Muestra, en forma estática, aspectos externos del

sistema como: pantallas, reportes, etc.

• Mago de Oz.– Mock-up con simulación de respuestas del sistema

hecha por una persona, en función de los estímulos del usuario.

• Prototipo funcional.– Mago de Oz con alguna funcionalidad automatizada.

Page 9: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 9

Temario

¿Qué es un prototipo?

¿Qué es prototipación?

• ¿Cuándo y cómo usar prototipación?

• ¿Cuál es el proceso de la prototipación?

• ¿Qué condiciones se tienen que cumplir para la prototipación?

• ¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 10: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 10

Prototipación

• “Una estrategia para establecer los requerimientos de un sistema (en las fases más tempranas del desarrollo), caracterizada por un alto grado de iteración, por un alto grado de participación del usuario en el proceso de desarrollo y un uso extensivo de prototipos.” [VONK].

Page 11: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 11

Clases de Prototipación• Orientada a la interfaz del usuario.

– Se intenta modelar la apariencia externa del sistema (pantallas, reportes, diálogo) sin considerar acciones de ingreso de datos.

– Prototipos resultantes: mock-up, Mago de Oz.

• Orientada a la funcionalidad.– Se intenta representar la captura y almacenamiento de los datos de los usuarios, además de la apariencia externa.– Prototipo resultante: funcional.

• Orientada a descubrir requerimientos en forma temprana.– Se utiliza para aprender más del problema y su solución. Luego el prototipo puede evolucionar o ser desechado.– Prototipo resultante: exploratorio.

• Orientada a la construcción del sistema final.– Se utiliza el prototipo para conocer más del problema y su solución. Una vez que los requerimientos quedan establecidos

se adapta el prototipo para que cumpla con los requerimientos de calidad, robustez, eficiencia, etc. y se convierte en el sistema final.

– Prototipo resultante: evolutivo.

• Orientada a que el usuario se familiarice con el sistema.– Se utiliza el prototipo para conocer más del problema y su solución. Una vez que los requerimientos quedan establecidos

se desecha el prototipo y a partir de el se construye el sistema final.– Prototipo resultante: desechable [FLOYD] o sistema piloto [VONK].

• Orientada a la verificación de la solución a un problema.– Se realiza en la fase de diseño. Se busca determinar cuan adecuada es la solución a un problema, ej.: eficiencia.– Prototipo resultante: experimental.

Page 12: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 12

Temario

¿Qué es un prototipo?

¿Qué es prototipación?

¿Cuándo y cómo usar prototipación?

• ¿Cuál es el proceso de la prototipación?

• ¿Qué condiciones se tienen que cumplir para la prototipación?

• ¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 13: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 13

¿Cuándo Usar Prototipos?

• Cuando:– Los requerimientos no son claros para los

desarrolladores.

– Los requerimientos y necesidades no son claras para los usuarios.

– Los requerimientos son muy volátiles durante el desarrollo.

• Resumen: cuando existe desconocimiento del dominio (desarrolladores) y cuando existe desconocimiento de necesidades (usuarios).

Page 14: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 14

¿En Qué Fases de la IR Usarlos?

• En Extracción y Negociación de Requerimientos.– Clarificados los requerimientos se puede

escribir un ESRE.

• En Validación de Requerimientos.– Escrito el ESRE, el prototipo sirve como

elemento aclaratorio de este.

Page 15: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 15

¿Cómo Usar Prototipos?

• Davis sugiere:– Escribir un ESRE preliminar.– Implementar el prototipo en función de ese

ESRE.– Negociar/validar/hacer que el usuario adquiera

experiencia con el prototipo.– Escribir un ESRE definitivo.

Page 16: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 16

Temario

¿Qué es un prototipo?

¿Qué es prototipación?

¿Cuándo y cómo usar prototipación?

¿Cuál es el proceso de la prototipación?

• ¿Qué condiciones se tienen que cumplir para la prototipación?

• ¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 17: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 17

Prototipación en el Contexto de un Proceso

Inicio delProyecto

Ing. de Req.

OtrasFases

Análisis y Especif. Crudos

Diseñoy

ConstrucciónEvaluación Modificación Finalización

Según Roland Vonk

Page 18: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 18

Inicio del Proyecto

• Objetivos.– Definir el área problema del negocio.– Delinear posibles soluciones (por ej. un SI).

• Tareas.– Delimitación del área problema.– Selección de una estrategia de desarrollo.

• Productos.– Esbozo de plan de proyecto.

Page 19: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 19

Análisis y Especificación Crudos

• Objetivos.– Obtener una especificación preliminar de un

subset de requerimientos de comportamiento (funcionales e interfaz).

• Tareas.– Extracción, análisis, especificación.– Rápido y sucio.

• Productos.– Especificación preliminar de subset de

requerimientos de comportamiento (SRC).• Participación del usuario: SI.

Page 20: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 20

Diseño y Construcción

• Objetivos.– Desarrollar un prototipo del sistema.

• Tareas.– Un enfoque:

• Construcción de la capa de presentación de datos.• Construcción de la capa de datos.• Construcción de la capa de lógica.

– Rápido y sucio.• Productos.

– El Prototipo.• Participación del usuario: NO.

Page 21: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 21

Evaluación

• Objetivos.– Estabilizar el SRC.

• Tareas.– Preparación de los usuarios.– Demostración del prototipo.– Utilización del prototipo.– Feedback de los usuarios.

• Productos.– Prototipo evaluado y SRC estabilizados.

• Participación del usuario: SI.

Page 22: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 22

Modificación

• Objetivos.– Implementar cambios acordados en evaluación.

• Tareas.– Las mismas que en la fase de Diseño y

Construcción.

• Productos.– Prototipo actualizado.

• Participación del usuario: NO.

Page 23: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 23

Finalización

• Objetivos.– Definir subset restante de requerimientos:

• Resto de los de comportamiento.

• No comportamentales.

• Tareas.– Extracción, análisis, especificación.

• Productos.– Requerimientos no funcionales.

• Participación del usuario: SI.

Page 24: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 24

Temario

¿Qué es un prototipo?

¿Qué es prototipación?

¿Cuándo y cómo usar prototipación?

¿Cuál es el proceso de la prototipación?

¿Qué condiciones se tienen que cumplir para la prototipación?

• ¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 25: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 25

Condiciones Necesarias para la Prototipación

• Variables a considerar.– Tipo de herramientas utilizadas.

– Tipo de sistema a desarrollar.

– Tamaño del sistema a desarrollar.

– Destrezas de desarrolladores y usuarios.

Page 26: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 26

Tipos de Herramientas a Utilizar

• Poseer herramientas adecuadas que integren:– Un dibujador de pantallas.– Lenguaje de muy alto nivel para implementar

funcionalidad.– Un buen administrador de base de datos.

• De no poseer estas herramientas imposible la prototipación.

Page 27: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 27

Tipo de Sistema a Desarrollar• Tipologías posibles:

– Tipo de aplicación.• Orientada los datos (aplicaciones de base de datos).• Orientada a los procesos (aplicaciones de cálculos).

– Nivel decisional que apoya.• Estratégicos (información nada estructurada, mucha incertidumbre).• Táctico (información más estructurada, menor incertidumbre).• Operativo (información estructurada, poca incertidumbre).

– Dominio que abarca.• Comercial (fuertemente orientado a los datos, pocos procesos).• Técnico/científico (software incrustado, aplicaciones matemáticas).

– Forma de comunicación con el usuario.• Interactivo (gran interacción con el usuario).• Batch (casi ninguna interacción con el usuario).

• Conviene prototipar cuando se requiere gran participación del usuario.

Page 28: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 28

Tamaño del Sistema

• Grande o mediano.– Siempre y cuando el sistema o partes de el

presenten problemas según la tipología mencionada antes.

• Pequeño.– No es muy necesaria la prototipación.

Page 29: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 29

Destrezas de Desarrolladores y Usuarios

• Usuarios.– Tienen un buen relacionamiento con la TI.

– Disponen del tiempo necesario para ayudar a desarrollar el prototipo.

– Disponen del tiempo necesario para experimentar con el prototipo.

• Desarrolladores.– Capacidad de uso de técnicas de análisis de sistemas tradicionales.

– Capacidad de diseño.

– Capacidad de programación de prototipos.

– Capacidad de “aguante” frente a continuos cambios en el prototipo.

Page 30: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 30

Temario

¿Qué es un prototipo?

¿Qué es prototipación?

¿Cuándo y cómo usar prototipación?

¿Cuál es el proceso de la prototipación?

¿Qué condiciones se tienen que cumplir para la prototipación?

¿Cuáles son los problemas de la prototipación y como solucionarlos?

• ¿Cuáles son los beneficios y costos de la prototipación?

Page 31: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 31

Problemas de la Prototipación

• Análisis no adecuado del problema.– Apresuramiento en buscar una solución.

– Demasiado énfasis en los detalles.

– Poco énfasis en las interfaces con otros sistemas.

– Confundir análisis con la solución del problema.

• Poca comprensión de lo que es prototipación de: – Los desarrolladores.

– Los gerentes de proyectos.

– Los usuarios.

Page 32: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 32

Poca Comprensión... Desarrolladores

• Se requieren nuevos conocimientos.

• Resistencia al cambio.

• Forma de evitarlos: entrenamiento.

Page 33: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 33

Poca Comprensión... Gerentes

• Software construido y desechado.

• Gasto de tiempo e incremento de costos.

• Forma de evitarlo: análisis de costo/beneficio.

Page 34: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 34

Poca Comprensión... Usuarios

• Pueden creer que es el sistema final y considerarlo un mal sistema (falta de calidad, eficiencia, robustez, etc.).

• Pueden creer que el sistema se puede desarrollar con la misma rapidez que el prototipo.

• Presionan a los desarrolladores para encarar otros sistemas.

• Requiere mucho tiempo de los usuarios.

• Forma de evitarlos: orientación sobre los objetivos y el procedimiento de prototipación.

Page 35: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 35

Solución a los Problemas

• Preparar a la organización.– Decisión de adoptarlo como estrategia.

– Entrenamiento a los desarrolladores y usuarios.

– Adquisición de herramientas.

• Selección de proyecto(s) piloto(s).– Sistema fuertemente orientado a IU.

– Sistema pequeño.

– No estratégico para la organización.

• Propagar la estrategia de prototipación.– Evaluar el proyecto.

– Realizar conclusiones.

– Seleccionar otros proyectos.

Page 36: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 36

Temario

¿Qué es un prototipo?

¿Qué es prototipación?

¿Cuándo y cómo usar prototipación?

¿Cuál es el proceso de la prototipación?

¿Qué condiciones se tienen que cumplir para la prototipación?

¿Cuáles son los problemas de la prototipación y como solucionarlos?

¿Cuáles son los beneficios y costos de la prototipación?

Page 37: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 37

Beneficios de la Prototipación

• Reducción de probabilidades de pérdida económica.– Apoyo a la factibilidad técnica, económica y operativa.

• Reducción de costos de mantenimiento.– Muestran la parte comportamental de los requerimientos.– Reducción de la incertidumbre del problema.– Especificación de requerimientos de mayor calidad.

• Reducción de costos de desarrollo.– Modelo “vivo” para los desarrolladores.– Sistema testigo para la prueba del sistema final.

• Reducción de costos de entrenamiento.– Usuarios más familiarizados con el sistema.

Page 38: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 38

Costos de la Prototipación

• Costos de incorporación de la estrategia.– Cambios culturales.

• Costos de entrenamiento.– Capacitación de desarrolladores y usuarios.

• Costos de desarrollo.– Se extiende el tiempo de desarrollo.

Page 39: Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 1 Prototipación.

Ingeniería de Requerimientos. Prototipacion. Alvaro Ortas. 39

Bibliografía

• Capítulos 3, 4, 5, 7, 8, 9 y 10, Prototyping: The Effective use of CASE Technology, Roland Vonk.

• Capítulo 3, Requirements Engineering, Gerald Kotonya and Ian Sommerville.

• Capítulo 6, Software Requirements: Objects, Functions and States, Alan M. Davis.