definicion de ingenieria de requerimientos

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