Cascada Modificada y RUP

By Luciano Straccia

Share:

Key Concepts

  • Defectos en el software
  • Éxito y fracaso de proyectos de software
  • Entendimiento del negocio
  • Metodologías tradicionales vs. nuevas
  • Rotación de personal
  • Gestión de riesgos
  • Ingeniería de software y su origen militar
  • Modelo de cascada y sus variantes (solapamiento, espiral, prototipo evolutivo, entrega por etapas, diseño orientado al calendario)
  • Subproyectos
  • Análisis de riesgos
  • Prototipos (evolutivos y desechables)
  • Rational Unified Process (RUP)
  • Fases de RUP (inicio, elaboración, construcción, transición)
  • Iteraciones
  • Actividades, roles y artefactos en RUP

Problemas en Proyectos de Software

  • Alta cantidad de defectos: El software a menudo presenta numerosos defectos, algunos de los cuales llegan al usuario final, mientras que otros se detectan y corrigen antes del lanzamiento. Incluso la detección temprana de defectos implica un mayor uso de recursos y prolonga la duración del proyecto.
  • Altas tasas de fracaso: Los informes sobre el éxito y el fracaso de los proyectos de desarrollo de software revelan tasas de fracaso alarmantes.
  • Falta de entendimiento del negocio: Un problema fundamental es la falta de comprensión del negocio por parte de los equipos de desarrollo. Es crucial que los desarrolladores, testers y otros involucrados comprendan las necesidades del usuario y el contexto en el que se utilizará el software. Las metodologías tradicionales a menudo separaban a los productores (desarrolladores, testers) del usuario, delegando la comunicación al analista. Las metodologías más nuevas cuestionan esta fragmentación y proponen una mayor interacción entre los técnicos y los usuarios.
  • Cambios durante el desarrollo: Los proyectos de software a menudo experimentan cambios debido a la evolución del contexto, las necesidades del negocio y las variaciones del mercado. La velocidad de cambio del mercado actual es mucho mayor que en el pasado, lo que exige metodologías de trabajo flexibles y adaptables.
  • Alta rotación de personal: La alta rotación de personal es un problema persistente en la industria del software que afecta la continuidad y la eficiencia de los proyectos.
  • Riesgos no gestionados: La falta de gestión de riesgos potenciales puede convertirlos en problemas reales que impactan negativamente en el proyecto.

Origen de los Problemas y Evolución de las Metodologías

  • Suposición de uniformidad: Las metodologías tradicionales a menudo asumen que todas las industrias y proyectos son iguales. Sin embargo, la industria del software opera en diversos sectores, cada uno con sus propias características y requisitos. Desarrollar software para la banca no es lo mismo que para la industria metalmecánica o el marketing.
  • Influencia militar en la ingeniería de software: La ingeniería de software y sus manuales asociados surgieron en gran medida de la industria militar y de las telecomunicaciones. Aplicar estos manuales a otras industrias puede ser problemático, ya que estas industrias pueden tener diferentes grados de flexibilidad, tolerancia al riesgo y requisitos de confiabilidad.
  • Variantes del modelo de cascada: Ante las limitaciones del modelo de cascada, surgieron varias variantes, como:
    • Cascada modificada con solapamiento: Permite iniciar el diseño arquitectónico antes de que se completen el análisis y los requisitos.
    • Subproyectos: Fragmenta el proyecto en subproyectos más pequeños que pueden ser desarrollados por diferentes equipos en paralelo.
    • Espiral: Incorpora el análisis de riesgos en cada ciclo de desarrollo.
    • Prototipo evolutivo: Utiliza prototipos para facilitar la comunicación con el cliente y refinar los requisitos.
    • Entrega por etapas: Entrega el software en etapas incrementales.
    • Diseño orientado al calendario: Considera las restricciones temporales del proyecto.

Prototipos: Evolutivos y Desechables

  • Prototipos: Facilitan la comunicación con el cliente y permiten refinar los requisitos de manera más efectiva. Es más fácil para el cliente proporcionar retroalimentación sobre un prototipo tangible que sobre una abstracción.
  • Prototipo desechable: Se construye un prototipo para obtener retroalimentación del cliente, pero luego se descarta y se construye el producto final desde cero.
  • Prototipo evolutivo: El prototipo se refina y mejora iterativamente hasta convertirse en la versión final del producto. Esto se asemeja a la generación de versiones incrementales que mejoran con el tiempo a partir del diálogo con el usuario.

Rational Unified Process (RUP)

  • Orígenes: RUP se basa en los trabajos de Jacobson, Rumbaugh, Booch y otros autores que buscaban formas más ágiles de desarrollar software.
  • Enfoque en el diseño: RUP pone un fuerte énfasis en el valor del diseño del software desde una perspectiva técnica y arquitectónica.
  • Lenguaje de modelado UML: RUP utiliza el lenguaje de modelado UML para representar el diseño del software.
  • Cuatro fases: RUP se divide en cuatro fases:
    • Inicio: Se enfoca en la definición del alcance del proyecto y la identificación de los requisitos iniciales.
    • Elaboración: Se centra en el análisis de los requisitos, el diseño de la arquitectura y la planificación del proyecto.
    • Construcción: Se dedica al desarrollo y la prueba del software.
    • Transición: Se encarga de la implementación, la capacitación y el soporte del software.
  • Iteraciones: RUP es un proceso iterativo, lo que significa que las actividades de análisis, diseño, implementación y prueba se repiten en cada fase.
  • Actividades, roles y artefactos: RUP define claramente las actividades, los roles y los artefactos involucrados en el proceso de desarrollo.
    • Actividad: Unidad tangible de trabajo que produce un resultado basado en una entrada bien definida.
    • Rol: Comportamiento específico de una entidad que participa en un flujo de trabajo.
    • Artefacto: Información creada o producida durante el proceso de desarrollo.

Síntesis/Conclusión

El video analiza los problemas comunes en los proyectos de software, destacando la importancia de comprender el negocio, gestionar los riesgos y adaptarse a los cambios. Se explora la evolución de las metodologías de desarrollo, desde el modelo de cascada hasta el Rational Unified Process (RUP), enfatizando la necesidad de flexibilidad y la importancia de la comunicación con el cliente. RUP, con sus fases iterativas y su enfoque en el diseño, representa un avance significativo en la búsqueda de metodologías más efectivas para el desarrollo de software. El video sienta las bases para la discusión de las metodologías ágiles en un próximo video.

Chat with this Video

AI-Powered

Load the transcript when you're ready to chat so the initial page stays lighter.

Ready to summarize another video?

Summarize YouTube Video