Métodos y Metodologías de desarrollo de software Johanna Correa Campos Etapas de desarrollo Requisitos (Levantamiento de requerimientos) Análisis Arquitectura Diseño Implementación Prueba Entrega El modelado Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo División del producto Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo. División del producto Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de especificación, diseño y fabricación. Qué es el desarrollo de software? Ciclo de vida de Software Consiste en determinar: ◦ las fases productivas de un proyecto, ◦ los objetivos de cada fase productiva, y ◦ los productos obtenidos en cada una de estas fases así como sus características ◦ Se han propuesto muchos ciclos de vida para el desarrollo del software, pero estos son los más representativos: Poner la cola al burro. Ciclo de vida clásico o en cascada. Construcción rápida de Prototipos Desechables Incremental Evolución de prototipos Reutilización de Software Síntesis automática de software En espiral. Poner la cola al burro • Se coge a uno o varios desarrolladores y analistas, • Se les muestra más o menos el problema, • Se les deja solos en un cuarto a oscuras, • Transcurrido un tiempo se abre la puerta. Ciclo de vida clásico o en cascada. La Versión Ideal (Perfecta) El Modelo en V El Helado de Cucurucho El Modelo Real Propuesta de Yourdon La Versión Ideal Modelo en V El cucurucho de helado Propuesta de Yourdon Modelo en espiral En cada vuelta tomamos en cuenta: Los Objetivos: Que necesidad debe envolver el programa. Alternativas: Los varios métodos de alcanzar los objetivos de manera exitosa, a través de diferentes puntos como son: Características: experiencia del personal, exigencias a efectuar. Formas de gestión del programa. Riesgo tomado con cada alternativa. Desarrollar y Verificar: Programar y probar el programa . Se planificaran los siguientes pasos y se volverá a empezar la espiral. La espiral tiene una forma de caracola y se dice que mantiene dos dimensiones la radial y la angular: ◦ ◦ Angular=Avance del proyecto Software, dentro de un ciclo. Radial=Aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollando. Metodologías de Desarrollo del Software Métodos informales Métodos Semiformales Métodos Formales 3. El proceso de desarrollo de software 15 Métodos informales Joaquín Lucio-Villegas los clasifica como: ◦ Quick & Dirty (USA) ◦ Match stick box (Europa) 3. El proceso de desarrollo de software 16 Métodos Semiformales Métodos Estructurados ◦ SA/SD (structured analysis & structured design) ◦ Métrica Métodos Orientados a Objetos ◦ OMT ◦ UML 3. El proceso de desarrollo de software 17 Métodos Estructurados Métodos Orientados a la Estructura de los Datos Métodos de flujo de datos PROCESOS DATOS 3. El proceso de desarrollo de software 18 Métodos Orientados a Objetos Los métodos orientados a objeto describen e implementan los sistemas de información desde un punto de vista ontológico. 3. El proceso de desarrollo de software 19 Métodos Formales ◦ Los métodos formales permiten al ingeniero de software especificar, desarrollar y verificar un sistema informático mediante la aplicación de una notación matemática rigurosa. ◦ Utilizando un lenguaje de especificación formal, un método formal proporciona los medios de especificar un sistema de forma que se aseguren, de forma sistemática, la consistencia, la completitud y la corrección. ◦ Se suelen basar en notaciones matemáticas similares a las del álgebra de conjuntos y la lógica 3. El proceso de desarrollo de software 20 Madurez del proceso en la organización de desarrollo La misma industria, diferentes niveles de madurez. 3. El proceso de desarrollo de software 21 Madurez del proceso en la organización de desarrollo Hay factores que no quedan claramente reflejados en el ciclo de vida ni en las técnicas de desarrollo. Los factores no estudiados son: ◦ El cumplimiento de los plazos de entrega. ◦ La calidad (número de errores en el Software). ◦ El coste del proyecto. 3. El proceso de desarrollo de software 22 CMM (Capability Maturity Model) Proporciona una Guía sobre como ◦ controlar los procesos: de desarrollo del software. de mantenimiento. ◦ Hacer evolucionar hacia una cultura de: Ingeniería del software. Gestión eficiente. 3. El proceso de desarrollo de software 23 Evolución de las organizaciones según el CMM Control del Proceso Medición del Proceso Definición del Proceso Control Básico Optimización Gestionado Definido Repetible Inicial 3. El proceso de desarrollo de software 24 Correlación entre estimaciones y niveles de madurez 3. El proceso de desarrollo de software 25 Nivel Inicial. Según las circunstancias utilizamos un proceso distinto. (algunos caóticos) A medida, Poco formalizado, Uso de herramientas informales. Pocos procesos definidos. El éxito depende del esfuerzo individual. 3. El proceso de desarrollo de software 26 Nivel de Repetición. Se tiene procesos estables de desarrollo, con control estadístico. Uso de datos históricos Establecimiento de procesos de gestión de proyecto, para hacer seguimiento de: ◦ Coste. ◦ Planificación. ◦ Funcionalidad. 3. El proceso de desarrollo de software 27 Nivel de Definición. Proceso de desarrollo perfectamente definido y estandarizado. Integrado en la organización. Bien documentado. Todos los proyectos utilizan una versión documentada y aprobada de proceso. 3. El proceso de desarrollo de software 28 Nivel de Gestión. Mejoras de calidad sustanciales. Control cuantitativo de productos y proceso a través de ◦ Mediciones del proceso comprensibles. ◦ Mediciones de la calidad 3. El proceso de desarrollo de software 29 Nivel de Optimización. A través de mediciones del proceso utilizando ideas y tecnologías innovadoras obtenemos: ◦ Mejoras en calidad y cantidad. 3. El proceso de desarrollo de software 30 Metodología Vs Modelo Una metodología puede seguir uno o varios modelos de ciclo de vida, es decir, el ciclo de vida indica qué es lo que hay que obtener a lo largo del desarrollo del proyecto pero no cómo hacerlo. La metodología indica cómo hay que obtener los distintos productos parciales y finales Metodologías Monumental: Existen hace mucho tiempo, no han sido exitosas porque son muy burócratas, se han orientado al documento más que a los resultados. Ágil: Son la justa medida entre “ningún proceso” y “demasiado proceso”, proporcionando simplemente “suficiente proceso” para que el esfuerzo valga la pena !!! Metodologías mas conocidas XP (Programación Extrema) La familia Cristal de Cockburn Código Abierto ASD (Desarrollo de Software Adaptable) SCRUM FFD (Desarrollo Manejado por Rasgos) DSDM (Método de desarrollo de sistema dinámico) RUP (Rational Unified Process) Características de RUP ... Guiado y Manejado por Casos de Uso Centrado en la Arquitectura Iterativo e Incremental Desarrollo Basado en Componentes Utilización de UML Proceso Integrado Principal Propuesta ... Modelo Tradicional de Cascada Requerimientos Análisis & Diseño Construcción Pruebas t Tiempo Modelo Iterativo Incremental Iteración 1 Iteración 2 R R A&D R A&D C A&D C P Tiempo Iteración 3 C P P t Define Fases de Desarrollo ... Flujos de Trabajo Concepción Análisis & Diseño Construcción Pruebas Distribución Esfuerzo Necesario por Actividad Requerimientos Elaboración Construcción Transición R R R R A&D A&D A&D A&D C C C C P P P P D D D D Tiempo Iteración Preliminar Iteración 1 Iteración 2 .... .... Iteración n Iteración n+1 Importancia de los Hitos ... Compromiso de recursos para fase elaboración Concepción Aceptación del cliente Elaboración Construcción Transición Tiempo Hito Objetivos Hito Arquitectura Hito Capacidad Operacional Liberación Producto Mejores Prácticas de RUP ... Desarrolle Iterativamente Administre los Requerimientos Use Arquitectura de Componentes Modele Visualmente Controle los Cambios Verifique Calidad Antecedentes ... Un cliente interno insatisfecho Se requería una nueva Plataforma Comercial Banca para la Banca Corporativa Un Proyecto y tres desafíos ... ◦ Nueva Tecnología ◦ Usar metodología ◦ Externalizar el Desarrollo La Adopción de RUP ... La resistencia al cambio El escepticismo inicial La capacitación El reencantamiento El Mentor El mentoring es vital al momento de comenzar a utilizar una metodología !! Principales Prácticas de RUP ... Documento Visión Lista de Riesgos Los Casos de Uso Iteraciones Incrementales Los Entregables Control de Cambios Las Pruebas Scrum Roles • • • • Product owner Scrum master Team Interesados Se debe realizar una reunión diaria, donde todos los participantes deben estar de pie, la reunión no debe durar mas de 10 min y se debe contar ¿Qué hice? ¿Qué voy a hacer? ¿Qué problemas he tenido?
© Copyright 2024