37
Ingeniería de Software Unidad 1 Análisis de Requerimientos Sergio Sánchez Rios. Ingeniero en Informática Licenciado en Informática

Análisis de Requerimientos_1.pdf

Embed Size (px)

Citation preview

  • Ingeniera de Software

    Unidad 1

    Anlisis de Requerimientos

    Sergio Snchez Rios.

    Ingeniero en Informtica Licenciado en Informtica

  • Introduccin

    Cada uno de los modelos del proceso de desarrollo delsoftware propuestos, incluye actividades que apuntan ala captura de requerimientos.

    Por lo tanto, la comprensin del propsito y la funcindel sistema comienza con un atento examen de losrequerimientos.

  • Definicin de Requerimiento

    Cuando el Cliente solicita que se desarrolle un sistematiene algunas nociones de lo que debe hacer.

    Por est razn cada sistema basado en software tieneun propsito, usualmente expresado con algo que elsistema debe hacer.

    Un Requerimiento es una caracterstica delsistema o una descripcin de algo que el sistemaes capaz de hacer con el objeto de satisfacer elpropsito del sistema.

  • Definicin de Requerimiento

    Es decir, los requerimientos son lo que losclientes/usuarios esperan que haga el sistema.

    Los analistas, por lo tanto, deben entender el problemade los usuarios en SU cultura y con SU lenguaje yconstruir el sistema que resuelve sus necesidades.

    En si el objetivo del anlisis de requerimientos esresolver el problema.

  • Requerimientos v/s Diseo

    Los requerimientos definen el Qu (el problema) delsistema.

    El Diseo define el Cmo (la solucin).

    Durante el anlisis de requerimientos no se considerandescripciones especificas de la implementacin comorequerimientos, a menos que el cliente lo pida (Ej.:bases de datos especificas, lenguajes de programacin,etc.).

    Los requerimientos, por lo tanto deben centrarse en elcliente/usuario y el problema.

  • Importancia de los requerimientos

    En 1994 el Standish Group hizo un estudio sobre 350compaas y cerca de 8000 proyectos de software paraaveriguar los avances de sus proyectos. Los resultadosfueron desencantadores:

    El 31% de los proyectos de software fueron canceladosantes de tiempo (2480 proyectos).

    En las grandes compaas, slo el 9% de los proyectos fueentregado en el termino de tiempo y dentro del costo quese presupuestaron; el 16% satisfizo estos requerimientosen las compaas pequeas.

  • En 1995 Standish pidi a los participantes queespecificarn las causas. Los resultados fueron lossiguientes:

    Requerimientos incompletos (13,1%).

    Falta de compromiso del usuario (12,4%).

    Falta de recursos (10,6%).

    Expectativas no realistas (9,9%).

    Falta de soporte ejecutivo (9,3%).

    Requerimientos y especificaciones cambiantes (8,7%).

    Falta de planeamiento (8,1%).

    Fin de la necesidad del sistema (7,5%).

    Importancia de los requerimientos

  • Documentos de Requerimientos

    Existen dos documentos que emanan del anlisis derequerimientos:

    Definicin de requerimientos

    Es un documento que debe escribirse en trminosque el cliente pueda entender. Es decir, estedocumento es un listado completo de todas las cosasque el cliente espera que haga el sistema propuesto.

    Este documento es escrito en forma conjunta por elcliente y el desarrollador.

  • Documentos de Requerimientos

    Especificacin de requerimientos

    Documento que reitera la definicin de los requerimientosen los trminos tcnicos apropiados para el desarrolladordel diseo de un sistema.

    Es la contrapartida tcnica al documento de definicin derequerimientos y es escrito por los analistas derequerimientos.

    A veces un nico documento puede servir para ambospropsitos, lo que lleva a un entendimiento comn entreclientes, analistas de requerimientos y diseadores.

    Pero a menudo se necesitan ambos documentos.

  • Documentos de Requerimientos

    Es muy importante, que al usar ambos documentosexista un correspondencia directa entre cadarequerimiento del documento de definicin y aquellosdocumentos en la especificacin.

    Esto para que la visin del cliente este unida a la de losdesarrolladores (esto se logra gracias a la gestin deconfiguracin).

  • Clasificacin de Requerimientos

    Segn el Tipo los requerimientos se clasifican en:

    Requerimientos funcionales.

    Requerimientos no funcionales.

    Requerimientos del Dominio.

    Segn a quien van dirigidos se clasifican en:

    Requerimientos del Usuario.

    Requerimientos del Sistema.

  • Clasificacin de Requerimientos

    Requerimientos funcionales

    Describen la funcionalidad o los servicios que se esperaque el sistema proveer. Dependen del tipo desoftware, del sistema que se desarrollo y de losposibles usuarios.

    Cuando se expresan como Requerimientos delusuarios, se definen de forma general.

    Cuando se expresan como requerimiento del sistemadescriben con detalle la funcin de ste, sus entradasy salidas, excepciones, etc.

  • Clasificacin de Requerimientos

    Requerimientos no funcionales

    Son los requerimientos que no se refieren directamentea las funciones especficas que entrega el sistema, sino alas propiedades emergentes de ste, como la fiabilidad, larespuesta en el tiempo y la capacidad de almacenamiento.

    Muchos requerimientos no funcionales se refieren al sistemacomo un todo ms que a rasgos particulares del mismo.

    A menudo son mas crticos que los funcionales. Mientras queun incumplimiento de un requerimiento funcional degrada elsistema, el de un requerimiento no funcional del sistema loinutiliza.

  • Clasificacin de Requerimientos

    Requerimientos no funcionales

    Los requerimientos no funcionales se clasifican segn suimplicancia:

    Del producto: especifican comportamiento del producto. Ej.:de desempeo en la rapidez de ejecucin del sistema, cuantamemoria se requiere; los de fiabilidad que fijan la tasa de fallaspara el sistema sea aceptable, los de portabilidad y deusabilidad.

    Organizacionales: se derivan de las polticas yprocedimientos existentes en la organizacin del cliente y deldesarrollador. Ej.: estndares en los procesos que debenutilizarse, requerimientos de implementacin como loslenguajes de programacin o el mtodo de diseo a utilizar.

  • Clasificacin de Requerimientos

    Requerimientos no funcionales

    Externos: cubre todos los requerimientos que se derivande los factores externos al sistema y de su proceso dedesarrollo. Ej.: requerimientos de interoperabilidad,requerimientos legales, requerimientos ticos.

    Un problema comn con los requerimientos no funcionales esque algunas veces son difciles de verificar.

    De forma ideal los requerimientos no funcionales se debenexpresar de manera cuantitativa utilizando mtricas que sepuedan probar de forma objetiva. En la prctica, es difcil. Elcosto es muy alto.

  • Clasificacin de Requerimientos

    Requerimientos del dominio

    Se derivan del dominio del sistema ms que de lasnecesidades especificas del usuario.

    Son importantes debido a que a menudo reflejan losfundamentos del dominio de la aplicacin. Si estos no sesatisfacen es imposible que el sistema trabaje de formasatisfactoria.

    Estos se expresan utilizando un lenguaje especifico deldominio de la aplicacin que a menudo es difcil decomprender. Ej.: operacin para calcular desaceleracindel tren, para un sistema de control de trenes.

  • Caractersticas de los requerimientos

    Es importante sealar que los requerimientos puedenservir a tres propsitos:

    Permitir que el desarrollador explique como haentendido lo que el cliente pretende del sistema.

    Indican a los diseadores que funcionalidades ycaractersticas va a tener el sistema resultante.

    Los requerimientos indican al equipo de pruebas quedemostraciones llevar a cabo para convencer al cliente deque el sistema que se le entrega es de hecho lo quehaba ordenado.

  • Caractersticas de los requerimientos

    Los requerimientos deben ser de alta calidad para la buenacomprensin de clientes y desarrolladores.

    Con este fin debe comprobarse que los requerimientosposean las caractersticas que se desprenden de lassiguientes preguntas:

    los requerimientos son correctos?. Cliente ydesarrollador deben revisarlos para asegurarse que notienen errores.

    los requerimientos son consistentes?. Es decir, losrequerimientos planteados son no conflictivos niambiguos?. Dos requerimientos son inconsistentes cuandoes imposible satisfacerlos simultneamente.

  • Caractersticas de los requerimientos

    los requerimientos son completos?. El conjunto derequerimientos es completo si todos los estados posibles,cambios de estado, entradas, productos, restricciones estndescritos en alguno de los requerimientos.

    los requerimientos son realistas?.El sistema puedehacer realmente lo que el cliente esta pidiendo que haga?.Todos los requerimientos deben ser revisados para asegurarseque son posibles.

    describe cada requerimiento algo que es necesariopara el cliente?. Los requerimientos deben ser revisados paraconservar slo aquellos que inciden directamente en laresolucin del problema del cliente.

    los requerimientos son verificables?. Debemos prepararpruebas que demuestren que se han cumplido losrequerimientos.

  • Caractersticas de los requerimientos

    los requerimientos son rastreables?. Se puederastrear cada funcin del sistema hasta el conjunto derequerimientos que la establece?. Resulta fcil encontrarel conjunto de requerimientos que coinciden a un aspectoespecifico del sistema?.

  • Fuentes de Requerimientos

    Requerimientos

    Deseos y necesidad

    De los interesados

    Modelo del Dominio

    Modelo de la situacin actual

    Requerimientos

    Reutilizables

    Tipo de Requerimientos recomendados

    Documentos existentes

    Organizacin y sistemas actuales

    Plantilla de Requerimientos

    Biblioteca de Reutilizacin

    Robertson y Robertson 1999

  • Proceso: Ingeniera de Requerimientos

    La Ingeniera de Requerimientos (IR) es un procesoque comprende todas las actividades requeridas paracrear y mantener un documento de requerimientos delsistema.

  • Proceso: Ingeniera de Requerimientos

    Estudio de factibilidad

    Obtencin y Anlisis de

    Requerimientos

    Especificacin de

    Requerimientos

    Validacin de

    Requerimientos

    Informede

    factibilidad

    Actividades

    Especificacin de

    Requerimientos

    Documento de

    Requerimientos

    Modelo del Sistema

    Artefactos

  • Proceso: Ingeniera de Requerimientos

    Estudio de factibilidad

    Obtencin y Anlisis de

    Requerimientos

    Especificacin de

    Requerimientos

    Validacin de

    Requerimientos

    Informede

    factibilidad

    Actividades

    Especificacin de

    Requerimientos

    Documento de

    Requerimientos

    Modelo del Sistema

    Artefactos

  • Proceso: Ingeniera de RequerimientosEstudio de Factibilidad

    La entrada de este es una descripcin resumida delsistema y como se utiliza dentro de una organizacin.

    El resultado del estudio es un informe que recomiendasi es conveniente llevar a cabo la ingeniera derequerimientos y el proceso de desarrollo del sistema.Adems permite proponer cambios al alcance,presupuesto, calendarizacin, etc.

    Este es un estudio corto para resolver si es posible yconveniente construir el sistema con la tecnologaexistente, las restricciones de costo y tiempo, etc.

  • Proceso: Ingeniera de Requerimientos

    Estudio de factibilidad

    Obtencin y Anlisis de

    Requerimientos

    Especificacin de

    Requerimientos

    Validacin de

    Requerimientos

    Informede

    factibilidad

    Actividades

    Especificacin de

    Requerimientos

    Documento de

    Requerimientos

    Modelo del Sistema

    Artefactos

  • Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos

    Se trabaja en conjunto con los usuarios y los clientes.

    Problemas Comunes:

    No saben lo que quieren del sistema , slo en trminosgenerales, no conocen el costo de sus peticiones.

    Los requerimientos estn en sus trminos y conconocimientos implcitos de su propio trabajo.

    Distintos usuarios tienen distintos requerimientos, sedeben encontrar todas las fuentes.

    Influyen factores polticos.

    La importancia de los requerimientos varia en el tiempo.

    Aparecen nuevos requerimientos.

  • Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos

    Proceso de Obtencin y Anlisis de requerimientos.

    Comprensin del dominio

    Recoleccin de Requerimientos Clasificacin

    Resolucin deConflictos

    PriorizacinVerificacin

    de Requerimientos

  • Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos

    Fases:

    1. Comprensin del Dominio: el analista debe desarrollar su

    propia comprensin del dominio de la aplicacin. Ej.: Si

    fuera un sistema para un supermercado este debe evaluar

    como funciona un supermercado.

    2. Recoleccin de Requerimientos: ste es el proceso de

    interactuar con los clientes y usuarios para descubrir sus

    requerimientos . Aqu se desarrolla la compresin del

    dominio.

    3. Clasificacin: considera la recoleccin no estructurada de

    requerimientos y los organiza en grupos coherentes.

  • Proceso: Ingeniera de RequerimientosObtencin y Anlisis de requerimientos

    4.Resolucin de conflictos: de forma inevitable, cuandoexisten muchos stakeholders involucrados, los requerimientosestarn en conflicto. Est actividad se refiere a resolver estosconflictos.

    5.Priorizacin: Descubrir la importancia de cadarequerimiento.

    Es til separar los requerimientos en tres categoras:

    Requerimientos que deben ser absolutamente satisfechos.

    Requerimientos que son muy deseables pero noindispensables.

    Requerimientos que son posibles, pero que podran eliminarse.

    6.Verificacin de Requerimientos: Los requerimientos severifican para descubrir si estn completos, son consistentes yacorde con lo que realmente quieren los stakeholders.

    No existe un enfoque perfecto ni universal aplicable a laobtencin y anlisis de requerimientos .

  • Proceso: Ingeniera de Requerimientos

    Estudio de factibilidad

    Obtencin y Anlisis de

    Requerimientos

    Especificacin de

    Requerimientos

    Validacin de

    Requerimientos

    Informede

    factibilidad

    Actividades

    Especificacin de

    Requerimientos

    Documento de

    Requerimientos

    Modelo del Sistema

    Artefactos

  • Proceso: Ingeniera de RequerimientosEspecificacin de Requerimientos

    Lenguaje Natural

    Comprensible para el Cliente/Usuario.

    Ambiguo (glosario).

    Poca legibilidad (plantilla, formateo del texto).

    Difcil de tratar (Verificar correctitud, consistencia,completitud).

    Notaciones Especiales (ms formales)

    Poca o ninguna ambigedad.

    Facilita tratamiento.

    Necesidad de entrenamiento en la notacin.

    Dificultades de comprensin por Cliente/Usuario

  • Proceso: Ingeniera de RequerimientosEspecificacin de Requerimientos

    Notaciones Especiales.

    Grficas vs. Basadas en texto

    Estticas vs. Dinmicas

    Descripciones Estticas.

    Se especifican entidades y sus atributos, losrequerimientos se pueden ver como las relaciones entrelas entidades.

    No describe como cambian las relaciones con el tiempo

    Descripciones Dinmicas

    Especifican estados y las transiciones entre estados enel tiempo.

  • Proceso: Ingeniera de Requerimientos

    Estudio de factibilidad

    Obtencin y Anlisis de

    Requerimientos

    Especificacin de

    Requerimientos

    Validacin de

    Requerimientos

    Informede

    factibilidad

    Actividades

    Especificacin de

    Requerimientos

    Documento de

    Requerimientos

    Modelo del Sistema

    Artefactos

  • Proceso: Ingeniera de RequerimientosValidacin de Requerimientos

    Proceso por el cual se determina si la especificacin esconsistente con las necesidades del cliente.

    Incluye verificar trazabilidad entre la especificacin y eldocumento de requerimientos.

    Se trabaja con un bosquejo completo del documento a diferenciade la verificacin del Anlisis.

    Se realizan las siguientes verificaciones en el documento derequerimientos:

    Validez: compromiso con el usuario, que valide que es lo quequiere.

    Consistencia: que no haya contradicciones.

    Realismo: que se puedan implementar (incluye: tecnologa,presupuesto y calendario).

    Verificabilidad: Disear conjunto de pruebas para demostrar queel sistema cumple esos requerimientos.

  • Proceso: Ingeniera de RequerimientosValidacin de Requerimientos

    Verificacin de Requerimientos no funcionales.

    Son difciles de verificar.

    Se deben expresar de manera cuantitativa utilizando mtricasque se puedan probar de forma objetiva ( esto es IDEAL).

    Propiedad MedidaRapidez Transacciones por seg.

    Tamao KB.

    Fiabilidad Tiempo promedio entre fallas.

    Robustez Probabilidad de datos corruptos despus de la falla.

    Portabilidad Nmero de sistemas.

    Facilidad de uso Tiempo de capacitacin.

    Para los usuarios es difcil especificarlos en forma cuantitativa.

  • Entre los participantes en el proceso de requerimiento puedenincluirse:

    Supervisor del contrato: quienes sugieren hitos de control ycronogramas que restringen el desarrollo del sistema.

    Clientes y Usuarios: quienes deben comprender losrequerimientos de modo que puedan estar seguros de que elsistema satisface sus necesidades.

    Gerentes de negocios: pueden comprender las probablesconsecuencias de construir y utilizar el sistema.

    Diseadores: quienes utilizan los requerimientos como basepara el desarrollo de una solucin aceptable, que seimplementara como un sistema basado en software.

    Verificadores: desarrollan datos de prueba y sesiones deprueba para asegurar que el sistema de software satisface cadauno de los requerimientos.

    Proceso: Ingeniera de RequerimientosParticipantes en el proceso de requerimientos.