640px software development methodologies

La evolución de las metodologias para la contrucción de software

  • Inicio

    Inicio
    Desde el principio del uso de los ordenadores, al trabajar sobre el desarrollo de los primeros
    programas, se siguieron una serie de pautas o métodos para llevar a buen fin el proyecto. Bien es
    verdad que en esta situación la metodología era simple, era el típico proceso de abajo a arriba, con
    análisis insuficientes, ya que el problema era comprendido fácilmente en su totalidad. Por lo tanto en el principio de la informática los métodos eran de tipo ascendente y orientado a procesos.
  • Programación o técnicas de codificación

    Programación o técnicas de codificación
    En esta etapa no existían metodologías de desarrollo. Se crearon los lenguajes de tercera generación, los cuales son llamados lenguajes de alto nivel.
    Ejemplos:
    FORTRAN (FORmula TRANslator), el cual fue diseñado para aplicaciones científicas y de ingeniería.
    COBOL (COmmon Business-Oriented Language), el cual fue diseñado para aplicaciones de gestión o administración.
  • Modelo de procesos

    Modelo de procesos
    Consistía en codificar y corregir (Code and-fix)
    Este modelo implementaba el código y luego se pensaba en los requisitos, diseño, validación y mantenimiento.
    Este modelo tiene tres problemas principales:
    * Después de un número de correcciones, el código puede tener una muy mala estructura(los arreglos son muy costosos).
    * El software puede estar bien diseñado, pero no se ajusta a las necesidades del usuario.
    * El código es difícil de reparar por su pobre preparación para probar y modificar.
  • Metodologías clásicas en cascada

    Metodologías clásicas en cascada
    Propuesta por Winston W.Royce.
    El modelo en cascada consta de las siguientes fases:
    * Definición de los requisitos: Los servicios, restricciones y objetivos.
    * Diseño de software: Se particiona el sistema (software o hardware).
    * Implementación y pruebas unitarias: Construcción de los módulos y unidades de software.
    * Integración y pruebas del sistema: Se integran todas las unidades.
    * Operación y mantenimiento: El sistema es puesto en marcha y se realiza la corrección de errores descubiertos.
  • M.E jerárquica LCP de Warnier

    M.E jerárquica LCP de Warnier
    LCP (Logical Construction Program)
    Fue diseñado para resolver problemas informáticos de gestión, utilizando una estructura lógica. Se basa en el empleo de llaves de distintos tamaños que relacionan entre sí las tareas y operaciones.
  • Metodologías ágiles en V

    Metodologías ágiles en V
    Propuesto por Alan Davis. Permitió hacer más explícita la tarea de la iteración de las actividades del proceso.
    Consta de 4 niveles:
    *El nivel 1 está orientado al “cliente”. Se compone del análisis de requisitos y especificaciones.
    *El nivel 2 se dedica a las características funcionales del sistema propuesto.
    *El nivel 3 define los componentes hardware y software del sistema final.
    *El nivel 4 es la fase de implementación, en la que se desarrollan los elementos unitarios o módulos del programa.
  • Modelo de Desarrollo Incremental

    Modelo de Desarrollo Incremental
    Creado por Harlan Mills. Se basa en el desarrollo a partir del incremento de la funcionabilidad del programa, se puede considerar un precursor de las modernas metodologías iterativas.
  • Scrum

    Scrum
    Utiliza un enfoque incremental que tiene como fundamento la teoría de control empírico de procesos. Define tres roles: el “Scrum master”, líder del equipo y de la implementación de la filosofía, mas no del desarrollo; el dueño del producto y el equipo de desarrollo
  • Metodologías ágiles RAD

    Metodologías ágiles RAD
    Se trata de un modelo de desarrollo de aplicaciones ágil. Este método abarca el desarrollo interactivo, la creación de prototipos y el empleo de utilidades CASE.
    La metodología RAD suele englobar también la usabilidad, utilidad y la rapidez de ejecución.
    Beneficios:
    Avances medibles
    Separación de los componentes del sistema
    Comentarios constantes de los usuarios Inconvenientes:
    Requiere sistemas modulares
    Dificultad dentro de proyectos a gran escala
    Exige mucha interactividad del usuario
  • Metodologías ágiles de desarrollo adaptable de software ( ASD)

    Metodologías ágiles de desarrollo adaptable de software ( ASD)
    Formulada por Highsmith , la cual se basa en un funcionamiento cíclico y reconoce que en cada iteración se producirán cambios e incluso errores.
    En esta metodología hay un ciclo de especular, colaborar y aprender.
    Fue desarrollada con la intención de ofrecer una alternativa al
    desarrollo de software basándose en la idea de que la optimización es la única solución para problemas de complejidad creciente.
    Características:
    *Iterativo
    *Orientado en los componentes del software
    *Tolerante a cambios.
  • Metodologías ágiles Lean o Lean Software Development o LSD

    Metodologías ágiles Lean o Lean Software Development o LSD
    Es una metodología ágil desarrollada por los mencionados Mary and Tom Poppendieck. Dicha metodología, como bien dice su nombre, contempla los principios Lean de Toyota.
    Tiene como objetivo eliminar desperdicios, seleccionando aquellas características que realmente aportan valor, y da especial importancia a la velocidad y la eficiencia.
    Se formalizó en el 2001 con el Manifiesto Ágil, aunque tiene raíces desde mucho antes.
  • Metodologías ágiles Kanban

    Metodologías ágiles Kanban
    El método Kanban fue formulado por David J. Anderson​, este utiliza las etapas del ciclo de vida del desarrollo de software (SDLC) para representar las diferentes etapas del proceso. El objetivo es controlar y gestionar el flujo de características (representadas por tarjetas Kanban) para que el número de características que entran en el proceso coincida con las que se están completando. Las principales ventajas son: es muy fácil de utilizar, actualizar y asumir por parte del equipo.