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.
Año 2001 Profesor VAZQUEZ Alumno Alejandro PEREZ CUVIT