Administración de Requerimientos 1 Agenda Software Requirements Knowledge Areas. Requirement Statement. Requirement Specification. Agreement and Expectation Mgmt.. Las 5 dimensiones. Change Request Managment SRM Process Change Control Board Requerimientos y gestión de riesgos Ciclos de vida y riesgo. Ingeniería de Software II Software Requirement Management 2 2 Software Requirements Qué es? Una condición o capacidad necesaria para un usuario para resolver un problema o alcanzar un objetivo. Una condición o capacidad que se debe alcanzar o debe poseer un sistema o componente para satisfacer un contrato, estándar, especificación u otra formalidad impuesta. Una representación documentada de alguna condición o capacidad descrita en los dos puntos anteriores. Ingeniería de Software II Software Requirement Management 3 3 Proceso “Esencial” de Software Real World System Tiempo de exposición 2’ Proceso esencial de software concebido bajo Tech Orientacion a objetos y la creacion de aplicaciones monoliticas. •Ausencia de requerimientos de integracion up-front Transicion: Esto nos lleva a una integracion Add-hoc 4 Software Requirements - Areas de Conocimiento Requirement Engineering Requirement Development Requirement Management Elicitation Analysis Specification Validation Ingeniería de Software II Software Requirement Management 5 5 Requirements Statement Characteristics Complete Correct Feasible Necessary Prioritized Unambiguous Verfiable Ingeniería de Software II Software Requirement Management 6 6 Requirements Specification Characteristics Complete Consistent Modifiable Traceable Ingeniería de Software II Software Requirement Management 7 7 Software Requirements - Areas de Conocimiento Requirement Engineering Requirement Development Requirement Management Project Agreement Elicitation Analysis Specification Validation Ingeniería de Software II Software Requirement Management 8 8 Agenda Software Requirements Knowledge Areas. Requirement Statement. Requirement Specification. Agreement and Expectation Mgmt.. Las 5 dimensiones. Change Request Managment SRM Process Change Control Board Requerimientos y gestión de riesgos Ciclos de vida y riesgo. Ingeniería de Software II Software Requirement Management 9 9 Acuerdo: por qué? para qué? Cuándo? Para cumplir nuestros objetivos. Para encontrar mejores objetivos. A lo largo del proyecto, negociando Distintas cosas. En distintos niveles. En distintos procesos. De distinta manera. Con objetivos distintos. Ingeniería de Software II Software Requirement Management 10 10 La negociación es distinta en distintos procesos Ingeniería de Software II Software Requirement Management 11 11 Para lo que nos interesa aquí nos centramos... En la Iniciación “La iniciación es el proceso de autorizar formalmente un nuevo proyecto o la de permitir que un proyecto ya existente continúe en su fase siguiente. Esta iniciación formal vincula el proyecto con el trabajo continuo de la organización ejecutante.” ¿Qué forma parte de la “Gestión del Alcance del Proyecto”? “La gestión del alcance del proyecto incluye los procesos para asegurar que el proyecto incluya todo el trabajo requerido, y solamente el trabajo requerido, de manera tal de completar exitosamente el mismo..” Ingeniería de Software II Software Requirement Management 12 12 Negociar: ¿Que cosas? Las 5 dimensiones Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 13 13 Relación entre las dimensiones No son independientes entre sí No se relacionan linealmente Cada proyecto es crítico en algunas dimensiones y es mas libre en otras Cumplir con los objetivos requiere “balancear” las dimensiones Ingeniería de Software II Software Requirement Management 14 14 No todos las dimensiones son iguales Hay aspectos que nos limitan fuertemente y que no podemos controlar: restricción (constraint) Hay aspectos en los que tenemos objetivos que alcanzar: Conductor (driver) Hay aspectos que no son ni uno ni otro: Grado de libertad Esto define las prioridades relativas en el balance entre las dimensiones Ingeniería de Software II Software Requirement Management 15 15 Diagrama de Kiviat Al centro (restringido) <-> Afuera (libre) Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 16 16 “Houston, we have a problem” Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 17 17 Ser millonario y hippie Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 18 18 Sistema de información interno Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 19 19 Aplicación comercial competitiva Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 20 20 Sistemas “Quality Driven” Funcionalidades Recursos Humanos Calidad Tiempo Ingeniería de Software II Costo Software Requirement Management 21 21 Lo importante Merece especial atención la negociación sobre el alcance del proyecto: es de las primeras cosas que se negocia... Y está en tensión todo el proyecto. Cuando cambia la realidad (e.g. Requerimientos, RR HH...) sirve para ver como hay que cambiar el proyecto. Las dimensiones sirven para pensar, negociar objetivos y tomar decisiones realistas. Para cada restricción: cuál es su valor límite? Para cada conductor: cuál es el objetivo? Para cada grado de libertad: cuáles son sus límites? El dibujo es sólo una ayuda gráfica. Ingeniería de Software II Software Requirement Management 22 22 Agenda Software Requirements Knowledge Areas. Requirement Statement. Requirement Specification. Agreement and Expectation Mgmt.. Las 5 dimensiones. Change Request Managment SRM Process Change Control Board Requerimientos y gestión de riesgos Ciclos de vida y riesgo. Ingeniería de Software II Software Requirement Management 23 23 Change Request Management Change Request Management es el almacenamiento, seguimiento y emisión de reportes de requerimientos provenientes de cualquier stakeholder para cambiar un sistema de software. Ingeniería de Software II Software Requirement Management 24 Change Request Management Change Request Management es el almacenamiento, seguimiento y emisión de reportes de requerimientos provenientes de cualquier stakeholder para cambiar un sistema de software. Esto incluye el proceso de toma de decisión en cuanto a que cambios realizar y el proceso de resolución utilizado para hacer esto posible. Sin almacenamiento, los requerimientos de cambio podrían ser perdidos o permanecer desconocidos por parte del team. Sin seguimiento, los cambios se saldrán de schedule o permanecerán indireccionados. 24 ¿Qué Qué es Change Request? Change Request es un término general utilizado para identificar cualquier requerimiento proveniente de un stakeholder para cambiar un artifact o proceso. La documentación requerida para acompañar un requerimiento de cambio, es el origen y el impacto del problema, la solución propuesta y una evaluación de su costo. Ingeniería de Software II Software Requirement Management 25 Change Request Management Change Request es un término general utilizado para identificar cualquier requerimiento proveniente de un stakeholder para cambiar un artifact o proceso. La documentación requerida para acompañar un requerimiento de cambio es el origen y el impacto del problema, la solución propuesta y una evaluación de su costo. 25 Change Request Los requerimientos de cambio son divididos en dos categorías: enhancements y defects. Los Enhancement Requests especifican funciones nuevas o cambios en el diseño del comportamiento del sistema. Los Defects en cambio, son anomalías en el producto entregado, un error en el software generará un tema a ser seguido hasta ser resuelto. Ingeniería de Software II Software Requirement Management 26 Change Request Management Change Request Los requerimientos de cambio son divididos en dos categorías: mejoras y errores (enhancements and defects). Los Enhancement Requests especifican funciones nuevas o cambios en el diseño del comportamiento del sistema. Los errores (Defect) en cambio, son anomalías en el producto entregado, un error en el software generará un tema a ser seguido hasta ser resuelto. Indicar que la información recolectada es esencialmente distinta para cada uno de los casos. 26 CRM - Proceso El proceso de monitoreo de los change requests está representado en la mayoría de las herramientas de CRM como un workflow Ingeniería de Software II Software Requirement Management 27 Change Request Management Proceso El proceso está representado a través de un workflow que refleja el estado del Change Request en todos sus puntos de tratamiento. 27 CRM - Proceso is m b u n sio Submitted s Change Request Complete Ingeniería de Software II n tio a u al Evaluated ev n io et l p m co Verified Software Requirement Management d n io s i ec ve Revised n tio a ic rif to t d men n Se lop ve de In Process 28 Change Request Management Proceso Además de esto, las actividades podrían finalizar en la clausura del CR sin completarlo. Este esquema presentado es el ideal donde el CR es recibido, aceptado, categorizado, implementado, verificado y cerrado sin tener en cuenta el tratamiento de excepciones. 28 CRM - Proceso Registro del CR su Change Request n io iss Submitted bm Complete Ingeniería de Software II n io at u al Evaluated ev p m co n io let Verified Software Requirement Management d on isi c e ve Revised n tio a ic rif to t d men n Se lop ve de In Process 29 Change Request Management Proceso Registrado (Submitted) En esta etapa los cambios requeridos son registrados. Defect y Enhancements Requests difieren en el tipo de información que debe ser registrada. Para el caso de enhancements se necesita conocer la importancia del requerimiento para el cliente, con todo el detalle posible acerca del cambio, las restricciones de tiempo impuestas desde fuera de la compañía e identificar al solicitante inicial. En caso de defects, es de suma importancia identificar el modo en el cual han sido descubiertos los errores, como puede reproducirse el error, la severidad del mismo y quien lo ha descubierto. Existe el concepto de shortcut para los casos donde el cambio sea de emergencia. En estos casos el proceso presentado en estos slides alcanza directamente la fase de In Process proviniendo del Configuration Control Board. En resumen, defects y enhancement requests comparten los mismos datos claves, tendiendo en el caso de los defects la información asociada de severidad, usuario referente que identificó el error, y la versión de software que estaba siendo ejecutada. 29 Evaluación, categorización y establecimiento de prioridad CRM - Proceso su Change Request n io iss Submitted bm Complete Ingeniería de Software II n io at u al Evaluated ev p m co n io let Verified Software Requirement Management d on isi c e ve Revised n tio a ic rif to t d men n Se lop ve de In Process 30 Change Request Management Proceso Evaluated): Evaluado ( Durante la evaluación alguien deberá revisar los nuevos cambios requeridos y determinar la severidad, duplicidad, determinar si efectivamente se trata de una mejora o un error y si el error puede efectivamente ser reproducido. Todo error debe ser reproducido y confirmado en esta etapa. La prioridad también será establecida en esta etapa basándose en la severidad del caso y en la importancia de que sea resuelta. Las mejoras requeridas no necesitan ser confirmadas, en este caso se establece simplemente la prioridad en relación con los demás requerimientos de mejora existentes. 30 CRM - Proceso su Change Request n io iss Submitted bm Complete Ingeniería de Software II e Qué y cuando implementar n io at u l va Evaluated p m co n io let Verified d on isi c e ve Revised n tio a ic rif Software Requirement Management to t d men n Se lop ve de In Process 31 Change Request Management Proceso Revisado (Revised): Aquí se decide cuando un cambio es implementado, si debe ser pospuesto o directamente rechazado. Los enhancement requests y defects son tratados en forma diferente. La implementación de los requerimientos de mejora es decidida por el gerente de producto o el analista. Todos estos requerimientos son medidos en forma conjunta para determinar en que release serán liberados, cuando deberían ser realizados basados en la información obtenida durante la etapa de evaluación. El tratamiento de los errores depende de la etapa del ciclo de vida en la cual han sido detectados y el tamaño del esfuerzo de desarrollo para corregirlos. En etapas iniciales del ciclo de vida los errores son resueltos de manera informal. En cambio, a medida que nos acercamos al final del ciclo de vida, queremos restringir los cambios solo a los casos en que sea estrictamente necesario hacerlos. Cambios sin control sobre el final del ciclo de desarrollo afectan el orden y seguimiento del proyecto, introducen nuevos riesgos y generalmente causan encarecimiento del costo y desviación de la agenda del proyecto. 31 Decision Configuration Control Board “el comité que monitorea el proceso de cambio consiste en representantes de todas las partes interesadas, incluyendo clientes, desarrolladores, y usuarios. En proyectos pequeños una sola persona, como por ejemplo el gerente de proyecto o el arquitecto de software, podría jugar dicho role”. Ingeniería de Software II Software Requirement Management 32 Change Request Management Proceso Revisado (Revised): Configuration Control Board Organizaciones de mayor envergadura cuentan usualmente con procesos de revisión formal sobre los requerimientos de cambio realizados por una estructura de control llamada Change/Configuration Control Board. CCB está estructurada regularmente en forma matricial (abarca roles funcionales y de IS) y balancea en los casos que existe litigio entre el área de calidad y agenda del proyecto durante el desarrollo. Se puede definir como “el equipo que monitorea el proceso de cambio consiste en representantes de todas las partes interesadas, incluyendo clientes, desarolladores, y usuarios. En proyectos pequeños una sola persona, como por ejemplo el gerente de proyecto o el arquitecto de software, podría jugar dicho role”. “the board that oversees the change process consisting of representatives from all interested parties, including customers, developers, and users. In a small project a single person, such as the project manager or software arquitect, may play this role” [White 2000, page 260] CCB difiere enormemente de acuerdo al tipo de proyecto, la compañía y el tamaño y costo del programa. Sin embargo, en todos los casos donde encontremos CCB que no sean “unipersonales” deberemos contar con una estructura CCB. 32 Configuration Control Board Estructura CCB del Proyecto CCB Funcional CCB Módulo FI CCB Módulo MM Ingeniería de Software II CCB Basis CCB Módulo WM CCB Hardware Software Requirement Management CCB Tech Support CCB App. Servers 33 Change Request Management Proceso Revisado (Revised): Configuration Control Board CCB Structure Estas estructuras normalmente conforman una especie de modelo de cascada donde contamos con un número bastante grande de CBs en los niveles inferiores que van siendo consolidados por niveles superiores en forma de pirámide hasta alcanzar un único CB. Los cambios generalmente son generados en los niveles inferiores donde la actividad de programación los genera. En otros casos, el camino inverso es tomado cuando un requerimiento de un cliente o un gerente de proyecto. Debería existir una ruta alternativa preparada para administrar cambios de emergencia de modo que la integridad de todo el proceso no se vea afectada por este tipo de situaciones. Dentro de la estructura jerárquica del CCB, la decisión final recae sobre una única persona. El nivel superior decide cuando un parche de emergencia debe ser implementado o una CR autorizado, en muchos casos donde los cambios son mínimos, esta decisión es delegada a los niveles inferiores de la estructura. 33 CRM - Proceso su Change Request n io iss Submitted bm Complete n io at u al Evaluated ev p m co n io let Verified d on isi c e ve Revised n tio a ic rif to t d men n Se lop ve de In Process System Artifact son modificados o creados. La documentación es actualizada. Ingeniería de Software II Software Requirement Management 34 Change Request Management Proceso En Proceso (In Process): Durante esta etapa los artifacts son modificados o creados en busca de satisfacer el requerimiento de cambio. En esta etapa las diferencias entre enhancement request y defect son mas significativas dado que el primer caso contempla una nueva funcionalidad que puede implicar un nuevo diseño. Defects en cambio, requieren que sea reproducido el entorno en el cual el error se presentó para poder reproducir el mismo y probar la solución implementada. 34 CRM - Proceso su Change Request n io iss Submitted bm Complete n io at u al Evaluated ev p m co n io let Verified d on isi c e ve Revised n tio a ic rif to t d men n Se lop ve de In Process El CR es usado para verificar que la nueva versión cumple con el CR. Ingeniería de Software II Software Requirement Management 35 Change Request Management Proceso Verificado (Verified): En esta etapa se verifica que la solución cumple con el CR. Para el caso de mejoras en el producto es simplemente verificar que el comportamiento del producto es el especificado por el CR con lo cual es suficiente con la ejecución del plan de test funcional. Para la verificación se trabaja exclusivamente sobre el nuevo release. En caso de errores, se debe poder reproducir el error en la versión anterior a los efectos de garantizar que el mismo a sido corregido. 35 CRM - Proceso su Change Request n io iss Submitted bm Complete n io at u al Evaluated ev p m co n io let Verified d on isi c e ve Revised n tio a ic rif to t d men n Se lop ve de In Process El solicitante es notificado y la información acerca de costos es almacenada. Ingeniería de Software II Software Requirement Management 36 Change Request Management Proceso Cerrado (Complete): El principal paso aquí es cerrar el tema abierto con el stakeholder que inicio el requerimiento de cambio. Dependiendo el nivel de madurez de la organización es en esta etapa que se dispara un nuevo proceso interno donde se intenta identificar los motivos del error y los nuevos errores que estos motivos puedan estar causando (defect prevention). La estadística de costo real y esfuerzo en encontrar la solución debe ser registrada para alimentar la experiencia del equipo del proyecto. 36 Agenda Software Requirements Knowledge Areas. Requirement Statement. Requirement Specification. Agreement and Expectation Mgmt.. Las 5 dimensiones. Change Request Managment SRM Process Change Control Board Requerimientos y gestión de riesgos Ciclos de vida y riesgo. Ingeniería de Software II Software Requirement Management 37 37 Ciclo de Vida Es el conjunto y la disposición de las actividades que suceden desde la concepción del sistema hasta que el mismo es desinstalado de la última maquina del usuario. Tiene como función establecer el criterio bajo el cual proceder de un tipo de tareas a otro. Ingeniería de Software II Software Requirement Management 38 Ciclo de Vida Dependiendo del ciclo de vida que uno elija, es posible mejorar la velocidad del desarrollo, mejorar la calidad, facilitar el seguimiento, reducir la exposición a riesgos o mejorar el contacto con el cliente. La elección errónea puede producir reducción en la productividad, retrabajo y frustración. 38 Code and Fix Release Especificación del sistema (Tal vez exista) Ingeniería de Software II (Tal vez) Software Requirement Management 39 Ciclo de Vida – Code and Fix Este ciclo de vida es raramente útil pero sin embargo altamente utilizado. Si no se ha explícitamente elejido un ciclo de vida probablemente sea éste el que esté siendo usado. El ciclo comienza con una idea general sobre lo que debe ser construido. Es posible que exista una especificación, sin ser la misma necesaria para comenzar a construir. Luego se comienza a usar cualquier combinación de metodologías de diseño informal, codificación y testing hasta que el producto está listo para ser liberado. 39 Code and Fix Release Especific ación del sistema (Tal vez exista) (Tal vez) Puede llegar a ser útil para pequeños proyectos donde se sabe de antemano que el producto será rápidamente descartado. Dos ventajas: No posee overhead. No requiere ningún tipo de conocimiento. Muchas desventajas, entre otras: No tenemos forma de asegurar que existe progreso alguno. No tenemos forma de controlar la calidad ni de identificar riesgos. Es muy probable que se alcancen puntos en el proyecto donde sea necesario descartar absolutamente todo lo realizado. Ingeniería de Software II Software Requirement Management 40 Ciclo de Vida – Code and Fix El modelo tiene dos ventajas. Primero, no posee overhead: uno salta directamente a codificar, uno cree que posee inmediatamente signos de progreso. Segundo, no requiere ningún tipo de conocimiento excepto saber programar: cualquiera puede usarlo. Para pequeños proyectos que uno sabe que serán descartados rápidamente luego de ser usados, este modelo puede llegar a ser útil (programas de conversión de datos para una migración, pruebas de concepto en general, etc.). Para cualquier otro projecto este modelo es peligroso. Puede ser que no tenga overhead pero tampoco tenemos forma de asegurar que existe progreso alguno. Uno codifica hasta que el producto se considera listo (“listo” no tiene métrica asociada tampoco). No tenemos forma de controlar la calidad ni de identificar riesgos. Es muy probable aquí que se alcancen puntos en el proyecto donde sea necesario descartar absolutamente todo lo realizado justamente por no estar el objetivo bien definido y comprendido. 40 Pure Waterfall Concepto Análisis de Requerimientos Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de Sistema Ingeniería de Software II Software Requirement Management 41 Ciclo de Vida – Pure Waterfall Bajo este ciclo de vida el proyecto progresa a través de una secuencia ordenada de pasos desde la concepción inicial del Software. El proyecto contempla una revisión al final de cada paso para determinar si se pasará al siguiente. Esto hace que sea posible permanecer por un tiempo indeterminado sobre uno de los pasos si dicha revisión no es alcanzada. El modelo waterfall es orientado a la documentación lo que significa que la gran mayoría de los productos de software que son intercambiados entre etapas son documentación. Las etapas no se solapan en este modelo. 41 Pure Waterfall – Salmon’s Model Ingeniería de Software II Software Requirement Management 42 Ciclo de Vida – Pure Waterfall – Salmon’s Model “Es posible retroceder en las fases pero esto puede costarnos el proyecto” 42 Pure Waterfall Concepto Análisis de Requerimientos Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de Sistema Muy útil cuando los requerimientos de calidad dominan el costo y el cronograma. Debo conocer muy bien los requerimientos y los mètodos a ser usados. Ventajas Produce Sistemas Confiables y de alta calidad. Minimiza el overhead de planning. Desventajas Dificultad de obtener requerimientos completamente especificados al inicio del proyecto. La visualización de resultados se presenta al finalizar el proyecto. No es flexible. No apropiado para desarrollos rápidos por cantidad de documentación. Ingeniería de Software II Software Requirement Management 43 Ciclo de Vida – Pure Waterfall En proyectos donde hay alta estabilidad funciona bien. La estabilidad se relaciona con un gran conocimiento de los requerimientos y de los métodos que serán usados. En estos casos no sólo es un modelo eficiente sino que es el correcto a usar puesto que tenemos la oportunidad de encontrar errores de alto impacto en etapas tempranas y de bajo costo. El modelo contribuye a minimizar el overhead en la planificación porque es posible hacer la actividad de planificación al inicio. Por otra parte, no tenemos resultados tangibles hasta el fin del proyecto. El avance debe ser entonces medido a partir de la documentación generada durante las etapas. Funciona bien cuando los requerimientos de calidad dominan el costo y el cronograma. Las desventajas del modelo radican en la dificultad de conocer los requerimientos al 100% antes de comenzar a diseñar. 43 Sashimi (Waterfall + Overlapping) Concepto Análisis de Requerimientos Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de Sistema Ingeniería de Software II Software Requirement Management 44 Ciclo de Vida – Sashimi En el modelo puro Waterfall, la documentación ideal es la que es pasada “de mano en mano” entre los equipos de trabajo que operan en las diferentes fases. La pregunta es “¿Por qué?”. Si el equipo de trabajo es el mismo que opera en cada una de las fases, entonces no es necesaria la documentación creada para transmitir el conocimiento entre fases. Este cambio reduce la documentación a la necesaria para el posterior mantenimiento del Software. 44 Sashimi (Waterfall + Overlapping) Concepto Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de Sistema Aplicable en condiciones similares al pure waterfall pero con equipos más pequeños. Asumimos que el mismo equipo realiza actividades en más de una fase. Análisis de Requerimientos Ventajas Reduce la documentación necesaria en el purewaterfall. Mismas ventajas que el purewaterfall. Desventajas Mismas dificultades que el pure waterfall. Adicionalmente el solapamiento puede ocasionar conflictos relacionados con la comunicación entre fases solapadas. Ingeniería de Software II Software Requirement Management 45 Ciclo de Vida – Sashimi Como existe solpamiento entre fases, los milestones son más ambiguos y esto hace más difícil realizar el seguimiento con cierto nivel de seguridad. Efectuar actividades en paralelo requiere que las actividades solapadas estén bien comunicadas, estamos expuestos a que cambios o novedades en actividades “viejas” no sean comunicadas a las actividades “nuevas” y por ende exista inconsistencia a lo largo del ciclo. 45 Waterfall with Subprojects Diseño Detallado Concepto Codificación y Debugging Análisis de Requerimientos Prueba de SubSistema Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de SubSistema Diseño Detallado Codificación y Debugging Integración Prueba de SubSistema Prueba de Sistema Ingeniería de Software II Software Requirement Management 46 Ciclo de Vida – Waterfall with Subprojects Otro problema con el modelo waterfall puro es que se supone que debemos completar el 100% del diseño arquitectónico antes de comenzar con el diseño detallado, y que a su vez debemos completar el 100% del diseño detallado antes de comenzar a codificar. . Los sistemas tienen ciertas áreas donde existen sorpresas de diseño, pero también existen áreas donde la tarea es simple e incluso en algunos casos conocida. ¿Por qué entonces retrasar el comienzo de los subsistemas simples a causa de la complejidad de parte de la arquitectura?. Si es posible partir la arquitectura en subsistemas lógicamente independientes se pueden obtener subproyectos que sean tratados independientemente y en paralelo hasta llegar al momento de integrarlos. 46 Waterfall with Subprojects Diseño Detallado Concepto Codificación y Debugging Análisis de Requerimientos Prueba de SubSistema Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de SubSistema Diseño Detallado Codificación y Debugging Integración Aplicable en condiciones similares al pure waterfall pero donde es posible identificar subsistemas independientes. El equipo de trabajo es suficientemente grande como para paralelizar el trabajo. Prueba de SubSistema Ventajas Prueba de Sistema Permite construir los subsistemas en paralelo. Mismas ventajas que el purewaterfall. Desventajas Posibles problemas de integración por interdependencias no identificadas. Ingeniería de Software II Software Requirement Management 47 Ciclo de Vida – Waterfall with Subprojects El mayor riesgo de esto es que existan interdependencias no previstas que generen problemas de integración. Este riesgo es posible mitigarlo con una actividad de arquitectura más intenso que en el caso del pure waterfall, pero nunca podremos eliminarlo por completo. 47 Waterfall with Risk Reduction Concepto Análisis de Requerimientos Prototipación Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de Sistema Ingeniería de Software II Software Requirement Management 48 Ciclo de Vida – Waterfall with Risk Reduction Otro de los problemas del waterfall puro es que es necesario tener una precisa definición de los requerimientos antes de comenzar con el diseño arquitectónico. Esta necesidad no solo se encuentra en los requerimientos sino que es necesario para ingresar en un fase contar con gran estabilidad en la anterior y con el total de los productos requeridos para ingresar en la nueva fase. Una posible modificación leve al pure waterfall es la propuesta por “Risk Reduction”, donde se incorpora una actividad de prototipado de interfaz o de aquellos componentes de mayor riesgo por la incertidumbre natural al desarrollo de Software. Esta actividad no necesariamente debe centrarse en los requerimientos sino que es posible extenderla al diseño e incluso a la codificación. 48 Waterfall with Risk Reduction Lo aplico en los casos donde es posible identificar aquellas áreas donde hace falta mayor conocimiento. (*) Esto no siempre es posible. Concepto Análisis de Requerimientos Prototipación Diseño Arquitectónico Diseño Detallado Codificación y Debugging Prueba de Sistema Ventajas Reduce el riesgo con respecto al pure waterfall proveniente de los requerimientos incompletos o mal definidos. Mismas ventajas que el purewaterfall. Desventajas Debo poder identificar las áreas donde sea necesaria mayor definición. Ingeniería de Software II Software Requirement Management 49 Ciclo de Vida – Waterfall with Risk Reduction La actividad de prototipado es generalmente beneficiosa aunque existe la posibilidad de no poder recolectar mayor información incurriendo en gastos que no tienen rédito en el proyecto. Dado que luego de la actividad de prototipado el ciclo es idéntico al pure waterfall estamos frente a las mismas dificultades que en dicho modelo. 49 Spiral Objetivos Riesgos Planificación Desarrollo Profundidad: 1ero: análisis, 2do: diseño, 3ero construcción, 4to implementación Ingeniería de Software II Software Requirement Management 50 Ciclo de Vida – Spiral El ciclo de vida spiral es un modelo orientado a riesgos, donde el proyecto es dividido en mini-proyectos. Cada uno de los mini-proyectos atiende a uno a más riesgos “importantes” hasta que finalmente todos los riesgos con alta exposición han sido atendidos. El concepto de riesgo es el visto en clase, se refiere a requerimientos pobremente entendidos, a arquitectura pobremente definida o comprendida, problemas potenciales de performance, problemas en la tecnología subyacente, y demás temas del proyecto donde sea requerido mayor conocimiento. Una vez que los riesgos han sido atendidos el ciclo de vida finaliza como el pure waterefall. La idea detrás del modelo es que uno comienza con un alcance reducido en el centro de la espiral, explora los riesgos ç, construye el plan para atender los riesgos encontrados, y luego planea el siguiente ciclo. Cada iteración mueve el proyecto hacia un alcance más extenso. 50 Spiral Identificar y resolver riesgos Evaluar alternativas lis is de R ies go s Determinar objetivos, alternativas y restricciones A ná Inicio Plan de Desarrollo Plan d Prueb e a n dació Vali eq uer. de R Plan de Integración Planificar la siguiente iteración Ingeniería de Software II Simul Plan de Req., Plan de Ciclo de Vida Release 3 1, .. tipo Proto ional c Opera acione Modelos s R de eq u So er . ft . Revisión tipo Proto D i Pr señ od o d uc e to Compromiso para la siguiente iteración Ben chm a rks Diseño Detallado e d Code o Diseñ V Prueba V& Integr. Unidad y Prueba Prueba Acept. Construir el entregable de la iteración y verificar que es correcto. Software Requirement Management 51 Ciclo de Vida – Spiral Cada iteración comprende 6 pasos representados en los cuadros que rodean la espiral del slide. 1. Determinar objetivos, alternativas y restricciones. 2. Identificar y resolver riesgos. 3. Evaluar alternativas. 4. Desarrollar los entregables de la iteración y verificar que son correctos. 5. Planificar la siguiente iteración. 6. Si se decide continuar, obtener compromiso para la siguiente iteraciòn. 51 Spiral Objetivos Riesgos Planificación Desarrollo Modelo orientado a manejo de riesgos. A medida que avanza el tiempo y dinero invertidos, la exposición al riesgo disminuye. Ventajas Equilibrio óptimo entre exposición al riesgo e inversión. Mayor o equivalente control que en el modelo pure waterfall. Desventajas Requiere gran conocimiento de gestión por parte de quien dirige el proyecto. Es posible que si en un momento del proyecto la exposición al riesgo es baja, el modelo se vuelva innecesariamente caro. Ingeniería de Software II Software Requirement Management 52 Ciclo de Vida – Spiral En el modelo espiral las etapas tempranas son las más económicas. Uno gasta menos desarrollando el concepto de operación del Software de los que gasta en la ingeniería de requerimientos, y menos en los requerimientos de lo que gasta en el diseño, desarrollando el producto y probándolo. Una de las ventajas más importantes del modelo es que el costo aumenta a medida que el riesgo decrece. A mayor tiempo y dinero invertido, menor la exposición al riesgo. Esto es justamente uno de los atributos más buscados en un proyecto de Software. El modelo espiral provee igual o mayor control en la gestión del proyecto de la provista por el modelo tradicional pure waterfall. Uno cuenta con puntos de control al finalizar cada iteración. Si el proyecto es inviable debido a razones técnicas o funcionales, es descubierto ésto en forma temprana. La única desventaja del modelo radica en su complejidad. Requiere de quién gestiona el proyecto conciencia, atención y conocimiento en gestión. Puede llegar a ser difícil definir milestones objetivos y verificables, que indiquen cuando uno está en condiciones de agregar una nueva iteración. En algunos casos el producto alcanzado es suficiente, y los riesgos a los que estamos expuesto moderados lo suficiente como para que no sea requerido continuar “pensando en riesgos”, con lo que el modelo orientado a riesgos propuesto por el ciclo de vida espiral se vuelve redundante. 52 Evolutionary Delivery Concepto Inicial Diseño e implementación del prototipo Inicial. Ingeniería de Software II Refinamiento del prototipo Hasta que sea aceptable Completar y lanzar el prototipo Software Requirement Management 53 Ciclo de Vida – Evolutionary Delivery En este modelo uno desarrolla el concepto del sistema a medida que avanzo sobre el proyecto. Usualmente comenzamos desarrollando los aspectos más visibles del sistema. El resultado es mostrado al cliente y el producto evoluciona en base a la información obtenido por parte de éste. En determinado momento el cliente indica que el prototipo es “suficientemente bueno”, se completan las tareas remanentes, especialmente las relacionadas con performance, y el prototipo se convierte así en el release. 53 Evolutionary Delivery Concepto Inicial Diseño e implementación del prototipo Inicial. Refinamiento del prototipo Hasta que sea aceptable Completar y lanzar el prototipo Modelo orientado a proyectos donde no existe una buena definición de requerimientos Ventajas Extracción de requerimientos incremental y buena interacción con el cliente. Desventajas Peligro de que se convierta en Code & Fix. Puede no converger a una solución. Ingeniería de Software II Software Requirement Management 54 Ciclo de Vida – Evolutionary Delivery Este modelo es especialmetne útil cuando los requerimientos son dinámicos o pobremente definidos. También es útil cuando el cliente no tiene la capacidad o voluntad para comprometerse con un requerimiento mejor definido, o no existe nadie que conozca bien el dominio de problema. La mayor desventaja de este modelo radica en que no es posible saber en qué momento el producto convergerá a la solución. Uno desconoce cuantas iteraciones deberán ser necesarias para obtener finalmente el producto. Otra desventaja es que el modelo fácilmente se convierte en Code & Fix. Distinguimos “evolutionary delivery” de “code & fix” principalmente porque la actividad de especificación y diseño existen en el primer modelo. 54 Staged Delivery Concepto Análisis de Requerimientos Diseño Arquitectónico Etapa 1: Diseño detallado, Codificación, Prueba, entrega. Etapa 2: Diseño detallado, Codificación, Prueba, entrega. Etapa n: Diseño detallado, Codificación, Prueba, entrega. Ingeniería de Software II Software Requirement Management 55 Ciclo de Vida – Staged Delivery El ciclo de vida staged delivery es un modelo en el cual uno muestra el producto al cliente en etapas sucesivas, aumentando en cada una el nivel de refinamiento. En este modelo uno conoce exactamente lo que va a construir desde el comienzo, pero planifica la entrega en etapas (diferencia con el modelo evolutionary delivery). 55 Staged Delivery Concepto Análisis de Requerimientos Diseño Arquitectónico Etapa 1: Diseño detallado, Codificación, Prueba, entrega. Etapa 2: Diseño detallado, Codificación, Prueba, entrega. Modelo orientado a dividir el requerimiento y realizar un despliegue incremental. Etapa n: Diseño detallado, Codificación, Prueba, entrega. Ventajas Las funciones principales sen entregan antes. El feed-back del cliente aumenta a medida que la función es más esencial para el producto... Signos tempranos y tangibles de avance. Desventajas Posibles interdependencias entre etapas no identificadas. Ingeniería de Software II Software Requirement Management 56 Ciclo de Vida – Staged Delivery A nivel de gerenciamiento, se debe estar seguro que las etapas tienen sentido con respecto al uso que el cliente le dará, y que el entregable de cada una de ellas está “autocontenido” A nivel técnico, se debe asegurar que las dependencias entre los entregables de las etapas no impiden que el producto sea construido independientemente. La ventaja principal del modelo radica en que nos permite entregar la funcionalidad pricipal al principio del proyecto. Si las etapas son planeadas con cuidado, podemos reducir el riesgo en los puntos centrales del Software entregándolos primero y pudiendo así obtener feedback operacional antes del fin del proyecto, cuando aún podemos toamar medidas correctivas. Otra ventaja es que provee signos tangibles de avance desde etapas tempranas, lo que facilita el control sobre presión que pueda ejercer el cliente. 56 Conclusiones El acuerdo de proyecto es la “bisagra” entre el desarrollo de requerimientos o construccion del SRS y la gestión de cambios. La gestión de cambios debe considerar a todos los stakeholders pero debe considerar la agilidad del negocio. (CCB) El ciclo de vida de software se debe ajustar a la incertidumbre del proyecto a fin de gestionar el riesgo de cambios en los requerimientos. Ingeniería de Software II Software Requirement Management 57 57 Fin Muchas gracias! 58