http://www.ucongreso.edu.ar Contenido Introduccin Introduccin Buenas Prcticas Buenas Prcticas Introduccin al RUP Introduccin al RUP Disciplina Requerimientos Disciplina Requerimientos Conclusiones Conclusiones Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Buenas Prcticas Desarrollo Iterativo Desarrollo Iterativo Administracin de Requisitos Administracin de Requisitos Arquitectura basada en componentes Arquitectura basada en componentes Modelado Visual Modelado Visual - - UML UML Verificacin continua de la Calidad Verificacin continua de la Calidad Administracin del Cambio Administracin del Cambio 2 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Desarrollo Iterativo Desarrollo Iterativo Definicin Es una tcnica usada para liberar la funcionalidad de un sistema en una serie de sucesivas versiones. Estas se van incrementando en funcionalidad hasta llegar a la versin final Cada versin es desarrollada en una porcin especfica de tiempo.. llamada Iteracin Cada iteracin se centra en Definir, Analizar, Disear, Construir y Testear un conjunto de requerimientos Buenas prcticas: Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Administracin de riesgos tarda Estimacin de tiempos pobre Integracin y pruebas tardas Aparicin de actividades no planificadas Entregables al usuario, solo al final Los problemas se resuelven al final Anlisis Diseo Codificacin Integracin Aceptacin Modelo en cascada Modelo en cascada Caractersticas 3 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Desarrollo Iterativo Desarrollo Iterativo Buenas prcticas: Cada vuelta es una iteracin de cada Iteracin resulta una versin ejecutable Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Todos los proyectos involucran Riesgos Cuanto mas precisa haga su planificacin, puede que logre identificar muchos riesgos Pero, indefectiblemente, muchos riesgos aparacen recin al momento de integrar el sistema No prodr predecir todos los riesgos, a pesar de tener un equipo de desarrollo muy experimentado El RIESGO est presente ! 4 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Desarrollo Iterativo Desarrollo Iterativo Buenas prcticas: Las iteraciones nos ayudan a: Resolver riesgos importantes antes de hacer grandes inversiones Activar tempranamente el feedback de los usuarios Hacer testing e integracin en forma continua Dirigir el proyecto enfocndose en objetivos a corto plazo, alcanzables Posibilitar el despliegue de implementaciones parciales Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Desarrollo Iterativo Desarrollo Iterativo Buenas prcticas: Riesgos en el modelo iterativo vs el modelo cascada 5 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Origen de los errores en el software Anlisis 56% Diseo 27% Programacin 7% Otros 10% Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Caracterizacin de los errores Requerimientos correctos Requerimientos incorrectos Anlisis correcto Diseo correcto Programa correcto Anlisis incorrecto Anlisis s/req. incorrectos Diseo incorrecto Diseo s/anlisis incorrecto Diseo s/anlisis s/req. incorrectos Programa no corregible Programa con errores Programa con errores ocultos Programa con errores ocultos Catarata de errores de Mizuno 6 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Administracin de Requisitos Administracin de Requisitos Buenas Prcticas Buenas Prcticas: : Qu es la administracin de requerimientos? Es un enfoque sistmico para Encontrar, organizar , documentar y coordinar los requerimientos. La clave para una administracin de requerimientos efectiva, es mantener una clara definicin de los requerimientos mediante sus atributos y la trazabilidad Permite establecer u mantener el acuerdo entre el cliente/usuario y el equipo del proyecto sobre los cambios en los requerimientos. Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Administracin de Requisitos Administracin de Requisitos Buenas Prcticas Buenas Prcticas: : En qu consiste la AR? Analizar el problema Entender las necesidades Definir el sistema Administrar el Cambio Redefinir el sistema Administrar el cambio en los requerimientos 7 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Requerimiento de software Caractersticas de la solucin Necesidades del negocio Espacio de la solucin Espacio del problema T r a z a b i l i d a d Trazabilidad entre los niveles de requerimientos Trazabilidad entre los niveles de requerimientos Administracin de Requisitos Administracin de Requisitos Buenas Prcticas Buenas Prcticas: : Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Arquitectura basada en componentes Arquitectura basada en componentes Buenas Prcticas Buenas Prcticas: : Qu es un componente arquitectnico? Porciones de cdigo (fuente o ejecutable) con interfaces y comportamiento bien definidos que proveen una fuerte encapsulacin de sus contenidos, siendo, por lo tanto, reutilizables para qu sirve? La arquitectura basada en componentes tiende a reducir considerablemente el tamao y complejidad de la solucin, hacindola mas robusta. 8 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Arquitectura basada en componentes Arquitectura basada en componentes Buenas Prcticas Buenas Prcticas: : Se busca una arquitectura resistente basada en componentes Resistente - flexibilidad Conocer requerimientos actuales y futuros Mejorar la extensibilidad promover la reutilizacin promover el encapsulamiento Basada en Componentes Componentes reutilizables y parametrizables Seleccionar componentes disponibles comercialmente Evolucionar incrementalmente el software existente Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Modelado Visual Modelado Visual Buenas Prcticas Buenas Prcticas: : Un modelo es: Una simplificacin de la realidad que provee una descripcin acabada de un sistema desde una perspectiva particular Para qu construimos modelos? Para entender mejor el sistema que estamos modelando (ocultando los detalles innecesarios) 9 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Modelado Visual Modelado Visual Buenas Prcticas Buenas Prcticas: : Entonces en qu nos ayudan los modelos? Entender sistemas complejos Explorar y comparar alternativas de diseo a bajo costo Formar una fundamentacin para la implementacin Capturar requerimientos de forma precisa Comunicar decisiones sin ambiguedades Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Modelado Visual Modelado Visual - - UML UML Buenas Prcticas: Buenas Prcticas: Diagrama Diagrama actividad actividad Diagrama Diagrama Estados Estados Diagrama Diagrama Colaboracin Colaboracin Diagrama Diagrama Despliegue Despliegue Diagrama Diagrama Objetos Objetos Diagrama Diagrama Componentes Componentes Diagrama Diagrama de Clases de Clases Diagrama Diagrama Casos de Casos de Uso Uso Diagrama Diagrama secuencia secuencia Modelos Mltiples vistas Mltiples vistas Sintaxis y semntica precisas Sintaxis y semntica precisas 10 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Herramientas del UML Modelado de requerimientos Modelado de la estructura Modelado de la interaccin Modelado del comportamiento Herramientas de diseo Organizacin del modelo Diagrama de casos de uso Diagrama de clases Diagrama de objetos Diagrama de secuencias Diagrama de colaboraciones Diagrama de estados Diagrama de actividades Diagrama de componentes Diagrama de despliegue Diagrama de paquetes Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Verificacin continua de la Calidad Verificacin continua de la Calidad Buenas Prcticas: Buenas Prcticas: cuanto antes se descubran los errores, mas barato ser su correccin Los problemas en el software son de 1 a 100 veces mas costosos para Encontrarlos y repararlos despus del deployment Costo de la Costo de la repacin repacin Costo de Costo de Oprtunidad Oprtunidad Costo de Prdida de Costo de Prdida de Clientes Clientes 11 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Verificacin continua de la Calidad Verificacin continua de la Calidad Buenas Prcticas Buenas Prcticas: : Testeo para distintas dimensiones de la Calidad Funcionalidad verificando el correcto funcionamiento de los escenarios Usabilidad desde la perspectiva del usuario final Confiabilidad verifica un comportamiento consistente y predecibles Rendimiento se verifica la respuesta ante la carga Mantenimiento La habilidad de mantenimiento al ponerlo en produccin Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Administracin del Cambio Administracin del Cambio Buenas Prcticas: Buenas Prcticas: permitiendo una mejor asignacin de recursos Y un monitoreo continuo de estos cambios El coordinar las actividades y artefactos de los desarrolladores y los equipos, involucra establecer procedimientos repetibles para administrar cambios del software y otros artefactos de desarrollo 12 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Administracin del Cambio Administracin del Cambio Buenas Prcticas Buenas Prcticas: : Controlando Cambios del Software: Ofrece soluciones para las causas de los problemas del desarrollo El workflow de requerimientos de cambio est definido Los requisitos de cambio facilitan una clara comunicacin Workspace bien definidos evitan interferencias ente los miembros de los equipos que trabajan en paralelo El valor esttico de cambio es una buena mtrica para evaluar el estado del proyecto la propagacin de los cambios es evaluada y controlada Los cambios pueden se mantenidos en un sistema robusto y parametrizable Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar BP Ejercicio prctico Dados los siguientes sntomas problemticos en el desarrollo de software. Para cada uno de ellos, una con lneas a la/s causa/s que usted piensa est/n originando el problema Luego, teniendo en cuenta las Buenas Prcticas para el desarrollo de software Para cada una de las causas, seale la prctica aplicable para erradicarla 13 Prof. Gustavo J. Sabio http://www.ucongreso.edu.ar Buenas Prcticas Ejercicio Necesidades no encontradas Requerimientos mezclados Mdulos no integrables Dficil mantenimiento Descubrimiento tardo Baja calidad Baja performance Colisin de desarrolladores Insuficientes toma de requerimientos Comunicacin ambigua Arquitectura frgil Complejidad abrumadora Inconsistencias no detectadas Testing probre Definiciones subjetivas Desarrollo en cascada Cambios descontrolados Automatizacin insuficiente Sntomas Sntomas Causas Causas Buenas Prcticas Buenas Prcticas Desarrollo iterativo Adm de Requerimientos Uso de CA Modelado c/UML Continuo control Q Adm. del Cambio