Unidad 2-Terminologia Basica Parte 2

47
Unidad II Terminología Básica (Parte 2) Relaciones entre clases - Dependencia - Asociaciones

description

ues

Transcript of Unidad 2-Terminologia Basica Parte 2

  • Unidad IITerminologa Bsica (Parte 2)Relaciones entre clases- Dependencia- Asociaciones

  • ContenidoRelaciones entre clasesDependencia(Persona - Autobus)Asociaciones(Persona - Auto)Agregacin(Auto - Llanta)Composicin(Auto - Chasis)

    Terminologa Bsica

  • Terminologa Bsica2. Relaciones entre clasesUna relacin es una conexin semntica entre clases (relacin intencional).Permite que una clase conozca los atributos, operaciones y relaciones de otras clases.Las clases no actan aisladas entre s, al contrario, estn relacionadas unas con otras.

  • Terminologa BsicaUna clase puede relacionarse por:Dependencia: usar mtodos y/o atributos de otra clase (por ejemplo, Calculadora usa mtodos y atributos de Math)Asociacin: contener objetos de otra clase (por ejemplo, Calculadora recibe Numero)Herencia: ser un tipo de otra clase (por ejemplo, Entero es un Numero)

    La fortaleza de una relacin de clases se basa en el modo de dependencia de las clases implicadas.

  • *Terminologa BsicaEl modo de dependencia puede ser:Acoplamiento fuerte: si las clases son fuertemente dependientes una de otra.Acoplamiento dbil: si las clases son dbilmente dependientes una de otra.Las relaciones entre clases se corresponden con las relaciones entre objetos fsicos del mundo real, o bien con objetos en un mundo virtual.

  • Terminologa Bsica: DependenciaDependencia:Es la relacin ms dbil que puede existir entre dos clases.Una dependencia significa que una clase utiliza o tiene conocimiento de otra clase: lo que una clase necesita conocer de otra clase para utilizar objetos de esa clase.Normalmente es una relacin transitoria y significa que una clase dependiente interacta de manera breve con la clase destino (La relacin es de un tiempo definido)Una dependencia es una relacin de uso que declaraque un elemento usa lainformacin y los serviciosde otro elemento, pero nonecesariamente a la inversa.

  • *Terminologa Bsica : DependenciaLa dependencia se lee normalmente como una relacin usa un .

    Por ejemplo, si se tiene una clase Ventana que enva un aviso a una clase llamada EventoCerrarVentana cuando est prxima a cerrarse, entonces se dice que Ventana utiliza EventoCerrarVentana.

    La flecha punteada de dependencia significa se utiliza simplemente cuando se necesita y se olvida luego de ella.

    Ejemplos:

  • *Terminologa Bsica : DependenciaOtro ejemplo de dependencia se muestra entre la clase Interfaz y la clase EntradaBlog, ya que ambas clases trabajan juntas, pues Interfaz necesitar leer el contenido de las entradas del blog para visualizar estas entradas al usuario.

    Una dependencia implica que los objetos de las clases PUEDEN trabajar juntos; por consiguiente, se considera que es la relacin directa ms dbil que puede existir entre dos clases.

  • *Terminologa Bsica: AsociacinAsociacin:Una asociacin es ms fuerte que la dependencia y normalmente indica que una clase recuerda o retiene una relacin con otra clase durante un perodo determinado de tiempo.Es decir, las clases se conectan para representar un concepto de la realidad.

    La asociacin realmente significa que una clase contiene una referencia a un objeto u objetos de la otra clase en la forma de un atributo (por lo tanto, es una relacin estructural).Se representa utilizando una simple lnea que conecta las dos clases.

  • *Terminologa Bsica: AsociacinLas asociaciones se deben utilizar cuando se desee representar relaciones estructurales.La descripcin de una asociacin incluye: lnea continua, nombre de la asociacin, direccin del nombre mediante una flecha que apunta en la direccin de una clase a la otra.La navegabilidad se aplica a una relacin de asociacin, y describe qu clase contiene el atributo que admite la relacin.En este ejemplo, Jugador tiene el atributo de tipo Equipo, y Estudiante tiene el atributo de tipo Universidad

  • *Terminologa Bsica: AsociacinCuando una clase se asocia con otra clase, cada una juega un rol dentro de la asociacin. El rol se representa cerca de la lnea prxima a la clase.

    En la asociacin entre un Jugador y un Equipo, si sta es profesional, el equipo es el Empleador y el jugador es el Empleado.Una asociacin puede ser bidireccional.Un Equipo emplea a jugadores.

  • *Terminologa Bsica: AsociacinTambin pueden existir asociaciones entre varias clases, de modo que varias clases se pueden conectar a una clase.

  • *Terminologa Bsica: AsociacinUna asociacin es una conexin conceptual o semntica entre clases.Cuando una asociacin conecta dos clases, cada clase enva mensajes a la otra en un diagrama de secuencia.

    Una asociacin es una abstraccin de los enlaces que existen entre instancias de objetos.

    Los siguientes diagramas muestran objetos enlazados a otros objetos y sus clases correspondientes asociadas.

    Las asociaciones se representan de igual modo que los enlaces.

    La diferencia entre un enlace y una asociacin se determina de acuerdo al contexto del diagrama.

  • *Terminologa Bsica: AsociacinClases asociadas

    Objetos de las clases asociadas (unidas por enlaces)Enlace: instancia de una asociacin

  • *Terminologa Bsica: AsociacinRegla para asociaciones:El significado ms tpico de asociacin es una conexin entre clases, es una relacin semntica entre clases.

    Se dibuja con una lnea continua entre las dos clases.

    La asociacin tienen un nombre (cerca de la lnea que representa la asociacin), normalmente un verbo, aunque est permitido los nombres o frases nominales.

    Cuando se modela un diagrama de clases, se debe reflejar el sistema que se est construyendo y por ello los nombres de la asociacin deben deducirse del dominio del problema, al igual que sucede con los nombres de las clases.

  • *Terminologa Bsica: AsociacinEs posible utilizar asociaciones navegables aadiendo una flecha al final de la asociacin.

    La flecha indica que la asociacin slo se puede utilizar en la direccin de la flecha.

  • *Terminologa Bsica: AsociacinLas asociaciones pueden tener dos nombres, una en cada direccin.

    Las asociaciones pueden ser bidireccionales o unidireccionales.En UML las asociaciones bidireccionales se dibujan con flechas en ambos sentidos.En las asociaciones unidireccionales se debe indicar la direccin de navegacin.

  • *Terminologa Bsica: AsociacinEn las asociaciones se pueden representar los roles o papeles que juega cada clase dentro de las mismas.

    Un nombre de rol puede ser especificado en cualquier lado de la asociacin.

    Los nombres de los roles son especialmente interesantes cuando varias asociaciones conectan dos clases idnticas.

  • *Terminologa Bsica: MultiplicidadMultiplicidad:Entre asociaciones existe la propiedad de la multiplicidad: cierto nmero de objetos de una clase se relaciona con un nico objeto de una clase asociada (un equipo de futbol tiene once jugadores)

  • *Terminologa Bsica: AsociacinLa multiplicidad representa la cantidad de objetos de una clase que se relacionan con un objeto de la clase asociada.

    La informacin de multiplicidad aparece en el diagrama de clases a continuacin del rol correspondiente.

    Cuando se indica una multiplicidad en un extremo de una asociacin se est especificando cuntos objetos de la clase de ese extremo puede existir por cada objeto de la clase en el otro extremo.

  • *Terminologa Bsica: MultiplicidadUML utiliza un asterisco (*) para representar ms y representa muchos.Los valores ms tpicos de multiplicidad son:

    SmboloSignificado10 .. 1m .. n*0 .. *1 .. *25 .. 115, 10Uno y slo unoCero o unoDe m a n (enteros naturales)De cero a muchos (cualquier entero positivo)De cero a muchos (cualquier entero positivo)De uno a muchos (cualquier entero positivo)DosDe cinco a onceCinco o diez

  • *Terminologa Bsica: MultiplicidadSi no se especifica multiplicidad, es uno (1) por omisin.

    Ejemplo 1: Establezca la relacin de asociacin entre las clases Empresa y Persona, sabiendo que cada objeto Empresa tiene como empleados 1 o ms objetos Persona; pero cada objeto Persona tiene como patrn a un objeto Empresa.

  • *Terminologa Bsica: RestriccionesRestricciones en asociaciones:En algunas ocasiones, una asociacin entre dos clases ha de seguir una regla.

    En este caso, la regla se indica poniendo una restriccin cerca de la lnea de asociacin que se representa por el nombre encerrado entre llaves.

    En algunas ocasiones las asociaciones pueden establecer una restriccin entre las clases.

    Las restricciones tpicas pueden ser {ordenado} /{or} /{xor}

  • Ejemplo 2: Un cajero de un banco (humano o electrnico) atiende a clientes. La atencin a los clientes se realiza en el orden en que se colocan ante la ventanilla o mostrador, o bien en funcin del momento de la peticin electrnica de acceso al cajero.

    *Terminologa Bsica : Restricciones

  • *Terminologa Bsica: AsociacionesRestricciones en Asociaciones:Una asociacin entre clases a veces tiene que seguir una regla determinada, y esta se indica poniendo una restriccin cerca de la lnea de la asociacin.La restriccin tpica es ordered (ordenado) se produce cuando una clase atiende a otra en funcin de un determinado orden o secuencia.Otras restricciones tpicas pueden ser {or} /{xor}Ejemplo 1: Un vendedor de entradas de cine (taquillero) atiende a los espectadores a medida que se sitan delante de la ventanilla de entradas.

  • *Terminologa Bsica: Asociaciones

    Ejemplo 2: Un cajero de un banco (humano o electrnico) atiende a clientes.La atencin a los clientes se realiza en el orden en que se colocan ante la ventanilla o mostrador, o bien en funcin del momento de la peticin electrnica de acceso al cajero.

  • *Terminologa Bsica: Asociaciones ReflexivasAsociaciones reflexivas:A veces, una clase tiene una asociacin consigo misma.En este caso la asociacin se denomina asociacin reflexiva.Esta situacin se puede presentar cuando una clase tiene objetos de la misma clase pero que juegan diferentes roles.Por ejemplo, un ocupante de un avin de pasajeros puede ser: un pasajero, un miembro de la tripulacin o un piloto.

    Este tipo de asociacin se representa grficamente dibujando la lnea de asociacin con origen y final en la propia clase y con la indicacin de los roles y multiplicidades correspondientes.

  • *Terminologa Bsica: Asociaciones ReflexivasEjercicios: Cree los diagramas de clases de los siguientes enunciados.

    Los doctores que laboran en un hospital, pueden dar consulta a pacientes y/o a otros doctores del mismo hospital.

    Un pas est formado por al menos dos ciudades y; adems, los pases estn limitados en su frontera por varios pases o ninguno.

    Un libro tiene un nombre, un nmero identificador (ISBN) y uno o varios autores. Un autor tiene nombre, nmero de pasaporte, y correo electrnico. Adems, un libro puede tener como fuente bibliogrfica otros libros o ninguno.

  • *Terminologa Bsica: AsociacionesLos nombres de las asociaciones deben ser una frase verbal.

    Clase-FraseVerbal-ClasePersona-Trabaja-para-CompaaTienda-Almacena-ArticuloVenta-Pagada-mediante-Pago

    Formatos:Pagada-mediantePagada_mediantePagadaMediante

  • *Terminologa Bsica: AsociacionesEl sentido de la asociacin depende de la direccin de la flecha.

    Por defecto leer (sin usar flecha de direccin):De izquierda a derecha, yDe arriba hacia abajo

    De lo contrario colocar flecha de direccin

    Ejercicio: Leer los siguientes diagramas de clases

  • *Terminologa Bsica: Asociaciones

  • *Terminologa Bsica: AsociacionesLa multiplicidad depende del contexto.

  • *Terminologa Bsica: Clases de AsociacinClases de asociacin:Una clase conectada a una asociacin se denomina clase asociacin.Una asociacin puede tener atributos y operaciones tal como una clase, ste es el caso de la clase asociacin.Ejemplo:

  • *Terminologa Bsica: Clases de Asociacin

  • *Terminologa Bsica: Clases de AsociacinCriterios de Diseo:Cuando se traducen a cdigo las relaciones con clases asociacin se obtienen, normalmente, tres clases: una por cada extremo de la asociacin y una por la propia clase asociacin.

    Ejercicios: Disear el diagrama de clases de los siguientes enunciados.En un hospital, los pacientes consultan a los mdicos. La consulta debe programarse y se registra la fecha, la hora y el nmero de clnica en que se realizar.Los vendedores de un negocio venden uno o ms productos en cada venta que realizan. De la venta se registra el nombre del cliente, su telfono y su direccin; adems, la fecha de la venta, el total y el nmero de factura.

  • *Terminologa Bsica: Clases de AsociacinUn aeropuerto es el punto de llegada o el punto de salida de cada vuelo. Para cada llegada o salida se registra la fecha y la hora de la llegada o la salida, as como la puerta de entrada o salida de los pasajeros. De cada vuelo se conoce su nmero, que puede tener al menos una llegada o una salida de ese aeropuerto. Cada lnea area tiene al menos un vuelo. El aeropuerto trabaja con al menos una lnea area.

  • *Terminologa Bsica: AgregacinAgregacin:Una agregacin es un tipo especial de asociacin que expresa un acoplamiento ms fuerte entre clases. La agregacin permite la representacin de relaciones tales como maestro y esclavo, todo y parte de o compuesto y componentes.

    La agregacin implica normalmente propiedad o pertenencia.

  • *Terminologa Bsica: AgregacinLa agregacin se lee normalmente como relacin posee un o relacin todo-parte, en la cual una clase (El todo) representa un gran elemento que consta de elementos ms pequeos (las partes).

  • *Terminologa Bsica: AgregacinEn la agregacin, una clase realmente posee, pero puede compartir objetos de otra clase. Ejemplo 3: Agregacin de un automvil que consta de cuatro ruedas, un motor y una caja de cambios.

  • *Terminologa Bsica: AgregacinEjemplo 4: Un rbol binario que consta de cero, uno o dos nuevos rboles.

    Una agregacin se representa como una jerarqua con la clase todo (por ejemplo, un sistema de computadora) en la parte superior y sus componentes en las partes inferiores (por ejemplo CPU, discos, webcam, ).

  • *Terminologa Bsica: AgregacinEjemplo 5: Una computadora es un conjunto de elementos que consta de una unidad central, monitor, unidad de CD-ROM, altavoces, escner, etc.

  • *Terminologa Bsica: ComposicinComposicin:Una composicin es un tipo especial de agregacin que impone algunas restricciones:si el objeto completo se copia o se borra (elimina), sus partes tambin se copia o se suprimen con l.La composicin es una relacin fuerte entre clases y se utiliza para representar una relacin todo-parte.Cada componente dentro de una composicin puede pertenecer tan slo a un todo.Ejemplo 1: Un tablero de ajedrez se compone de 64 casillas.

  • *Terminologa Bsica: ComposicinUna relacin de composicin se lee normalmente como es parte de , que significa que se necesita leer la composicin de la parte al todo.Ejemplo 2: si una ventana de una pgina web tiene una barra de ttulos, se puede representar que la clase BarraTitulo es parte de una clase denominada Ventana. Pero, las barras horizontal y vertical podran o no ser parte de la ventana.

  • *Terminologa Bsica: ComposicinEjemplo 3: Una mesa para jugar al pker es una composicin que consta de una superficie de la mesa y cuatro o ms patas.

  • *Terminologa Bsica: ComposicinEjemplo 4: Un auto tienen un chasis que no puede ser parte de otro auto. La eliminacin completa del auto supone la eliminacin de su chasis, no as de las partes que estn asociadas por medio de la agregacin.

  • *Terminologa Bsica: Asociaciones, Agregacin y ComposicinEjercicios: Elabore los diagramas de clase de los siguientes enunciados. Identifique asociaciones, agregaciones y composiciones

    El catlogo de productos est formado por las descripciones de los productos, la descripcin de un producto puede aparecer en el catlogo o no. Cada producto es descrito por una descripcin del producto.

    Cada compra es surtida por un proveedor. El proveedor se elige del catlogo de proveedores. La compra se compone de al menos una lnea de compra. En cada lnea de compra se incluye la cantidad, la descripcin del producto, el precio unitario y el subtotal de un mismo producto.

  • *Terminologa Bsica: Asociaciones, Agregacin y ComposicinUna empresa con varios empleados, se dedica a realizar proyectos, estos proyectos estn formados por una o ms actividades y a su vez cada actividad tiene 1 ms tareas especficas. Cada tarea es asignada a uno o dos empleados y los empleados pueden o no tener asignadas tareas.

    ***