Anda di halaman 1dari 41

DIAGRAMA

DE
CLASES
INTEGRANTES:
EDUARDO POMA VIRRUETA
DIAGRAMAS DE CLASES
INTRODUCCIÓN
 La técnica del diagrama de clase se ha vuelto
medular en los métodos orientados a objetos.
 Virtualmente, todos los métodos han incluido
alguna variación de esta técnica.
 Además de ser de uso extendido, también está
sujeto a la más amplia gama de conceptos de
modelado. Aunque los elementos básicos son
necesarios para todos, los conceptos avanzados
se usan con mucha menor frecuencia
DEFINICION
 Describe gráficamente las especificaciones de las clases
de software y de las interfaces en una aplicación.
 Al construir los Diagramas de Colaboración se van
usando clases procedentes del Modelo Conceptual,
junto con otras creadas para encargarse de
responsabilidades específicas.
 Un DC muestra la especificación para las clases software
de una aplicación.
 Incluye:
 Clases, asociaciones y atributos.
 Métodos.
 Dependencias.
 Nos sirve para visualizar las relaciones
 A diferencia del modelo conceptual, contiene la
descripción de las entidades del software en vez de
conceptos del mundo real
Ciclo de desarrollo

Perfeccio Sincroni
namiento zacion de Analisis Diseño Construccion Prueba
de plan artefactos

2. Definir los reportes,


1.Definir los casos la interfaz del usuario 3.Perfeccionar la arqui
reales de uso. y las storyboards. tectura del sistema.

4. Definir los diagra 5.Definir los diagramas 6.Definir el esquema


mas de interaccion. de clases de diseño. de la base de datos.
Cómo elaborar un diagrama de
clases del diseño
 Identifique todas las clases que participan en la
solución del software, para ello analice los diagramas
de interacción.
 Dibújelas en un diagrama de clases
 Duplique los atributos provenientes de los conceptos
asociados al modelo conceptual
 Agregue los nombres de los métodos analizando los
diagramas de interacción
 Incorpore la información sobre los tipos a los atributos
y a los métodos
 Agregue flechas de navegabilidad a las asociaciones
 Agregue la líneas de relaciones de dependencia
NOTACION
 Una clase esta representada por un
rectángulo que dispone de tres apartados:
 Nombre único, que las diferencie de las otras.

 Atributos, representa alguna propiedad de la clase que se encuentra


en todas las instancias de la clase.
 niveles de visibilidad para los elementos que son:
 Privado (-): es el más fuerte. Esta parte es totalmente invisible (excepto para
clases friends
 en terminología C++).
 Protegido (#): están visibles para las clases friends y para las clases derivadas
de la original.
 Público (+): son visibles a otras clases (cuando se trata de atributos se está
transgrediendo el principio de encapsulación).

 Métodos:, una función que le indica a las instancias de la clase que


hagan algo.
 Los métodos u operaciones pueden tener las características:

 Privado (-): Indica que el método sólo será accesible desde dentro de la clase
 Protegido (#): Indica que el método no será accesible desde fuera de la clase,
 Público (+): Indica que el método será visible tanto dentro como fuera de la
clase

 Para separar las grandes listas de atributos y de métodos se pueden


utilizar Estereotipos.
ESTEREOTIPO
 Un estereotipo representa el principal
mecanismo de extensión de UML.
 Ofrece una forma de extender una metaclase,
creando un nuevo elemento de metamodelo.
EJEMPLO
INTERFAZ
 Una interfaz es una colección de operaciones que representan
servicios ofrecidos por una clase o componente.
 Por definición, todas estas operaciones tendrán una
visibilidad pública.
 La interfaz especifica algo similar a un contrato que la clase
se compromete a respetar.
 La clase realiza (o suministra una realización de) una o varias
interfaces.
 UML define dos tipos de interfaces: interfaz suministrada e
interfaz requerida.
 Lainterfaz suministrada es aquella que una clase
efectivamente implementa.
MULTIPLICIDAD
 define cuantas instancias de una clase A pueden
asociarse con una instancia de una clase B

una tienda tiene muchos artículos

tienda articulo
1 *

Un artículo se vende en una tienda

El valor de la multiplicidad indica cuántas


instancias se pueden asociare con otras en un
momento concreto
Multiplicidad Significado

1 Una única instancia

N/* N instancias

0..N / 0..* Entre ninguna y N instancias

1..N / 1..* Entre una y N instancias

0..1 Ninguna o una instancia

N..M Entre N y M instancias


RELACIONES ENTRE CLASES
 En las relaciones se habla de una clase destino y
de una clase origen. La origen es desde la que se
realiza la acción de relacionar. Es decir desde la
que parte la flecha, la destino es la que recibe la
flecha.
Es una relación entre dos elementos, tal
Dependencia que un
cambio en uno puede afectar al otro.

Es una relación estructural que resume


Asociación un
conjunto de enlaces que son
conexiones entre objetos.
Es una relación en la que el elemento
Generalización generalizado puede ser substituido por
cualquiera de los elementos hijos, ya
que comparten su estructura y
comportamiento.
Rol
 Identificado como un nombre a los finales de
la línea, describe la semántica de la relación
en el sentido indicado. Cada asociación tiene
dos roles; cada rol es una dirección en la
asociación. El rol puede estar representado en
el nombre de la clase.
ASOCIACION
 La asociación expresa una conexión
bidireccional entre objetos.
 Una asociación es una abstracción de la
relación existente en los enlaces entre los
objetos.
 Puede determinarse por la especificación de
multiplicidad (mínima...máxima)
EJEMPLO:
Asociaciones calificadas
 Cuando la multiplicidad de una asociación
es de uno a muchos, en ocaciones se
requiere seleccionar un objeto específico para
cumplir la asociación.

 Paraseleccionar el objeto se necesita un


identificador que permita diferenciarlo del
resto de objetos a este se le llama
calificador.
EJEMPLO
 Cuando se realiza una reservacion en un hotel, el
hotel le asigna un numero de confirmación. Si se
requiere hacer preguntas respecto a la
reservacion, se deberá proporcionar el número de
confirmacion que en este caso actua como
identificador.

 En UML esto se representa con un rectángulo


adjunto a la clase que usará el calificador.
Asociaciones reflexivas
 Esta
se da cuando una clase se asocia consigo
mismo. Por ejemplo en la clase empleado, un
empleado puede actuar como jefe o
subalterno.
Asociación n-arias

 Son asociaciones que se establecen entre más


de dos clases.
 Una clase puede aparecer varias veces
desempeñando distintos roles.
 Las asociaciones n-arias se representan a
través de rombo que se une con cada una de
las clases.
EJEMPLO
Agregación y Composicion
 Cuando se requiere componer objetos que son
instancias de clases definidas por el desarrollador de la
aplicación, tenemos dos posibilidades:
 Por Valor: relación estática, tiempo de vida del objeto
incluido esta condicionado por el tiempo de vida del
que lo incluye, es llamada Composición
(es"parte/todo").
 Por Referencia: relación dinámica, en donde el
tiempo de vida del objeto incluido es independiente del
que lo incluye, es comúnmente llamada Agregación.
La

 La relación de agregación tiene cardinalidad o


multiplicidad.
AGREGACION
 Una clase forma parte de otra clase

 Es un tipo de asociación más fuerte

 Relación no simétrica entre clases donde uno


de los extremos cumple un rol dominante

 Se destaca por un rombo transparente.


COMPOSICION
 Dependencia existencial. El elemento
dependiente desaparece al destruirse el que
lo contiene

 Hay una pertenencia fuerte. Se puede decir


que el objeto contenido es parte constitutiva y
vital del que lo contiene

 Los objetos contenidos no son compartidos

 Se destaca por un rombo relleno.


ejemplo
 Un Almacen posee Clientes y Cuentas (los rombos
van en el objeto que posee las referencias). Cuando
se destruye el Objeto Almacén también son
destruidos los objetos Cuenta asociados, en cambio
no son afectados los objetos Cliente asociados.
DEPENDENCIA O INSTANCIACION
 tipo de relación muy particular, en la que una
clase es instanciada
 Se denota por una flecha punteada.
 es para denotar la dependencia que tiene una
clase de otra
 Es una relación de “uso” en la que un cambio
en uno de los términos -por ejemplo, una
clase puede afectar a otro (otra clase)
ejemplo
Posibles dependencias entre clases
 use: el funcionamiento del origen depende de
la presencia del destino
 instantiate: el origen crea instancias del
destino
 derive: el origen puede calcularse a partir del
destino
 refine: el origen está un grado de abstracción
más detallado.
 bind(): derivación genérica de una plantilla
 friend: visibilidad característica de C++
Clase Abstracta
 se denota con el nombre de la clase y de los métodos
con letra "itálica".
 Esto indica que la clase definida no puede ser
instanciada pues posee métodos abstractos (aún no
han sido definidos, es decir, sin mplementación).
 La única forma de utilizarla es definiendo subclases,
que implementan los métodos abstractos definidos.
Clase parametrizada
 se denota con un subcuadro en el extremo superior
de la clase,
 El ejemplo más típico 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 genéricos.

 La genericidad puede venir dada de un Témplate


(como en el caso de C++) o bien de alguna
estructura predefinida (especialización a través de
clases).
Ejemplo:
 Supongamos que tenemos un el caso del Diccionario implementado
mediante un árbol binario, en donde cada nodo posee:

 key: Variable por la cual se realiza la búsqueda, puede ser genérica.


 Ítem: Contenido a almacenar en el diccionario asociado a "key", cuyo
tipo también puede ser genérico.

Para este caso particular hemos definido un Diccionario para almacenar


String y Personas, las cuales pueden funcionar como llaves o como
ítem, solo se mostrarán las relaciones para la implementación del
Diccionario
Generalización y
Especializacion
 Permite gestionar la complejidad mediante un ordenamiento
taxonómico de clases
 se obtiene usando los mecanismos de abstracción de
Generalización y/o Especializació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.
 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.
 son equivalentes en cuanto al resultado: la jerarquía y
herencia establecidas.
 no son operaciones reflexivas ni simétricas pero sí
transitivas.
La Notación
 para la Generalización/Especialización es un triangulo que
conecta una superclase con sus subclases.
 La superclase se conecta a la parte superior del
triangulo. es una clase que contiene alguna combinación
de atributos, operaciones y asociaciones que son comunes
a dos o más tipos de objetos que comparten el mismo
propósito.

 La subclase se conecta mediante una línea a la base del


triangulo. es una clase que contiene una combinación de
atributos, operaciones y asociaciones que son únicas a un
tipo de objeto definido por una superclase.
 La superclase es reutilizada por la subclase
ejemplo
Herencia Multiple
 seda cuando una clase hereda directamente de mas de
una superclase
VENTAJAS

 Mas fácil la comunicación entre los


programadores
 Descubrimiento de fallas del sistema en el
diseño
 Mejor diseño del sistema ofrece más
documentación
DESVENTAJAS

 Los diagramas de clases especifican qué clases hay y


cómo están relacionadas, pero no cómo interactúan
para alcanzar comportamientos particulares.
 Polimorfismo: Implica “asignar el mismo nombre a
servicios en varios objetos cuando los servicios se
parecen o están relacionados entre ellos.
 Fabricación Pura: Si un objeto cliente tiene que usar un
servicio u obtener información a partir de un objeto
indirecto, ¿cómo podrá hacerlo sin acoplarse al
conocimiento de la estructura interna de su servidor
directo o de los objetos indirectos?
CONCLUSIONES
 Diagrama de clases es un programa de
software el cual ha estado en diferentes
oportunidades para hacer mejor el
entendimiento de otro analista de sistemas y
así saber las necesidades del cliente
 El programa es muy reducido para los clientes
u algunos analistas de software

Anda mungkin juga menyukai