Sof  square

EVOLUCIÓN DE LAS METODOLOGÍAS PARA EL DESARROLLO DEL SOFTWARE - Wilfredo Camacho

  • Origen

    Primera generación de computadoras, las prácticas de desarrollo no obedecían a una metodología, los programadores se dedicaban a desarrollar sus códigos, lo que acarreaba una multitud de problemas
  • Se desarrollan los lenguajes de alto nivel: FORTRAN: el cual fue diseñado para aplicaciones científicas y de ingeniería. COBOL: el cual fue diseñado para aplicaciones de gestión o administración.

    Se desarrollan los lenguajes de alto nivel: FORTRAN: el cual fue diseñado para aplicaciones científicas y de ingeniería. COBOL: el cual fue diseñado para aplicaciones de gestión o administración.
    FORTRAN:
    1) Más sencillo de aprender que sus antecesores.
    2) Se considera una revolución y el principio de la programación moderna.
    3) Su puesta en práctica, y los años de uso han dado lugar a librerías probadas y eficientes que constatan su eficacia como lenguaje de programación.
    COBOL:
    1) Es universal, puede ser usado en cualquier máquina.
    2) Es fácil de interpretar.
    3) Se le considera un lenguaje de programación estándar que ha sido capaz de influir en el resto desde sus inicios.
  • 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.
    Características:
    1) Después de un número de correcciones, el código puede tener una muy mala estructura(los arreglos son muy costosos).
    2) El software puede estar bien diseñado, pero no se ajusta a las necesidades del usuario.
    3) 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.
    Características:
    1) Se trata del modelo menos complejo que existe.
    2) No es posible realizar un desarrollo iterativo, puesto que los procesos se desarrollan en una sola gran iteración.
    3) La poca comunicación con el cliente puede dificultar el establecimiento de objetivos y requisitos.
  • Metodología en V

    Metodología en V
    Propuesto por Alan Davis. Es una variación del modelo en cascada.
    Características:
    1) La relación entre las etapas de desarrollo y los distintos tipos de pruebas facilitan la localización de fallos.
    2) Hace explícito parte de la iteración y trabajo que hay que revisar.
    3) El producto final obtenido puede que no refleje todos los requisitos del usuario.
  • Metodología clásica iterativa

    Metodología clásica iterativa
    Es una evolución del modelo en cascada.
    Características:
    1) Permite una fácil administración de las tareas en cada iteración.
    2) Se adapta a las necesidades que surjan.
    3) Es un modelo propicio a cambios o modificaciones.
  • Metodología clásica incremental

    Metodología clásica incremental
    Esta metodología combina elementos del modelo en cascada con la filosofía interactiva de construcción de prototipos.
    Características:
    1) Es más fácil probar y depurar en una iteración más pequeña.
    2) Es un modelo más flexible.
    3) Cada fase de una iteración es rígida y no se superponen con otras.
  • 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.
    Características:
    1) Describe las fases principales de desarrollo de software.
    2) Ayuda a administrar el progreso del desarrollo del software.
    3) Provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software.
  • Metodología clásica en espiral

    Metodología clásica en espiral
    Es una combinación entre el modelo de cascada y un modelo por iteraciones.
    Características:
    1) Reduce considerablemente que fallen los proyectos grandes de software, ya que evalúa repetidamente los riesgos y verifica cada vez el producto en desarrollo.
    2) Este modelo es el indicado para desarrollar software con diferentes versiones actualizadas como se hace con los programas modernos.
    3) La ingeniería puede desarrollarse a través del ciclo de vida clásico o el de construcción de prototipos.
  • Metodologías Ágiles

    Metodologías Ágiles
    Son aquellas metodologías que utiliza una empresa para gestionar decisiones, proyectos y presupuestos, con el objetivo de que se agilice la toma de decisiones y se beneficie la producción.
    Características:
    1) La metodología ágil es rápida, específica y dinámica.
    2) Estimula las actitudes y estructuras del equipo, pues hace más fácil la comunicación.
    3) Considera al cliente como parte del equipo de producción.
  • Metodologías ágiles de desarrollo rápido de aplicaciones (RAD)

    Metodologías ágiles de desarrollo rápido de aplicaciones (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.
    Características:
    1) Ofrece resultados en tiempo real.
    2) Las iteraciones rápidas reducen el periodo de desarrollo y agilizan la entrega.
    3) Se fomenta la reutilización del código, por lo que se reduce la programación manual y, en consecuencia, disminuyen tanto la posibilidad de cometer errores como los periodos de prueba.
  • Metodología orientada a objetos de Jacobson (OOSE)

    Metodología orientada a objetos de Jacobson (OOSE)
    Consta de cuatro pasos generales:
    1) Clase temporizador
    2) Construcción
    3) Diseño
    4) Prueba del sistema
    Características:
    1) Es la base en la etapa de análisis,
    construcción y prueba.
    2) Proporciona un soporte para el diseño
    creativo de productos de software.
    3) 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.
  • Metodología orientada a objetos de BOOCH (OOAD)

    Metodología orientada a objetos de BOOCH (OOAD)
    Es un lenguaje de modelado de objetos y una metodología ampliamente usada en el diseño de software orientado a objetos.
    Características:
    1) Se enfoca en el análisis y el diseño y no en la implementación o la prueba del resultado de estos.
    2) Establece los requerimientos desde la perspectiva del cliente, genera una descripción de alto nivel de las funciones y estructuras del sistema.
    3) Define seis tipos de diagramas: clase, objeto, estado de transición, interacción, modulo y proceso.
  • 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:
    1) De objetos.
    2) Dinámico.
    3) 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.
  • Metodología orientada a objetos RUP

    Metodología orientada a objetos RUP
    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.
    Características:
    1) Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo).
    2) Pretende implementar las mejores prácticas en Ingeniería de Software.
    3) Modelado visual del software.
  • Metodologías ágiles XP

    Metodologías ágiles XP
    Su objetivo es el desarrollo y gestión de proyectos con eficacia, flexibilidad y control.
    Características:
    1) Comunicación constante entre el cliente y el equipo de desarrollo.
    2) El software que funciona está por encima de cualquier otra documentación.
    3) La planificación es abierta con un cronograma de actividades flexible.
  • Metodologías ágiles de desarrollo adaptable de software (ASD)

    Metodologías ágiles de desarrollo adaptable de software (ASD)
    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:
    1) Iterativo.
    2) Orientado en los componentes del software.
    3) Tolerante a cambios.
  • Metodologías ágiles Lean Software Development o LSD

    Metodologías ágiles Lean Software Development o LSD
    Consiste en hacer más eficientes algunos procesos de la industria mediante la eliminación de desperdicios o actividades que no aportaban beneficios.
    Características:
    1) Suprime todo aquello que no le aporte valor al proyecto.
    2) El producto se va probando constantemente para evitar amontonar errores que al final serán más complicados de resolver.
    3) Fortalece el equipo de trabajo que se encarga del desarrollo.
  • Metodologías ágiles Kanban

    Metodologías ágiles Kanban
    Busca gestionar de manera generalizada cómo se van completando las tareas
    Características:
    1) Reducción del desperdicio: no se necesita hacer nada extra o superficial.
    2) Mejora continua: aprovechando la realización de tareas, se busca mejorar los procesos.
    3) Flexibilidad: prioriza la realización de tareas en función de las necesidades de cada momento y de la urgencia de cada una de ellas.