Clase 4 Diagrama Clases

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.