Diagramas de Clases Muestran: Conjunto de clases. Interfaces. Colaboraciones. Relaciones.
Modelan: Vista de diseño estática de un sistema. El vocabulario del sistema. Las colaboraciones. Los esquemas Son la base para: Los diagramas de componentes. Los diagramas de despliegue.
Son importantes para: Visualizar. Especificar. modelos estructurales Documentar. Construir sistemas ejecutables. Aplicando: Ingeniería directa o… Inversa.
Cuando se construye SOFTWARE se comienza con el vocabulario adecuado para definir bloques abstractos, es decir, son una representación creada para visualizar lo que se quiere crear y sus relaciones. Estos bloques son principalmente estructurales pero tienen tambien algo de comportamiento. Estos bloques deben ser ensamblados de forma única y satisfactoria. Con UML, los diagramas de clases se emplean para visualizar el aspecto estático de estos bloques y sus relaciones y para especificar los detalles para construirlos.
¿Qué es un diagrama de clases? Es un diagrama que muestra un conjunto de interfaces, colaboraciones y sus relaciones. Gráficamente es una colección de nodos y arcos. ¿Qué contienen los diagramas de clases? Clases. Interfaces. Relaciones de dependencia, generalización y asociación. Notas. Restricciones. Paquetes. Subsistemas. Pueden o no contener Se usan para agrupar los elementos de un modelo en partes más grandes
¿Cuáles son sus usos más comunes? Modelar la vista de diseño estática de un sistema: Para modelar el vocabulario de un sistema. Implica decidir que abstracciones son parte del sistema y cuales no y así especificar esas abstracciones y sus responsabilidades. Para modelar colaboraciones simples. Se emplean para visualizar un conjunto. de datos y sus colaboraciones. Para modelar un esquema lógico de base de datos. Se necesitará almacenar información persistente en una base de datos relacional o en una base de datos orientada a objetos. Una colaboración es un conjunto de clases, interfaces y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de todos los elementos
¿Cuáles son las técnicas comunes de modelado? Las clases colaboran unas con otras para llegar a una semántica mayor que la asociada a cada clase individual, por lo que a parte de capturar el vocabulario del sistema hay que prestar atención a la visualización, especificación, construcción y documentación de la forma en que estos elementos del vocabulario colaboran entre sí. Para modelar una colaboración: Hay que identificar los mecanismos que se quieren modelar. Hay que identificar las clases, interfaces y otras colaboraciones que participan en esta colaboración, y las relaciones entre estos elementos. Hay que usar escenarios para recorrer la interacción entre estos elementos. Se descubrirán partes del model que faltaban y otras que eran semánticamente incorrectas. Rellenar estos elementos con su contenido. Para las clases se realiza un reparto equilibrado de responsabilidades. Después, hay que convertir estas en atributos y operaciones concretos.
¿Cómo se modela un esquema lógico de base de datos? Cuando se modela con diagramas de clases se permite el modelado del comportamiento de los datos a almacenar. Para modelar un esquema: Hay que identificar aquellas clases del modelo cuyo estado debe trascender el tiempo de vida de las aplicaciones. Hay que crear un diagrama de clases que contenga estas clases. Hay que expandir los detalles estructurales de estas clases. Es especificar los detalles de sus atributos. Buscar patrones comunes que complican el diseño físico de bases de datos (asociaciones cíclicas y uno a uno). Se deben crear abstracciones intermedias para simplificar la estructura lógica. Hay que considerar el comportamiento de las clases persistentes expandiendo las operaciones que sean importantes para el acceso a los datos y la integridad de estos. Hay que usar herramientas que ayuden a transformar un diseño lógico en un diseño físico.
Los modelos creados en UML no necesariamente tienen correspondencia con los códigos.
¿Qué es la ingeniería directa? Es el proceso de transformar un modelo en código a través de una correspondencia con un lenguaje de implementación. El código fuente no refleja la riqueza de detalles que aporta UML. Para hacer ingeniería directa con un diagrama de clases: Hay que identificar en forma global, para el proyecto u organización, las reglas para la correspondencia al lenguaje o lenguajes de implementación elegidos. Según la semántica de los lenguajes escogidos, quizá haya que restringir el uso de ciertas características de UML. (HERENCIA MULTIPLE) Hay que usar valores etiquetados para guiar las decisiones de implementación en el lenguaje destino. Hay que usar herramientas para generar código.
¿Qué es la ingeniería inversa? Es el proceso de transformar código en un modelo a través de una correspondencia con un lenguaje de programación específico. Para hacer ingeniería inversa sobre un diagrama de clases: Hay que identificar en forma global, para el proyecto u organización, las reglas para la correspondencia al lenguaje o lenguajes de implementación elegidos. Con una herramienta, hay que indicar el código sobre el que se desea aplicar ingeniería inversa. Con la herramienta, hay que crear un diagrama de clases inspeccionando el modelo. La información de diseño se puede añadir manualmente al modelo, para expresar el objetivo del diseño que no se encuentra o está oculto en el código.