Evolución de las metodologías de desarrollo de software

By Virna R
  • 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.
  • M.E orientadas a datos jerárquicos: JSP y JSD

    M.E orientadas a datos jerárquicos: JSP y JSD
    Utilizan la técnica del diseño descendente, cuyo producto final es el programa escrito en el pseudocódigo propio del método, de tal forma que su codificación en cualquier lenguaje de programación es sencilla.
    Pasos:
    *Etapa de modelado (análisis): con el paso de entidad / acción y el paso de estructuras de entidad .
    *Fase de red (diseño): con el paso inicial modelo , paso función , y la etapa de temporización del sistema .
    *Etapa de implementación (realización): el paso de implementación.
  • Metodología clásica iterativa

    Metodología clásica iterativa
    Es una evolución del modelo en cascada o waterfall. Se dice que el proceso se divide en 4 partes: Análisis, Diseño, Código y Prueba. Sin embargo, para la producción del software, se usa el principio de trabajo en cadena o “Pipeline”. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento. Es el mismo cliente el que incluye o desecha elementos al final de cada incremento a fin de que el software se adapte mejor a sus necesidades reales.
  • M.Mixta de las administraciones: MERISE

    M.Mixta de las administraciones: MERISE
    Las bases de MERISE comenzaron en 1972 por un equipo universitario de ingenieros de Aix-en-Provence.
    Introducen dos ciclos complementarios: ciclo de abstracción y ciclo de decisión. El ciclo de abstracción se basa en la percepción de tres niveles de abstracción : conceptual, organizativo y físico. Además se definen dos niveles para cada nivel : un modelo de datos y otro de tratamientos.
    Fases :
    Estudio preliminar.
    Estudio detallado.
    Implementación.
    Realización y puesta en marcha.
  • M.E orientadas a procesos: DEMARCO

    M.E orientadas a procesos: DEMARCO
    Fue creado por Tom DeMarco, se basa en el modelo básico entrada/proceso/salida, es decir los datos entran al sistema y éste los transforma para dar lugar a las salidas.
    Pasos:
    1)Estudio del Entorno Físico actual
    2)Derivación de Correspondencia modelo lógico actual
    En esta etapa se obtiene un modelo lógico derivado del anterior.
    3)Derivación del Nuevo Modelo Lógico
    4)Crear un Conjunto de Método físico Alternativos
    5)Valorar cada opción
    6)Seleccionar una opción
    7)Empaquetar la especificación
  • M.E orientadas a procesos: Gane y Sarson

    M.E orientadas a procesos: Gane y Sarson
    Es el resultado de varios años de aplicación práctica, en cuanto a formación y consultoría en métodos de análisis y diseño estructurado de sistemas. Fue creada por la empresa MCAUTO/IST bajo el nombre de STRADIS SDM.
    La metodología de Gane y Searson hace referencia a cinco pasos:
    *Construir un modelo lógico en curso.
    *Construir un modelo lógico del nuevo sistema
    *Diseñar la base de datos física.
    *Crear un nuevo modelo físico del sistema.
    *Empaquetar la especificación en subsistemas.
  • Metodología clásica incremental

    Metodología clásica incremental
    Propuesto por Harlan Mills. Esta metodología combina elementos del modelo en cascada con la filosofía interactiva de construcción de prototipos. Este modelo aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software.
    Ventajas:
    Es más fácil probar y depurar en una iteración más pequeña.
    Es un modelo más flexible.
    Inconveniente:
    Cada fase de una iteración es rígida y no se superponen con otras.
  • M.E jerárquica LCS

    M.E jerárquica LCS
    LCS (Logical Construction Systems).
    Permite la descripción de la organización de datos y procedimientos. Fueron desarrollados en Francia por Jean-Dominique Warnier y en los Estados Unidos por Kenneth Orr sobre la base del álgebra de Boole. Este método ayuda al diseño de estructuras de programa identificando la salida y los resultados del procesamiento y luego trabajando hacia atrás para determinar los pasos y combinaciones de entrada necesarios para producirlos.
  • M.Mixta de las administraciones: SSADM

    M.Mixta  de las administraciones: SSADM
    Creada por el gobierno británico entre el Central Computing and Telecommunications Agency (CCTA) y Learmonth and Burchett Management Systems (LBMS),para unificar y estandarizar los proyectos de software de las distintas administraciones.
    Características:
    *Centrada en los usuarios
    *Define de forma clara el proceso de producción
    *Utiliza tres puntos de vista, para orientarse a datos, eventos y procesos.
    *Flexibilidad en herramientas y técnicas de implementación
  • M.E no jerárquica: IE(Information Engineering)

    M.E no jerárquica: IE(Information Engineering)
    Desarrollado por J. Martin y C. Finkelstein. Es un enfoque de ingeniería de software para diseñar y desarrollar sistemas de información . Ingeniería de Información.
    Etapas:
    *Planificación: Construir una arquitectura de la información y una estrategia.
    *Análisis: Comprender áreas del negocio y determinar los requisitos del sistema.
    *Diseño: Establecer el comportamiento de sistemas deseados por el usuario.
    *Construcción: Construir sistemas que cumplan los tres niveles anteriores.
  • Metodología clásica de prototipos

    Metodología clásica  de prototipos
    Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación.
    Etapas
    *Comunicación
    *Analogía
    *Plan rápido.
    *Modelado, diseño rápido
    *Construcción del Prototipo
    *Desarrollo, entrega y retroalimentación
    *Entrega del final
    Ventajas:
    Este modelo es útil cuando el cliente conoce los objetivos generales para el software.
    Inconvenientes:
    El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final.
  • Metodología clásica en espiral

    Metodología clásica en espiral
    Es una combinación entre el modelo waterfall y un modelo por iteraciones. El proceso empieza desde la de conceptualización, siguiendo el desarrollo, luego una fase de mejoras, para finalizar con el mantenimiento.
    Dentro de cada etapa, existen una serie de fases que transcurren desde la planificación, pasando por el análisis de riesgos, el desarrollo y finalizando en la evaluación de lo realizado.
    Más:https://www2.deloitte.com/es/es/pages/technology/articles/que-es-el-desarrollo-en-espiral.html
  • M.E orientadas a procesos: Yourdon/Constantine

    M.E orientadas a procesos: Yourdon/Constantine
    Creada por Edward Yourdon. Proporciona una manera para diseñar paso a paso sistemas y programas detallados. Unos pasos involucran el análisis, otros el desarrollo del diseño y otros más la medición y la mejora de la calidad del diseño.
    Pasos o fases:
    *Realizar lo DFD del sistema
    *Realizar el Diagrama de estructuras, obteniéndolo a partir de los DFD’s mediante dos técnicas de análisis: trasformación y transacción.
    *Evaluación del diseño
    *Preparación del diseño para la implementación.
  • M.Mixtas de las administraciones: METRICA

    M.Mixtas de las administraciones: METRICA
    Surge en 1989 con el objetivo de crear un marco común para la planificación y el desarrollo de sistemas de información. En 1993 aparece la segunda versión y en el 2001 surge la tercera versión(V3)
    Objetivos generales:
    *Satisfacer las necesidades de los usuarios
    *Mejorar la productividad
    *Facilitar la comunicación entre todos los participantes
    *Facilitar la operación, mantenimiento y uso de los productos software obtenidos
    *Utilizar las distintas tecnologías que actualmente están conviviendo.
  • 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ía orientada a objetos Jacobson(OOSE)

    Metodología orientada a objetos Jacobson(OOSE)
    Este método proporciona un soporte para el diseño creativo de productos de software, las actividades consisten en la transformación de un conjunto de requerimientos en un plan estructurado de construcción y un plan de acción.
    Consta de cuatro pasos generales:
    *Clase temporizador
    *Construcción
    *Diseño
    *Prueba del sistema
  • Metodología de desarrollo de sistemas dinámicos

    Metodología de desarrollo de sistemas dinámicos
    Fue desarrollado por un consorcio de proveedores y de expertos en la materia del desarrollo de sistemas de información (IS).
    Fases:
    *Fase 1: Pre-Proyecto:
    Se identifican los proyectos propuestos.
    *Fase 2: Ciclo de Vida del Proyecto:
    Epata 1: Estudio de Viabilidad
    Etapa 2: Estudio del Negocio
    Etapa 3: Iteración de Modelo Funcional
    Etapa 4: Iteración de Diseño y Desarrollo
    Etapa 5: Aplicación
    *Fase 3: Post-Proyecto:
    Asegurarse que el sistema operativo acepte de manera eficaz y segura el proyecto.
  • Metodología orientada a objetos BOOCH(OOAD)

    Metodología orientada a objetos BOOCH(OOAD)
    Es un lenguaje de modelado de objetos y una metodología ampliamente usada en el diseño de software orientado a objetos. Fue desarrollada por Grady Booch mientras trabajaba para Rational Software.
    Los aspectos notables de la metodología de Booch han sido superados por el Lenguaje Unificado de Modelado, que combina elementos gráficos de la metodología de Booch junto a elementos de la técnica de modelado de objetos y la Ingeniería de software orientada a objetos.
  • Metodologías ágiles de Scrum

    Metodologías ágiles de Scrum
    Scrum es una metodología ágil y flexible para gestionar el desarrollo de software. Se basa en construir primero la funcionalidad de mayor valor para el cliente y en los principios de inspección continua, adaptación, auto-gestión e innovación.
    Beneficios
    Cumplimento de expectativas
    Flexibilidad a cambios
    Reducción del Time to Market
    Mayor calidad del software
    Mayor productividad
    Maximiza el retorno de la inversión (ROI).
    Predicciones de tiempos
    Reducción de riesgos.
  • Metodología orientada a objetos Rumbaugh(OMT)

    Metodología orientada a objetos Rumbaugh(OMT)
    Fue desarrollada por James Rumbaugh, uno de los precursores del Lenguaje Unificado de Modelado (UML).
    La fase de análisis comienza con la declaración del problema.
    La declaración del problema se “expande“ después en tres modelos:
    • De objetos
    • Dinámico
    • Funcional
    *El modelo de objetos representa los objetos del sistema.
    *El modelo dinámico representa la interacción entre esos objetos.
    *El modelo funcional representa los métodos del sistema desde la perspectiva de flujo de datos.
  • M.Mixta de las administraciones: Eurométodo

    M.Mixta  de las administraciones: Eurométodo
    Metodología para la adquisición de sistemas de información y servicios relacionados, desarrollada en el marco de un proyecto de instituciones europeas bajo supervisión de la Comisión Europea.
    Objetivos:
    *Ayudar al entendimiento mutuo entre clientes y proveedores de proyectos y servicios de sistemas de información dentro de un mercado internacional abierto.
    *Mejorar la adquisición de sistemas de información y servicios.
    *Proporcionar un marco para la unificación de la terminología de los métodos.
  • Metodología orientada a objetos RUP

    Metodología orientada a objetos RUP
    Es un proceso propietario de la ingeniería de software creado por Rational Software , adquirida por IBM.
    Utiliza el enfoque de la orientación a objetos en su diseño y está diseñado y documentado el uso de la notación UML para ilustrar los procesos en acción.
    Fases:
    *Iniciación o Diseño : énfasis en el alcance del sistema
    *Preparación : énfasis en la arquitectura
    *Construcción : énfasis en el desarrollo
    *Transición : énfasis en la aplicación.
  • Metodologías para STR: COMET

    Metodologías para STR: COMET
    Emplea notación UML, y está basada en un ciclo de desarrollo iterativo, con las siguientes fases: modelado de requisitos, análisis , diseño, construcción e integración incremental del software y validación del sistema .
    En la fase de diseño, se desarrolla la arquitectura del software. En la fase de construcción se lleva la implementación.
    Durante la fase de integración se integran los módulos de software creados.
    En la fase de diseño, se lleva a cabo la validación temporal del sistema.
  • Metodologías ágiles XP

    Metodologías ágiles XP
    Fundada por Kent Beck. Yacen en la comunidad de Smalltalk.
    Su objetivo es el desarrollo y gestión de proyectos con eficacia, flexibilidad y control.
    La metodología XP define cuatro variables para cualquier proyecto de software: costo, tiempo, calidad y alcance.
    Fases:
    *Entender lo que el cliente necesita > Fase de Exploración
    *Estimar el esfuerzo > Fase de Planificación
    *Crear la solución > Fase de Iteraciones
    *Entregar el producto final al cliente > Fase de puesta en producción
  • 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.