690 likes | 890 Views
I UNIDAD: BASE DE DATOS ORIENTADOS A OBJETOS. Objetos. Desde la perspectiva de la cognición humana, un objeto es algo de lo siguiente: Una cosa tangible y/o visible Cualquier cosa que pueda ser aprendida intelectualmente Cualquier cosa hacia la cual la atención o el pensamiento es dirigido.
E N D
I UNIDAD: BASE DE DATOS ORIENTADOS A OBJETOS
Objetos • Desde la perspectiva de la cognición humana, un objeto es algo de lo siguiente: • Una cosa tangible y/o visible • Cualquier cosa que pueda ser aprendida intelectualmente • Cualquier cosa hacia la cual la atención o el pensamiento es dirigido
Objetos • Los objetos del mundo real no son los únicos tipos de objetos que son de interés para el diseño de software. • Otros tipos importantes de objetos son los inventos y resultados de los procesos de diseño, cuya colaboración con otros objetos constituye el mecanismo que proporciona algún comportamiento de nivel elevado.
Objetos • Lo anterior hace posible proporcionar una definición más refinada de objeto: • "Un objeto representa un individuo, un término, unidad o entidad identificable, del mundo real o abstracto, con un rol bien definido en el dominio del problema". • En términos más generales: "un objeto es cualquier cosa con límites definidos ya sean físicos o conceptuales".
Objetos DEFINICIÓN DE OBJETO: "Un objeto es una entidad que tiene estado, exhibe un comportamiento y posee una identidad; la estructura y comportamiento de objetos similares son definidos en su clase común; los términos instancia y objeto son intercambiables".
Comportamiento de Objetos • En los lenguajes de programación orientados a objetos, las operaciones que los clientes ejecutan sobre un objeto son declaradas típicamente como métodos, los cuales son parte de la declaración de la clase de un objeto. • En C++ se utiliza el término función miembro para denotar el mismo concepto.
Comportamiento de Objetos • En la práctica, se puede encontrar que un cliente típicamente ejecuta cinco tipo de operaciones sobre un objeto. Estos tipos de operaciones son los siguientes: • Modificación: una operación que altera el estado de un objeto, una operación de escritura. • Selección: una operación que accesa el estado de un objeto pero no altera su estado, una operación de lectura. • Iteración: una operación que permite que todas las partes de un objeto sean accesadas en un orden bien definido. • Construcción: una operación que crea un objeto y/o inicializa su estado. • Destrucción: una operación que libera el estado de un objeto y/o destruye el objeto en sí.
¿Que es un Objeto? Estado: abarca todas las propiedades (normalmente estáticas del objeto, más los valores actuales (normalmente dinámicos) de cada una de esas propiedades Es un ítem o entidad individual (conceptual o real ), con un rol bien definido en el dominio del problema. También llamado instancia. Comportamiento: cómo actúa y reacciona un objeto en términos de sus cambios de estado y sus pasos de mensaje. Identidad: es la propiedad del objeto que lo distingue de todo lo demás
Clase Herencia, Asociación Ensamblado Dependencia Relaciones Diagrama de Clases Sirve para visualizar las relaciones entre las clases que involucran el sistema. Elementos Atributos y Métodos
CLASE Es la unidad básica que encapsula toda la información de un Objeto (un objeto es una instancia de una clase). A través de ella podemos modelar el entorno en estudio (una Casa, un Auto, una Cuenta Corriente, etc.). Una Cuenta Corriente que posee como característica Balance Puede realizar las operaciones de: Depositar Girar y Balance
Atributos • representa alguna propiedad de la clase, que se encuentra en todas las instancias de la clase. • definen la estructura de una clase y de sus correspondientes objetos. • Los atributos corresponden a sustantivos y sus valores pueden ser sustantivos o adjetivos. • Dentro de una clase, los nombre de los atributos deben ser únicos (aunque puede aparecer el mismo nombre de atributo en diferentes clases).
Public: Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados Private: Indica que el atributo sólo será accedible desde dentro de la clase (sólo sus métodos lo pueden accesar) Protected: Indica que el atributo no será accedible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven Tipos de Atributos Los atributos pueden representarse solo mostrando su nombre, mostrando su nombre y su tipo,e incluso su valor por defecto.
Identificadores En el momento de incluir atributos en la descripción de una clase se debe distinguir entre los atributos los cuales reflejan las características de los objetos en el mundo real, y los identificadores los cuales son utilizados exclusivamente por razones de implementación. Estos identificadores internos del sistema no deben ser incluidos como atributos.
Notación para atributos derivados. Ejemplo Atributos Derivados Los atributos básicosson atributos independientes dentro del objeto. En contraste, los atributos derivadosson atributos que dependen de otros atributos. Los atributos derivados dependen de otros atributos del objeto, los cuales pueden ser básicos o derivados.
Restricciones de Atributos Los valores de los atributos de una clase pueden restringirse.
Tipos de Método Operaciones (Métodos) Las operaciones son funciones o transformaciones que se aplican a todos los objetos de una clase particular. La operación puede ser una acción ejecutada por el objeto o sobre el objeto.
Clase Herencia, Asociación Ensamblado Dependencia Relaciones Diagrama de Clases Sirve para visualizar las relaciones entre las clases que involucran el sistema. Elementos Atributos y Métodos
RELACIONES ENTRE CLASES Generalización Clasificación Asociación Ensamblados Cardinalidad de relaciones especifica cuantas instancias de una clase se pueden relacionar a una sola instancia de otra clase. uno-uno uno-muchos muchos-muchos
Especialización/Generalización (Herencia): Indica que una subclase hereda los métodos y atributos especificados por una Super Clase, por ende la Subclase además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase. Util para el modelo conceptual al igual que para la implementación. Como modelo conceptual da buena estructuración a las clases. Como modelo de implementación es un buen vehículo para no replicar innecesariamente el código.
Asociación: permite asociar objetos que colaboran entre si. Ejemplo: Los objetos Juan Pérez y UNLaR están relacionadas por la liga estudia-en que describe que "Juan Pérez estudia en la UNLaR".
Por lo general en una asociación cada clase juega un papel, Puede representar tales papeles en el diagrama Puede aparecer dos asociaciones entre clase en el mismo diagrama
Grado de la Asociación El grado de una asociación se determina por el número de clases conectadas por la misma asociación. Las asociaciones pueden ser binarias, ternarias, o de mayor grado. Asociación Ternaria que es además una asociación de clase.
Asociaciones Reflexivas Las asociaciones pueden ser reflexivas, relacionando distintos objetos de una misma clase. Ejemplo: Para una clase persona puede existir una asociación pariente que describe que dos objetos de tipo persona, como Juan Pérez y Laura Pérez son parientes.
Atributos de Liga (o Asociación) Al igual que un atributo de clase es propiedad de la clase, un atributo de asociación (o atributo de liga) es propiedad de una asociación. La notación es similar a la usada para los atributos de clases, excepto que se añade a la asociación, y no se incorpora un nombre de clase.
UNLAR Asociación con operaciones Asociación como clase
Dependencia or Instantiates Dependencia. • Una dependencia indica una relación semántica entre 2 (o más) elementos del modelo. Esto relaciona los elementos del modelo en sí y no requiere un conjunto de instancias para que tenga significado. Esto indica una situación en la cual un cambio del elemento destino puede implicar un cambio en el elemento fuente en la dependencia. Notación. • Una dependencia se muestra a través de una flecha discontinua desde un elemento del modelo a otro elemento del modelo, donde el primer elemento es el dependiente. La flecha puede ser etiquetada con un estereotipo opcional y un nombre opcional. Opciones de presentación. • Si uno de los elementos es una nota o una restricción, entonces la flecha puede ser suprimida (la nota o la restricción es la fuente de la flecha).
Dependencia or Instantiates • Suponga que diseñara un sistema que muestra formularios corporativos en pantalla para que los empleados los llenen. El empleado utiliza un menú para seleccionar el formulario por llenar. En su diseño, tiene una clase Sistema y una clase Formulario. Entre sus muchas operaciones, la clase Sistema tiene mostrarFormulario(f:Form). El formulario que el sistema desplegará, dependerá, obviamente, del que elija el usuario. La notación de UML para ello es una línea discontinua con una punta de flecha en forma de triangulo sin relleno que apunta a la clase de la que depende.
Varias dependencias entre clases. Dependencias entre los paquetes.
Ensamblados: Agregación y Composición son formas especiales de asociación entre un todo y sus partes, en donde el ensamblado está compuesto por sus componentes. Composición (el Objeto base se contruye a partir del objeto incluido). El tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye.(no puede ser compartido entre ensamblados) Agregación (el objeto base utiliza al incluido para su funcionamiento). El tiempo de vida del objeto incluido es independiente del que lo incluye. (puede aparecer en varios ensamblados) El ensamblado es antisimétrico
En ciertos restaurantes, una comida consta de sopa o ensalada, el plato fuerte y el postre. Para modelar esto, utilizaría una restricción: La palabra O dentro de llaves con una línea discontinua que conecte las dos líneas que conforman el todo.
Diagrama de Contexto de Composición Muestra los componentes de una clase como un diagrama anidado dentro de un enorme rectángulo de clase
Realize La relación entre una clase una interfaz se conoce como realización. En cierto sentido en el ejemplo, es como si el teclado de la computadora garantizara que esta parte de su funcionalidad “haría las veces” del teclado de una maquina de escribir. Se representa con una línea discontinua con una punta de flecha sin rellenar
Ejercicios y Tareas Diagramas de Clases
Ej 1 ) Considere la siguiente jerarquía: ¿Hay clases abstractas? ¿ cuales? CuentaBancaria CuentaCorrienteCajaAhorro CajaAhorroComún CajaAhorroEspecial
Ej. 2 ) Para cada uno de los siguientes pares de Objetos analice si los vincula una relación de tipo “ES UN” o “ES PARTE DE” perro - mamífero ES UN casa - techo ES PARTE DE conserje - empleado ES UN mouse - dispositivo de entrada ES UN menú - ventana ES PARTE DE conjunto colección ES PARTE DE punto - círculo ES PARTE DE
Tarea 1) Construir la jerarquía de clases a partir de los siguientes objetos ( de ser necesario crear clases abstractas). Perro - plancha - martillo - velero - jazmín - rosal - pingüino - eucaliptos - avión - pinza - auto-bicicleta - moto - cuadriciclo - batidora Tarea 2) Identificar los OBJETOS y los atributos necesarios para llevar un control de los libros prestados compañeros o amigos.
Tarea 3) Identificar los OBJETOS y sus Atributos necesarios para conocer los cassettes y compacts que tenés o que prestaste a tus amigos. Tarea 4 ) modelar un sistema que permita definir cursos, asignar docentes para dictar las materias que correspondan, emitir lista de alumnos, controlar asistencia y llevar estadísticas.
Ej. 3) Control de los turnos de un consultorio odontológico. (resuelto) Descripción: El paciente solicita el turno, la secretaria verifica la planilla de horarios disponibles para el odontólogo solicitado. Si el horario está disponible, se le otorga el turno junto con el comprobante y se anota dicho turno en la planilla. Cuando el paciente concurre a la consulta en la fecha indicada, se verifica la planilla de turnos y se informa al médico de su presencia. Se pide: * Identificar los objetos del dominio. * Definir atributos. * Marcar relaciones.
Paciente Odontólogo Pl de horario turno Secretaria nombre Nombre nom-odonto nom-odonto nombre dirección Dirección Mes nom-paciente dirección nro-histClin Matrícula Dia secret telef. telef. Telef. Hora Mes horario-trab Dia Hora atendido Solución del Ejercicion No. 3 “ Control de turno en un consultorio odontológico” Objetos: Paciente - Odontólogo - Planilla de horarios - Secretaria - Turno Atributos: