360 likes | 661 Views
METODOLOGÍAS DE DESARROLLO DE SOFTWARE MODERNAS. Principales metodologías de software. 1968 Conceptos sobre la programación estructurada de DIJKSTRA 1974 Técnicas de programación estructurada de WARNIER y JACKSON 1975 Primeros conceptos sobre diseño estructurado de MYERS y YOURDON
E N D
METODOLOGÍAS DE DESARROLLO DE SOFTWAREMODERNAS Ing. Sonia Godoy Hortua
Principales metodologías de software • 1968 Conceptos sobre la programación estructurada de DIJKSTRA • 1974 Técnicas de programación estructurada de WARNIER y JACKSON • 1975 Primeros conceptos sobre diseño estructurado de MYERS y YOURDON • 1977 Primeros conceptos sobre análisis estructurado GANE y SARSON • 1978 Análisis estructurado: DEMARCO y WEINBERG • Nace MERISE • 1981 SSADM (versión inicial) • Information Engineering (versión inicial) • 1985 Análisis y Diseño estructurado para sistemas de tiempo real de • WARD y MELLOR • 1986 SSADM Versión 3 • 1987 Análisis y Diseño estructurado para sistemas de tiempo real de • HATLEY y PIRHBAY • 1989 METRICA (versión inicial) • 1990 SSADM Versión 4 • 1993 METRICA Versión 2 • 1995 METRICA Versión 2.1
MODELO SCRUM • Scrum es una metodología de desarrollo muy simple, no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto. ESTRUCTURA DE DESARROLLO AGIL Ing. Sonia Godoy Hortua
CARACTERISTICAS PROCESOS Y HERRAMIENTAS INDIVIDUOS E ITERACIONES SOBRE DOCUMENTACION EXTENSIVA SOFTWARE FUNCIONANDO SOBRE NEGOCIACIÓN CONTRACTUAL COLABORACION CON EL CLIENTE SOBRE SEGUIR UN PLAN RESPUESTA ANTE EL CAMBIO SOBRE Ing. Sonia Godoy Hortua
ROLES Ing. Sonia Godoy Hortua
Elementos • Pila del producto: lista de requisitos de usuario que se origina con la visión inicial del producto y va creciendo y evolucionando durante el desarrollo. • Pila del sprint: Lista de los trabajos que debe realizar el equipo durante el sprint para generar el incremento previsto. • Incremento: Resultado de cada sprint Ing. Sonia Godoy Hortua
HISTORIA DE USUARIOS Ing. Sonia Godoy Hortua
Caso práctico Un cliente se pone en contacto con una empresa que fabrica robots. El cliente les realiza el pedido. Quiero un robot que me sirva de escolta
Caso práctico El Cliente se reune con el Dueño de producto, que toma nota de lo que tiene en su cabeza. Cliente Dueño de Producto
Caso práctico El Duelo de Producto divide el proyecto en historias que son las que componen la pila de producto. Dueño de Producto Pila de Producto
Caso práctico El Scrum Master es un miembro del equipo quetiene el papel de comunicar y gestionarlasnecesidades del Dueño de Producto y la pila de Sprint. El Dueño de Producto le entrega la pila de productoparaqueestimen el coste de creación del producto. Dueño de Producto Scrum Manager
Caso práctico El equipo se reuneparaestimar el coste de cadahistoria de la pila de producto. En estecasoutilizan Planning Poker. Equipo
Caso práctico El cliente, unavezaprobado el presupuesto, reordena la pila de productoparaque el equipo vayatrabajandosegún la prioridad del cliente. Menos imporantes Cliente Urgentes
Caso práctico El equipo comienzasu trabajo desglosando la primerahistoria de la pila de producto, la cualsubdividen en tareasmenoresparacrear la pila de sprint.
Caso práctico La pila de sprint tienecomoutilidadfraccionar el trabajo de un periodo de 15 días en tareasmaspequeñas, quetardencomo mucho dos días.
Caso práctico Estas tareas se colocan en una pila, la cual prioriza el Dueño de Producto, que ha consultado con el cliente, antes de comenzar el sprint. Menosimporantes Dueño de Producto Urgentes
Caso práctico El equipo comienza el sprint tomandolastareaspriorizadas. Unavezconcluidauna se toma la siguiente de la lista. Se convocatodos los díasunareunión del equipo donde se cuentalastareasrealizadas el día anterior y cuales se van a realizaresedía.
Caso práctico Unavezfinalizado el sprint, el Dueño de Producto le muestra al cliente el resultado del trabajo realizado. El clienteyatiene el primer contacto con suencargo y ademáspuedevolver a priorizar la pila de producto antes de quecomienceotro sprint. Buen trabajo Cliente Dueño de Producto
Caso práctico El equipo de trabajo celebra subuen hacer con unareunión de retrospectiva, donde se analiza lo ocurridodurante el sprint.
Extreme Programming. (Programación extrema - XP) ¿CÓMO CONSEGUIR PRODUCIR SW DE CALIDAD ABIERTO AL CAMBIO, ENTREGABLE EN PLAZOS PEQUEÑOS? ¿Qué es XP? • Metodología para un ágil desarrollo de software. • Programación basada en los deseos del cliente. • El equipo lo conforman los jefes de proyecto, desarrolladores y el cliente. • Se rige por valores y principios.
PROGRAMACION EXTREMA ¿CÓMO CONSEGUIR PRODUCIR SW DE CALIDAD ABIERTO AL CAMBIO, ENTREGABLE EN PLAZOS PEQUEÑOS? DISEÑO SIMPLE INTEGRACIÓN CONTINUA CONTROL DE CODIGO FUENTE PLANIFICACIÓN METAFORAS Ing. Sonia Godoy Hortua TEST DEL CLIENTE PROGRAMACIÓN EN PAREJAS NORMAS DE CODIFICACIÓN TRABAJO EN EQUIPO COMPLETO MEJORA DEL DISEÑO EL CODIGO ES DE TODOS VERSIONES PEQUEÑAS RITMO SOSTENIBLE
Caracteristicas de XP • Comunicación: Crear software requiere de sistemas comunicados. • Simplicidad: Empezar con lo necesario y requerido y trabajar desde ahí. • Retroalimentacion: Del sistema, del cliente, y del equipo. • Valentia: Programa para hoy y no para mañana. • Respeto: El equipo debe trabajar como uno, sin tomar decisiones repentinas. Ciclo de la XP
EJEMPLO METODOLOGIA TRADICIONAL METODOLOGIA AGIL Ing. Sonia Godoy Hortua
Desarrollo Unificado con Métrica DUM Características: • Proporciona una guía para las actividades de un equipo de desarrollo. • Dirige las tareas de cada desarrollador por separado y del equipo en conjunto. • Especifica los productos que deben desarrollarse. • Ofrece criterios para el control, medición de los productos y actividades del proyecto.
DUM Las cuatro primeras fases (Inicio, elaboración, construcción, transición) atraviesan cinco flujos de trabajo que son conocidos como iteración:
Rapid Application Development (Desarrollo rápido de aplicaciones – RAD ) El RAD es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1980. El método comprende el desarrollo iterativo, la construcción de prototipos y el uso de utilidades CASE. Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución El Desarrollo Rápido de Aplicaciones (DRA) (Rapid ApplicationDevelopment RAD) es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. DRA es una adaptación a “Alta velocidad” en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un “sistema completamente funcional” dentro de periodos cortos de tiempo.
Ventajas de RAD • Comprar puede ahorrar dinero en comparación con construir. • Los entregables pueden ser fácilmente trasladados a otra plataforma. • El desarrollo se realiza a un nivel de abstracción mayor. • Visibilidad temprana. • Mayor flexibilidad. • Menor codificación manual. • Mayor involucramiento de los usuarios. • Posiblemente menos fallas. • Posiblemente menor costo. • Ciclos de desarrollo más pequeños. • Interfaz gráfica estándar. Fases: Modelado de gestión Modelado de datos Modelado de procesos Generación de aplicaciones Pruebas y Volumen De 60 a 90 días
Rational Unified Process. (Proceso Racional Unificado - RUP) • Es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. RUP es una guía de cómo usar UML de la forma más efectiva. RUP es un refinamiento realizado por Rational Software del más genérico Proceso Unificado. • Es una forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo (quién hace qué, cuándo y cómo). • Es también un producto: • Desarrollado y mantenido por Rational. • Actualizado constantemente para tener en cuenta las mejores prácticas de acuerdo con la experiencia. • Su objetivo principal es asegurar la producción de software de calidad dentro de plazos y presupuestos predecibles. Dirigido por casos de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental (versiones).
Agile Unified Process. (Proceso Ágil Unificado - AUP) • El Proceso Unificado Agil de Scott Ambler o Agile UnifiedProcess (AUP) en inglés es una versión simplificada del Proceso Unificado de Rational (RUP). Este describe de una manera simple y fácil de entender la forma de desarrollar aplicaciones de software de negocio usando técnicas ágiles y conceptos que aún se mantienen válidos en RUP. El AUP aplica técnicas ágiles incluyendo Desarrollo Dirigido por Pruebas (test drivendevelopment – TDD), Modelado Agil, Gestión de Cambios Agil, y Refactorización de Base de Datos para mejorar la productividad.
METODOLOGIA RUP Ing. Sonia Godoy Hortua