Upload
walo-xes
View
235
Download
0
Embed Size (px)
Citation preview
8/20/2019 definicion de ingenieria de requerimientos
1/19
INGENIERÍA DEREQUERIMIENTOS
8/20/2019 definicion de ingenieria de requerimientos
2/19
ingeniería de requerimientos
2 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
introducción
errores en la especificación de requerimientos
los requerimientos precisan comunicación entre desarrolladores,clientes y usuarios:
errores: se descubren tarde y son caros de corregir a posteriori
falta de funcionalidad
funcionalidad mal especificadainterfaces confusas o inútiles
funcionalidad obsoleta
los analistas
construyen un modelo del dominio de la aplicación observando a losusuarios en su entorno
seleccionan una representación comprensible para clientes y usuarios(por ejemplo, casos de uso)
validan el modelo del dominio construyendo prototipos de la interfazy buscando retroalimentación con los usuarios y clientes.
8/20/2019 definicion de ingenieria de requerimientos
3/19
ingeniería de requerimientos
3 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
introducción
la obtención de requerimientosidentificación de un área del problema
definición de un sistema que soluciona el problema y sirvecomo contrato con el cliente: especificación del sistema
en el análisis se estructura y formaliza la especificación para
producir el modelo de análisis.especificación vs modelo de análisis:
representan la misma información
difieren en el lenguaje y la notaciónespecificación: lenguaje naturalmodelo de análisis: notación formal o semiformal
sirven de elemento de comunicaciónespecificación: comunicación con cliente y usuariosmodelo de análisis: comunicación entre desarrolladores
8/20/2019 definicion de ingenieria de requerimientos
4/19
ingeniería de requerimientos
4 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
introducción
actividades de la obtención de requerimientosidentificación de actores
identificación de escenarios
identificación de casos de uso
refinamiento de casos de uso
identificación de relaciones entre casos de uso
identificación de requerimientos no funcionales
Ingeniería derequerimientos
Análisis
Especificacióndel sistema
:Modelo
Modelo deanálisis:Modelo
8/20/2019 definicion de ingenieria de requerimientos
5/19
ingeniería de requerimientos
5 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
comunicación con el cliente
sistema de entrevistas (preguntas-respuestas)
adecuado para las primeras tomas de contactoconveniente comenzar por preguntas de contexto libre, para entender elproblema, personas interesadas en la solución, naturaleza de ésta, yefectividad de la reunión
preguntas centradas en el cliente, objetivos globales y beneficios¿quién solicita el trabajo?¿quién utilizará la solución?
¿cuál será el beneficio económico de una buena solución?¿existen otras alternativas a esta solución?
preguntas sobre el problema y la solución¿qué entiende el cliente por una solución “correcta”?¿qué problemas afrontará esta solución?¿en qué entorno se va a implantar la solución?¿existen restricciones o aspectos de rendimiento importantes?
preguntas sobre la efectividad de la reunión¿es usted la persona adecuada para responder a estaspreguntas? ¿Sus respuestas son “oficiales”?¿son relevantes mis preguntas para su problema?¿hay alguien más que pueda proporcionar informaciónadicional?¿hay algo más que debería preguntar?
8/20/2019 definicion de ingenieria de requerimientos
6/19
ingeniería de requerimientos
6 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
comunicación con el cliente
sistema de entrevistas (preguntas-respuestas)
problemas de las entrevistasmalentendidosomisión de información
mala relación de trabajo (“nosotros-ellos”)...
8/20/2019 definicion de ingenieria de requerimientos
7/19
ingeniería de requerimientos
7 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
comunicación con el cliente
diseño conjunto deaplicaciones (JAD, “jointapplication design”)
desarrollado por IBM a finales delos setenta
una sesión de trabajo con
participación de todos losinvolucrados
resultado de la sesión: documentode especificación que incluyedefiniciones de elementos de datos,flujos de trabajo y pantallas de
interfazrepresenta un acuerdo entreusuarios, clientes y desarrolladoresy minimiza los cambios posterioresde requerimientos
Definición delproyecto
Guía de definiciónadministrativa
Investigación
Agenda desesión
Especificaciónpreliminar
Preparación
Documentode trabajo
Guión de lasesión
Sesión
Formulariossecretario
Preparacióndocumento
final
Documentofinal
8/20/2019 definicion de ingenieria de requerimientos
8/19
ingeniería de requerimientos
8 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
comunicación con el cliente
actividades
definición del proyecto: el coordinador se entrevista congerentes y clientes para determinar objetivos y alcance delproyecto, creando la “guía de definición administrativa”.
investigación: entrevista con usuarios, recopilación deinformación del dominio, descripción de flujos de trabajo yasuntos a tratar en la reunión. Se crea la “agenda de
sesión” y la “especificación preliminar”.preparación: el coordinador crea un “documento de
trabajo” o primer borrador del documento final.
sesión: el coordinador guía al equipo para crear laespecificación del sistema en una reunión que puede durarvarios días. Se definen los flujos de trabajo, elementos de
datos, pantallas, informes,... Las decisiones se documentanen unos formularios.
documento final: el coordinador prepara el “documentofinal” usando los “formularios” y se distribuye a losasistentes para su revisión. Reunión para discutir revisionesy finalizar el documento.
8/20/2019 definicion de ingenieria de requerimientos
9/19
ingeniería de requerimientos
9 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requisitos
modelo FURPS+ de requisitos:
Funcionalidad (Functional): características, capacidades yseguridad.
Facilidad de uso (Usability ): factores humanos, ayuda,documentación.
Fiabilidad (Reliability ): frecuencia de fallos, capacidad derecuperación de un fallo y grado de previsión.
Rendimiento (Performance): tiempos de respuesta,productividad, precisión, disponibilidad, uso de los recursos.
Soporte (Supportability ): adaptabilidad, facilidad demantenimiento, internacionalización, configurabilidad.
El “+” indica requisitos adicionales como:
Implementación: limitación de recursos, lenguajes y
herramientas, hardware,…Interfaz: restricciones referentes a la interacción con sistemasexternos
Operaciones: gestión del sistema en su puesta en marchaEmpaquetamientoLegales: licencias,…
8/20/2019 definicion de ingenieria de requerimientos
10/19
ingeniería de requerimientos
10 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requisitos
Otra clasificación:Requisitos funcionales
Requisitos no funcionales
Requisitos de implementación
8/20/2019 definicion de ingenieria de requerimientos
11/19
ingeniería de requerimientos
11 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
requerimientos funcionales
describen las interacciones entre el sistema y su entorno(usuarios u otros sistemas), sin tener en cuenta cuestionesde implementación.
se estudian y representan en el Modelo de Casos de Uso
8/20/2019 definicion de ingenieria de requerimientos
12/19
ingeniería de requerimientos
12 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
Requerimientos funcionales de GeHoWeb.
GeHoWeb es un sistema para la gestión de horarios de la Escuela Superior deIngeniería Informática (ESEI). El administrador del sistema, que se tendrá queidentificar al acceder al mismo, es el encargado de introducir las asignaturas que seimparten en cada curso, así como los datos del encargo de docencia anual (grupos deteoría y práctica de cada asignatura).
Además, el sistema permite introducir los datos de las aulas de teoría (ubicación yaforo) y de prácticas (ubicación, sistemas operativos, software,...).
La configuración del horario se lleva a cabo directamente sobre una plantilla horariasemanal, en la que cada casilla representará una hora en un determinado día de lasemana. Cuando el administrador pulsa esa casilla se mostrarán las asignaturas delcurso que se esté configurando en ese momento. Una vez escogida las asignaturas semostrarán los grupos de teoría y práctica a los que todavía no se les ha asignado un
horario. Al escoger un grupo se muestran las aulas disponibles (si es un grupo deteoría) o los laboratorios que cumplen las restricciones de sistemas operativosestablecidas para esa materia y que no están ocupados a esa hora.
El sistema podrá ser consultado por cualquier usuario, que podrá consultar el horario deuna asignatura, un curso, o de un aula o laboratorio concretos.
8/20/2019 definicion de ingenieria de requerimientos
13/19
ingeniería de requerimientos
13 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
Gestionar asignaturas
Gestionar profesores
Introducir encargo de docencia
Gestionar aulas y laboratorios
Administrador
Gestionar horarios
Usuario externo
Consultar horarios
Modelo de Casos de Uso deGehoweb (gestión de horarios)
8/20/2019 definicion de ingenieria de requerimientos
14/19
ingeniería de requerimientos
14 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
requerimientos no funcionales
describen aspectos del sistema visibles por el usuario que nose relacionan en forma directa con el comportamientofuncional del sistema.
se recogen en los casos de uso con los que estánrelacionados, o en la Especificación Complementaria.
en el Glosario se agrupan y clarifican los términos que seutilizan en los requisitos
ejemplos: restricciones en el tiempo de respuesta, precisiónde los resultados,...
8/20/2019 definicion de ingenieria de requerimientos
15/19
ingeniería de requerimientos
15 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
Requerimientos no funcionales de GeHoWeb.
La tasa de disponiblidad de Gehoweb debe ser de un 99%.
El sistema debe tener una interfaz de uso intuitiva y sencilla,complementada con un buen sistema de ayuda (la administración puede
recaer en personal con poca experiencia en el uso de aplicacionesinformáticas).
El sistema debe disponer de una documentación fácilmente actualizableque permita realizar operaciones de mantenimiento con el menor esfuerzo posible.
8/20/2019 definicion de ingenieria de requerimientos
16/19
ingeniería de requerimientos
16 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
requerimientosno funcionales
requerimientosdel producto
requerimientosorganizacionales
requerimientosexternos
eficiencia fiabilidadusabilidad portabilidad
rendimiento espacio entrega implementación estándares
interoperabilidad éticos legislativos
privacidad seguridad
fuente: Ingeniería de Software, I. Sommerville, p. 102
8/20/2019 definicion de ingenieria de requerimientos
17/19
ingeniería de requerimientos
17 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
tipos de requerimientos
requerimientos de implementaciónson necesidades del cliente que restringen laimplementación (por ejemplo, lenguaje deprogramación, plataforma hardware, servidor depáginas web, libro de estilo,...)
Requerimientos de implementación de GeHoWeb.
Con el fin de ajustarse a la arquitectura de la intranet actual de la ESEI,GeHoWeb debe desarrollarse como un servicio web, accesible desde cualquier navegador Explorer 5.0, Netscape 5.0 o superior, y estará instalado en unservidor Windows 2000, actuando como servidor de páginas web InternetInformation Server. La base de datos a utilizar será SQL Server 7.0.
La interfaz de usuario debe de ajustarse a las características de la web de laESEI, dentro de la cual estará integrado Gehoweb.
Además, en el desarrollo de GeHoWeb deberán tenerse en cuenta las directricesde política de seguridad recomendadas por el Grupo de Seguridad de la ESEI.
8/20/2019 definicion de ingenieria de requerimientos
18/19
ingeniería de requerimientos
18 / 88Ing. Williams A. Muñoz RoblesUNDAC – Escuela de sistemas y Computación
Ingeniería de Sistemas y ComputacionPROGRAMACION DE SISTEMAS
características de la especificación de requerimientos
la validación de requerimientos es continua
y muy importante, para asegurarse de quela especificación es:correcta: la especificación debe representar la visiónque el cliente tiene del sistema
completa: describe todos los escenarios posibles,incluyendo el comportamiento excepcional
consistente: no se contradice a sí misma
no ambigua: no es posible interpretar aspectos de laespecificación de dos o más formas diferentes
8/20/2019 definicion de ingenieria de requerimientos
19/19
ingeniería de requerimientos
Ing. Williams A. Muñoz Roblesl d ó
Ingeniería de Sistemas y Computacion
características de la especificación de requerimientos
realista: el sistema se puede implementar con las
restricciones documentadasverificable: una vez que se construye el sistema, sepuede diseñar una prueba repetible que demuestreque se satisfacen los requerimientos
ejemplos de requerimientos no verificables:
“el producto debe tener una buena interfaz deusuario” “el producto debe responder en un tiemporazonable”
“el sistema debe ser seguro”
rastreable: la especificación se debe organizar de talforma que cada función del sistema se pueda rastrearhasta su conjunto de requerimientos correspondiente.Facilita las pruebas y la validación del diseño