Download - Diagramas de Clase 2
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 1/30
05/06/
Curso: Tecnología de la Programación II.
Docente: Mg. Zoraida Yanet Vidal Melgarejo.
CLASE 06
Diagramas de Clases
Introducción
Son los diagramas más comunes en el modelado de sistemas
orientados a objetos.
El diagrama de clase representa clases, sus partes y la forma en
la que las clases de los objetos están relacionados con otro.
Son importantes no sólo para visualización, especificación y
documentación de modelos estructurales, sino también para
construir sistemas ejecutables.
2
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 2/30
05/06/
Ejemplo de un diagrama de clases
Los diagramas de clases proporcionan una perspectiva estática
del sistema (representa su diseño estructural)
3
Pasos para el diagrama de clases
Identificar las clases.
Mostrar los atributos y operaciones (posteriormente).
Dibujar asociaciones.
Etiquetar asociaciones y en caso necesario los roles.
Indicar multiplicidad.
Dibujar flechas de dirección.
4
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 3/30
05/06/
Partes de un Diagrama de Clases
Clases: Atributos
Métodos
Visibilidad
Relaciones:
Asociación
Composición
Agregación
Dependencia
Generalización
5
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.).
En ellos se ponen el nombre, los atributos, las operaciones yademás se pueden usar para anotar otras propiedades del
modelo como son (reglas del negocio, responsabilidades,
excepciones, etc.)
6
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 4/30
05/06/
Clase: Notación Gráfica
En UML, una clase es representada por un rectángulo queposee tres divisiones:
NombreClase
// Lista de atributosvisibilidad nombreAtributo: tipo [= valorIinicial]
// Declaración de métodos
visibilidad nombreMétodo(lista_argumentos): tipoRetorno
7
Ejemplo
La clase automóvil que posee como característica:
Matrícula
Color.
Velocidad.
Puede realizar las operaciones de:
Arrancar
Acelerar
Frenar
8
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 5/30
05/06/
Ejemplo
El diseño asociado es:
Automovil
- matricula: String
- color: String
- velocidad: double
+ arrancar(): boolean
+ acelerar(): boolean
+ frenar(): boolean
9
Nombre
Cada clase debe tener un nombre que la distinga de otras
clases.
Un nombre es una cadena de texto
Un nombre solo se conoce como “Nombre simple”.
Una “Ruta nombre” es el nombre de clase precedido del
nombre del paquete en que vive la clase.
10
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 6/30
05/06/
Atributo
Un atributo es una propiedad de una clase que describe unrango de valores que la propiedad puede conservar.
Una clase puede tener cualquier número de atributos ocarecer de ellos.
Son descripciones de características, se usan para modelarinformación asociada con una entidad, sintaxis:nombreAtributo[multiplicidad]:tipo [= valorInicial]
La multiplicidad es opcional e indica el número de atributospor instancia de la clase.
11
Ejemplo: Especificación de un atributo
Elemento Ejemplo Nombre del atributo compañía
Tipo de dato compañía: character
Valor de default (si hay) compañía: character = espacios Restricciones compañía: character = espacios {1 a 30} Caracteres
compañía: character = espacios{1 a 30 alfabéticos,
espacios, puntuación, no especiales} Visibilidad
- compañía: character = espacios {1 a 30 alfabéticos,
……. 12
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 7/30
05/06/
Método u Operación
Un método es la implementación de un servicio que puede sersolicitado desde cualquier objeto de la clase para afectar elcomportamiento.
Una clase puede tener cualquier número de métodos ocarecer de ellas.
Un nombre de método es un verbo o frase verbal querepresenta algún comportamiento.
13
Método u Operación
En un método se puede establecer su firma, abarcando elnombre, tipo y valor de omisión de todos los parámetros ytipo de regreso.
Sintaxis:nombreMétodo(parámetros: tipo): tipoRetorno
14
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 8/30
05/06/
Ejemplo: Especificación de un método
Elemento Ejemplo Nombre totalOrderCantidad
Definir argumentos/
Parámetros, corresponden a unainstancia de Order
totalOrderCantidad (order: Integer)
Definir el tipo de dato deretorno
totalOrderCantidad (order: Integer): Double
Identificar y describirrestricciones
totalOrderCantidad (order: Integer) : {El total esla suma de cada item (p.u. x cantidad)}
Visibilidad + totalOrderCantidad (order: Integer) : {El total
es la suma ….
15
Visibilidad
public (+) : Cualquier clase externa puede usar lacaracterística.
protected (#) : Cualquier descendiente de la clase usa lacaracterística.
private (-) : Sólo la clase misma puede usar la característica.
16
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 9/30
05/06/
Relaciones entre Clases
Las relaciones existentes entre las distintas clases nos indicancómo se comunican los objetos de esas clases entre si.
Los mensajes “navegan” por las relaciones existentes entre lasdistintas clases.
Existen distintos tipos de relaciones:- Asociación (Conexión entre clases).- Dependencia (relación de uso).- Generalización/especialización (relaciones de herencia).
17
Elementos Adicionales de una Relación
Rol
Identifica con nombres a los elementos que aparecen en losextremos de la línea que denota la relación, dicho nombredescribe la semántica que tiene la relación en el sentidoindicado. Por ejemplo, la asociación entre Persona queTrabaja Para una Empresa, recibe el nombre detrabajador y empleador como rol en ese sentido.
Rol
18
Rol
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 10/30
05/06/
Elementos Adicionales de una Relación
Multiplicidad Indica la cardinalidad de la relación. En el ejemplo se utilizan
1 , 1 ..*, 5 , *, como indicadores de multiplicidad.
Relación
19
Rol Rol
MultiplicidadMultiplicidad
Tipos de Relaciones
1.- Relación de Asociación
1.1.- Asociación de Agregación
1.2.- Asociación de Composición
2.- Relación de Dependencia
3.- Relación de Generalización
20
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 11/30
05/06/
Asociación
Una asociación en general es una línea que une dos o mássímbolos. Pueden tener varios tipos de adornos, que define susemántica y características. Los tipos de asociaciones entreclases presentes en un diagrama estático son: asociaciónbinaria, asociación reflexiva, asociación n-aria, agregación,composición.
La asociación expresa una conexión bidireccional entreobjetos. Una asociación es una abstracción de la relaciónexistente en los enlaces entre los objetos. Puede determinarsepor la especificación de multiplicidad (mínima...máxima)
21
Multiplicidad
Determina cuantos objetos de cada tipo intervienen en larelación.
El número de instancias de una clase que se relacionan conUNA instancia de la otra clase
Cada Asociación tiene dos multiplicidades (una para cadaextremo de la relación): cuando la multiplicidad mínima esCERO, la relación es opcional; y una multiplicidad mínimamayor o igual que UNO establece una relación obligatoria.
22
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 12/30
05/06/
Tipos de Multiplicidad
23
Ejemplos de Multiplicidad
24
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 13/30
05/06/
Dirección
La dirección en las flechas de la asociación determinan en quedirección puede recorrerse una asociación en el momento dela ejecución.
Una asociación sin flechas significa que se puede ir de unobjeto a otro y viceversa.
En el ejemplo siguiente el tipo de flecha en la asociaciónimplica que desde el objeto Reservación puedes recuperar(dirigirte hacia) el objeto Cliente. También implica que delobjeto Cliente puede recuperar el juego de reservaciones para
ese cliente.
25
Asociación Binaria
Una asociación binaria se representa mediante una línea sólidaque une dos clases, se trata de una relación entre las dosclases no muy fuerte, es decir, no se exige dependenciaexistencial ni encapsulamiento.
26
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 14/30
05/06/
Asociación Reflexiva
Una clase puede asociarse con sí misma. Una clase Empleadopuede relacionarse con sí misma a través del rolgerente/dirige.
No significa que una instancia está relacionada consigo misma,sino que una instancia de la clase está relacionada con otrainstancia de la misma clase.
27
Asociación Reflexiva
Una instancia de Empleado puede ser el jefe de otrasinstancias de Empleado. Como el rol subordinado tiene unamultiplicidad de 0…*, significa que puede tener o no tenerotros empleados a quien dirigir.
Una instancia de Empleado tiene un sólo jefe o ninguno (encaso de ser el mismo jefe).
28
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 15/30
05/06/
Asociación Reflexiva
29
Asociación N-aria
Es una forma de expresar una relación entre tres o másclases.
La clase de asociación es dependiente en existencia de lasotras clases.
30
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 16/30
05/06/
Asociación N-aria
31
Asociación de Composición
Es un tipo de relación fuerte, el objeto agregado no puedeexistir de forma independiente.
Agregación disjunta y estricta: Las partes sólo existen asociadasal compuesto (sólo se accede a ellas a través del compuesto).
32
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 17/30
05/06/
Asociación de Composición
Gráficamente, se muestra con un rombo lleno en uno de losextremos (compuesto).
33
34
Asociación de Composición
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 18/30
05/06/
Asociación de Agregación
Es un tipo de relación débil, el objeto agregado puede existirde forma independiente.
Las partes pueden forma parte de distintos agregados.
Gráficamente, se muestra con un rombo vacío en uno de losextremos.
35
36
Asociación de Agregación
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 19/30
05/06/
Dependencia
Relación (más débil que una asociación) que muestra larelación entre un cliente y el proveedor de un servicio usadopor el cliente:
Cliente es el objeto que solicita un servicio.
Servidor es el objeto que provee el servicio solicitado.
Un cambio en un elemento (el elemento independiente) puedeafectar a la semántica del otro elemento (elementodependiente).
37
Gráficamente, la dependencia se muestra como una líneadiscontinua con una punta de flecha que apunta del cliente alproveedor.
Clase dependiente Clase independiente
Canal
Video
. . .
. . .Grabar(c : canal)
Televisión
. . .
. . .cambiar(c : canal)
38
Dependencia
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 20/30
05/06/
39
Dependencia
Generalización
Es una relación entre dos clases en donde una de ellas, llamadasubclase o clase hija, hereda los atributos y el comportamientode otra, llamada superclase o clase padre.
En una generalización no hay multiplicidad ni roles.
Las subclases heredan características de las clases de las que
se derivan y añaden características específicas que lasdiferencian.
La visibilidad “protected” permite que sólo objetos de lamisma clase ó subclase vean el elemento.
40
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 21/30
05/06/
Clase hija Clase Padre
camión auto avión helicóptero
Aéreo Terrestre
Vehículo
41
Generalización: Representación gráfica
42
Generalización: Representación gráfica
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 22/30
05/06/
Paquete
Es un elemento organizador que proporciona UML al dividir elsistema en paquetes que lo hace más fácil de entender.
Un paquete es una forma de agrupar clases (u otros elementosen otro tipo de diagramas) en modelos grandes. Pueden tenerasociaciones de dependencia o de generalización entre ellos.Un ejemplo puede ser el siguiente
43
Interfaces
Una interface no es una clase. Una clase tiene una instancia de su tipo, mientras que una
interface debe tener al menos una clase para implantarla. EnUML, una interface es considerada como una especializaciónde una clase.
Una interface se dibuja como una clase, pero en elcompartimento superior del rectángulo aparece un texto ó
una inicial que indica que se trata de una interface y no de unaclase.
Se representan como clases pero con el estereotipo<<interface>>.
Solo contienen operaciones públicas.
44
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 23/30
05/06/
Interfaces: Ejemplo
En el diagrama anterior las clases Professor y Student implementan a la interface
Person y no heredan de ésta, podemos deducirlo a partir de:
1) El objeto Person de acuerdo a la simbología del diagrama está como una interfacey Professor y Student están como clases.
2) No se trata de herencia ya que la línea con la flecha está punteada y no sólida.
45
Clase Abstracta
Una clase abstracta se denota con el nombre de la clase y delos métodos con letra "itálica". Esto indica que la clasedefinida no puede ser instanciada pues posee métodosabstractos (aún no han sido definidos, es decir, sinimplementación). La única forma de utilizarla es definiendosubclases, que implementan los métodos abstractos definidos.
46
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 24/30
05/06/
Clase Parametrizada
Se denota con un subcuadro en el extremo superior de laclase, en donde se especifican los parámetros que deben serpasados a la clase para que esta pueda ser instanciada.
El ejemplo más típico es el caso de un Diccionario en dondeuna llave o palabra tiene asociado un significado, pero en estecaso las llaves y elementos pueden ser genéricos.
La genericidad puede venir dada de un Template (como en el
caso de C++) o bien de alguna estructura predefinida(especialización a través de clases).
47
Clase Parametrizada
En el ejemplo no se especificaron los atributos del Diccionario,pues ellos dependerán exclusivamente de la implementaciónque se le quiera dar.
48
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 25/30
05/06/
Ejemplo 1:
En una empresa de Ventas, un cliente (Natural o Jurídico) realizaun pedido que es atendido por un Personal. Dicho personaltiene a su cargo a otro personal. El cual ocupa un puestoespecífico en la empresa.
En un pedido se pueden consignar la venta de varios productos.Así también un producto puede estar relacionado con variospedidos.
Un producto se encuentra relacionado con una sola categoría, ala cual pueden pertenecer varios productos
Realizar un Diagrama de Clases que grafique las relacionesexistentes.
49
Ejemplo 1:
50
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 26/30
05/06/
Ejemplo 2:
Se desea diseñar un diagrama de clases sobre la información delas reservas de una empresa dedicada al alquiler de automóviles,teniendo en cuenta que un determinado cliente puede tener enun momento dado hechas varias reservas.
De cada cliente se desean almacenar su DNI, nombre, direccióny teléfono. Además dos clientes se diferencian por un códigoúnico.
Cada cliente puede ser avalado por otro cliente de la empresa.
51
Una reserva la realiza un único cliente pero puede involucrar
varios coches.
Es importante registrar la fecha de inicio y final de la reserva, el
precio del alquiler de cada uno de los coches, los litros de
gasolina en el depósito en el momento de realizar la reserva, el
precio total de la reserva y un indicador de si el coche o loscoches han sido entregados.
Todo coche tiene siempre asignado un determinado garaje que
no puede cambiar. De cada coche se requiere la matricula, el
modelo, el color y la marca. Cada reserva se realiza en una
determinada agencia.
52
Ejemplo 2:
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 27/30
05/06/
Ejemplo 2:
53
Ejemplo 3:
La Policía quiere crear una base de datos sobre la seguridad enalgunas entidades bancarias. Para ello tiene en cuenta:Que cada entidad bancaria se caracteriza por un código y por eldomicilio de su Central.Que cada entidad bancaria tiene más de una sucursal quetambién se caracteriza por un código y por el domicilio, así como por el número de empleados de dicha sucursal.
Que cada sucursal contrata, según el día, algunos vigilantes jurados, que se caracterizan por un código y su edad. Unvigilante puede ser contratado por diferentes sucursales (inclusode diferentes entidades), en distintas fechas y es un dato deinterés dicha fecha, así como si se ha contratado con arma o no.
54
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 28/30
05/06/
Ejemplo 3:
Por otra parte, se quiere controlar a las personas que han sidodetenidas por atracar las sucursales de dichas entidades. Estaspersonas se definen por una clave (código) y su nombrecompleto.Alguna de estas personas están integradas en algunas bandasorganizadas y por ello se desea saber a qué banda pertenecen,sin ser de interés si la banda ha participado en el delito o noDichas bandas se definen por un número de banda y por elnúmero de miembros.Así mismo, es interesante saber en qué fecha ha atracado cada
persona una sucursal. Evidentemente, una persona puede atracarvarias sucursales en diferentes fechas, así como que una sucursalpuede ser atracada por varias personas.
55
Igualmente, se quiere saber qué Juez ha estado encargado delcaso, sabiendo que un individuo, por diferentes delitos, puedeser juzgado por diferentes jueces. Es de interés saber, en cadadelito, si la persona detenida ha sido condenada o no y dehaberlo sido, cuánto tiempo pasará en la cárcel. Un Juez secaracteriza por una clave interna del juzgado, su nombre y losaños de servicio.
NOTA: En ningún caso interesa saber si un vigilante haparticipado en la detención de un atracador
56
Ejemplo 3:
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 29/30
05/06/
Ejemplo 3:
57
Ejemplo 4:
Una biblioteca tiene copias de libros. Estos últimos secaracterizan por su nombre, año y autor.
Un libro está relacionado con una categoría (novela, teatro,poesía, ensayo) así como también con una editorial.
Los autores se caracterizan por su nombre y fecha de
nacimiento. Se considera que el autor sólo tiene unanacionalidad.
Cada copia tiene un identificador, y puede estar en la biblioteca,prestada, con retraso o en reparación.
58
5/7/2018 Diagramas de Clase 2 - slidepdf.com
http://slidepdf.com/reader/full/diagramas-de-clase-2 30/30
05/06/
Ejemplo 4:
Los lectores pueden tener un máximo de 3 libros en préstamo.Cada libro se presta un máximo de 30 días, por cada día deretraso, se impone una “multa” de dos días sin posibilidad decoger un nuevo libro.
Realizar un diagrama de clases para realizar el préstamo ydevolución de libros.
59
Ejemplo 4:
60