← Volver a los quizzesQuiz gratuito

Modelos y procesos de desarrollo de software

En el mundo de la informática y la programación , comprender los diferentes modelos y procesos de desarrollo es esencial para crear aplicaciones de calidad, dentro del plazo y presupuesto…

10 preguntas~5 min
Modelos y procesos de desarrollo de software — Qwi
0 / 10
Puntuación: 0%
1

¿Cuál es la ventaja principal de usar métodos diagramáticos como UML frente a los métodos matemáticos formales?

2

En un ciclo de desarrollo iterativo, ¿qué ocurre después de completar el ciclo 2?

3

Si el alcance del producto está pobremente definido, ¿cuál es la consecuencia más probable en el proyecto?

4

¿Qué característica distingue a la herencia en la programación orientada a objetos?

5

En el contexto del modelo W5HH de Boehm, ¿qué pregunta corresponde a la letra "H" (how)?

6

¿Cuál es la principal razón por la que la programación estructurada puede generar problemas de mantenimiento en proyectos grandes?

7

Al iniciar un proyecto con metodología ágil, ¿qué práctica ayuda a mantener la "cantidad de movimiento" del equipo?

8

En el proceso de desarrollo, ¿qué actividad pertenece a la fase de "planeación y elaboración"?

9

¿Cuál es la diferencia esencial entre un caso de uso de alto nivel y un caso de uso expandido?

10

Según la lista de señales de advertencia de John Reel, ¿qué factor indica un riesgo alto de fracaso del proyecto?

Modelos y procesos de desarrollo de software

En el mundo de la informática y la programación, comprender los diferentes modelos y procesos de desarrollo es esencial para crear aplicaciones de calidad, dentro del plazo y presupuesto acordados. En este curso abordaremos los conceptos clave que aparecen en el cuestionario, ofreciendo explicaciones detalladas, ejemplos prácticos y buenas prácticas para que puedas aplicar este conocimiento en tus proyectos.

1. Métodos diagramáticos vs. métodos formales

Los métodos diagramáticos como UML (Unified Modeling Language) se utilizan para representar visualmente los componentes del software y sus interacciones. Su principal ventaja es facilitar la comunicación entre desarrolladores, analistas y stakeholders, ya que los diagramas son intuitivos y fáciles de interpretar.

  • Claridad visual: los diagramas muestran estructuras (clases, objetos) y flujos (secuencias, actividades) de forma gráfica.
  • Reducción de ambigüedades: al representar conceptos de forma visual se disminuye la probabilidad de malentendidos.
  • Apoyo a la documentación: UML complementa la documentación escrita, no la reemplaza.

A diferencia de los métodos matemáticos formales, que requieren conocimientos especializados y pueden ser costosos de aplicar, los diagramas UML son accesibles para todo el equipo, lo que acelera la fase de análisis y diseño.

2. Ciclo de desarrollo iterativo

En un enfoque iterativo, el proyecto se divide en ciclos o iteraciones que incluyen planificación, análisis, diseño, construcción y pruebas. Después de completar el ciclo 2, los artefactos generados (modelos de análisis, diseños, código y pruebas) se sincronizan para iniciar la siguiente iteración. Esta sincronización permite:

  • Reutilizar y refinar los entregables existentes.
  • Detectar y corregir defectos temprano.
  • Adaptar el alcance según el feedback del cliente.

El proceso no elimina fases, sino que las repite con mejoras continuas, garantizando que el producto evolucione de forma controlada.

3. Impacto de un alcance mal definido

Cuando el alcance del producto está pobremente definido, la consecuencia más frecuente es la dificultad para estimar costos y plazos. Esto genera retrasos, sobrecostos y, a menudo, la necesidad de renegociar contratos. Para evitar estos problemas, es fundamental:

  • Realizar un levantamiento de requisitos exhaustivo y documentado.
  • Validar los requisitos con el cliente mediante prototipos o revisiones.
  • Establecer criterios de aceptación claros.

4. Herencia en la programación orientada a objetos (POO)

La herencia permite que una clase derivada reutilice atributos y métodos de una clase base. Esta característica promueve la reutilización de código y facilita la extensión de funcionalidades sin duplicar lógica. Ejemplo:

class Vehiculo {
    protected int velocidad;
    public void acelerar() { velocidad++; }
}

class Coche extends Vehiculo {
    private int puertas;
    // Coche hereda acelerar() y velocidad
}

La herencia no obliga a que los atributos sean públicos ni impide la redefinición de métodos (cuando se usa override), lo que brinda flexibilidad al diseñador.

5. Modelo W5HH de Boehm

El modelo W5HH (What, Why, Where, When, Who, How) ayuda a estructurar la planificación de proyectos. La letra "H" corresponde a la pregunta "¿Cómo se realizará el trabajo, técnica y organizativamente?". Responder a esta pregunta implica definir:

  • Metodologías y procesos (ágiles, cascada, DevOps).
  • Herramientas de gestión (Jira, Trello, Git).
  • Patrones de arquitectura y diseño.

6. Limitaciones de la programación estructurada

La programación estructurada se basa en la separación de código y datos, pero en proyectos grandes puede generar problemas de mantenimiento porque no separa conceptualmente los datos del comportamiento. Sin una clara encapsulación, los cambios en la lógica pueden requerir modificaciones extensas en múltiples módulos, aumentando el riesgo de introducir errores.

Para mitigar este riesgo, se recomienda migrar a paradigmas orientados a objetos o usar arquitecturas basadas en servicios que favorezcan la modularidad.

7. Mantener la "cantidad de movimiento" en metodologías ágiles

En entornos ágiles, la cantidad de movimiento se refiere al ritmo constante del equipo. Una práctica clave es proveer incentivos que fomenten la calidad constante y reduzcan la rotación de personal. Mantener al equipo motivado y estable permite:

  • Mejorar la velocidad de entrega (sprint velocity).
  • Reducir el tiempo de adaptación a nuevas tareas.
  • Incrementar la cohesión y el conocimiento compartido.

Otras prácticas complementarias incluyen reuniones diarias (stand‑up), retrospectivas y la entrega frecuente de incrementos funcionales.

8. Actividades de la fase de "planeación y elaboración"

Durante la fase de planeación y elaboración se definen los requerimientos y se crea un prototipo preliminar. Esta actividad permite validar ideas tempranas, obtener feedback del cliente y ajustar el alcance antes de iniciar la construcción. Los entregables típicos son:

  • Documento de requisitos funcionales.
  • Mockups o wireframes de la interfaz.
  • Modelo de arquitectura de alto nivel.

Al contar con un prototipo, el equipo puede identificar riesgos técnicos y de negocio, lo que facilita la planificación de recursos y tiempos.

Conclusión

Dominar los modelos y procesos de desarrollo de software implica comprender tanto los aspectos técnicos (UML, herencia, programación estructurada) como los organizacionales (ciclos iterativos, modelo W5HH, metodologías ágiles). Aplicar estas buenas prácticas mejora la comunicación, reduce riesgos y aumenta la capacidad de entrega de valor al cliente.

Preguntas de autoevaluación

  • ¿Por qué los diagramas UML son más adecuados para la comunicación que los métodos formales?
  • ¿Qué se sincroniza después de completar el ciclo 2 en un proceso iterativo?
  • ¿Cuál es la principal consecuencia de un alcance mal definido?
  • ¿Qué permite la herencia en la POO?
  • En el modelo W5HH, ¿qué se busca responder con la pregunta "how"?
  • ¿Cuál es la razón principal por la que la programación estructurada dificulta el mantenimiento en proyectos grandes?
  • ¿Qué práctica ágil ayuda a mantener la cantidad de movimiento del equipo?
  • ¿Qué actividad pertenece a la fase de planeación y elaboración?

Revisa cada respuesta y compárala con los conceptos explicados en este curso para consolidar tu aprendizaje.