Unity 1.
Class Diagram
PRESENTER:
Mg, Claudia Yamile Gómez Llanez.
Área: Software Subject: POO II
Semester: Second
Pro – Media 2.0
Content
• Introduction
• Elements
• Relationships between class:
Heritage
Aggregation
Asociation
Dependency or Instanciation
• Class Diagram Desing
• Aplication Study Case
• Exercises
Pro – Media 2.0
Introduction (1/1)
Un diagrama de clases sirve para visualizar las
relaciones entre las clases que involucran el
sistema, las cuales pueden ser asociativas, de
herencia, de uso y de contenimiento.
Un diagrama de clases esta compuesto por los
siguientes elementos:
• Class: atributos, métodos y visibilidad.
• Relationships: Herencia, Composición,
Agregación, Asociación y Uso.
Pro – Media 2.0
Elements (1/4)
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.). <Nombre Clase>
En UML, una clase es representada por un <Atributos>
rectángulo que posee tres divisiones:
<Métodos>
Pro – Media 2.0
Elements (2/4)
Ejemplo: En un establo, por ejemplo, se pueden
identificar diferentes animales como entes con
características y acciones propias. Para hacer un
introductorio se puede tomar un burro.
Pepito
[Link]
Pro – Media 2.0
Elements (3/4)
Atributos y Métodos:
Atributos: Son características o variables que definen la
información que se desea almacenar. Los atributos o
características de una Clase pueden ser de tres tipos, los
que definen el grado de comunicación y visibilidad de ellos
con el entorno, estos son:
• public (+,): Indica que el atributo será visible tanto dentro
como fuera de la clase, es decir, es accesible desde todos
lados.
• private (-,): Indica que el atributo sólo será accesible
desde dentro de la clase (sólo sus métodos lo pueden
accesar).
Pro – Media 2.0
Elements (4/4)
protected (#,): Indica que el atributo no será
accesible desde fuera de la clase, pero si
podrá ser accesado por métodos de la clase
además de las subclases que se deriven (ver
herencia).
• Métodos: Los métodos u operaciones de
una clase son la forma en como ésta
interactúa con su entorno, éstos pueden
tener las características: public, private
and protected.
Pro – Media 2.0
Relationships between class (1/10)
Ahora ya definido el concepto de Clase, es
necesario explicar como se pueden
interrelacionar dos o más clases (cada uno con
características y objetivos diferentes).
Cardinalidad de las relaciones: En UML, la
cardinalidad de las relaciones indica el grado y
nivel de dependencia, se anotan en cada
extremo de la relación y éstas pueden ser:
Pro – Media 2.0
Relationships between class (2/10)
• uno a muchos: 1..* (1..n)
• 0 a muchos: 0..* (0..n)
• número fijo: m (m denota el número).
Cliente OrdenCompra
1 0..*
Pro – Media 2.0
Relationships between class (3/10)
Herencia (Especialización/Generalización):
Indica que una subclase hereda los métodos y
atributos especificados por una Super Clase, por
ende la Subclase además de poseer sus propios
métodos y atributos, poseerá las características y
atributos visibles de la Super Clase (public y
protected), ejemplo:
i.
Pro – Media 2.0
Relationships between class (4/10)
Pro – Media 2.0
Relationships between class (5/10)
Agregación
Para modelar objetos complejos, no bastan los
tipos de datos básicos que proveen los lenguajes:
enteros, reales y secuencias de caracteres.
Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador
de la aplicación, tenemos dos posibilidades:
Pro – Media 2.0
Relationships between class (6/10)
Por Valor: Es un tipo de relación estática, en donde el
tiempo de vida del objeto incluido esta condicionado por el
tiempo de vida del que lo incluye. Este tipo de relación es
comunmente llamada Composición (el Objeto base se
contruye a partir del objeto incluido, es decir, es
"parte/todo").
Por Referencia: Es un tipo de relación dinámica, en
donde el tiempo de vida del objeto incluido es
independiente del que lo incluye. Este tipo de relación es
comunmente llamada Agregación (el objeto base utiliza
al incluido para su funcionamiento).
Pro – Media 2.0
Relationships between class (7/10)
Se destaca que:
• Un Almacen posee Clientes y
Cuentas (los rombos van en el
objeto que posee las
referencias).
• Cuando se destruye el Objeto
Almacen también son
destruidos los objetos Cuenta
asociados, en cambio no son
afectados los objetos Cliente
asociados.
Pro – Media 2.0
Relationships between class (8/10)
• La composición (por Valor) se destaca por un rombo
relleno.
• La agregación (por Referencia) se destaca por un rombo
transparente.
Asociación
La relación entre clases conocida como Asociación, permite
asociar objetos que colaboran entre si. Cabe destacar que no
es una relación fuerte, es decir, el tiempo de vida de un
objeto no depende del otro. Ejemplo:
Pro – Media 2.0
Relationships between class (9/10)
Un cliente puede tener asociadas muchas Ordenes de Compra,
en cambio una orden de compra solo puede tener asociado un
cliente.
Pro – Media 2.0
Relationships between class (10/10)
Dependencia o Instanciación (uso)
• Representa un tipo de relación muy particular, en la que
una clase es instanciada (su instanciación es
dependiente de otro objeto/clase). Se denota por una
flecha punteada.
• El uso más particular de este tipo de relación es para
denotar la dependencia que tiene una clase de otra.
Pro – Media 2.0
Class Diagram Desing Platillo
- cantidad: int
Cliente Orden - tipo: String
-mesa:int - hora:int
-comensales:int
1
-mesero:String
1…*
1 Bebida
Pago
1
Efectivo - cantidad: int
-cantidad:double - tipo: String
-subTotal:double
-propina:double
-impuestos:double
+CalculoTotal(subtotal:Double,
propina:doublé,impuestos:double) Credito
-numeroTdeCredito: int
-tipo:String
-fechaExp:fechaExp
-nombre:String
+hacerCargo()
Pro – Media 2.0
Workshop 1.
• Representa mediante un diagrama de clases
la siguiente especificación sobre las personas
que participan en una película
" De cada película se almacena el título, la
sinopsis, el año, el género al que pertenece
(drama, comedia, acción, terror, romance,
aventura, scifi) y el país.
" Sobre las personas que participan en la
película es necesario conocer el nombre, los
apellidos, la fecha de nacimiento y la
nacionalidad.
Pro – Media 2.0
Workshop 1.
Una persona puede participar en una película
como actor, director, productor o guionista.
" Una película tiene al menos un director y un
guionista.
" Una persona se considera actor si ha
actuado al menos en una película.
" Una película puede tener asociados varios
trailers que son editados por una o más
personas. No puede existir el trailer de una
película hasta que existe la película.
Pro – Media 2.0
Solución Parte I
Pro – Media 2.0
Solución Parte
I (Herencia)
Pro – Media 2.0
Un enumerado (o Enum) (1/4)
es una clase "especial" (tanto en Java como en
otros lenguajes) que limitan la creación de
objetos a los especificados explícitamente en la
implementación de la clase. La única limitación
que tienen los enumerados respecto a una clase
normal es que si tiene constructor, este debe de
ser privado para que no se puedan crear nuevos
objetos.
Pro – Media 2.0
Un enumerado (o Enum) (2/4)
Pro – Media 2.0
Un enumerado (o Enum) (3/4)
Esmuy importante entender que un "Enum"
en java es realmente una clase (cuyos objetos
solo pueden ser los definidos en esta clase:
DRAMA, …, SCI-FI) que hereda de la clase
"Enum([Link])" y por tanto los
enumerados tienen una serie de métodos
heredados de esa clase padre (Pulsar AQUI para
ver su JavaDoc). A continuación vamos a
mostrar algunos de los métodos más utilizados
de los enumerados:
Pro – Media 2.0
Un enumerado (o Enum) (4/4)
Genero DRAMA = [Link]; // Instancia de un enum de la
clase Genero
[Link](); // Devuelve un String con el nombre de la constante (DRAMA)
[Link](); // Devuelve un String con el nombre de la constante (DRAMA)
[Link](); // Devuelve un entero con la posición del enum según está declarada (3).
[Link](Enum otro); // Compara el enum con el parámetro según el
orden en el que están declarados los enum
[Link](); // Devuelve un array que contiene todos los enum
Pro – Media 2.0
Caso de Estudio. Tienda de Fotografía
(1/3)
• Representa mediante un diagrama de clases la
siguiente especificación relacionada con los
alquileres de cámaras en una tienda de
fotografía.
" La tienda alquila cámaras fotográficas
analógicas.
" Las cámaras se caracterizan por su marca,
modelo y soporte flash (si, no).
Pro – Media 2.0
Caso de Estudio. Tienda de
Fotografía (2/3)
" Cada cámara es compatible con uno o más tipos de
películas.
" Las películas se caracterizan por su marca, nombre,
sensibilidad ISO (50, 100, 200, 400, 800, 1600) y
formato (35mm, 110mm, 120mm).
" Para cada marca con la que trabaja la tienda se
conoce la dirección del servicio de reparación más
cercano.
La tienda dispone de varios ítems de cada modelo de
cámara.
Pro – Media 2.0
Caso de Estudio. Tienda de
Fotografía (3/3)
" Cada ítem tiene una pegatina con una referencia, y puede
estar en la tienda, alquilado, con retraso o en reparación.
" Los clientes pueden tener un máximo de 1 cámara en
alquiler.
" Cada cámara se alquila un máximo de 7 días, por cada día
de retraso, se impone una “multa” de un mes sin posibilidad
de coger una nueva cámara.
• Realiza un diagrama de clases
Pro – Media 2.0
Taller en Clase
Teniendo en cuenta la cantidad de estudiantes
que hay en el salón se forman tres grupos, uno de
ellos trabajará en el salón de clases y los otros dos
grupos trabajaran fuera del salón de clase.
Se les entregará un octavo de cartulina donde
realizaran el diagrama de clases correspondiente
al caso de estudio “Tienda de Fotografía” y al
finalizar se socializaran los resultados de la
actividad de manera grupal.
Pro – Media 2.0
Referencias Web
• [Link]
[Link]
• [Link]
-de-clases-16208245
Pro – Media 2.0
Questions
Pro – Media 2.0