Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diagramas de Clases
Curso: Tecnologa de la Programacin II. Docente: Mg. Zoraida Yanet Vidal Melgarejo.
CLASE 06
Introduccin
El diagrama de clase representa clases, sus partes y la forma en la que las clases de los objetos estn relacionados con otro.
Son importantes no slo para visualizacin, especificacin y documentacin de modelos estructurales, sino tambin para construir sistemas ejecutables.
05/06/2011
Los diagramas de clases proporcionan una perspectiva esttica del sistema (representa su diseo estructural)
Identificar las clases. Mostrar los atributos y operaciones (posteriormente). Dibujar asociaciones. Etiquetar asociaciones y en caso necesario los roles. Indicar multiplicidad.
05/06/2011
Clases:
Atributos Mtodos Visibilidad
Clase
Es la unidad bsica que encapsula toda la informacin de un Objeto (un objeto es una instancia de una clase). A travs 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 y adems se pueden usar para anotar otras propiedades del modelo como son (reglas del negocio, responsabilidades, excepciones, etc.)
6
05/06/2011
En UML, una clase es representada por un rectngulo que posee tres divisiones:
NombreClase // Lista de atributos visibilidad nombreAtributo: tipo [= valorIinicial] // Declaracin de mtodos visibilidad nombreMtodo(lista_argumentos): tipoRetorno
Ejemplo
La clase automvil que posee como caracterstica: Matrcula Color. Velocidad. Puede realizar las operaciones de: Arrancar Acelerar Frenar
05/06/2011
Ejemplo
Nombre
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
05/06/2011
Atributo
Un atributo es una propiedad de una clase que describe un rango de valores que la propiedad puede conservar. Una clase puede tener cualquier nmero de atributos o carecer de ellos. Son descripciones de caractersticas, se usan para modelar informacin asociada con una entidad, sintaxis: nombreAtributo[multiplicidad]:tipo [= valorInicial] La multiplicidad es opcional e indica el nmero de atributos por instancia de la clase.
11
Visibilidad
12
05/06/2011
Mtodo u Operacin
Un mtodo es la implementacin de un servicio que puede ser solicitado desde cualquier objeto de la clase para afectar el comportamiento. Una clase puede tener cualquier nmero de mtodos o carecer de ellas. Un nombre de mtodo es un verbo o frase verbal que representa algn comportamiento.
13
Mtodo u Operacin
En un mtodo se puede establecer su firma, abarcando el nombre, tipo y valor de omisin de todos los parmetros y tipo de regreso. Sintaxis: nombreMtodo(parmetros: tipo): tipoRetorno
14
05/06/2011
totalOrderCantidad (order: Integer): Double totalOrderCantidad (order: Integer) : {El total es la suma de cada item (p.u. x cantidad)} + totalOrderCantidad (order: Integer) : {El total es la suma .
15
Visibilidad
public (+) : Cualquier clase externa puede usar la caracterstica. protected (#) : Cualquier descendiente de la clase usa la caracterstica. private (-) : Slo la clase misma puede usar la caracterstica.
16
05/06/2011
Las relaciones existentes entre las distintas clases nos indican cmo se comunican los objetos de esas clases entre si. Los mensajes navegan por las relaciones existentes entre las distintas clases. Existen distintos tipos de relaciones: - Asociacin (Conexin entre clases). - Dependencia (relacin de uso). - Generalizacin/especializacin (relaciones de herencia).
17
Rol Identifica con nombres a los elementos que aparecen en los extremos de la lnea que denota la relacin, dicho nombre describe la semntica que tiene la relacin en el sentido indicado. Por ejemplo, la asociacin entre Persona que Trabaja Para una Empresa, recibe el nombre de trabajador y empleador como rol en ese sentido.
Rol
18
Rol
05/06/2011
Multiplicidad
Rol
19
Rol
Tipos de Relaciones
1.- Relacin de Asociacin 1.1.- Asociacin de Agregacin 1.2.- Asociacin de Composicin 2.- Relacin de Dependencia 3.- Relacin de Generalizacin
20
10
05/06/2011
Asociacin
Una asociacin en general es una lnea que une dos o ms smbolos. Pueden tener varios tipos de adornos, que define su semntica y caractersticas. Los tipos de asociaciones entre clases presentes en un diagrama esttico son: asociacin binaria, asociacin reflexiva, asociacin n-aria, agregacin, composicin. La asociacin expresa una conexin bidireccional entre objetos. Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos. Puede determinarse por la especificacin de multiplicidad (mnima...mxima)
21
Multiplicidad
Determina cuantos objetos de cada tipo intervienen en la relacin. El nmero de instancias de una clase que se relacionan con UNA instancia de la otra clase Cada Asociacin tiene dos multiplicidades (una para cada extremo de la relacin): cuando la multiplicidad mnima es CERO, la relacin es opcional; y una multiplicidad mnima mayor o igual que UNO establece una relacin obligatoria.
22
11
05/06/2011
Tipos de Multiplicidad
23
Ejemplos de Multiplicidad
24
12
05/06/2011
Direccin
La direccin en las flechas de la asociacin determinan en que direccin puede recorrerse una asociacin en el momento de la ejecucin. Una asociacin sin flechas significa que se puede ir de un objeto a otro y viceversa. En el ejemplo siguiente el tipo de flecha en la asociacin implica que desde el objeto Reservacin puedes recuperar (dirigirte hacia) el objeto Cliente. Tambin implica que del objeto Cliente puede recuperar el juego de reservaciones para ese cliente.
25
Asociacin Binaria
Una asociacin binaria se representa mediante una lnea slida que une dos clases, se trata de una relacin entre las dos clases no muy fuerte, es decir, no se exige dependencia existencial ni encapsulamiento.
26
13
05/06/2011
Asociacin Reflexiva
Una clase puede asociarse con s misma. Una clase Empleado puede relacionarse con s misma a travs del rol gerente/dirige. No significa que una instancia est relacionada consigo misma, sino que una instancia de la clase est relacionada con otra instancia de la misma clase.
27
Asociacin Reflexiva
Una instancia de Empleado puede ser el jefe de otras instancias de Empleado. Como el rol subordinado tiene una multiplicidad de 0*, significa que puede tener o no tener otros empleados a quien dirigir. Una instancia de Empleado tiene un slo jefe o ninguno (en caso de ser el mismo jefe).
28
14
05/06/2011
Asociacin Reflexiva
29
Asociacin N-aria
Es una forma de expresar una relacin entre tres o ms clases. La clase de asociacin es dependiente en existencia de las otras clases.
30
15
05/06/2011
Asociacin N-aria
31
Asociacin de Composicin
Es un tipo de relacin fuerte, el objeto agregado no puede existir de forma independiente. Agregacin disjunta y estricta: Las partes slo existen asociadas al compuesto (slo se accede a ellas a travs del compuesto).
32
16
05/06/2011
Asociacin de Composicin
33
Asociacin de Composicin
34
17
05/06/2011
Asociacin de Agregacin
Es un tipo de relacin dbil, el objeto agregado puede existir de forma independiente. Las partes pueden forma parte de distintos agregados. Grficamente, se muestra con un rombo vaco en uno de los extremos.
35
Asociacin de Agregacin
36
18
05/06/2011
Dependencia
Relacin (ms dbil que una asociacin) que muestra la relacin entre un cliente y el proveedor de un servicio usado por 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) puede afectar a la semntica del otro elemento (elemento dependiente).
37
Dependencia
Grficamente, la dependencia se muestra como una lnea discontinua con una punta de flecha que apunta del cliente al proveedor.
Clase dependiente Clase independiente
38
19
05/06/2011
Dependencia
39
Generalizacin
Es una relacin entre dos clases en donde una de ellas, llamada subclase o clase hija, hereda los atributos y el comportamiento de otra, llamada superclase o clase padre. En una generalizacin no hay multiplicidad ni roles. Las subclases heredan caractersticas de las clases de las que se derivan y aaden caractersticas especficas que las diferencian. La visibilidad protected permite que slo objetos de la misma clase subclase vean el elemento.
40
20
05/06/2011
Vehculo
Terrestre
Areo
camin
auto
avin
helicptero
41
42
21
05/06/2011
Paquete
Es un elemento organizador que proporciona UML al dividir el sistema en paquetes que lo hace ms fcil de entender. Un paquete es una forma de agrupar clases (u otros elementos en otro tipo de diagramas) en modelos grandes. Pueden tener asociaciones de dependencia o de generalizacin 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. En UML, una interface es considerada como una especializacin de una clase. Una interface se dibuja como una clase, pero en el compartimento superior del rectngulo aparece un texto una inicial que indica que se trata de una interface y no de una clase. Se representan como clases pero con el estereotipo <<interface>>. Solo contienen operaciones pblicas.
44
22
05/06/2011
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 simbologa del diagrama est como una interface y Professor y Student estn como clases. 2) No se trata de herencia ya que la lnea con la flecha est punteada y no slida.
45
Clase Abstracta
Una clase abstracta se denota con el nombre de la clase y de los mtodos con letra "itlica". Esto indica que la clase definida no puede ser instanciada pues posee mtodos abstractos (an no han sido definidos, es decir, sin implementacin). La nica forma de utilizarla es definiendo subclases, que implementan los mtodos abstractos definidos.
46
23
05/06/2011
Clase Parametrizada
Se denota con un subcuadro en el extremo superior de la clase, en donde se especifican los parmetros que deben ser pasados a la clase para que esta pueda ser instanciada. El ejemplo ms tpico es el caso de un Diccionario en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genricos. La genericidad puede venir dada de un Template (como en el caso de C++) o bien de alguna estructura predefinida (especializacin a travs de clases).
47
Clase Parametrizada
En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependern exclusivamente de la implementacin que se le quiera dar.
48
24
05/06/2011
Ejemplo 1:
En una empresa de Ventas, un cliente (Natural o Jurdico) realiza un pedido que es atendido por un Personal. Dicho personal tiene a su cargo a otro personal. El cual ocupa un puesto especfico en la empresa. En un pedido se pueden consignar la venta de varios productos. As tambin un producto puede estar relacionado con varios pedidos. Un producto se encuentra relacionado con una sola categora, a la cual pueden pertenecer varios productos Realizar un Diagrama de Clases que grafique las relaciones existentes.
49
Ejemplo 1:
50
25
05/06/2011
Ejemplo 2:
Se desea disear un diagrama de clases sobre la informacin de las reservas de una empresa dedicada al alquiler de automviles, teniendo en cuenta que un determinado cliente puede tener en un momento dado hechas varias reservas. De cada cliente se desean almacenar su DNI, nombre, direccin y telfono. Adems dos clientes se diferencian por un cdigo nico. Cada cliente puede ser avalado por otro cliente de la empresa.
51
Ejemplo 2:
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 depsito en el momento de realizar la reserva, el precio total de la reserva y un indicador de si el coche o los coches 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
26
05/06/2011
Ejemplo 2:
53
Ejemplo 3:
La Polica quiere crear una base de datos sobre la seguridad en algunas entidades bancarias. Para ello tiene en cuenta: Que cada entidad bancaria se caracteriza por un cdigo y por el domicilio de su Central. Que cada entidad bancaria tiene ms de una sucursal que tambin se caracteriza por un cdigo y por el domicilio, as como por el nmero de empleados de dicha sucursal. Que cada sucursal contrata, segn el da, algunos vigilantes jurados, que se caracterizan por un cdigo y su edad. Un vigilante puede ser contratado por diferentes sucursales (incluso de diferentes entidades), en distintas fechas y es un dato de inters dicha fecha, as como si se ha contratado con arma o no.
54
27
05/06/2011
Ejemplo 3:
Por otra parte, se quiere controlar a las personas que han sido detenidas por atracar las sucursales de dichas entidades. Estas personas se definen por una clave (cdigo) y su nombre completo. Alguna de estas personas estn integradas en algunas bandas organizadas y por ello se desea saber a qu banda pertenecen, sin ser de inters si la banda ha participado en el delito o no Dichas bandas se definen por un nmero de banda y por el nmero de miembros. As mismo, es interesante saber en qu fecha ha atracado cada persona una sucursal. Evidentemente, una persona puede atracar varias sucursales en diferentes fechas, as como que una sucursal puede ser atracada por varias personas.
55
Ejemplo 3:
Igualmente, se quiere saber qu Juez ha estado encargado del caso, sabiendo que un individuo, por diferentes delitos, puede ser juzgado por diferentes jueces. Es de inters saber, en cada delito, si la persona detenida ha sido condenada o no y de haberlo sido, cunto tiempo pasar en la crcel. Un Juez se caracteriza por una clave interna del juzgado, su nombre y los aos de servicio. NOTA: En ningn caso interesa saber si un vigilante ha participado en la detencin de un atracador
56
28
05/06/2011
Ejemplo 3:
57
Ejemplo 4:
Una biblioteca tiene copias de libros. Estos ltimos se caracterizan por su nombre, ao y autor. Un libro est relacionado con una categora (novela, teatro, poesa, ensayo) as como tambin con una editorial. Los autores se caracterizan por su nombre y fecha de nacimiento. Se considera que el autor slo tiene una nacionalidad. Cada copia tiene un identificador, y puede estar en la biblioteca, prestada, con retraso o en reparacin.
58
29
05/06/2011
Ejemplo 4:
Los lectores pueden tener un mximo de 3 libros en prstamo. Cada libro se presta un mximo de 30 das, por cada da de retraso, se impone una multa de dos das sin posibilidad de coger un nuevo libro. Realizar un diagrama de clases para realizar el prstamo y devolucin de libros.
59
Ejemplo 4:
60
30