CAPTULO III Ingeniera de Requerimientos Marco Aedo Lpez mar coaedo@hot mai l . com Escuela Profesional de Ingeniera de Sistemas Universidad Nacional de San Agustn Arequipa, Per - 2011 Ing. Marco Aedo Lpez Objetivos Objetivos Comprender la importancia de la Ingeniera de Requerimientos como fundamento para un eficiente desarrollo de software Describir el proceso de ingeniera de requerimientos Conocer las diferentes tcnicas para la captura de requerimientos Ing. Marco Aedo Lpez Contenido Contenido 1) Generalidades 2) El proceso 3) Tcnicas de captura de requerimientos Ing. Marco Aedo Lpez EL ORIGEN DE TODO SOFTWARE SON EL ORIGEN DE TODO SOFTWARE SON LAS IDEAS LAS IDEAS NADIE OBTIENE SIEMPRE LO QUE DESEA PERO EL CLIENTE DEBERA? NO CONSTRUIR POBRES IMITACIONES QU ENTREGA EL DESARROLLO DE SOFTWARE CORRECTO? Ing. Marco Aedo Lpez FICCIN VS REALIDAD FICCIN VS REALIDAD FICCIN: Reunirse con el cliente, entender fcilmente lo que l desea, usar las ltimas herramientas y lenguajes de programacin, testear el Software y esperar los premios correspondientes Muchos acaban en proyectos cancelados y total frustracin REALIDAD: Requerimientos mal entendidos o cambiantes, clientes dubitativos e inconstantes, demoras de proyecto, uso de tecnologa obsoleta Ing. Marco Aedo Lpez Generalidades Generalidades META: Desarrollar software de calidad que satisfaga las necesidades reales del cliente, a tiempo y bajo el presupuesto El xito de todo proyecto depende en mucho de la gestin efectiva de los requerimientos Los errores en los requerimientos son los ms comunes al desarrollar swy los ms costosos de solucionar Ing. Marco Aedo Lpez Generalidades Generalidades Requerimientos: Descripcin de los servicios que debe brindar el software y sus restricciones Capacidad del software que el usuario necesita para resolver un problema y alcanzar un objetivo Ingeniera de Requerimientos Proceso de capturar, analizar, documentar y verificar esos servicios y restricciones Entender el problema de los usuarios en SU cultura y con SU lenguaje y construir el sistema que resuelve sus necesidades Ing. Marco Aedo Lpez Generalidades Generalidades Qu busca la Ingeniera de Requerimientos? Reducir los errores en los requerimientos y as mejorar la calidad del software 3 escenarios: Cliente es entidad externa a la que debemos convencer en comprar nuestro producto Cliente es una organizacin que nos contrata para desarrollar un swpara hacerla ms competitiva Cliente trabaja en la misma organizacin y nos pide desarrollar un swque ayudar a que funcione mejor Ing. Marco Aedo Lpez Generalidades Generalidades Existir el software perfecto? Ing. Marco Aedo Lpez Standish Group Chaos Report (2009) 24% cancelado antes de completar o entregados y NUNCA usados!! 44% costaron ms de su estimado inicial (aprox. 189%), fuera de tiempo o con menos funcionalidades de las deseadas SOLO 32% SE ENTREGARON A TIEMPO, BAJ O EL PRESUPUESTO Y CON LAS FUNCIONALIDADES REQUERIDAS Causas (Standish Group) Falta de involucramiento de usuarios (13%) Requerimientos incompletos (12%) Requerimientos y Especificaciones cambiantes (12%) Expectativas no realistas (4%) Falta de recursos (6%) Habilidades tecnolgicas inadecuadas (7%) Falta de soporte de ejecutivos (9.3%) Falta de planificacin (8.1%) Sistema no se precisaba ms (7.5%) Generalidades: algunos datos Generalidades: algunos datos Ing. Marco Aedo Lpez Generalidades: algunos datos Generalidades: algunos datos Ing. Marco Aedo Lpez Generalidades: algunos datos Generalidades: algunos datos Ing. Marco Aedo Lpez Y en el sector estatal? El comportamiento es incluso peor, segn el estudio de eGovernment for Development de la Universidad de Manchester, slo el 15% de los proyectos son considerados exitosos Los principales stakeholders del proyecto dicen que se han logrado los principales objetivos y no han experimentado resultados no deseados significativos Generalidades: algunos datos Generalidades: algunos datos Ing. Marco Aedo Lpez Generalidades: algunos datos Generalidades: algunos datos Ing. Marco Aedo Lpez Generalidades: algunos datos Generalidades: algunos datos Segn European Software Process Improvement Training Initiative (ESPITI) en un estudio por identificar la importancia relativa de los diferentes tipos de problemas al desarrollar swen la industria: Ing. Marco Aedo Lpez Costo de corregir un error en los requerimientos (Boehm-Papaccio,1988) Etapa en la que se encuentra el error Costo en USD Anlisis y Esp. Requerimientos 1 Diseo 5 Codificacin 10 Prueba Unitaria 20 Produccin 200 Generalidades: algunos datos Generalidades: algunos datos Ing. Marco Aedo Lpez Brecha en la comunicacin Brecha en la comunicacin Segn desarrolladores, los usuarios... Segn usuarios, los desarrolladores... no saben lo que quieren no captan las necesidades operativas no pueden articular lo que quieren ponen excesivo nfasis en aspectos meramente tcnicos muchas necesidades por motivos polticos pretenden indicarnos cmo hacer nuestro trabajo quieren todo ya no son capaces de traducir necesidades claramente establecidas en un sistema son incapaces de definir prioridades entre sus necesidades siempre dicen que no Ing. Marco Aedo Lpez Segn desarrolladores, los usuarios... Segn usuarios, los desarrolladores... rehsan asumir responsabilidades por el sistema siempre estn pasados del presupuesto incapaces de dar un enunciado utilizable de sus necesidades siempre estn atrasados no estn comprometidos con los proyectos de desarrollo nos exigen tiempo y esfuerzo an a costa de las obligaciones esenciales no aceptan soluciones de compromiso establecen estndares no realistas para la definicin de requerimientos no pueden mantener el cronograma son incapaces de responder rpidamente a cambios en las necesidades Ing. Marco Aedo Lpez Ing. Marco Aedo Lpez Ing. Marco Aedo Lpez Comprender las necesidades de los Comprender las necesidades de los usuarios usuarios Dos reacciones diferentes cuando el usuario ve la implementacin del sistema Anticiparse al Si, pero.., tenindolo en cuenta en la elicitacin Wow, eso est chevere, realmente si podemos usarlo, que trabajo tan ordenado, y asi por el estilo El Sndrome de Si, pero Si, pero..., uhmmm, ahora que lo veo, que es..? Estara bien, si..? Que es lo que pas a? Ing. Marco Aedo Lpez La brecha de comunicacin existente El Sndrome del Usuario y el desarrollador Comprender las necesidades de Comprender las necesidades de los usuarios los usuarios Ing. Marco Aedo Lpez 1) De la 1) De la visin visin a a los los requerimientos requerimientos REQUERIMIENTOS EN EL CICLO DE VIDA DEL SOFTWARE Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Estudio de factibilidad Estudio de factibilidad Obtencin y Anlisis de Requerimientos Obtencin y Anlisis de Requerimientos Especificacin de Requerimientos Especificacin de Requerimientos Validacin de Requerimientos Validacin de Requerimientos Informe de factibilidad Actividades Especificacin de Requerimientos Documento de Requerimientos Artefactos Modelo del Sistema Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso ESTUDIO DE FACTIBILIDAD Estudio corto para resolver si es posible y conveniente construir el sistema Informe de Factibilidad Estructura sugerida: 1) Factibilidad Econmica 2) Factibilidad Tcnica 3) Factibilidad Operativa 4) Recomendaciones Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Estudio de factibilidad Estudio de factibilidad Obtencin y Anlisis de Requerimientos Obtencin y Anlisis de Requerimientos Especificacin de Requerimientos Especificacin de Requerimientos Validacin de Requerimientos Validacin de Requerimientos Informe de factibilidad Especificacin de Requerimientos Documento de Requerimientos Modelo del Sistema Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Comprensin del dominio Comprensin del dominio Recoleccin de Requerimientos Recoleccin de Requerimientos Clasificacin Clasificacin Resolucin de Conflictos Resolucin de Conflictos Priorizacin Priorizacin Verificacin de Requerimientos Verificacin de Requerimientos Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Estudio de factibilidad Estudio de factibilidad Obtencin y Anlisis de Requerimientos Obtencin y Anlisis de Requerimientos Especificacin de Requerimientos Especificacin de Requerimientos Validacin de Requerimientos Validacin de Requerimientos Informe de factibilidad Especificacin de Requerimientos Documento de Requerimientos Modelo del Sistema Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso 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 Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Estudio de factibilidad Estudio de factibilidad Obtencin y Anlisis de Requerimientos Obtencin y Anlisis de Requerimientos Especificacin de Requerimientos Especificacin de Requerimientos Validacin de Requerimientos Validacin de Requerimientos Informe de factibilidad Especificacin de Requerimientos Documento de Requerimientos Modelo del Sistema Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Proceso por el cual se determina si la especificacin es consistente con las necesidades del cliente Se realizan las siguientes verificaciones en el documento de requerimientos: Validez: compromiso con el usuario, que valide que es lo que quiere Consistencia: que no haya contradicciones Realismo: que se puedan implementar (incluye: tecnologa, presupuesto y calendario) Verificabilidad: Disear conjunto de pruebas para demostrar que el sistema cumple esos requerimientos Ing. Marco Aedo Lpez 2) El 2) El Proceso Proceso Qu habilidades debera poseer Ingeniero o Analista de Requerimientos? Capacidad de comunicacin Capacidad de anlisis y observacin Capacidad de organizacin Analizar los riesgos del desarrollo del software Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos Los desarrolladores entran al dominio de personas y problemas del mundo real (dominio del problema) Varias tcnicas: 1) La comprensin del problema 2) Entrevista 3) Encuesta/Cuestionario 4) Observacin 5) Lluvia de ideas y reduccin de ideas 6) Talleres de requerimientos 7) Casos de Uso 8) J uegos de Rol 9) Prototipado 10) Historias de Usuarios 11) Escenarios 12) Etnografa 13) Storyboarding Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 1) La comprensin del problema Estudio de documentacin, antecedentes, visitas, Buena forma de comenzar un proyecto Interna: Estructura de la organizacin, Polticas y procedimientos, Formularios e informes, Documentacin de sistemas Externa: Publicaciones de la industria y comercio, Encuentros profesionales, Visitas, Literatura y presentaciones de vendedores Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 1) La comprensin del problema Ventajas Ahorra tiempo de otros Prepara para otros enfoques Puede llevarse a cabo fuera de la organizacin Desventajas Perspectiva limitada Desactualizado Demasiado genrico Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 2) Entrevista Entender el problema de negocio Entender el ambiente de operacin Evitar omisin de requerimientos Mejorar las relaciones con el cliente Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 2) Entrevista - PASOS Seleccionar participantes Aprender tanto como sea posible de antemano Preparar la entrevista Utilizar un patrn de estructura Conducirla Apertura, desarrollo, conclusin Enviar un documento con resultado Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 2) Entrevista Ventajas Orientado a las personas Interactivo/flexible Rico Desventajas Costoso Depende de las habilidades interpersonales Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 3) Encuesta/Cuestionario No substituye la entrevista Antes de usar el enfoque: Determinar la informacin que se precisa Determinar el enfoque ms adecuado: Abierto, cerrado, combinado Mltiple opcin, valor en escala, orden relativo Desarrollar cuestionario Probarlo con perfil tpico Analizar resultado de las pruebas Su principal uso es para validar asunciones y obtener datos estadsticos sobre preferencias Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 3) Encuesta/Cuestionario Ventajas Economa de escala Conveniente para quien contesta Respuestas annimas Desventajas Menos rico Problemas por no-respuesta Esfuerzo de desarrollo Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 4) Observacin Poco utilizada Antes de usarla: Determinar informacin necesaria Comunicar a los involucrados Considerar periodos normales y atpicos Planificar las anotaciones Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 4) Observacin Ventajas Confiable Muy rico Desarrolla empata Desventajas Efecto Hawthorne Cuidado con generalizar demasiado (sesgo particular/local) Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 5) Lluvia de Ideas y reduccin de ideas Objetivo: lograr consenso sobre los requerimientos Ayuda a la participacin de todos los involucrados Permite pensar en otras ideas Un secretario saca notas de todo lo discutido Reglas No se permite criticar ni debatir Dejar volar la imaginacin Generar tantas ideas como sea posible Mutar y combinar ideas Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 5) Lluvia de Ideas Fase de generacin Los principales stakeholders se juntan en un cuarto Se explican las reglas Se establece: Que caractersticas esperan en el producto? Que servicios esperan que provea? Se pide que cada participante escriba sus ideas, luego las ideas son ledas para que otros piensen en ideas relacionadas y de esa forma las ideas mutan y se combinan Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 5) Lluvia de Ideas Fase de reduccin El secretario lee cada idea y pregunta si es vlida Si hay cualquier desacuerdo, la idea contina Agrupamiento de ideas Nombrar los grupos Definicin Se escribe una breve descripcin de lo que la idea significa para la persona que la escribi Ayuda a tener un entendimiento comn del requerimiento Lleva unos minutos por idea Priorizacin (opcional) Test de los $100: Cada persona tiene dinero para comprar ideas, se rankea segn ideas mas compradas Solo se puede hacer una vez Se debe limitar la cantidad a gastar en 1 sola idea Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 6) Taller de requerimientos (Workshop) mbito para las lluvias de ideas Preparacin Venderlo a los posibles miembros de la reunin Asegurarse que asisten los stakeholders correctos Estructurar la invitacin, el lugar, etc Enviar material previo a la reunin Documento de requerimientos Entrevistas, bugs de los sistemas existentes, etc Asegurarse de enviar lo necesario, sin exagerar Organizar la Agenda Introduccin Tormenta de ideas generacin Tormenta de ideas reduccin Priorizacin Resumen Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 7) Casos de Uso Formato simple y estructurado donde los usuarios y desarrolladores pueden trabajar juntos Muy til para capturar los aspectos funcionales Pueden ser usados como base en el diseo y en el testing del sistema Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 7) Casos de Uso Usarlo Cuando el sistema est orientado a la funcionalidad, con varios tipos de usuarios Cuando la implementacin se va a hacer OO y con UML No son la mejor eleccin: Sistemas sin usuarios y con pocas interfaces Sistemas dominados primariamente por requerimientos no funcionales y restricciones de diseo Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 8) J uegos de Rol Tcnica cuando es difcil para el stakeholder visualizar lo que quiere del software El desarrollador asume el rol DEL SOFTWARE Le pregunta al stakeholder QU REQUIERES DE M? El stakeholder responde El desarrollador en el rol de swresponde y se inicia la interaccin Se anotan los requerimientos Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 9) Prototipado Implementacin parcial, permite a los desarrolladores y usuarios: Entender mejor los requerimientos Cuales son necesarios, deseables Acotar riesgos Puede hacerse en papel o usando software Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 9) Prototipado Prototipo deshechable: El propsito es solo establecer que algo se puede hacer, luego se parte de cero en la construccin, quedando el conocimiento aprendido Prototipo evolutivo: Es implementado sobre la arquitectura del producto final, el sistema final se obtiene de evolucionar el prototipo Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos Mismos datos, pero Mismos datos, pero Ingrese ao: ____ mes: ____ da: ____ J ulio 1998 1998 2025 1 31 Ing. Marco Aedo Lpez 3) 3) Tcnicas Tcnicas de de captura captura de de requerimientos requerimientos 10) Historias de Usuario 11) Escenarios 12) Etnografa 13) Storyboarding Ing. Marco Aedo Lpez 1. Desarrollar las tcnicas de captura de requerimientos asignados a su equipo y cmo las aplicara al proyecto asignado? Averiguar sobre herramientas disponibles 2. Cmo aplica la Ingeniera de Requerimientos el proceso/mtodo asignado a su equipo de trabajo? Indicar las tcnicas que utiliza o recomienda. Proponer variaciones a las tcnicas ACTIVIDAD ACTIVIDAD 1) La comprensin del problema 2) Entrevista 3) Encuesta/Cuestionario 4) Observacin 5) Lluvia de ideas y reduccin de ideas 6) Talleres de requerimientos 7) Casos de Uso 8) Juegos de Rol 9) Prototipado 10) Historias de Usuarios 11) Escenarios 12) Etnografa 13) Storyboarding Ing. Marco Aedo Lpez Conclusiones Conclusiones Los errores en los requerimientos son los errores ms comunes y los ms caros de arreglar La captura y anlisis de requerimientos son actividades fundamentales para garantizar la calidad del producto Existen muchos procesos a seguir en el desarrollo de sw, pero todos toman en cuenta a los requerimientos Se pueden aplicar varias tcnicas para la captura de requerimientos, se pueden complementar y usar segn la situacin Ing. Marco Aedo Lpez Bibliografa Bibliografa LECTURAS OBLIGATORIAS Leffingwell, D., Widrig, D. Managing Software Requirements , Addison Wesley, 1999 [CAPTULO 1, 4, 10, 11, 12, 13, 14, 15] Ing. Marco Aedo Lpez Ejercicios Ejercicios Propuestos Propuestos 1. Por qu cree que los requerimientos son una de las principales razones del fracaso de los proyectos de software? 2. Cmo vencer los 2 sndromes indicados? 3. En qu casos utilizara cada una de las tcnicas? 4. Indique las 3 tcnicas ms efectivas para Ud. J ustifique 5. Tengo una aplicacin para 100 usuarios del mismo rango. Qu plan de captura de requerimientos planteara? 6. Cul es la importancia de los requerimientos NO funcionales? 7. Qu otras tcnicas de captura de requerimientos conoce? 8. Por qu es tan importante la validacin de requerimientos?