# data[].attributes.body
Relaciones:
-Dependencia: Una relación entre dos objetos en la que uno de ellos necesita del otro
-Herencia: Varios objetos distintos heredan de uno en común, este objeto en común tiene una estructura genérica en la que incluye los atributos y métodos que tienen en común los objetos que heredan (Se suele definir como un molde de galletas, con el que puedes hacer galletas de distintos sabores y caacterísticas, pero que tienen todas la misma forma)
-Relación combinada: Se trata de varios objetos que entre todos constituyen la parte fundamental e indispensable de otro objeto fruto de la combinación de estos

# data[].attributes.body
Existen tres tipos de relaciones:
- Asociación (conexion enre clases, una de ellas requiere o utiliza alguno de los servicios de la otra)

- Dependencia (relación de uso)

- Generalización/ especialización (relaciones de herencia) (Una clase obtienen todos los metodos y atributos de la otra y luego puede añadir nuevas características)

# data[].attributes.body
Las relaciones entre Clases son las siguientes:
Asociacion: Relacion de instruccion bidireccional
Herencia: Se heredan las funciones  y atributos de otras clases
Agregacion: Las clases se autocomplementan con distintas funciones y atributos
Uso: Es mas concreto que la asociacion, aqui se definen roles
Ejemplificacion: Representa la relacion entre clases parametrizadas
Metaclases: Son clases que contienen a otras clases, Superclases

# data[].attributes.body
El polimorfismo en POO consiste en que un mismo método invocado puede tener distinta funcionalidad en función de la clase a la que pertenezca.

Por ejemplo si las clases "coche" y "moto" tuvieran un método "fabricar()" su comportamiento sería completamente distinto, pese a tener el método
mismo nombre.

# data[].attributes.body
Tipos de relaciones:

-Asociación : relación estructural que describe una conexión entre objetos. Puede ser bidireccional y unidireccional.

-Agregación: las clases pueden formar parte de distintos agregados.

-Composición:  las clases solo existen asociadas al compuesto.

-Dependencia: muestra la relación entre un cliente y el proveedor de un servicio usado por el cliente.

-Generalización: consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general.

# data[].attributes.headline
Investigación Relaciones clases y tipos-Irene

# data[].attributes.subject
Investigación Relaciones clases y tipos-Irene

# data[].attributes.body
Las relaciones existentes entre las distintas clases indican como se están comunicando las clases entre sí. Una asociación es una conexión estructural simple entre clases. Las instancias de las clases implicadas en una asociación estarán probablemente comunicándose en el momento de ejecución.

Representan tipos de compartición entre clases, o relaciones semánticas.

1. Asociación. Indica relaciones de mandato bidireccionales (Punteros ocultos en C++). Conlleva dependencia semántica y no establece una dirección de dependencia. Tienen cardinalidad.

2. Herencia. Por esta relación una clase (subclase) comparte la estructura y/o comportamiento definidos en una (herencia simple) o más (herencia múltiple) clases, llamadas superclases.

Representa una relación del tipo "es un" entre clases.

Una subclase aumenta o restringe el comportamiento o estructura de la superclase (o ambas cosas).

Una clase de la que no existen ejemplos se denomina {\it abstracta}.

C++ declara como virtuales todas aquellas funciones que quiere modificar en sus subclases.

3. Agregación. Representa una relación del tipo "tener un" entre clases. Cuando la clase contenida no existe independientemente de la clase que la contiene se denomina agregación por valor y además implica contenido físico, mientras que si existe independientemente y se accede a ella indirectamente, es agregación por referencia.

4. Uso. Es un refinamiento de la asociación donde se especifica cual es el cliente y cual el servidor de ciertos servicios.

5. Ejemplificación Se usa en lenguajes que soportan genericidad (declaración de clases parametrizadas y argumentos tipo template). Representa las relaciones entre las clases parametrizadas y las clases obtenidas cuando se concretan estos parámetros formales, ejemplificados o inicializados con un ejemplo.

6. Metaclases Son clases cuyos ejemplos son a su vez clases.

# data[].attributes.body
Existen distintos tipos de forma de relaciones entre las clases: Asociación (conexión entre clases), dependencia, y generalización/especialización (relaciones de herencia).
-asociacion: relación estructural que describe una conexión entre objetos
-dependencia: Relación más débil que una asociación que muestra la relación entre un cliente y el proveedor de un servicio usado por el cliente
-generalización: consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general

# data[].attributes.body
Herencia:
es la relación existente entre dos o más clases. La herencia marca una relación de jerarquía entre objetos, en la cual, una clase principal (madre) puede ser heredada por otras secundarias (hijas), las cuales adquieren “por herencia” los métodos y atributos de la primera (clase principal).

En Python, para indicar que una clase hereda de otra, se utiliza la siguiente sintaxis:

class NombreDeLaClaseHija(NombreDeLaClaseMadre):

Cuando una clase es principal (una clase madre), debe heredar de object:

class Presupuesto(object):

Nuestro nuevo módulo recibo.py, hereda todos los atributos y métodos de presupuesto:

class PresupuestoConRecibo(Presupuesto):

Además, de poder definir métodos y atributos propios que extenderán las características de Presupuesto.

# data[].attributes.body
Ejemplos de relacion:
- Herencia: La herencia es una de las premisas y técnicas de la POO la cual permite a los programadores crear una clase general primero y luego más tarde crear clases más especializadas que re-utilicen código de la clase general. La herencia también le permite escribir un código más limpio y legible.
- Importar: Las clases también pueden ser importadas desde otra clase distinta, esto nos sirve para utilizar metodos creados en otras clases o usar metodos predefinidos en librerias de pyhton

# data[].attributes.body
Una clase es un tipo de dato definido por el usuario, y la crear instancias de una clase hace relación a la creación de objetos de ese tipo.

Relaciones entre clases
Las relaciones existentes entre las distintas clases indican como se están comunicando las clases entre sí.

Existen distintos tipos de forma de relaciones entre las clases: Asociación (conexión entre clases), dependencia, y generalización/especialización (relaciones de herencia).

Asociación

Es una relación estructural que describe una conexión entre objetos. Suelen ser bidireccionales pero es importante a veces hacerlas unidireccionales para restringir su navegación en un solo sentido.

Dependencia
Relación más débil que una asociación que muestra la relación entre un cliente y el proveedor de un servicio usado por el cliente.  Cliente es el objeto que solicita un servicio y servidor es el objeto que provee un servicio. Gráficamente la dependencia se muestra como una línea discontinua con una punta de flecha que apunta del cliente al proveedor.

Generalización
La Generalización consiste en factorizar las propiedades comunes de un conjunto de clases en una clase más general. Los nombres usados: clase padre – clase hija. Otros nombres: superclase – subclase, clase base – clase derivada. Las subclases heredan propiedades de sus clases padre, es decir, atributos y operaciones (y asociaciones) de la clase padre están disponibles en sus clases hijas.

https://ingenieriaensoftwarenathalyalava.wordpress.com/2015/07/01/148/

# data[].attributes.body
La herencia en POO consiste en que una o varias clases extienden una común. Esto quiere decir que a sus métodos propios se añaden todos los que ya tuviera esa clase "padre".

Un buen ejemplo sería "vehiculo" como clase padre, y clases como "coche" o "moto" que hereden sus métodos y añadan otros propios que las diferencien.

# data[].attributes.body
Tipos de relaciones:
- Asociación: binarias o n-arias
- Agregación
- Composición
- Generalización o herencia: Clase o super-clase
- Dependencia: Un cambio en una clase implica cambio en la otra
- Multiplicidad

# data[].attributes.attachment_link.readable_text
Tipos de Relaciones Asociación:

Es una relación que describe un conjunto de vínculos entre clases. Pueden ser binarias o n-arias, según se implican a dos clases o más. Las relaciones de asociación vienen identificadas por los roles, que son los nombres que indican el comportamiento que tienen los tipos o las clases, en el caso del rol de asociación (existen otros tipos de roles según la relación a la que identifiquen). Indican la información más importante de las asociaciones.

Existe una forma especial de asociación, la agregación, que especifica una relación entre las clases donde el llamado "agregado" indica el todo y el "componente" es una parte del mismo.

En el ejemplo la clase "TradeLeg" pertenece o es parte de la clase "Trade".

Todas estas relaciones de asociación y agregación son por default bidireccionales, mas sin embargo es deseable restringir la navegación en una sola dirección. Para establecer la dirección de navegación se utiliza una cabeza de flecha.

Composición:
Es un tipo de agregación donde la relación de posesión es tan fuerte como para marcar otro tipo de relación. Las clases en UML tienen un tiempo de vida determinado, en las relaciones de composición, el tiempo de vida de la clase que es parte del todo (o agregado) viene determinado por el tiempo de vida de la clase que representa el todo, por tanto es equivalente a un atributo, aunque no lo es porque es una clase y puede funcionar como tal en otros casos.

Cuando se establece una relación de este tipo entre dos clases, una es una Superclase y la otra es una Subclase, .a subclase comparte la estructura y el comportamiento de la superclase. Puede haber más de una clase que se comporte como subclase

Dependencia:
Unarelacióndedependenciaseestablece entreclases(uobjetos)cuandouncambioenelelemento independiente del modelo puede requerir un cambio en el elemento dependiente.
Multiplicidades
Es posible especificar:

. Un número exacto simplemente escribiéndolo.

. Un rango de números utilizando dos puntos entre un par de números.

. Un número arbitrario, no especificado utilizando *.

Aproximadamente, puede pensar en el * de UML como un símbolo de infinito, por lo que la multiplicidad 1 . . * expresa que el número de copias puede ser cualquier cosa entre 1 e infinito. Por supuesto, cada vez habrá en realidad un número finito de objetos en nuestro sistema completo, por lo que esto realmente indica que puede haber cualquier número de copias de un libro, a condición de que haya al menos uno.

Se puede también especificar una posible multiplicidad mediante una lista de multiplicidades separadas por comas: por ejemplo 3, 12. .15, 901 . . * es una multiplicidad improbable que se dé, que indica que puede haber exactamente 3, o bien entre 12 y 15 (inclusive) o bien al menos 901, de 10 que sea.
Agregación
El símbolo de agregación es un diamante colocado en el extremo en el que esta la clase que representa el "todo"

BIBLIOGRAFIA:

Guía de estudio para presentar el examen EGETSU

AntologíaModelos de Bases de Datos unidad 2

# data[].attributes.attachment_link.description
Tipos de Relaciones Asociación: Es una relación que describe un conjunto de vínculos entre clases. Pueden ser binarias o n-arias, según se implican a dos clases o más. Las relaciones de asociación vienen identificadas por los roles, que son los nombres que indican el comportamiento que tienen los tipos o las clases, en el caso del rol de asociación (existen otros tipos de roles según la relación a la que identifiquen).

# data[].attributes.body
Tres tipos de relaciones:
-Dependencia
-Relación combinada (composición)
-Hereditario. El mecanismo de la herencia de clases permite múltiples clases base, una clase derivada puede sobre escribir cualquier método de su(s) clase(s) base, y un método puede llamar al método de la clase base con el mismo nombre. Los objetos pueden tener una cantidad arbitraria de datos de cualquier tipo.

# data[].attributes.body
•Investigar acerca de las relaciones entre clases y los tipos de relaciones que existen.