Professional Documents
Culture Documents
Sistemas II
UNIDAD II
Clases Concepto: La Clase describe el mbito de definicin de un conjunto de objetos, cada objeto pertenece a una clase. Las generalidades estn contenidas en una clase y las particularidades en un objeto. Los objetos informticos se construyen a partir de la clase por un proceso llamado instanciacin. De este modo, todo objeto es una instancia de clase. Representacin Grfica de las Clases: Cada clase se representa bajo la forma de un rectngulo dividido en tres compartimentos: el primero contiene el nombre de la clase, el segundo los atributos y el tercero las operaciones. De modo predeterminado los atributos son ocultos y las operaciones visibles. Los compartimentos pueden suprimirse para agilizar los diagramas.
Nombre Atributos Operaciones
Ejemplo: la clase motocicleta contiene atributos, color, cilindrada y velocidad y tambin operaciones como arrancar, acelerar, frenar.
Motocicleta Color Cilindrada Velocidad mx. Arrancar Acelerar Frenar
Descripcin de las Clases: 1. La especificacin: que describe el mbito de definicin y las propiedades de las instancias de esta clase y corresponde a la nocin de tipo tal como se define en los lenguajes de programacin clsicos. 2. La realizacin: describe como se realiza la especificacin y que contiene el cuerpo de las operaciones y los datos necesarios para su funcionamiento. La separacin entre la especificacin y la realizacin de las clases participa en el nivel de abstraccin. Los trazos destacables se describen en las especificaciones y los detalles en las realizaciones. La ocultacin de los detalles se llama encapsulamiento.
Sistemas II
Los niveles de encapsulamiento son: 1. + Pblico 2. = Protegido 3. - Privado Relaciones entre las Clases: Al igual que los objetos son instancias de las clases, los enlaces entre objetos son instancias de las relaciones entre clases. Asociacin: expresa una conexin semntica bidireccional entre clases. Es una abstraccin de los enlaces que existen entre los objetos instancias de las clases asociadas. Ejemplo:
enlace California Universidad Gastn Estudiante
Gabriela Estudiante
Jos Estudiante
Universidad
Asociacin
Estudiante
Los enlaces entre las universidades y los estudiantes son instancias de la asociacin entre la clase Universidad la clase Estudiante. Para mejor legibilidad, la asociacin puede ir acompaada por una forma verbal activa o pasiva usando el signo >. Ejemplo
Universidad Alberga > Estudiante
Universidad
< Estudia en
Estudiante
Tabla de Valores de Multiplicidad ms Habituales: 1 0..1 M..N * 0..* 1..* Uno y solo uno Cero a uno De M a N (entero naturales) De cero a varios De cero a varios De uno a varios
Sistemas II
Agregacin: la agregacin es una forma particular de asociacin que expresa un acoplamiento ms fuerte entre clases. Una de las clases cumple una funcin ms importante que la otra en la relacin. Ejemplo:
1 Automvil 1 Motor
hijos *
Reglas que gobiernan la transicin entre los Diagramas de Clases y los Diagramas de Objetos: Cada objeto es instancia de una clase y la clase del objeto no puede cambiar durante la vida del objeto. Ciertas clases llamadas abstractas no pueden ser instanciadas. Cada enlace es instancia de una relacin. Los enlaces vinculan los objetos, las relaciones vinculan las clases. Un enlace entre dos objetos implica una relacin entre las clases de los dos objetos. Un enlace entre dos objetos indica que estos se conocen y que pueden intercambiar mensajes. Los diagramas de objetos que contienen objetos y enlaces son instancias de diagramas de clases que contienen clases y relaciones.
Jerarqua de Clases Las jerarquas de clases o clasificaciones permiten gestionar la complejidad, ordenando los objetos dentro de rboles de clases de abstraccin creciente. Generalizacin y Especializacin: son puntos de vista centrados en las jerarquas de clases. La generalizacin consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de clases en una clase ms general llamada superclase. Las clases se ordenan segn su jerarqua, una superclase es una abstraccin de sus subclases. Ejemplo:
Sistemas II
Vehculo
Vehculo Terrestre
Vehculo Areo
Automvil
Camin
Avin
Helicptero
La generalizacin y la especializacin expresan en que sentido se utiliza una jerarqua de clases. En toda aplicacin real las dos se implementan simultneamente. La generalizacin se amplia preferentemente una vez que los elementos han sido identificados. Superclases y Subclases Resulta ms difcil encontrar las superclases, pero los programas son ms simples de desarrollar. Es ms fcil encontrar las subclases, pero es difcil realizarlas. La generalizacin no recibe ni nombre particular ni valor de multiplicidad. Caractersticas o Propiedades La generalizacin es una relacin No Reflexiva: una clase no puede derivar de si misma. Ejemplo: A
Imposible
La generalizacin es una relacin No Simtrica: si una clase B deriva de una clase A, entonces la clase A no puede derivar de la clase B. Ejemplo: A
Imposible
La generalizacin es una relacin Transitiva: si C deriva de una clase B que deriva a su vez de una clase A entonces C deriva tambin de A. Ejemplo: A B C
Sistemas II
Sobre la dificultad de Clasificar La determinacin de los criterios de clasificacin es difcil y en ciertos casos no es posible determinarla. Las clasificaciones deben ante todo, discriminar claramente los objetos. Las clasificaciones se efectan segn criterios dependientes del punto de vista. No hay pues una sola clasificacin, son diversas y cada una adaptada a un uso dado. Ejemplo: para los animales pueden observarse numerosos criterios: Estacin Tipo de alimentacin Proteccin Una vez establecidos los criterios hay que seguirlos de manera coherente y uniforme segn el orden determinado, siendo este ltimo arbitrario. En este caso el criterio de la estacin se ha aplicado antes del criterio de alimentacin. Animal
Estacin Bpedo Cuadrpedo Alimentacin Herbvoro Proteccin Plumas Pelo
Conejo
Automvil
Camin
La Delegacin La Herencia no es una necesidad absoluta y siempre puede remplazarse por la delegacin. La Delegacin presenta la ventaja de reducir el acoplamiento en el modelo: por una parte el cliente no conoce directamente el proveedor, por otra el proveedor puede ser modificado sobre la marcha. Esta aproximacin permite implementar la generalizacin mltiple con los lenguajes que solo poseen la herencia simple. Ejemplo:
Sistemas II
Animal
Estacin
Alimento
Bpedo
Cuadrpedo
Herbvoro
Carnvoro
Principio de Sustitucin El Principio de Sustitucin afirma que debe ser posible sustituir cualquier instancia de una superclase por cualquier objeto instancia de una subclase sin que la semntica del programa escrito en los trminos de la superclase sea afectado. Ejemplo:
CP
:CP
El Polimorfismo Describe la caracterstica de un elemento que puede tomar varias formas. Un nombre de objeto puede designar instancias de clases diferentes surgidas de un mismo rbol. Principio General: las interacciones entre los objetos se escriben segn los trminos de las especificaciones definidas, en sus superclases. El polimorfismo permite desencadenar operaciones diferentes en respuesta a un mismo mensaje. Cada subclase hereda de la especificacin de las operaciones de sus superclases, pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones, a fin de tener en cuenta mejor las peculiaridades relacionadas con un nivel de abstraccin dado. Los beneficios del polimorfismo se recogen principalmente durante el mantenimiento. El polimorfismo no influye en el anlisis, pero depende de l, no hay que pensar el anlisis en trminos de polimorfismo hay que pensarlo en trminos de abstraccin y as por efecto secundario beneficiarse de esta abstraccin, hacer posible el polimorfismo. Ejemplo: el siguiente Diagrama representa una coleccin polimorfa: el zoolgico. El zoolgico contiene muchos animales. El nombre Animal conocido de la clase ZOO, describe colectivamente todos los tipos de animales. El programa al nivel de abstraccin del ZOO no necesita conocer los detalles propios de cada animal.
Sistemas II
ZOO
Animal
Len
Tigre
Oso
Todos los animales del ejemplo saben dormir pero cada raza tiene sus costumbres particulares. La especificacin del animal dice que los animales pueden dormir. Las subclases particularizan la operacin Dormir, segn los gustos de cada raza. Ejemplo: ZOO 1 Animal
Dormir
Len
Tigre
Oso
Dormir () { En un rbol }