Clase 4 Diagrama Clases
Introducción a UML y su Aplicación en el Desarrollo de Software
Conceptos Básicos de UML
- UML, o Lenguaje Unificado de Modelado, es un conjunto de normas gráficas para modelar aspectos del mundo real con el objetivo de implementar software.
- Se menciona un recurso útil: clases de ingeniería del software de la Universidad de Cantabria, que ofrece ejemplos prácticos sobre UML.
Vistas en UML
- Existen diferentes vistas en UML: lógica (casos de uso), diseño, interacción, implementación y despliegue. Cada vista tiene un propósito específico en el modelado.
- Es crucial que todos los elementos modelados sean coherentes y estén orientados a la producción efectiva del sistema.
Diagramas y su Funcionalidad
- Los diagramas como el diagrama de casos de uso y el diagrama de componentes son esenciales para entender la arquitectura lógica del sistema.
- El diagrama de clases puede ser utilizado para representar tanto entidades como relaciones dentro del sistema, mostrando su versatilidad.
Importancia del Contexto en el Uso de Diagramas
Adaptación a Supuestos Prácticos
- Al trabajar con diagramas UML, es importante adaptarse a lo que se requiere en los supuestos prácticos específicos.
- La notación gráfica debe ser comprendida correctamente para evitar confusiones durante las evaluaciones o pruebas.
Diferenciación entre Tipos de Diagramas
- Se discuten las diferencias entre diagramas estructurales (fotos fijas sin movimiento) y diagramas comportamentales (dinámicos).
- Esta distinción es fundamental para no mezclar conceptos al modelar sistemas; cada tipo tiene su propio enfoque y aplicación.
Diagramas Clave en UML
Versatilidad del Diagrama de Clases
- El diagrama de clases es considerado uno de los más versátiles dentro del contexto UML, aplicándose a diversas capas arquitectónicas.
- Al crear un diagrama de clases, se busca representar un modelo del dominio del sistema que también se relaciona con la programación orientada a objetos.
¿Qué es la Programación Orientada a Objetos?
Introducción a la Programación Orientada a Objetos
- La programación orientada al objeto representa un cambio de paradigma en comparación con la programación estructurada, donde el control se transfiere de un procedimiento a otro.
- En la programación estructurada, el control fluye entre programas hasta que se completa una tarea, modelándose mediante diagramas de flujo de datos.
- A diferencia de esto, en la programación orientada al objeto, cada objeto puede operar independientemente y tiene su propio estado y comportamiento.
Conceptos Clave de Objetos
- Cada objeto (por ejemplo, "Alejandro") tiene atributos como tamaño y peso, así como comportamientos comunes (caminar hacia adelante o atrás).
- La clase es una plantilla para crear objetos; por ejemplo, "persona" es una clase y "Alejandro" y "David" son instancias de esa clase.
Diagramas UML y Clases
- El diagrama de clases en UML es similar al diagrama entidad-relación; las clases representan entidades del mundo real.
- Al programar en lenguajes orientados a objetos como Java o .NET, se crean instancias de clases que residen en memoria durante la ejecución.
Estructura del Diagrama de Clases
- Un diagrama de clases incluye tres compartimentos: nombre de la clase, atributos (como ID o nombre), y métodos que definen el comportamiento.
- Los métodos deben ser seleccionados cuidadosamente; no todos los procedimientos son necesarios en el diagrama inicial.
Importancia del Comportamiento vs. Datos
- Es crucial distinguir entre datos y comportamiento; los diagramas deben centrarse más en los atributos que en los métodos para evitar confusiones.
- Se recomienda limitar el número de métodos incluidos inicialmente para mantener claridad sobre las relaciones entre clases.
Diagrama de Clases y su Importancia en el Desarrollo
Conceptos Básicos sobre Diagramas
- Se discute la necesidad de crear y destruir elementos en un diagrama de clases, enfatizando que debe tener sentido para el supuesto presentado.
- Se menciona que en el examen A1 no se pidió un modelo de datos, lo cual es relevante para entender las expectativas del examen.
Diferencias entre Modelos
- En el examen anterior, se solicitó indicar el modelo de datos asociado a nuevas funcionalidades, pudiendo ser un diagrama de clases o un diagrama entidad-relación.
- La importancia del diagrama de clases se destaca al representar el dominio del sistema y sus atributos principales.
Estrategias para Exámenes
- Se planea dar una clase sobre estrategias para abordar supuestos prácticos en exámenes futuros.
- En los exámenes A2, siempre se pide diseñar un diagrama de clases mostrando atributos principales; esto contrasta con los requisitos más flexibles del A1.
Comparación entre Diagramas
- En el A1, se presenta una descripción funcional sin especificar qué tipo de diagrama usar, lo que puede llevar a confusión sobre si utilizar DFD o diagramas de casos de uso.
- Se observa que en 2018 se pidió identificar un diagrama de contexto como parte del modelo lógico del sistema.
Ventajas del Diagrama de Clases
- El diagrama de clases permite relaciones recursivas (una entidad puede relacionarse consigo misma), lo cual es una ventaja frente al modelo entidad-relación.
- La agregación y composición son conceptos clave; la agregación permite que una entidad exista independientemente mientras que la composición implica dependencia total.
Consideraciones Finales sobre Modelado
- La diferencia entre agregación y composición es crucial: la primera permite cierta independencia entre entidades, mientras que la segunda implica una relación más fuerte.
- Para modelar adecuadamente, se recomienda usar agregaciones ante dudas sobre composiciones debido a su menor complejidad.
¿Cómo abordar la herencia y la agregación en programación?
Preferencias en el uso de diagramas
- El hablante expresa su preferencia por un enfoque diferente al de los rombos, indicando que le resulta más natural y rápido. Menciona que cada persona tiene sus propias preferencias en cuanto a métodos de representación.
Claridad en las entidades y relaciones
- Se destaca la claridad del diagrama entidad-relación, sugiriendo que es más comprensible para el hablante en comparación con otros métodos.
Visibilidad de atributos y métodos
- Se discute la importancia de la visibilidad (público/privado) en los atributos y métodos dentro de un diagrama de clases, enfatizando que solo se deben incluir aquellos que tengan sentido ser públicos.
Notación adecuada en diagramas
- Se menciona una práctica común donde algunos diseñadores dejan una tercera caja vacía en los diagramas. El hablante recomienda mantener esta notación para asegurar claridad.
Ejercicios prácticos y próximos pasos
- Se informa sobre el envío de un correo electrónico con ejercicios prácticos relacionados con crisis consulares, incluyendo varios tipos de diagramas como contexto, casos de uso, entidad-relación y clases.