02 septiembre 2025

Resumen de Clase – UML y C++

Profesor: Mg. Aldo Hernán Zanabria Gálvez

Curso: Programación Orientada a Objetos II

 1. Importancia del UML en el desarrollo de sistemas

El Lenguaje Unificado de Modelado (UML) es un estándar para la representación visual de sistemas de software. Permite documentar, analizar y diseñar sistemas complejos de manera abstracta, facilitando la comunicación entre programadores, analistas y clientes.
Sus creadores, Grady Booch, James Rumbaugh e Ivar Jacobson, integraron metodologías previas para consolidar un lenguaje común adoptado por la OMG (Object Management Group), y hoy se considera fundamental en metodologías ágiles y tradicionales (Booch et al., 2005; Jacobson et al., 1999; Rumbaugh et al., 2004).

Principales diagramas estudiados:

  • Clases: representan categorías de objetos con atributos y funciones.
  • Casos de uso: muestran interacciones entre actores y el sistema.
  • Estado: describen las transiciones de un objeto a lo largo del tiempo.
  • Secuencia: visualizan mensajes entre objetos en un orden temporal.
  • Actividades y colaboración: representan flujos de procesos y cooperación de objetos.
  • Componentes y paquetes: organizan el software en módulos reutilizables.
  • Distribución: muestran la arquitectura física y lógica del sistema.
  • Notas e interfaces: permiten documentar, aclarar y definir puntos de interacción con el usuario.

Ejemplo práctico en clase: diseño de un sistema de lavadora, mostrando cómo se aplican atributos, estados y colaboración de objetos.

2. Conceptos fundamentales: Clases, Objetos e Instanciación

Una clase es una abstracción; un objeto es una instancia concreta con valores asignados. Por ejemplo, la clase Automóvil puede instanciarse en un objeto Toyota Corolla 2024.
Estos conceptos permiten conectar UML con la programación orientada a objetos en C++ y otros lenguajes (Gamma et al., 1995).

3. Tipos de Datos Abstractos (TDA) y estructuras en C++

El profesor explicó que los TDA encapsulan datos y operaciones. Un ejemplo es la clase Time, con atributos como hora, minuto y segundo, y métodos como setTime(), printMilitary() o printStandard().

  • Acceso a estructuras:
    • . → acceso directo.
    • -> → acceso mediante punteros.
  • Funciones y prototipos: uso de get y set para manipular atributos.
  • Validación de tiempo: formato militar vs. formato estándar (AM/PM), aplicando el operador módulo %.

Este enfoque refuerza la importancia de combinar teoría de UML con la práctica en C++ (Stroustrup, 2013).

4. Relación entre UML y Programación

El UML no es un lenguaje de programación, sino un lenguaje de modelado visual que se integra con lenguajes como C++ para materializar el diseño en código.
De este modo, los diagramas sirven como un mapa conceptual que guía el desarrollo de software robusto y reutilizable (Fowler, 2004).

5. Expectativas y tareas

El profesor finalizó con instrucciones para consolidar el aprendizaje:

Tareas para la próxima clase

  1. Código en C++: completar el capítulo 6 del libro, comprendiendo cada línea de código y preparándose para explicarlo individualmente en clase.
  2. Digitalización del libro: preparar una versión digital editable del material de estudio para el lunes.
  3. Ejercicio UML: diseñar un sistema de ajedrez usando diagramas UML (clases, casos de uso y secuencia).
  4. Preguntas de análisis: formular preguntas para entrevistar a usuarios potenciales y mejorar el diseño del sistema.

Referencias

  • Booch, G., Rumbaugh, J., & Jacobson, I. (2005). The Unified Modeling Language User Guide. Addison-Wesley.
  • Fowler, M. (2004). UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd ed.). Addison-Wesley.
  • Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
  • Jacobson, I., Booch, G., & Rumbaugh, J. (1999). The Unified Software Development Process. Addison-Wesley.
  • Rumbaugh, J., Jacobson, I., & Booch, G. (2004). The Unified Modeling Language Reference Manual (2nd ed.). Addison-Wesley.
  • Stroustrup, B. (2013). The C++ Programming Language (4th ed.). Addison-Wesley.

7 comentarios:

Anónimo dijo...

La implementación entrelazada entre los diagramas como UML y la programación van de la mano de manera muy estable y ayuda en la interacción y relación de trabajo entre varios programadores para así poder realizar proyectos y sistemas efectivamente.
Atte: Dayana Cahuana

Anónimo dijo...

Se me hizo interesante que en nuestra carrera de Ingeniería de Sistemas sea tan amplio que en si, no todo es solo programación...
Aunque este es una parte fundamental, para realizar un proyecto se necesita resolver problemas y varios obstáculos en el camino... Diagramas como el UML
Ha sido siempre un buena opción para tener una metodología eficiente...
Antes de realizar el código... un buen diagrama nos ayudara a minimizar errores futuros y tener una buena estructura de lo que se quiere lograr
Atte: Erika Ivonne Mamani Chura

Anónimo dijo...

Ingeniero, la clase de ayer me pareció bastante clara y ordenada, especialmente la forma en que se conectó UML con la programación. Me ayudó a entender mejor cómo los diagramas sirven de guía antes de escribir código. Como sugerencia, sería útil reforzar con más ejemplos prácticos pequeños, además del sistema de lavadora, para afianzar los conceptos paso a paso.

---Huisa Quispe,Ali M.---

Neyder S Mamani Mamani dijo...

Me gustó ver cómo el UML ayuda a visualizar el sistema antes de programarlo ya que nos ayuda a entender y explicar mejor lo que posteriormente llevaremos a implementar en C++.

Elite_J dijo...

Me pareció genial que puso el ejemplo práctico del sistema de la lavadora que me ayudo a entender mejor. Eso hace que todo el tema de los atributos, los estados y cómo se comunican los objetos sea fácil de entender. Es como pasar de la teoría a la practica.
Si bien hay muchos diagramas (de clases, de estado, de secuencia, etc.), no necesitas usarlos todos en cada proyecto. Para empezar, a mi parecer seria enfocarse en dos de los más útiles: el Diagrama de Clases (porque es la base de todo el código) y el Diagrama de Secuencia (para entender el flujo de comunicación entre los objetos). Con esos dos ya tienes una guía para empezar a programar de forma ordenada.
--JMP--

Anónimo dijo...

A diferencia de lo que comúnmente se cree que Ing de Sistemas es solo programación, herramientas como el UML ayudan a diseñar y documentar sistemas de información antes de escribir código, esto muestra que va más allá que solo programar, implica analizar, diseñar, modelar y optimizar sistemas complejos para poder solucionar problemas; hace posible la comunicación entre analistas, desarrolladores y clientes para cooperar en conjunto.
Atte. Delby Midward Chambilla Quispe

Anónimo dijo...

Excelente resumen. La integración de UML queda muy clara y es muy práctica. Perfecto para repasar los conceptos clave de clase. ¡Buen trabajo