Diagrama de casos de uso con actores y relaciones include y extend
← RECURSOS

Modelado de Requerimientos con Diagramas de Casos de Uso UML

Captura del comportamiento del sistema mediante UML: identificación de actores, límites del sistema y relaciones include, extend y generalización.

📌 En síntesis: Captura del comportamiento del sistema mediante UML: identificación de actores, límites del sistema y relaciones include, extend y generalización.

Guía técnica desarrollada por el equipo de Proyecto Luna para formación profesional y consulta técnica abierta.


El desarrollo de software es un proceso que, lejos de ser improvisado, requiere planificación, disciplina y metodologías que guíen las actividades del equipo de trabajo. A lo largo de la historia de la ingeniería de software, diferentes enfoques han intentado responder a los problemas recurrentes de proyectos fallidos: retrasos en los plazos, sobrecostos, software de baja calidad y, en muchos casos, productos que no satisfacen las necesidades reales de las y los usuarios. En este contexto, Ivar Jacobson, Grady Booch y James Rumbaugh, tres de los autores más influyentes en la ingeniería de software orientada a objetos, propusieron en 1999 el Proceso Unificado de Desarrollo de Software (PUDS), también conocido como Unified Software Development Process. El PUDS es considerado un marco metodológico robusto que integra las mejores prácticas de la industria, combinando la disciplina de los métodos tradicionales con la flexibilidad de enfoques iterativos e incrementales. El valor del PUDS radica en que no es un proceso rígido ni monolítico, sino un marco adaptable que puede ajustarse a las características específicas de cada proyecto. En esencia, busca garantizar que el producto final no solo sea funcional, sino que también responda a los requisitos de calidad, mantenibilidad y escalabilidad.


🚀 Introducción

Figura 1. Ejemplo práctico Figura 1. Ejemplo práctico (Fuente: Open AI (2023))


🛠️ Características del Proceso Unificado de Desarrollo de Software

🔹 Enfoque dirigido por casos de uso

Un caso de uso es una descripción de cómo un actor (usuario u otro sistema) interactúa con el software para alcanzar un objetivo concreto. El PUDS pone a los casos de uso en el centro de su enfoque, pues estos se convierten en el hilo conductor de todas las actividades: análisis, diseño, pruebas y validación.

  • En la captura de requisitos, los casos de uso permiten registrar de forma clara lo que los usuarios necesitan, evitando ambigüedades.

  • En el diseño, orientan la creación de diagramas de clases, secuencia y colaboración, mostrando cómo se implementará la funcionalidad.

  • En las pruebas, sirven como base para generar escenarios que validen que el sistema cumple con lo esperado.

🔹 Enfoque centrado en la arquitectura

La arquitectura de software es la estructura fundamental del sistema que define los componentes, sus interacciones y las reglas de diseño que lo gobiernan. El PUDS enfatiza que la arquitectura debe construirse y validarse desde las primeras fases del proyecto. Ejemplo práctico: en un sistema bancario, un caso de uso puede ser “Realizar transferencia”. Este define los actores (cliente y sistema bancario), el flujo principal (ingresar monto, validar saldo, confirmar operación) y los flujos alternativos (saldo insuficiente, error de conexión). Dicho caso de uso servirá para que analistas, diseñadores y testers trabajen con un entendimiento común.

Figura 2: Ejemplo de arquitectura de software en tres capas Figura 2: Ejemplo de arquitectura de software en tres capas

Un sistema con una arquitectura sólida es más fácil de mantener, escalar y adaptar a nuevas tecnologías. Por el contrario, un sistema sin una base arquitectónica clara tiende a volverse frágil, con alta dependencia entre módulos y difícil de evolucionar. Por ejemplo, en una aplicación de comercio electrónico, la arquitectura debe definir al menos tres capas: Si la arquitectura no se define de manera temprana, el crecimiento del sistema puede generar redundancias, errores y atrasos por sobrecarga.

🔹 Naturaleza iterativa e incremental

A diferencia del modelo en cascada, en el que cada fase debe completarse antes de iniciar la siguiente, el PUDS trabaja en iteraciones cortas que producen incrementos del sistema. Cada iteración es un ciclo completo de actividades (requisitos, diseño, implementación y pruebas) que genera una versión parcial del sistema. Estas versiones, aunque incompletas, son funcionales y permiten obtener retroalimentación temprana de los usuarios. Capa de presentación (interfaz gráfica) Capa de negocio (reglas comerciales, gestión de pedidos e inventario) Capa de datos (base de datos, persistencia)

Tabla 1. Ventajas del enfoque Fuente: Open AI (2023) El ciclo de vida del PUDS se organiza en cuatro fases principales. Cada fase contiene varias iteraciones y produce artefactos (elementos observables) específicos.

🔹 Fase de inicio

La fase de inicio corresponde al momento en que se establece el alcance del proyecto. Se identifican los principales actores, los requisitos más relevantes y se definen los riesgos iniciales. Su propósito es evaluar la viabilidad técnica y económica del sistema y proporcionar una visión global del proyecto. Objetivo: definir la visión global del proyecto y evaluar su viabilidad. Núm. Ventajas Reducción del riesgo, ya que los problemas se detectan antes de que sea demasiado costoso corregirlos. Adaptabilidad a cambios de requisitos, comunes en proyectos reales. Incremento progresivo de la funcionalidad, lo que mejora la confianza del cliente.

Figura 3. Ejemplo práctico Figura 3. Ejemplo práctico (Fuente: Open AI (2023))

Ejemplo práctico: al desarrollar una aplicación de mensajería, en la primera iteración puede implementarse el registro de usuarios; en la segunda, el envío de mensajes básicos; en la tercera, las notificaciones push; y así sucesivamente hasta completar un producto competitivo.


🛠️ Fases del Proceso Unificado de Desarrollo de Software

🔹 Fase de elaboración

En la fase de elaboración se construye y valida la arquitectura base del sistema. Aquí se refinan los casos de uso más críticos, se desarrollan prototipos que ayudan a mitigar riesgos técnicos y se establece un plan detallado de las iteraciones de construcción. Es la fase donde se consolidan los cimientos arquitectónicos del software. Objetivo: construir y validar la arquitectura base del sistema. Actividades clave:

  • Refinamiento de los casos de uso.
  • Diseño del modelo arquitectónico preliminar.
  • Desarrollo de prototipos para mitigar riesgos técnicos.
  • Planificación detallada de las iteraciones de construcción.

Figura 4: Ejemplo de fase de inicio Figura 4: Ejemplo de fase de inicio

Actividades clave:

  • Identificación de actores y casos de uso principales.
  • Estudio preliminar de factibilidad técnica y económica.
  • Definición de los riesgos iniciales.
  • Elaboración de un plan de proyecto de alto nivel. Ejemplo: en un sistema de reservas de hoteles, esta fase podría identificar casos de uso como: “Registrar cliente”, “Buscar habitación disponible” y “Generar reporte de ocupación”.

🔹 Fase de construcción

La fase de construcción se centra en el desarrollo iterativo e incremental del sistema completo. Incluye la codificación de funcionalidades, la integración de componentes y la realización de pruebas unitarias y de integración. El sistema evoluciona en cada iteración hasta cubrir los requisitos definidos. Objetivo: desarrollar el sistema completo siguiendo un proceso iterativo e incremental. Actividades clave:

  • Codificación de funcionalidades.
  • Integración de módulos.
  • Ejecución de pruebas unitarias y de integración.

Figura 5. Ejemplo fase de elaboración Figura 5. Ejemplo fase de elaboración (Fuente: Open AI (2023))

Figura 6: Ejemplo fase de construcción Figura 6: Ejemplo fase de construcción

Ejemplo: en un sistema de e-commerce, se podría crear un prototipo de arquitectura con separación de capas y pruebas de carga sobre la base de datos. Ejemplo: en una aplicación bancaria, durante esta fase se implementan funciones como: “Transferencias”, “Pagos de servicios” y “Gestión de tarjetas”.

🔹 Fase de transición

La fase de transición corresponde al momento en que el sistema se entrega a los usuarios finales. Aquí se realizan pruebas de aceptación, ajustes derivados de la retroalimentación, capacitación de usuarios y despliegue en el ambiente productivo. Su meta principal es garantizar la usabilidad y satisfacción del cliente. Objetivo: entregar el sistema al cliente y asegurar su usabilidad. Actividades clave:

  • Pruebas de aceptación con usuarios finales.
  • Ajustes derivados de retroalimentación.
  • Capacitación de usuarios y soporte.
  • Instalación en el entorno productivo.

Figura 7: Ejemplo fase de transición Figura 7: Ejemplo fase de transición

Ejemplo: en un sistema de gestión académica, esta fase incluiría la capacitación de los administrativos y profesores para usar el sistema de notas.

Además de sus fases, el PUDS establece procesos de flujo de trabajo que atraviesan todas las iteraciones, que se detallan en tabla siguiente: Cada uno de estos procesos es refinado progresivamente, de manera que el producto evoluciona a lo largo de las iteraciones. El Proceso Unificado no es solo una metodología de desarrollo, también es una herramienta de gestión de proyectos. Su estructura por fases e iteraciones permite:

  • Planificar entregables parciales.
  • Controlar costos y plazos.
  • Gestionar riesgos de manera proactiva.
  • Facilitar la comunicación entre equipos técnicos y clientes. Comparado con el modelo en cascada, el PUDS reduce la probabilidad de fracaso, ya que evita esperar hasta el final para validar requisitos. Por eso es ampliamente utilizado en industrias críticas como la banca, telecomunicaciones y defensa. Tabla 2. Procesos de flujo de trabajo Fuente: Open AI (2023)

📌 Procesos e iteraciones en el Proceso Unificado


📌 Relación del PUDS con la planificación y construcción del software

Procesos Descripción Modelamiento del negocio Identificar procesos clave de la organización y su relación con el sistema. Gestión de requisitos Recolectar, priorizar y documentar necesidades del cliente. Análisis y diseño Convertir requisitos en modelos UML que representen la solución. Implementación Codificar, integrar y documentar los componentes. Pruebas Validar el sistema en distintos niveles (unitarias, integración, aceptación). Despliegue Instalar el sistema en el entorno real, con guías de usuario y soporte.

El Proceso Unificado de Desarrollo de Software es un marco metodológico sólido que ha marcado un antes y un después en la forma en que se conciben los proyectos de software. Sus pilares —casos de uso, arquitectura, iteración e incrementalidad— garantizan que los sistemas se construyan de manera controlada y alineada a las necesidades del usuario. Para las y los futuros ingenieros(as) en informática, comprender y aplicar el PUDS significa contar con una base metodológica que les permitirá participar en proyectos de alta complejidad, aportando valor en cada fase del ciclo de vida del software.


💡 Conclusión



🚀 Potencia tus proyectos tecnológicos con Proyecto Luna

En Proyecto Luna desarrollamos arquitectura de software de alto rendimiento, optimización de bases de datos críticas y soluciones aplicadas de inteligencia artificial y automatización para empresas y profesionales.

  • 💼 Soluciones de ingeniería: Conoce nuestras capacidades y casos de estudio en proyectoluna.com/work/.
  • 🛡️ Seguridad y auditoría: Orientación técnica y respuesta ante incidentes en ¿Te han hackeado?.
  • 📩 Contacto directo: Escríbenos a través de nuestro formulario de contacto o a contacto@proyectoluna.com.

📚 Fuentes y lecturas recomendadas

  • ● Jacobson, I., Booch, G. y Rumbaugh, J. (2000). El proceso unificado de desarrollo de software. Pearson/Addison Wesley. ● Jacobson, I., Booch, G. y Rumbaugh, J. (2006). El lenguaje unificado de modelado: Guía del usuario. Pearson/Addison Wesley. ● Open AI. (2023). Prompt: proceso unificado de desarrollo de software y modelo unificado. Clase 2. [Modelo de lenguaje]. https://chat.openai.com/chat

CONTINÚA EXPLORANDO

ARTÍCULOS SUGERIDOS

Dilema ético en la toma de decisiones tecnológicas e informáticasInformática

Actos Humanos, Libertad y Dilemas Éticos en la Tecnología

Análisis de decisiones éticas: actos del hombre vs actos humanos voluntarios, consentimiento, privacidad de datos y dilemas en algoritmos de IA.

Representación conceptual de la dignidad de la persona y la ética del trabajoInformática

Dignidad de la Persona, Ética de las Virtudes y Excelencia Profesional

La persona como centro de la actividad técnica: dignidad intrínseca, virtudes cardinales y búsqueda de la excelencia en el ejercicio del trabajo.

Representación simbólica de la balanza de la justicia y la éticaInformática

Fundamentos de la Ética: Moral, Leyes y Responsabilidad Social

Distinción conceptual entre ética y moral: el origen de las normas de convivencia, relación con el ordenamiento jurídico y responsabilidad ciudadana.

VER TODOS LOS RECURSOS →

HABLEMOS DE TU CASO

¿Necesitas ayuda? Contáctanos y te contestamos!

SERVICIOS →