La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Herencia Herencia es a relación entre clases por medio de la cual una clase deriva parte de su definición de otra clase La herencia define una jerarquía.

Presentaciones similares


Presentación del tema: "Herencia Herencia es a relación entre clases por medio de la cual una clase deriva parte de su definición de otra clase La herencia define una jerarquía."— Transcripción de la presentación:

1 HERRAMIENTAS CASE PARA MODELAMIENTO DE DATOS ORIENTADO A OBJETOS Segunda parte

2 Herencia Herencia es a relación entre clases por medio de la cual una clase deriva parte de su definición de otra clase La herencia define una jerarquía de abstracción, en la cual una subclase hereda de una o más superclases Ventajas de la herencia: Se puede construir sobre lo que ya se tiene Se puede reutilizar lo que ya se tiene La herencia describe una relación “es un” o “clase de”

3 Relaciones Superclase-Subclase
En la cima de la jerarquía de clases está la clase más general De ella descienden todas las demás, son clases especializadas Subclases son versiones especializadas de sus superclases En herencia simple, la subclase hereda únicamente de una superclase En herencia múltiple, la subclase hereda de más de una superclase Especialización es el proceso de crear subclases que heredan la estructura y/o comportamiento de superclases y añaden o modifican estructura y comportamiento según necesidades

4 Guía para identificar relaciones Super-Sub en forma descendente
Mirar frases con sustantivos con varios adjetivos sobre el nombre de la clase Ejemplo: Banco de Comercio y Banco de Inversiones Especializar únicamente cuando la subclase tiene un comportamiento significativo Ejemplo: Los vendedores ganan comisión sobre las ventas y tienen un salario básico A veces los productos están registrados por un número de serie otros por lote

5 Guía para identificar relaciones Super-Sub en forma ascendente
Ver clases con atributos o métodos similares Agruparlas colocando los atributos y métodos comunes en la superclase Ejemplo: Clientes, vendedores, y empleados, todos tienen dirección Crear una clase Direccion para manejar toda la lógica de la dirección Todos los productos tienen nombre e identificación Crear una superclase Producto que contenga esos atributos Tener cuidado de no forzar clases que contengan una estructura generalizada preconcebida

6 Guía para identificar relaciones Super-Sub – Reutilización
Colocar los atributos y métodos tan alto como sea posible en la jerarquía Al mismo tiempo, no crear clases altamente especializadas en la cima de la jerarquía Ejemplo: Ninguna superclase debe tener solo una subclase Usar varias iteraciones para conseguir este balance

7 Indicativo de herencia
Relación de herencia

8 Herencia en PowerDesigner
En PowerDesigner la herencia se llama generalización Para dibujar una relación de herencia entre dos clases: 1. En la paleta, hacer clic en la herramienta Generalización 2. Hacer clic y soltar una línea de generalización de la subclase a la superclase

9 Propiedades de la herencia en PowerDesigner
Propiedades de la Generalización : Name Code Comment Parent Child Stereotype Visibility

10 Herencia de atributos y operaciones
Definir atributos y operaciones al más alto nivel en la jerarquía de herencia La herencia resalta las similitudes entre clases Subclases heredan de una clase: Todos los atributos Todas las operaciones Cada subclase puede añadir atributos Cada subclase puede aumentar o redefinir las operaciones heredadas Atención –en forma nativa CORBA no soporta sobrecarga La sobrecarga ocurre cuando varias operaciones definidas en la misma clase tienen el mismo nombre pero tienen diferentes argumentos

11 Relaciones heredadas Definir relaciones al más alto nivel en la jerarquía de herencia Subclases de una clase heredan todas las relaciones Cada subclase también puede participar en relaciones adicionales

12 Herencia vs Agregación
Herencia y agregación a menudo se confunden herencia representa una relación “es-un” o “tipo-de” Agregación representa una relación “tiene-un” Ejemplos: Vendedor es un empleado; Una orden tiene un Ítem Usar las palabras claves “es un” y “tiene un” para encontrar la relación correcta

13 Herencia múltiple En sistemas orientados a objetos a una clase se le permite heredar de más de una superclase Esta clase de herencia se conoce como herencia múltiple Ejemplo, UtilidadVehiculo hereda de las clases Tractomula y Carro VehiculoMotor Tractomula Carro Bus UtilidadVehiculo

14 Problemas con herencia múltiple
Hay varios problemas con la herencia múltiple, entre otros: Las subclases pueden heredar el mismo atributo de dos superclases diferentes Las subclases pueden heredar la misma operación de dos superclases diferentes La mayoría de los lenguajes orientados a objetos no soportan bien la herencia múltiple PowerBuilder y Java manejan herencia simple Trabajo adicional: Delegar ciertos atributos u operaciones en clases asociadas, usar agregación, o usar interfases en Java (se ven más adelante)

15 Interfase Una interfase es un conjunto de operaciones usadas para especificar el comportamiento externo de una clase, objeto u otra entidad En el caso de una clase u objeto, la interfase incluye la firma de las operaciones La interfase es un concepto UML que también está en Java No suportado en PowerBuilder Se puede ver como un “contrato” para un conjunto de clases

16 Uso de interfases Una interfase es similar a una clase abstracta, tiene atributos y operaciones como una clase, pero las operaciones son virtuales, no hay implementación de las operaciones Para crear una interfase: En la paleta, dar clic en la herramienta “Interface” o Seleccionar “Mode Interfaces” del menú principal para definir interfase (continúa …)

17 Uso de interfases Para vincular una clase a una interfase, asociar la interfase con la clase que “realiza” la interfase Para establecer este vínculo, en la paleta dar clic en “Realization Drawing”, y dibujar la realización de la clase a la interfase

18 Propiedades de “Interface”
Name Code Comment Stereotype Visibility Generate Inner to

19 Propiedades de “Realization”
Name Code Comment Interface clase Stereotype

20 Implementación de interfases
Las interfases son como entidades de clases que tienen operaciones (generalmente abstractas) y atributos “To Be Implemented” es una facilidad que muestra qué operaciones de la interfase que su clase implementa se tienen que implementar Al hacer clic en “Implement”, copia la firma de la operación a su clase para implementación

21 Uso de interfases Evita herencia múltiple Forza polimorfismo
Las interfases ayudan a evitar la herencia múltiple teniendo una clase que soporta múltiples interfases Forza polimorfismo Las interfases ayudan a usar polimorfismo forzando a las clases a soportar todos los atributos y operaciones de una interfases Asegura un método consistente de nombre y llamado a través de múltiples clases

22 Final UML y Java soportan “final clases”
Clases que no se pueden heredar Esto ayuda a asegurar que las clases no van a ser mal utilizadas por otros desarrolladores Ejemplos: Clases para seguridad Clases con formas de trabajo

23 Paquete (package) Paquete es un mecanismo de propósito general para organizar elementos en grupos Típicamente un modelo orientado a objetos se organiza en paquetes Se puede pensar que un modelo completo es un paquete de alto nivel que contiene cualquier otro paquete dentro de él Se usan paquetes para focalizar la funcionalidad en el sistema Cada paquete tienen al menos un diagrama Puede tener más de un diagrama

24 Paquetes en PowerDesigner
<<Sistema>> Mi sistema

25 Paquetes El concepto de paquetes en PowerDesigner corresponde al concepto de paquetes de Java, es decir, un conjunto de grupos de clases que ejecutan funciones relacionadas Ejemplos: El paquete AWT, parte del API, incluye clases para crear un sistema gráfico de ventanas El paquete IO, usado por el sistema de E/S, streams, persistencia, y archivos Se pueden usar paquetes para referirse a agrupamientos tanto físicos como lógicos de los elementos de un modelo Se usan para particionar o para desarrollar (continúa …)

26 Paquetes El uso de paquetes ayuda a garantizar la jerarquía del sistema Un paquete puede contener otros paquetes Se pueden anidar paquetes para formar una jerarquía Esta capacidad de anidamiento ayuda a agrupar las clases, tal como una jerarquía de directorios puede ayudar a organizar los archivos Cuando se genera código Java, un paquete se genera como un directorio en el sistema de archivos de destino

27 Jerarquía de paquetes En PowerDesigner, los paquetes se muestran en el navegador como niveles separados

28 Propiedades de los paquetes
Name Code Comment Stereotype  Namespace Default diagram

29 Estereotipos de paquetes
Estereotipos comunes de paquetes: Facade Framework Metamodel Model Stub Subsystem System SystemModel TopLevel

30 Espacio de nombres Un espacio de nombres define el alcance en el cual un nombre y el código de un objeto de cualquier tipo dado debe ser único Entonces, el nombre de un objeto de un modelo se puede forzar a que sea único a nivel de un modelo, paquete o subpaquete En UML y Java,por default, los nombres de las clases deben ser únicos a nivel de paquete Java resuelve esto en el momento de ejecución utilizando la variable CLASSPATH PowerBuilder resuelve esto en el momento de ejecución utilizando la lista de la librería En un modelo orientado a objetos, el paquete es el valor por omisión para el espacio de nombres

31 Dependencia de paquetes
Un paquete es un concepto de desarrollo de software Uno de los objetivos principales es minimizar la dependencia de paquetes Ejemplo: Mi Paquete1 depende de Mi Paquete2, significa que uno o más elementos en el Paquete1 dependen de uno o más elementos en el Paquete2 Un cambio en un Paquete puede requerir de uno o más cambios en los elementos fuente del paquete dependiente

32 Relaciones de Paquetes
El único tipo de relación entre paquetes es la relación de dependencia Si una clase en un paquete se refiere a una clase en otro paquete, se debe añadir una dependencia de relación a nivel de paquete Evaluar clases y diagramas de clases para determinar relaciones entre paquetes

33 Dependencia de paquetes - Implicaciones
Ejemplo: Siempre que se haga un cambio en “Service package”, “Client package” se debe volver a compilar y a probar “Client package” no se puede reutilizar independientemente porque él depende de “Service package”

34 Interfase pública de un paquete
Cada clase en un paquete tiene un parámetro de visibilidad que se puede colocar en público, paquete, privado, o protegido Solamente las clases públicas pueden ser utilizadas por clases en otros paquetes Evaluar las partes públicas y privadas de un paquete No todas las clases en un paquete deben hacer parte de la interfase pública del paquete

35 Evitar dependencias circulares
Una jerarquía de paquetes debe ser asimétrica Tratar de evitar el siguiente escenario: El paquete A usa el Paquete B y el Paquete B usa el Paquete A La dependencia circular entre los paquetes A y B es un indicativo para tratarlos como un único paquete Evitar este tipo de círculo entre más de dos paquetes Ejemplo: El paquete A usa el Paquete B, el Paquete B usa el Paquete C y el Paquete C usa el Paquete A Estas dependencias circulares se deben romper reestructurando uno o más paquetes

36 Reestructuración de paquetes
Se debe pensar en la reestructuración de paquetes en un modelo si: Hay un acoplamiento fuerte entre los paquetes, lo que significa que los paquetes se deben combinar Hay dependencia en doble vía entre los paquetes, lo que significa que las clases se deben reorganizar La interfase de un paquete debe encapsular su implementación en una interfase pública tal como lo hace una clase Evaluar las consideraciones de reutilización Para que sea reutilizable, un paquete debe tener pocas dependencias Ejemplo: mirar los paquetes de Java

37 Reglas del negocio Una “Regla del negocio” es algo que se debe cumplir
Ejemplo de Reglas de negocio: Las leyes gubernamentales Requerimientos del cliente Guía de cumplimiento interno Las reglas del negocio a menudo comienzan como simples observaciones Ejemplo: “Los clientes llaman por los número gratis para colocar sus pedidos” Durante el diseño hay que desarrollar esas observaciones en expresiones más detalladas

38 Reglas del negocio Ejemplos:
Lo que puede comprar un cliente de acuerdo a la línea de crédito Información que debe proporcionar un cliente cuando hace un pedido Las reglas del negocio complementan los modelos gráficos con información que no se puede representar fácilmente en forma gráfica La regla “un empleado pertenece a uno y solo un departamento”, indica el tipo de relación entre un empleado y un departamento Fórmulas algebraicas, restricciones, reglas de validación

39 Reglas del negocio - Propiedades
Name Code Comment Type Expression Notes

40 Tipos de reglas del negocio
Restricciones – Condición a chequear sobre un valor Definición – características o propiedades de un objeto en el sistema Hechos – cosas ciertas o existentes en el sistema Fórmulas – calculos empleados en el sistema Requerimientos – especificación funcional en el sistema Validación – restricción sobre un valor en el sistema

41 Reglas del negocio y modelado con objetos
Las reglas del negocio se pueden ligar a los siguientes objetos en un modelo orientado a objetos: Domains Classes Interfaces Attributes Identifiers Operations Associations Generalizations Realizations Dependencies Use Cases Actors Objects Messages

42 Dominio Un dominio es el conjunto de valores válidos para un data ítem
En el caso de PowerDesigner, existen con el mismo significado en los tres modelo OOM, CDM y PDM Los dominios se usan para forzar manejo consistente de datos en el sistema

43 Dominio - Propiedades Name Code Comment Stereotype Data type
Multiplicity Standard checks Additional checks Rules Dependencies

44 Selección del tipo de datos
Seleccionar un clasificador Una Clase o Interfase se puede usar como un tipo de dato Usar la herramienta seleccionadora de clasificación para mostrar la lista

45 Propiedades de dominio – “Detail”
“Detail” sirve para mejorar la generación de código y tipos de datos en la generación de un CDM o PDM Aquí los tipos de datos son internos de PowerDesigner “Persistent” se ve más adelante

46 Dominios y divergencia
Ventana Model Options – Se puede forzar “non-divergence” entre un dominio y los data ítem que usan el dominio Si se forza “non-divergence”, un data ítem no puede tener un tipo de dato diferente del dominio Se dice que se tiene un modelo “honest”

47 Diagrama de Secuencia En un sistema en funcionamiento los objetos interactúan entre sí Las interacciones suceden a través del tiempo Los objetos interactúan mandándose mensajes Un mensaje hace que un objeto haga algo El diagrama de clases representa la parte estática El diagrama de secuencia muestra la parte dinámica de las interacciones Representa un trabajo producto del proceso de diseño

48 Modelamiento de interacciones
Durante el análisis se puede hacer el modelamiento de las interacciones, si es necesario, pero típicamente es una técnica de modelamiento durante el diseño y la construcción Se pasa del “qué” al “cómo” Objetivos del modelado de interacciones: Ver el comportamiento entre objetos Mostrar de forma detallada las interacciones que ocurren entre objetos a través del tiempo Detallar la distribución de operaciones entre clases

49 Diagrama de Secuencia Con el diagrama de clases y analizando los casos de uso se puede conceptualizar las partes del sistema pero queda pendiente la interacción entre ellas Esta información hace más sencillo el trabajo de los programadores Les da una visión de cómo codificar las clases y ponerlas a trabajar juntas Un diagrama de secuencia se puede usar para refinar la descripción de un caso de uso y ayuda a encontrar objetos adicionales Típicamente se tiene un diagrama de secuencia para el flujo principal de eventos y uno por cada sub-flujo independiente del caso de uso

50 Diagramas de Secuencia y sistemas multicapa
Los diagramas de secuencia son indispensables para el desarrollo de sistemas multicapa (multi-tier systems) Generalmente la interacción y coordinación entre objetos de diferentes capas es compleja Ejemplo: Interacción que ocurre entre objetos lógicos del negocio en una capa, los objetos de base de datos en otra capa y los múltiples tipos de objetos de la interfase (browser, PDA o Windows) Los diagramas de secuencia pueden gráficamente representar esas interacciones haciendo que sea más fácil entenderlas

51 Componentes de un diagrama de secuencia
Objetos Representados como rectángulos en la parte superior del diagrama Actores se pueden representar de forma opcional Mensajes Representados como flechas Tiempo Representado en la dirección vertical La línea de vida de un objeto es la línea punteada que baja desde el objeto La duración de la ejecución de una operación (activación) se puede representar como un rectángulo a lo largo de la línea de vida del objeto (opcional)

52 Diagrama de Secuencia

53 Diagrama de Secuencia con texto
You can place use case text along the side to clarify diagram

54 Control de flujo Indicativos de control de flujo: Asíncrono
Requerimiento en el que el objeto que envía no espera por un resultado, él puede hacer cosas en paralelo. Aplica la semántica de “No-espere” Llamada a un procedimiento El que envía la llamada debe esperar una respuesta o la terminación de la activación. Aplica la semántica de “espere” Retorno de una llamada Generalmente asociada a un llamado previo a un procedimiento. Se puede omitir el retorno ya que está implícito al finalizar una activación Indefinido No se define control de flujo

55 Mensajes en PowerDesigner
Los mensajes tienen un emisor, un receptor y pueden tener una acción Emisor es el objeto o actor que envía el mensaje Receptor es el objeto o actor que recibe el mensaje Acción, ejecutada por el receptor para transmitir comportamiento Crear, Destruir, Auto-destruir Mensaje recursivo Un objeto se envía a sí mismo un mensaje Mensaje Crear Mensaje que crea un objeto El nuevo objeto en el diagrama se muestra al mismo nivel del mensaje Mensaje Destruir Mensaje que destruye un objeto Se acaba la línea de vida del objeto

56 Propiedades de “Message”
Si el receptor de un mensaje es un objeto y el objeto tiene una clase, el mensaje invoca una operación Se puede ligar un mensaje a una operación de la clase y reemplazar el nombre del mensaje con el nombre de la operación Se puede crear una operación para la clase desde la ventana ”Message Properties” Esas ligaduras pueden ser muy útiles durante la implementación

57 Construcción de diagramas de secuencia
Identificar objetos “entidad” en los casos de uso Objetos entidad típicamente están representadas por las clases del diagrama estático de clases Dejar un objeto por cada objeto entidad relevante en el diagrama Darle un nombre y asociarlo con la clase apropiada Identificar objetos “límite” en los casos de uso Objetos límite son objetos usados como interfases con los usuarios Objetos límite son parte del espacio de soluciones, el dominio del modelo direcciona el espacio del problema Ahora integrando los dos espacios como parte del diseño detallado Dejar un objeto por cada objeto límite en el diagrama Nombrarlo apropiadamente

58 Asignación de comportamiento
Ahora la parte dura: colocar métodos a las clases Ejemplos: Los estudiantes necesitan registrarse en una clase ¿El objeto estudiante se registra a sí mismo? ¿El objeto clase registra al estudiante? Respuesta correcta: El actor Estudiante llama al método RegistrarClase en el objeto límite ClasesDisponibles

59 Asignación de responsabilidades
Generalmente existe múltiples formas (buenas) de asignar comportamiento por medio de un grupo de objetos Preguntar ¿qué objetos son responsables de cuáles funciones? Un objeto debe tener una simple personalidad La clases se debe enfocar a conjuntos de comportamientos fuertemente relacionados

60 Atajos (shortcuts o métodos abreviados)
A veces se necesita usar la definición de un objeto en varios modelos Pero los objetos copiados se pueden desincronizar cuando se hacen cambios En PowerDesigner, se pueden usar atajos para compartir objetos entre diferentes modelos Un atajo es un objeto que representa y referencia un cierto objeto en diferentes modelos o paquetes PowerDesigner los mantiene sincronizados automáticamente Cuando se modifica la definición de un objeto compartido, todas sus ocurrencias (atajos) se actualizan en todos los modelos

61 Uso de atajos Se pueden crear y almacenar objetos en un paquete o modelo especial usualmente., este modelo o paquete no es un modelo de trabajo, más bien es una librería de objetos reutilizables Se pueden copiar los objetos deseados desde un modelo y pasarlos como atajos en otro modelo o paquete Se pueden ver los atajos en una ventana del diagrama y en la vista del explorador El uso de atajos asegura que no hay necesidad de duplicar los objetos y que los objetos están sincronizados Un atajo se actualiza automáticamente cuando se modifica la definición del objeto (continúa …)

62 Uso de atajos Ejemplo: mientras se trabaja en una aplicación (Los Logos), se puede encontrar que es útil tener una copia de trabajo del JDK Los objetos JDK se pueden representar como atajos en los diagramas (continúa …)

63 Uso de atajos En el diagrama de paquetes se pueden mostrar las dependencias que tiene el modelo (Los Logos), de Java O, si por ejemplo, la clase OrderWindow se heredó de la clase Frame de Java, se puede mostrar

64 Propiedades de los atajos
Target type Target object name and code Target model Target package Shortcut type Status Generate Generated as

65 Tipos de atajos Hay dos tipos de atajos:
Atajos internos – Atajos entre paquetes dentro de un modelo Atajos externos – Atajos entre diferentes modelos

66 Creación de atajos Se pueden crear atajos desde el árbol del explorador o de la ventana del diagrama al árbol del explorador o la ventana del diagrama Hay dos métodos para crear atajos: Copiar y Soltar un objeto como un atajo Usar la facilidad Arrastrar-y-Soltar Presionar ctrl + shift mientras se arrastra el símbolo deseado al modelo o paquete deseado Al crear un atajo: Se puede crear un solo atajo para el objeto dado en el mismo modelo o paquete No se pueden crear vínculos (links) entre dos atajos, pero se puede mantener un vínculo entre dos objetos en el modelo de referencia

67 Sinónimos Un sinónimo es una segunda ocurrencia de un objeto del modelo en el mismo diagrama No tiene una definición específica. Toma la definición del objeto que él representa Se puede mejorar la legibilidad de un diagrama, al tener el mismo símbolo de un objeto en diferentes lugares Se puede editar el sinónimo como si el fuera el objeto original del modelo Para crear un sinónimo, dar clic derecho sobre el objeto y seleccionar Edit… Create Graphical Synonym

68 Revisión de OOM’s Para revisar un OOM, seleccionar ToolsCheck Model u oprimir F4 Se puede revisar: Todo el modelo Los paquetes seleccionados Para saltar una revisión, dejar en blanco la caja de selección asociada

69 Revisión sobre el modelo de objetos
Cuando se revisan los modelos, PowerDesigner puede ejecutar diferentes revisiones, entre las cuales están : Objects Classes Interfaces Attributes Operations Associations Realizations Generalizations Use Cases BeanInfo clase

70 Severidad del error Hay dos niveles de severidad y dos tipos de corrección disponibles Niveles de error: Error – Problema severo que impide la generación Warning – Problema menor o recomendación Tipos de corrección: Corrección automática – PowerDesigner corrige el modelo Corrección manual – El diseñador debe corregir el modelo

71 Resultados de la revisión
Los resultados de la revisión de un modelo se muestran en la ventana “Result List” Errors y Warnings Dar doble clic sobre el objeto deseado para editarlo Dar clic derecho para corregir, ver información detallada acerca del error o para volver a revisarlo

72 Comparación de modelos
Usar la facilidad de comparación de modelos para resaltar las diferencia entre dos modelos Se puede analizar el contenidos de los modelos Comparar modelos para: Seguir la evolución de los modelos hecha por diferentes grupos de desarrollo Evaluar las diferencias entre modelos antes de intercalarlos (continúa …)

73 Comparación de modelos
1. Para escoger los modelos a comparar, seleccionar ToolsCompare Models Aparece la ventana “Select Models to Compare” El modelo seleccionado en el árbol del explorador, por default, aparece escogido 2. Seleccionar un modelo de la lista desplegable y dar OK Se abre la ventana de comparación de modelos

74 Ventana de comparación de modelos
La ventana está dividida en dos partes: El objeto de comparación (parte superior) Esta parte está dividida en dos paneles; cada uno muestra una vista de árbol del modelo El panel izquierdo muestra el modelo fuente El panel derecho muestra el modelo a comparar Propiedades de la comparación (parte baja) Esta parte muestra las propiedades de los nodos seleccionados en los árboles de los modelos que están en la parte superior de la ventana (continúa …)

75 Ventana de comparación de modelos

76 Filtrado para la comparación
Se puede definir un filtro para el despliegue de la comparación si se quiere mostrar: Todos los objetos en ambos modelos Todos los cambios entre modelos Solamente los objetos creados Solamente los objetos borrados Solamente los objetos modificados Solamente los objetos retirados Solamente los objetos idénticos

77 Objetos de la comparación
Se puede escoger que NO se comparen todos los objetos del modelo En la ventana “Compare Models” dar clic en el botón opciones de comparación Se pueden seleccionar o no los tipos de objetos del modelo que se quieren o no comparar

78 Comparación - vista preliminar e impresión
Se puede tener una vista preliminar e imprimir los resultados de la comparación Los resultados de la comparación dependen de las opciones de filtrado seleccionadas

79 Intercalamiento de modelos
La facilidad de intercalamiento es por naturaleza la facilidad que sigue a la comparación Usarlo para unir modelos El intercalamiento se realiza de izquierda a derecha El modelo fuente se utiliza como referencia para el modelo a elaborar el cual se va a modificar de acuerdo con las acciones definidas para intercalamiento La comparación y el intercalamiento utilizan la misma interfase Dos partes (objeto de la comparación y propiedades)

80 Opciones de intercalado
Cuando se intercalan modelos se tienen las mismas opciones que para la comparación de modelos Filtrado de objetos del modelo Comparación de solamente los objetos seleccionados del modelo En intercalación se tiene la opción de seleccionar sólo ciertos objetos del modelo para intercalación

81 Imprimir el modelo y reportes del modelo
Imprimir diagramas Se pueden imprimir los diagramas en los modelos y paquetes, un diagrama a la vez Cuando se imprime un diagrama, no se puede imprimir en segundo plano información acerca de los objetos en el modelo o paquete Imprimir reportes del modelo Existen muchas formas para imprimir reportes del modelo Los reportes de los modelos usan una plantilla pre-elaborada la cual se puede acomodar de acuerdo a los requerimientos del reporte

82 Selección de páginas y símbolos a imprimir
Se puede imprimir: Las páginas seleccionadas en el diagrama Los objetos seleccionados en el diagrama

83 Selección de las páginas a imprimir
Cuando un diagrama ocupa varias páginas, se pueden seleccionar las páginas que se deseen imprimir Para seleccionar las páginas a imprimir: 1. Seleccionar FilePrint 2. Seleccionar el radio button deseado 3. Dar clic sobre las páginas que se desean ver en la vista previa

84 Selección de los símbolos a imprimir
Se puede imprimir los símbolos seleccionados en la ventana del diagrama Para seleccionar los símbolos a imprimir: 1. Seleccionar los símbolos en la ventana del diagrama 2. Seleccionar FilePrint Selection

85 Imprimir un diagrama Se puede imprimir el diagrama que se esté mostrando No se puede imprimir más de un diagrama a la vez Se puede reducir la escala para que el diagrama ocupe solo una hoja Default: escala de impresión 100% Para que un diagrama solo esté en una página: seleccionar SymbolFit to Page (continúa …)

86 Imprimir un diagrama Se puede exportar uno o más de los símbolos seleccionados usando uno de los siguientes formatos de archivo: Windows Meta Layout Formats Enhanced Metafile Bitmap JPEG Tagged Image File Format Seleccionar EditExport Image

87 Reportes del modelo Además del modelo gráfico. Se pueden producir reportes, tanto estandarizados como personalizados Los reportes de los modelos usan un formato que determinan el contenido y la estructura del reporte Hay tres tipos de formatos disponibles por cada tipo de modelo: completo, lista y estándar (híbrido) Se puede personalizar los reportes con el Editor de Reportes Se puede personalizar un reporte de cualquier modelo y dejarlo como prototipo para los demás del mismo tipo Se puede ligar un reporte a un modelo o grabarlo en un archivo

88 Formatos de reportes Un reporte usa un formato asociado con uno o más modelos, y una selección de objetos Usar el “Report Template Editor” para crear y modificar formatos de reportes Se puede crear un formato para generar reportes de un solo modelo o reportes multimodelos (varios modelos en el mismo reporte)

89 Ver y modificar formatos
1. Para ver o modificar un formato, seleccionar ToolsResourcesReport Templates 2. Dar doble clic en el reporte para revisar el contenido del formato 3. Añadir y retirar formatos de reportes según se necesite 4. Grabar el formato de reporte 5. Usar el formato de reporte

90 Correr reportes 1. Para correr un reporte usando un formato de reporte, seleccionar Model…Reports 2. Seleccionar un reporte existente o crear uno nuevo especificando el formato de reporte a utilizar 3. Con el reporte activo en el espacio de trabajo, seleccionar File…Generate…RTF <or> HTML para general el reporte actual 4. Abrir y editar el archivo generado en un editor apropiado

91 Lenguajes Orientados a objetos soportados en PowerDesigner
PowerDesigner soporta varios lenguajes de programación: C # C++ IDL – CORBA Java PowerBuilder VB 6/.Net WSDL (Web Services Description Language) XML Data, DTD, y Schema

92 “Analysis” de PowerDesigner
PowerDesigner tiene un lenguaje genérico para modelamiento llamado “Analysis” Se puede escoger Analysis como lenguaje, para obtener los beneficios de análisis del modelo de objetos Analysis suporta la generación de CDM y PDM a partir del OOD Los tipos de datos con el modelos Analysis están apropiadamente soportados a través de los diferentes tipos de modelos de PowerDesigner

93 Cambio del lenguaje Al crear un modelo nuevo de objetos se pide escoger un lenguaje En cualquier momento se puede cambiar el lenguaje; seleccionar LanguageChange Current Object Language Shared – Aplican las opciones globales del lenguaje Copied – Se pueden copiar localmente las opciones del lenguaje

94 Propiedades del lenguaje OO
Las propiedades globales del lenguaje de PowerDesigner están provistas en archivos .XOL que están bajo el directorio \ObjLang Para manipular esas propiedades seleccionar LanguageEdit Current Object Language

95 Re-ingeniería Re-ingeniería (ingeniería reversa, Reverse engineering) es el proceso mediante el cual se examinan y se recuperan datos o código fuente a partir de un archivo que se usa para construir o actualizar un OOM Se puede hacer re-ingeniería a un OOM a partir de los siguientes tipos de objetos: PowerBuilder Java XML Data, DTD, y Schema Se puede hacer re-ingeniería a un diagrama nuevo o a uno existente

96 Re-ingeniería desde un lenguaje
Cuando se hace reingeniería, una clase Java existente en un diagrama, se puede escoger, al hacer la comparación, entre reemplazarla o guardar el objeto existente en el modelo

97 Re-ingeniería y PowerBuilder
Se puede hacer reingeniería desde objetos PowerBuilder a un OOM Sólo se puede hacer reingeniería de los siguientes objetos de usuario de PowerBuilder: Custom clase Standard clase Custom visual External visual Standard visual En el modelo se crea una clase por cada objeto reversado de PowerBuilder (clase con el mismo nombre del objeto PB) El código de function y event también se reversan en operaciones de la clase (continúa …)

98 Re-ingeniería y PowerBuilder
Para hacer reingeniería desde objetos PowerBuilder, seleccionar Language Reverse Engineer PowerBuilder Luego indicar las opciones deseadas

99 Re-ingeniería y PowerBuilder
Al hacer reingeniería desde PowerBuilder se pueden seleccionar las siguientes propiedades: Ignore operation body – Reversa objetos PowerBuilder sin incluir el código Ignore comments – Reversa objetos PowerBuilder sin incluir comentarios create symbols – en el diagrama crea un símbolo por cada objeto; los objetos reversados únicamente están visibles en el navegador del modelo Mark claseifiers not to be generated – Quita las marcas de selección hechas en las cajas de selección de la ventana de propiedades Libraries – Carga, en el área de trabajo, las clases default correspondiente al modelo de clases de PowerBuilder

100 Re-ingeniería y Java Archivos y directorios que contengan clases Java se pueden reversar a un OOM Por cada clase en un archivo Java, se crea una clase con el mismo nombre en el modelo y contiene la misma información Cuando se reversan clases Java que ya existen en el modelo, en la ventana de intercalación (merge) se puede optar por reemplazar/guardar la clase existente en el modelo

101 Re-ingeniería y Java Para hacer reingeniería desde Java, seleccionar LanguageReverse Engineer Java Seleccionar las opciones deseadas Seleccionar los tipos de archivos Java, el archivo o directorio a reversar y revisar las opciones antes de reversar

102 Tipos de archivos Java

103 Re-ingeniería y Java .java son archivos que contienen código fuente
Se reversa todo el código fuente, a menos que se indique lo contrario .class son archivos compilados Java Se reversa la clase (por introspección), pero no el cuerpo de la operación .zip y .jar son archivos que de forma comprimida guardan múltiples tipos de archivos Solamente se reversan las clases Java

104 Re-ingeniería y Java Se pueden seleccionar las siguientes opciones al hacer reingeniería desde Java: Ignore operation body Ignore Comments Create Symbols Mark classifiers not to be generated Libraries

105 Clases internas Una clase interna (inner clase) es una clase definida en otra definición de clase (externa) Las clases internas son comunes en Java Mejoran la visibilidad del modelo permitiendo agrupar las clases que de manera lógica trabajan juntas Si una clase Java tiene una o más clase internas: Se crea una clase para la clase externa Se crea una clase por cada clase interna Se crea un vínculo entre cada clase interna y la clase externa a la que se refiere

106 Re-ingeniería y Java La posición de los comentarios en el código Java es importante Algunos comentarios pueden cambiar de forma o posición Comentarios antes de import se pierden Comentarios que inicien con /* cambian a // Comentarios al final del archivo, después del código, se pierden Comentarios en una clase pero no en una operación, se vinculan al atributo u operación inmediatamente siguiente

107 Generación de objetos Generación de clases PowerBuilder
Generación de clases Java

108 Generación de clases PowerBuilder
Se pueden generar objetos de usuario PowerBuilder desde un OOM Se pueden seleccionar clases del modelo, incluyendo las contenidas en paquetes PowerDesigner genera un objeto por cada clase que se desee generar en PowerBuilder PowerDesigner importa cada clase o crea archivos fuente que tienen la extensión .sru Se pueden crear objetos de usuario PowerBuilder desde una clase pero no desde interfases. PowerBuilder no soporta el concepto de interfase que tieneJava.

109 Generación de código PowerBuilder
Para generar objetos de usuario PowerBuilder, seleccionar LanguageGenerate PowerBuilder, del menú del sistema Seleccionar el modelo o paquete del que se quiere generar objetos Seleccionar las clases que se quieren generar a partir de la lista

110 Herramientas para selección
Por default, todas las clases del modelo, incluyendo las agrupadas en paquetes, se muestran y seleccionan Se puede usar la herramienta de selección para modificar la selección inicial La herramienta que incluye subpaquetes, permite incluir en la selección todas las clases incluidas en paquetes

111 PowerBuilder – opciones de generación
1. Dar clic en la pestaña Options 2. Seleccionar la librería donde se quieren dejar los objetos generados

112 Opciones de generación
Check model – Revisa el modelo antes de generarlo y termina la generación si encuentra errores PowerBuilder library – Librería o directorio donde PowerDesigner genera las clases PowerBuilder application – Aplicación PowerBuilder en la que se generan los objetos no visuales PowerBuilder Las aplicaciones PowerBuilder se leen de los archivos PB.ini Si se selecciona una aplicación, PowerDesigner crea los objetos de usuario en la librería destino, utilizando la lista de aplicaciones de la librería (continúa …)

113 Opciones de generación
Si PowerBuilder no está instalado en la máquina, no aparece la lista de aplicaciones, o Si no se selecciona una aplicación de la lista de aplicaciones, la generación creará los archivos en el directorio indicado en el camino (path) Se debe hacer importación manual SRU – Directorio donde se quieren tener los objetos generados Manualmente, si PowerBuilder y PowerDesigner no están en el mismo computador

114 Generación de Java Se generan archivos fuente Java de las clases e interfases de un modelo Por cada clase o interfase seleccionada en el modelo, se genera un archivo con extensión .java Se pueden generar archivos Java de solo un diagrama a la vez Los archivo .java generados de un OOM se pueden compilar utilizando cualquier herramienta de compilación Java También se puede correr Java en el servidor de base de datos, si esa facilidad está soportada en la base de datos usada

115 Generación de Java Para generar clases Java:
1. Seleccionar LanguageGenerate Java, del menu del sistema 2. Seleccionar el modelo o paquete deseado para generar objetos 3. Seleccionar, de la lista, las clases/interfases que se quieran generar Usar la herramienta para selección de opciones

116 Generación de Java - opciones
1. Dar clic en la pestaña Options 2. Seleccionar un directorio donde se van a dejar los archivos .java generados o Buscarlo con la ayuda del explorador

117 Generación de Java - opciones
Check model – Revisa el modelo antes de la generación La generación termina si se encuentra un error Visibility sort – Ordenamiento, en el cual los atributos y operaciones se organizan por el siguiente criterio: Public – Private: Después de la generación, los atributos y operaciones públicos se colocan antes de los atributos y operaciones privados en la definición de clase Private – Public: Después de la generación, los atributos y operaciones privados se colocan antes de los atributos y operaciones públicos en la definición de clase None: Los atributos y operaciones no cambian de orden después de la generación (continúa …)

118 Generación de Java - opciones
Type sort – Cambia el orden en que aparecen los atributos y operaciones en el código de clases del modelo EJB Generation – Genera campos CMR/CMP EJB Generation – Añade fuentes de clases Java en los archivos JAR

119 Generación - Comandos PowerDesigner puede ejecutar una variedad de comandos después de la generación de código: Compilar, crear EJB y JAR Compilar, crear EJB y JAR, correr J2EE Compilar solo fuentes Compilar y correr aplicaciones Generar documentación

120 Generación y navegabilidad
Se dice que una asociación es navegable si la información se puede transmitir entre dos objetos que están ligados por una relación de asociación Cuando se activa la navegación para una asociación, y se genera el código, una variable instanciada se coloca en la clase que puede navegar la otra Ejemplo, Cliente genera un arreglo de órdenes, pero una Orden no tiene referencia a Cliente

121 Generación de Java - opciones
Muchas facilidades que presenta PowerDesigner solamente son soportadas cuando la generación se va a hacer a Java Clases especiales, operaciones, atributos: Abstract Static Final Type Visibility Identifier (solamente para clases) Asociación de nombre generados con variables, si la navegabilidad está activada Interfases

122 Creación de clases JavaBean
Un JavaBean es una componente reutilizable de software que puede ser manipulada visualmente con una herramienta de desarrollo Se pueden crear clases Java BeanInfo de clases Bean en el OOM Una clase BeanInfo se puede crear de una clase solamente si el tipo es Java Bean Se puede definir el tipo de una clase en “Properties”

123 Clases BeanInfo Las clases BeanInfo se usan como una forma de implementar API’s JavaBeans Los API’s JavaBeans son un conjunto de API’s más pequeños dedicados a funciones o servicios específicos Los principales componentes en API’s JavaBeans son: GUI Merging Persistence Event Handling Introspection Application Builder Support

124 Creación de clases BeanInfo
Una clase BeanInfo es una clase que interroga al Bean y determina los atributos y operaciones disponibles Para crear clases BeanInfo seleccionar LanguageCreate BeanInfo classes. Se puede seleccionar cualquier clase del modelo PowerDesigner genera una nueva clase BeanInfo por cada clase seleccionada

125 Clases BeanInfo Las clases BeanInfo tienen una referencia private, static, final, al mismo Bean Ejemplo, una clase BeanInfo de la clase Order debe tener: Una variable especial de referencia al Bean: private static final Order OrderClass = Order.class Static indica que la clase referenciada no necesita instanciarse por sus operaciones que llame .class extiende Object en Java, e implementa en tiempo de ejecución un descriptor para las clases e interfases en una VM Java La instancia OrderClass se crea automáticamente por la VM Java, cuando la clase BeanInfo se carga, de tal manera que la VM Java automáticamente conoce acerca del Bean

126 PowerDesigner – herramienta para modelamiento de datos
PowerDesigner es una herramienta que la pueden usar diversos tipos de usuarios con diferentes especialidades Analistas de negocios Administradores de bases de datos Programadores de sistemas

127 Tipos de modelos Los modelos CDM, PDM y OOM están hechos para diferentes audiencias con necesidades diferentes CDMs Buenos para analistas de negocios y administradores de bases de datos PDMs Bueno para desarrolladores de sistemas y administradores de bases de datos OOMs

128 Paso de tipos de datos entre modelos
Los tipos de datos estándar se pueden pasar fácilmente de modelo a modelo Los OOMs tienen la lista más corta de tipos de datos: Char Boolean Byte Short Int Long Float Double

129 Otros tipos de datos

130 Tipos de datos en los modelos
Java OOM CDM/PDM Lo que almacena char char 1 Caracter boolean Dos valores byte 256 valores short short int Entero de 16-bits int integer Entero de 32-bits long long int float Flotante de 32-bits double number Números y posiciones Decimales fijas * String Cadena de caracteres

131 CDM’s Básicamente usado por analistas de negocios y administradores de bases de datos para hacer análisis de datos Es el modelo menos complejo de los tres (OOM, CDM, PDM) Alguna familiaridad con bases de datos relacionales, SQL y metodología de análisis, ayudan pero no son requisito Usa la notación entidad relación (ER), la notación Merise para ligar entidades o una combinación de las dos metodologías Los objetos principales del modelo son los ítem de datos, las entidades y sus relaciones (continúa …)

132 CDM’s En un CDM: Se pueden capturar las reglas del negocio
Se puede hacer ingeniería a PDMs y OOMs El paso de tipos de datos es directo, y sensible a mayúsculas

133 De OOM a CDM PowerDesigner pasa objetos y tipos de datos del OOM a objetos y tipos de datos del CDM El lenguaje seleccionado en el OOM no afecta la generación del CDM Consideraciones antes de generar el CDM Uso de mayúsculas/minúsculas en el código y nombres de objetos Resolución de tipos de datos entre modelos Resolución de objetos OOM en objetos CDM Cosas que no se tienen en cuenta en el CDM Alcance del espacio de nombres

134 De OOM a CDM

135 De OOM a CDM Se puede generar un CDM de un OOM global o de un paquete en el OOM El espacio de nombres por default en el CDM es el modelo, en el OOM es el paquete Conceptualmente es más sencillo pasar de un OOM a un CDM cuando el espacio de nombres del OOM se resuelve a nivel del modelo Generando desde un paquete, resultan CDM’s independientes (continúa …)

136 De OOM a CDM Seleccionar Tools Generate Conceptual Model
Se puede generar un CDM nuevo o actualizar uno que ya exista Se puede escoger entre actualizar, borrar o añadir objetos en el CDM existente con base en las modificaciones hechas en el CDM

137 Actualizar CDM’s Cuando se actualiza un CDM PowerDesigner usa el proceso de intercalación Si se quiere escoger qué objetos añadir o borrar del modelo resultante, se debe seleccionar la opción Preserve Modifications para comparar e intercalar en el CDM Si no se hace esta selección, PowerDesigner automáticamente hace reemplazo en el modelo existente Si se hace esta selección, aparece la ventana que presenta las facilidades intercalación, donde se pueden escoger los objetos a borrar, actualizar o añadir

138 CDM - Opciones de generación
Check model: revisa el modelo Save generation dependencies: se pueden comparar y reconocer objetos como si fueran el mismo, aún si el objeto ha sido modificado en el CDM Dejar siempre esta opción! Convert names into codes: útil para generar modelos con convenciones de nombres muy diferentes

139 CDM - Opciones de generación
En la pestaña “Selection”, se pueden seleccionar las clases que se quieren generar en el CDM Por default se generan relaciones, dominios y reglas del negocio Se puede seleccionar un paquete para generar un CDM

140 Cambios al modelo en el CDM
En el espacio de trabajo del CDM, se puede querer mejorar el modelo En la generación de OOM a partir de un CDM se tiene: Notas: Dependencias de asociación, un concepto importante en el CDM, se pierden al generar el OOM! Restricciones obligatorias o no nulas de atributos, también se pierden

141 PDM’s Los PDM’s están asociados con una base de datos específica (tiene en cuenta las restricciones, debilidades y capacidades de la base de datos seleccionada) A partir del PDM se puede llegar a la base de datos física, incluyendo DDL’s, triggers, vistas y procedimientos almacenados También se puede hacer reingeniería desde un PDM

142 De OOM a PDM PowerDesigner pasa objetos y tipos de datos OOM a objetos y tipos de datos PDM El lenguaje seleccionado en el OOM, no influye en la generación del PDM Consideraciones antes de generar un PDM Uso de mayúsculas/minúsculas en el código y nombres de objetos Resolución de tipos de datos entre los modelos Resolución de objetos OOM en objetos PDM Alcance del espacio de nombres

143 De OOM a PDM

144 Generación de clases Para pasar una clase a una tabla se deben seleccionar Persistecia y Generar, en la ventana de propiedades La cardinalidad de una clase indica el número de registros de la tabla Permite el cálculo del tamaño de la base de datos

145 Generación de asociaciones
Si la asociación es muchos a muchos – es decir, ambos roles de la asociación tienen seleccionado el símbolo * - la asociación se pasa a una tabla en el PDM Si tiene cualquier otra cardinalidad – es decir, no tienen el símbolo * - la asociación va como una referencia Un nombre de rol se migra como lleave foránea en el PDM generado

146 De OOM a PDM Se puede generar un PDM de un OOM global o de un paquete dentro del modelo Si se genera desde un paquete se obtiene un PDM independiente Se puede generar un PDM desde un diagrama en el paquete Por default el espacio de nombres en el PDM es el modelo, en el OOM es el paquete! Limitar la generación de un PDM a un solo paquete cuando el espacio de nombres del OOM está resuelto a nivel del paquete Conceptualmente es más fácil pasar de un OOM a un PDM cuando el espacio de nombres del OOM está resuelto a nivel de modelo (continúa …)

147 De OOM a PDM Seleccionar Tools Generate Physical Model
Se puede generar un PDM nuevo o actualizar uno ya existente Se puede escoger actualizar, borrar o añadir objetos en el existente PDM basado en cualquier modificación hecha en el PDM

148 Cambios al PDM PowerDesigner usa el proceso de intercalación al actualizar un PDM Si se quiere escoger cuáles objetos añadir o borrar del modelo resultante, se debe seleccionar la opción “Preserve Modifications” para comparar e intercalar en el PDM Si no se escoge esta opción, PowerDesigner automáticamente hace reemplazo en el modelo seleccionado Si se escoge esta opción, se abre la ventana que permite actualizar, borrar o añadir objetos al modelo

149 PDM - opciones de generación
Incluye el chequeo del modelo y la grabación de dependencias Consejo: dejar siempre seleccionada la opción “Save generation dependencies” El mapeo O/R permite definir en el PDM fuentes de datos, de objetos OOM y crear objetos correspondientes entre OOM y PDM

150 Más opciones Otras opciones:
Table prefix Colocar prefijos a los nombres de las tablas con el nombre del propietario Update rule Actualizar integridad referencial para referencias Delete rule Borrar integridad referencial para referencias PK names Generar nombre de índice PK AK names Generar nombre de índice para llaves alternas FK names Generar nombre de índice para FK FK threshold mínimo número de registros estimados en una tabla antes de que sea necesario crear un índice para FK

151 PDM - opciones de generación
Se pueden seleccionar las clases a generar en la pestaña “Selection” Por defaul se generan relacioness, dominios, y reglas del negocio Se puede seleccionar un paquete para generar un PDM

152 Cambios al diseño en el PDM
En el espacio de trabajo del PDM, se puede querer mejorar el modelo En la generación de OOM a partir de un PDM se tiene: Notas: Llaves foráneas, un concepto importante en el PDM, se pierden al generar el OOM! Restricciones obligatorias o no nulas, también se pierden

153 Retos de la persistencia de objetos en bases de datos relacionales
Mapeo de objetos a bases de datos relacionales, es un reto Por lo menos hay tres formas diferentes de mapear objetos a bases de datos Mapear atributos de clases a columnas de tablas Mapear clases Java a columnas de tablas Usar tecnología Sybase de DataWindow/DataStore

154 Mapeo de atributos a columnas
Es el default en PowerDesigner Las clases, asociaciones y generalizaciones se mapean a tablas Atributos de clases se mapean a columnas de tablas Es el método más complicado, pero el que brinda mayor control sobre acceso y preguntas que se hagan a la base de datos

155 Mapeo Objeto/Relación en PD
El mapeo O/R permite mapear objetos OOM y tablas PDM para fijar persistencia de objetos. Datos de una fuente de datos se manejan por medio de un OOM. El mapeo aparece como aparece como una consulta definida en el objeto OOM: esta consulta permite al objeto manejar datos de fuentes de datos. En el mapeo O/R, la fuente de datos contiene uno o más modelos físicos de datos representando la estructura de la base de datos en el cual se van a almacenar los objetos OOM

156 Definición de fuentes de datos en un OOM
Se deben crear fuentes de datos para definir de dónde deben ser manejados por objetos OOM. Cuando se define una fuente de datos se declaran modelos de datos físicos en la lista de modelos de fuentes de datos. Un OOM puede tener varias fuentes de datos.

157 Uso de fuentes de datos en clases
Una vez definidas las fuentes de datos en el OOM, las clases se pueden mapear a tablas en el PDM. Los atributos, operaciones y sentencias DML SQL se pueden definir por persistencia de la clase Se pueden usar criterios como “Where Clause” cuando se ejecutan inserciones, modificaciones o borrados.

158 Entidades y atributos en el mundo real
La distinción entre entidad y atributo parece clara, pero en la práctica puede no serlo: Una dirección puede darse como un atributo de un cliente, pero una dirección también puede ser una entidad, con atributos como calle, ciudad, país, etc. Un precio puede ser visto como un atributo, pero también puede tomarse como una entidad, con atributos como cantidad, tipo de moneda (pesos, euros, dólares), etc. La utilidad de una base de datos objeto-relacional está exactamente en el hecho que hay dos formas de expresar entidades Algunas entidades se pueden expresar como tablas y algunas entidades como clases en una tabla

159 Creación automática de mapeo O/R
Cuando se genera un PDM de un OOM o un OOM de un PDM, y se tiene seleccionado el mapeo O/R en las opciones de generación, los objetos OOM se mapean automáticamente a objetos PDM y se crea una fuente de datos en el OOM. Este mapeo por default resulta útil en situaciones como: Se ha diseñado un OOM y se necesita para definir el PDM que almacenará los objetos OOM en una base de datos relacional. Se puede generar un PDM nuevo, a partir del OOM, que tengan objetos OOM ligados a objetos PDM Se ha creado un PDM y se quiere diseñar la correspondiente aplicación en un OOM. Se debe generar un nuevo OOM del PDM

160 Mapeo de clases Java a columnas
Se pueden usar clases Java como tipos de datos definidos por el usuario en el SQL. Usando clases Java como tipo de dato para una columna en una tabla, se pueden almacenar datos en la base de datos en forma de un objeto Java: Hacer clases Java disponibles en JVM de la BD Almacenar objetos Java en tablas de la BD como columnas Se pueden acceder operaciones y atributos Java de objetos Java en sentencias SQL a través de JDBC

161 Niveles de abstracción para datos relacionales
Las clases Java son útiles abstraer entre una simple columna relacional y una tabla relacional Los datos en una base de datos relacional pueden ser categorizados por su propósito Columnas calculadas – con columnas calculadas, se puede selectivamente indexar atributos u operaciones Java Pregunta: qué datos están mejor en una clase Java, y cuáles mejor en como un sencillo tipo de dato en una columna? Datos referenciales Columnas que típicamente se indexan Otros datos descriptivos Data in a relational database can be categorized by its purpose. Which of this data belongs in a Java clase, y which es best kept in simple data type columns? Referential data does not generally belong in Java clases. Primary key columns y foreign key columns commonly hold identification numbers. Although you can make a Java clase column a primary key column, integers y other simple data types are more efficient for this purpose. Columns that are commonly indexed may also belong outside a Java clase. However, the dividing line entre data that needs to be indexed y data that es not to be indexed es vaguely defined. Descriptive data: It es common for some of the data in each row to be descriptive. For an empleado table, this may include information such as start date, address, benefit information, salary, y so on. This data can often benefit from being combined into fewer columns of Java clase data types. Computed columns: con computed columns you can selectively index on a Java field o método. If you define a Java clase column y then find that it would be useful to index on a field o método of that column, you can use computed columns to make a separate column from that field o método. Java clases are useful for abstracting at a level entre that of the single relational column y the relational table.

162 Tecnología Sybase DataWindow/DataStore
Se puede usar la tecnología de DataWindow para sortear el abismo objeto/relacional Particularmente útil cuando se usan bases de datos que brindan menos facilidades o con bases de datos viejas o cuando la empresa tiene PowerBuilder o PowerJ Acercamiento: Usar mapeo O/R Reemplace atributos persistentes de clase con variables de clase de un DataStore o DataWindow Crear operaciones para manipular clases Crear objetos DataWindow para las tablas de la BD Use las facilidades nativas de DataWindow/DataStore para acceder a los datos relacionales

163 Comenzar en Si es un nuevo diseño, iniciar con el OOM, o con un CDM si es un trabajo menos técnico Si se parte de una base de datos, comenzar con el PDM y luego obtener el OOM Si parte de aplicaciones PowerBuilder o Java comenzar con el OOM Para tener un buen control, hay que tener muy en cuenta qué cosas se pueden perder al pasar de un modelo a otro

164 ¿Preguntas?


Descargar ppt "Herencia Herencia es a relación entre clases por medio de la cual una clase deriva parte de su definición de otra clase La herencia define una jerarquía."

Presentaciones similares


Anuncios Google