Profesor: Mg. Aldo Hernán Zanabria Gálvez
Curso: Programación
Orientada a Objetos II
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
- 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.
- Digitalización del libro: preparar una
versión digital editable del material de estudio para el lunes.
- Ejercicio UML: diseñar un sistema de
ajedrez usando diagramas UML (clases, casos de uso y secuencia).
- 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:
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
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
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.---
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++.
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--
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
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
Publicar un comentario