2. 2
Ingeniería de requerimientos
Obtención y Análisis de Requisitos
Técnicas:
• Obtención orientada al punto de vista (VORD).
• Escenarios.
• Etnografía.
• Modelos de Sistemas: Análisis Estructurado,
Modelo de Datos, Modelo de Objetos
• Prototipos.
3. 3
Ingeniería de requerimientos
• Conocer el papel de la construcción de prototipos
de software en los diferentes tipos de desarrollo de
proyectos.
• Conocer la diferencia entre la construcción de
prototipos evolutivos y la de prototipos
desechables.
• Aprender tres técnicas distintas para el desarrollo
de prototipos.
• Saber por qué la construcción de prototipos es la
única técnica viable para el diseño y desarrollo de
la interfaz de usuario.
Obtención y Análisis de Requisitos
4. 4
Ingeniería de requerimientos
• Saber por qué la construcción de prototipos es la
única técnica viable para el diseño y desarrollo de
la interfaz de usuario.
Obtención y Análisis de Requisitos
5. 5
Ingeniería de requerimientos
Introducción:
• Por lo general, los clientes y usuarios finales del
software encuentran difícil expresar sus requisitos.
• No siempre es posible predecir la manera en que
un sistema afectará el trabajo diario, como
interactuará con otros sistemas y qué operaciones
se deberían automatizar.
Obtención y Análisis de Requisitos
6. 6
Ingeniería de requerimientos
Introducción:
• Un análisis cuidadoso de los requisitos junto con
revisiones sistemáticas de éstos ayudan a reducir
dicha incertidumbre...
Obtención y Análisis de Requisitos
7. 7
Ingeniería de requerimientos
Introducción:
• ..no obstante, no existe substituto real para probar
un requisito antes de estar de acuerdo con él.
• Lo anterior es posible si está disponible un
prototipo del sistema.
Obtención y Análisis de Requisitos
8. 8
Ingeniería de requerimientos
Definición de Prototipo:
• Versión inicial de un sistema de software que se
utiliza para demostrar los conceptos, probar las
opciones de diseño y, de forma general, conocer
más el problema y sus posibles soluciones.
Obtención y Análisis de Requisitos
9. 9
Ingeniería de requerimientos
Construcción de Prototipos:
• El desarrollo rápido de prototipos es esencial
puesto que se controlan los costos, y los usuarios
pueden experimentar con el prototipo en las
primeras etapas del proceso de software.
Obtención y Análisis de Requisitos
• Un prototipo de software apoya a dos actividades
del proceso de Ingeniería de requerimientos:
– Obtención de Requisitos.
– Validación de Requisitos.
10. 10
Ingeniería de requerimientos
Construcción de Prototipos:
• Puede usarse como un análisis de riesgo y como
una técnica de reducción.
Obtención y Análisis de Requisitos
• Un riesgo importante en el desarrollo de software
son los errores y omisiones de requisitos.
11. 11
Ingeniería de requerimientos
Construcción de Prototipos:
Obtención y Análisis de Requisitos
• Un prototipo puede ayudar a bajar costos totales
del desarrollo, reducir la propagación de errores a
etapas posteriores del mismo, y disminuir el
número de problemas con la especificación de
requisitos.
12. 12
Ingeniería de requerimientos
Construcción de Prototipos: otras ventajas...
• Al mostrar las funciones del sistema se identifican
las diferencias entre desarrolladores y usuarios.
Obtención y Análisis de Requisitos
• Durante el desarrollo del prototipo, el personal del
desarrollo de software puede darse cuenta de que
los requisitos son inconsistentes y/o están
incompletos.
13. 13
Ingeniería de requerimientos
Construcción de Prototipos: otras ventajas...
Obtención y Análisis de Requisitos
• Aunque limitado, se dispone rápidamente de un
sistema que funciona y demuestra la factibilidad y
usabilidad de la aplicación a administrar.
14. 14
Ingeniería de requerimientos
Construcción de Prototipos: otras ventajas...
• El prototipo se utiliza como base para escribir la
especificación para la producción de un sistema de
calidad.
Obtención y Análisis de Requisitos
15. 15
Ingeniería de requerimientos
Construcción de Prototipos: ventajas según un
estudio con 39 proyectos...
Obtención y Análisis de Requisitos
– Mejora en la usabilidad del sistema.
– Mejor acoplamiento entre el sistema y las necesidades
del usuario.
– Mejora en la calidad del diseño.
– Mejora en el mantenimiento.
– Reducción en el esfuerzo de desarrollo.
16. 16
Ingeniería de requerimientos
Construcción de Prototipos: ventajas según un
estudio con 39 proyectos...
Obtención y Análisis de Requisitos
• El uso de prototipos no necesariamente significa un
aumento en los costos de desarrollo.
• Por lo general, la construcción de prototipos
incrementa los costos en las etapas iniciales del
proceso de software, pero reduce los costos
posteriores.
17. 17
Ingeniería de requerimientos
Construcción de Prototipos: ventajas según un
estudio con 39 proyectos...
Obtención y Análisis de Requisitos
• La razón principal: se evita rehacer el trabajo
durante el desarrollo, cuando los clientes solicitan
“pequeños” cambios al sistema.
• Sin embargo, también se encontró que una
consecuencia negativa fue que el desempeño total
del sistema, algunas veces, es degradado debido a
la reutilización de código ineficiente proveniente del
prototipo.
18. 18
Ingeniería de requerimientos
Proceso de Desarrollo de Prototipos:
Establecer Definir Desarrollar Evaluar
Objetivos del Funcionalidad Prototipo Prototipo
Prototipo
Plan de Definición Prototipo Informe
Construcción General Ejecutable de Evaluación
del Prototipo
Obtención y Análisis de Requisitos
19. 19
Ingeniería de requerimientos
Construcción de Prototipos: dos tipos...
Obtención y Análisis de Requisitos
• Prototipo evolutivo: dar al usuario un sistema
incompleto y después modificarlo y aumentarlo en
el momento en que los requisitos del usuario sean
claros.
• Prototipo desechable: para ayudar al análisis y
validación de requisitos. Tras su evaluación, se
descarta y se construye un sistema de calidad.
20. 20
Ingeniería de requerimientos
Construcción de Prototipos: Evolutivos.
Obtención y Análisis de Requisitos
• Comienza con un sistema relativamente simple,
que implementa los requisitos más importantes del
usuario.
• Dicho prototipo se expande o cambia en cuanto se
descubran nuevos requisitos. Finalmente se
convierte en el sistema final.
21. 21
Ingeniería de requerimientos
Construcción de Prototipos: Evolutivos.
Obtención y Análisis de Requisitos
• No tiene una especificación detallada, y en algunos
casos no existe un documento formal de requisitos.
• La técnica más común para desarrollar sitios Web y
aplicaciones de comercio electrónico.
22. 22
Ingeniería de requerimientos
Construcción de Prototipos: Desechables.
Obtención y Análisis de Requisitos
• Ayudan a refinar y clarificar la especificación del
sistema.
• La evaluación del prototipo informa del desarrollo
de la especificación detallada del sistema, que se
incluye en el documento de requisitos de éste.
• Una vez que se ha redactado la especificación, el
prototipo ya no es útil y se descarta.
23. 23
Ingeniería de requerimientos
Construcción de Prototipos: Diferencias...
Obtención y Análisis de Requisitos
• El objetivo de la construcción de prototipos
evolutivos es entregar a los usuarios finales un
sistema funcional.
• El objetivo de la construcción de prototipos
desechables es validar o derivar los requisitos del
sistema.
24. 24
Ingeniería de requerimientos
Construcción de Prototipos: Diferencias...
Obtención y Análisis de Requisitos
• El prototipo evolutivo comienza con los requisitos
mejor conocidos, y los menos conocidos se
implementan cuando se necesitan por parte de los
usuarios.
• El prototipo desechable considera aquéllos no bien
comprendidos; los ya precisados nunca deben
estar en el prototipo.
25. 25
Ingeniería de requerimientos
Construcción de Prototipos: Diferencias...
Obtención y Análisis de Requisitos
• El prototipo evolutivo crece hacia un sistema final
que se debe desarrollar con los mismos estándares
de calidad de la organización, como cualquier otro
software. Confiable y eficiente.
• El prototipo desechable, por tener un periodo de
vida corto, no requiere mantenimiento. Pobre
desempeño y baja confiabilidad.
26. 26
Ingeniería de requerimientos
Construcción de Prototipos Evolutivos:
Obtención y Análisis de Requisitos
Desarrollar Construir Utilizar
Especificación Prototipo Prototipo
Abstracta
NO
Entregar Prototipo apto?
Sistema SÍ
27. 27
Ingeniería de requerimientos
Construcción de Prototipos Evolutivos: Ventajas...
Obtención y Análisis de Requisitos
• Entrega acelerada del sistema: se favorece la
entrega y la usabilidad, en lugar de privilegiar
detalles de funcionalidad y el mantenimiento del
software.
• Compromiso del usuario con el sistema.
28. 28
Ingeniería de requerimientos
Construcción de Prototipos Evolutivos: se parece al RAD
en:
Obtención y Análisis de Requisitos
• Los procesos de especificación, diseño e
implementación se entrelazan.
• Se utilizan técnicas de desarrollo rápido de
sistemas, como herramientas CASE y lenguajes de
cuarta generación.
• El sistema se desarrolla en una serie de
incrementos.
• Generalmente, las interfaces del sistema de
desarrollan usando un sistema de desarrollo
interactivo.
29. 29
Ingeniería de requerimientos
Construcción de Prototipos Evolutivos: se parece al RAD
en:
Obtención y Análisis de Requisitos
• Generalmente, las interfaces del sistema de
desarrollan usando un sistema de desarrollo
interactivo.
30. 30
Ingeniería de requerimientos
Construcción de Prototipos Evolutivos: problemas...
Obtención y Análisis de Requisitos
• De Administración: evolución rápida del sistema no
hace costeable producir una gran cantidad de
documentación del sistema.
• De Mantenimiento: los cambios continuos tienden a
corrom-per la estructura del prototipo.
• Contractuales: los contratos se basan en una
especificación del sistema; si éste no existe, es
difícil diseñarlos.
31. 31
Ingeniería de requerimientos
Construcción de Prototipos Evolutivos:
Obtención y Análisis de Requisitos
• Los problemas anteriores se solucionan usando un
proceso de desarrollo incremental.
• Este tipo de proceso es más manejable puesto que
sigue los estándares normales del proceso de
software.
32. 32
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
• Este enfoque extiende el proceso de análisis de
requisitos con la intención de reducir los costos del
ciclo de vidacompleto.
• La función principal del prototipo es clarificar los
requisitos y proveer información adicional a los
administradores para valorar los riesgos del
proceso.
33. 33
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
• Después de la evaluación, el prototipo se desecha;
no se usa como base para el desarrollo posterior.
34. 34
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
• Este esquema de trabajo es común para los
sistemas de hardware para validar el diseño.
• Un prototipo de software desechable normalmente
no se usa para validar el diseño, sino que ayuda a
desarrollar los requisitos del sistema.
• Después de la evaluación, el prototipo se desecha;
no se usa como base para el desarrollo posterior.
35. 35
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
Requisitos Desarrollar Evaluar Especificar
Generales Prototipo Prototipo Sistema
Componentes
Reusables
Desarrollar Validar Sistema de
Software Sistema Software
36. 36
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
• El prototipo se desarrolla a partir de un bosquejo de
la especificación...
• Y se modifica hasta que el cliente esté satisfecho
con su funcionalidad.
• Se entrega para experimentar con él...
37. 37
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
• Más que derivar una especificación a partir del
prototipo, algunas veces se sugiere que la
especificación del sistema sea la implementación
del mismo prototipo.
• Este enfoque presenta varios problemas...
38. 38
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
Obtención y Análisis de Requisitos
• Las características importantes se excluyen del
prototipo para simplificar la implementación rápida
(por ejemplo, las funciones críticas de seguridad).
• Una implementación no tiene valor legal para el
contrato entre el cliente y el contratista.
• En una implementación del prototipo, no se pueden
probar de manera adecuada los requisitos no
funcionales, como los de confiabilidad, robustez y
seguridad.
39. 39
Ingeniería de requerimientos
Construcción de Prototipos Desechables:
problemas...
Obtención y Análisis de Requisitos
• El modo de utilizarlo no corresponde con la forma
de cómo se usa el sistema final entregado.
• Algunas veces, se presiona a los desarrolladores
para que entreguen los prototipos desechables
para su utilización, en particular cuando existen
retrasos en la entrega de la versión final del
software…no es conveniente porque:
40. 40
Ingeniería de requerimientos
Construcción de Prototipos Desechables: problemas...
Obtención y Análisis de Requisitos
– Puede ser imposbile afinar el prototipo para que cumpla
con los requisitos no funcionales.
– El cambio rápido durante el desarrollo significa que no se
documente el prototipo.
– Los cambios hechos durante el desarrollo del prototipo
pueden degradar la estructura del sistema.
– Los estándares de calidad organizacionales,
normalmente, se relajan para el desarrollo del prototipo.
41. 41
Ingeniería de requerimientos
Técnicas de Construcción de Prototipos:
Obtención y Análisis de Requisitos
• Son técnicas de desarrollo que hacen énfasis en la
velocidad de entrega más que en otras
características del sistema, como el desempeño,
mantenimiento o confiabilidad.
• Existen tres técnicas prácticas de desarrollo rápido
para el desarrollo de prototipos de carácter
industrial:
– Desarrollo con lenguajes dinámicos de alto nivel.
– Programación de bases de datos.
– Ensamblaje de componentes y aplicaciones.
42. 42
Ingeniería de requerimientos
Desarrollo con Lenguajes Dinámicos de Alto
Nivel:
Obtención y Análisis de Requisitos
• Son poderosos recursos de administración de
datos en tiempo de ejecución.
• Ejemplos: Lisp, Prolog, Smalltalk, Java.
43. 43
Ingeniería de requerimientos
Desarrollo con Lenguajes Dinámicos de Alto Nivel:
Obtención y Análisis de Requisitos
• Preguntas:
– ¿Cuál es el dominio del problema?: sistema interactivo,
procesamiento simbólico, lenguaje natural.
– ¿Cuál es la interacción del usuario requerida?: Java se
integra bien con los navegadores Web, Prolog se adecúa
bien para las interfaces basadas en texto.
– ¿Cuál es el entorno de ayuda provista por el lenguaje?.
44. 44
Ingeniería de requerimientos
Programación de Bases de Datos:
Obtención y Análisis de Requisitos
• La mayoría de las aplicaciones de negocios
implican la manipulación de una base de datos, y la
producción de salidas que involucran organizar y
dar formato a esos datos.
• Para esto, la mayoría de los SABD comerciales
permiten su programación a través de un lenguaje
especializado, el que contiene conocimiento de la
base de datos y maneja las operaciones necesarias
para su manipulación.
45. 45
Ingeniería de requerimientos
Programación de Bases de Datos:
Obtención y Análisis de Requisitos
• Se denomina “lenguaje de cuarta generación”
(4GL) al lenguaje de programación de bases de
datos y al entorno en que se desarrolla.
• En general, permiten la actualización de la base de
datos y la generación de informes a partir de la
información de la misma.
46. 46
Ingeniería de requerimientos
Programación de Bases de Datos: componentes de un
4GL...
Obtención y Análisis de Requisitos
• Un lenguaje de consulta de bases de datos, por lo
general SQL: ingresado de forma directa o
generado automáticamente a partir de los
formularios.
• Un generador de interfaces que se utiliza para
crear formula-rios de ingreso y despliegue de
datos.
• Un generador de pantallas para apoyar la definición
de las interfaces con el usuario (en especial,
basadas en el web).
47. 47
Ingeniería de requerimientos
Programación de Bases de Datos: componentes
de un 4GL...
Obtención y Análisis de Requisitos
• Un generador de informes para el análisis y
manipulación de la información numérica.
• Una hoja de cálculo para el análisis y manipulación
de información numérica.
48. 48
Ingeniería de requerimientos
Programación de Bases de Datos: y prototipos...
Obtención y Análisis de Requisitos
• La estructuración de las aplicaciones que imponen
las herramientas CASE y la documentación
asociada significa que los prototipos evolutivos
desarrollados bajo este enfoque deben ser más
mantenibles que los sistemas desarrollados de
forma manual.
49. 49
Ingeniería de requerimientos
Programación de Bases de Datos: desventajas...
Obtención y Análisis de Requisitos
• Los programas generados tienden a ser más
lentos, y requerir de más memoria.
• Aunque claramente reducen los costos de
desarrollo del sistema, no es del todo claro se
reduzcan los costos del ciclo de vida
completo…pueden ser altos por la falta de
estructuración, dificultad de la mantención y falta de
estandari-zación.
50. 50
Ingeniería de requerimientos
Ensamblaje de Componentes y Aplicaciones:
Obtención y Análisis de Requisitos
• Es posible reducir el tiempo requerido para
desarrollar un sistema, si muchas partes de éste se
pueden reusar más que diseñar e implementar.
• Los prototipos se pueden construir más rápido si se
tiene un conjunto de componentes reutilizables y
algunos mecanismos para construir estos
componentes en sistemas.
• El mecanismo de composición debe incluir recursos
de control y medios para la comunicación entre los
componentes.
51. 51
Ingeniería de requerimientos
Ensamblaje de Componentes y Aplicaciones:
Obtención y Análisis de Requisitos
Componentes Marco de Trabajo Prototipo
Reusables de de Composición Ejecutable
Software de Componentes
Código de Control
e Integración
52. 52
Ingeniería de requerimientos
Ensamblaje de Componentes y Aplicaciones:
Obtención y Análisis de Requisitos
• El prototipo comprende el desarrollo de una
especificación tomando en cuenta qué
componentes reutilizables están disponibles.
• El desarrollo del prototipo comprende de dos
niveles:
– El nivel de aplicación en el que la aplicación completa se
integra con el prototipo, de manera que su funcionalidad
pueda ser compartida.
– El nivel de componente en el que los componentes
individuales se integran dentro de un marco de trabajo
estándar para implementar el sistema.
53. 53
Ingeniería de requerimientos
Ensamblaje de Componentes y Aplicaciones:
Obtención y Análisis de Requisitos
• La reutilización de aplicaciones da acceso a toda la
funcionali-dad de una aplicación.
• Una metáfora de composición de documentos es
de mucha ayuda para comprender este enfoque de
desarrollo de prototipos.
54. 54
Ingeniería de requerimientos
Construcción de Prototipo de la Interfaz de
Usuario:
Obtención y Análisis de Requisitos
• En la actualidad, las GUI se han convertido en la
norma para los sistemas interactivos.
• El esfuerzo comprendido en la especificación, el
diseño y la implementación de una interfaz de
usuario representa una parte significativa de los
costos de desarrollo de la aplicación.
55. 55
Ingeniería de requerimientos
Construcción de Prototipo de la Interfaz de
Usuario:
Obtención y Análisis de Requisitos
• El usuario debe tomar parte en el proceso de
diseño de la interfaz.
• Esta forma de trabajo conduce a un enfoque
denominado “diseño centrado en el usuario”, que
depende de la construcción del prototipo de la
interfaz y de la participación del usuario en el
proceso de diseño de la interfaz.
56. 56
Ingeniería de requerimientos
Construcción de Prototipo de la Interfaz de
Usuario:
Obtención y Análisis de Requisitos
• Desde el punto de vista de la ingeniería de
software, la construcción de prototipos es una parte
esencial del proceso de diseño de la interfaz.
• La construcción de prototipos evolutivos con la
participación del usuario final es la única forma
sensible para desarrollar interfaces gráficas de
usuario para los sistemas de software.
57. 57
Ingeniería de requerimientos
Construcción de Prototipo de la Interfaz de
Usuario:
Obtención y Análisis de Requisitos
• Los generadores de interfaces son sistemas de
diseño de ventanas gráficas en los que los
componentes de la interfaz se seleccionan de un
menú y se colocan en la interfaz.
• Dichos generadores crean un programa bien
estructurado generado a partir de la especificación
de la interfaz.
58. 58
Ingeniería de requerimientos
Construcción de Prototipo de la Interfaz de
Usuario: Web.
Obtención y Análisis de Requisitos
• En el caso de interfaces para el Web, el uso de
html es una notación comprensible para la
especificación de la interfaz de usuario.
• Botones, campos, formularios y tablas se pueden
incluir en las páginas Web, así como en objetos
multimedios que permiten el acceso a sonidos,
video y pantallas de realidad virtual.
59. 59
Ingeniería de requerimientos
Construcción de Prototipo de la Interfaz de
Usuario: Web.
Obtención y Análisis de Requisitos
• Es posible construir un prototipo de las interfaces
de usuario basadas en Web usando un editor de
sitios Web que es, esencialmente, un constructor
de interfaces de usuario.