Sei sulla pagina 1di 59

DIAGRAMAS DE CLASES EN UML

• UML, por sus siglas en Ingles, Unified Modeling Languaje.


(Lenguaje Unificado de Modelado). Es el lenguaje de
modelado de sistemas de software más conocido y utilizado
en la actualidad.
• UML es un “lenguaje” para especificar métodos o
procesos. Se utiliza para definir un sistema de software,
para detallar los artefactos en el sistema y para
documentar y construir.
Contenido
• Introducción
• Qué es una clase
• Meta modelo de una clase
• Representación de una clase
• Ejemplos representación
• Utilidad de la presentación
• Atributos
• Operaciones
• Otras características
• Clases y requisitos
Contenido

• Diagramas de clase
• Elementos de un diagrama de clases
• Perspectivas de los diagramas de clases
• Tipos de diagramas
• Cardinalidad
• Asociación
• Agragación
• Composición
• Diferencia entre agregación y composición
• Dependencia
Contenido

• Herencia
• Especificación múltiple
• Síntesis de notación
• Clases parametrizadas
• Ejemplos
• Valores Enumerados
• Técnica común de modelado
• Lecturas recomendadas
Introducción

• Son los bloques de construcción mas importantes de cualquier


sistema orientado a objetos

• Se utilizan para capturar el vocabulario del sistema que se esta


desarrollando.

• Muchos lenguajes de programación soportan directamente el


concepto de clases
Qué es una Clase?

• Una clase es una abstracción de las cosas que forman parte


de un sistema.

• Representa un conjunto de entidades que tienen


propiedades comunes.

• Define la estructura y comportamiento de una colección de


objetos
Qué es una Clase?

• Una Clase representa a un tipo de objetos que comparten:


• Las mismas propiedades (Atributos)
• El mismo comportamiento (Métodos)
• Las mismas responsabilidades
• Las mismas relaciones con otros objetos (asociaciones y
agregaciones)
• La misma semántica dentro del sistema
Metamodelo de una clase
Representación de una clase en
UML
• En UML la clase esta representada por un rectángulo
con tres divisiones internas, son los elementos
fundamentales del diagrama.

• Cada clase debe tener un nombre que la distinga de las


demás.

• El nombre debe ser un sustantivo en singular.


Representación de una clase en
UML
Representación de una clase en
UML
Ejemplo representación Clases

Cliente Java::awt::Rectangule
Utilidad de la representación de
clase

• Muestran los atributos y operaciones de una clase y las


restricciones a que se ven sujetos, según las forma en que se
conecten los objetos.

• Ilustra los requerimientos funcionales del sistema (los servicios


que proporcionará a los usuarios finales).
Atributos

• Atributo: Representa una propiedad de una entidad. Cada atributo


de un objeto tiene un valor que pertenece a un dominio de valores
determinado.
• Las sintaxis de una atributo es:
• Visibilidad <nombre>: tipo = valor inicial
{ propiedades}
• Donde visibilidad es uno de los siguientes:
• + público.
• # protegido.
• - privado. 
Operaciones

• Operación: El conjunto de operaciones que describen el


comportamiento de los objetos de una clase.

• La sintaxis de una operación en UML es:


• Visibilidad nombre (lista de parámetros): tipo que retorna
{ propiedades}

• En las operaciones se puede indicar si los parámetros son de


entrada, salida o entrada/salida.
Otras Características
• Alcance : Específica si la característica es una instancia
de clase o una instancia de objetos. (Subraya la instancia
de clase).
• Elemento abstracto: No existe objetos tangible ( su
nombre esta en CURSIVA o explicito “abstract”)
• Clase sin hijos (usa la palabra {leaf} )
• Multiplicidad: Número de instancias que puede tener
una clase.
Ejemplo

Cuenta
{root}

# Titular: String
# Número:Long { frozen}
- Saldo:Double = 0.0
- CantidadCuentas:Int= 0

+ Constructor
+ Titular() : String
+ Número(): Long
+ Saldo : Double
+ Consigne(Double valor):Double
+ Retire (Double valor): void
+ numeroCuentas :Int {leaf}
Clases y requisitos

• Las clases de un modelo conceptual representarán


conceptos relevantes del dominio del problema sobre
los que el sistema debe almacenar información.
• Toda clase de un modelo conceptual debe estar trazada
hacia aquellos requisitos que la justifican, normalmente
requisitos de información, reglas del negocio.
• Un requisito puede estar modelado por varias clases, o
una clase modelar varios requisitos a la vez.
Definir las Clases

Atributos Operaciones
Diagramas de Clases
• Los diagramas de clases han llegado a ser realmente la
parte central dentro de los métodos orientados a
objeto.

• Un diagrama de clases sirve para visualizar las


relaciones entre las clases que involucran el sistema.
Diagramas de Clase

• Nivel conceptual
• Se cuenta con un diagrama que representa los
conceptos del dominio
• Nivel de especificación
• Se conocen las interfaces del software. No se pueden
conocer las estructuras de datos de las clases.
• Nivel de implementación
• En este nivel se especifican las estructuras que
forman las clases especificadas en el nivel anterior
Conceptos Diagrama de Clases
• Muestra de una manera estática la estructura de
información del sistema y la visibilidad que tiene cada
una de las clases, dada por sus relaciones con los demás
en el modelo.
• Contenido Básico:
• Clases (Atributos-Operaciones)
• Relaciones (Dependencia-Asociación- Generalización)

• Contenido con mas detalles


• Interfaces
• Colaboraciones
Elementos de un diagrama de Clases
Perspectivas

• Hay tres perspectivas que se pueden usar en los


diagramas de clase:
• Conceptual. Obtendrá un diagrama que representa
los conceptos del dominio bajo estudio (Vocabulario)

• Especificación. Ahora vemos el software, pero vemos


las interfaces del software, no la implementación.

• Implementación. En esta vista, nosotros realmente


tenemos clases y ponemos la implementación real.
Tipos de Diagramas

• Solo las relaciones (multiplicidad)

• Solo un aspecto del sistema (subsistemas)

• Herencia – Composición - Agregación

• Detallado (Clases –atributos-operaciones- Relaciones,


multiplicidad, roles, notas)
Cardinalidad

• 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:
• uno o muchos: 1..* (1..n)
• 0 o muchos: 0..* (0..n)
• número fijo: m (m denota el número).
Cardinalidad
Asociación

• La relación entre clases conocida como


Asociación, permite ligar 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 asociaciones
Agregación
• Asociación que representa una relación TODO –
PARTE
• Se caracteriza por las siguientes propiedades:
• Una parte puede pertenecer a varios agregados
• Una parte puede existir independientemente del
agregado
• Una parte puede cambiar de agregado
• La eliminación del agregado NO implica la
eliminación de las partes
• Es una relación transitiva y antisimétrica.
Notación agregación
Composición

• Agregación “fuerte”, donde se deben cumplir las


siguientes características:
• Una parte sólo puede pertenecer a un agregado a
la vez.
• La eliminación del agregado implica la eliminación
de las partes.
• Agregación en que las partes nacen y mueren con
el todo.
Notación Composición
Ejemplo Diferencia Agregación -
Composición
Ejemplo agregación -
composición
• Un almacén posee cuentas y clientes.
• Cuando se destruye el objeto almacén, también
desaparecen los objetos cuentas asociados, mientras los
objetos clientes no.
Dependencia
• Representa un tipo de relación muy particular, en
la que una clase es instanciada.
• El uso más particular de este tipo de relación es
para denotar la dependencia que tiene una clase
de otra
Herencia:(Especialización
/Generalización)
• Indica que una subclase hereda los métodos y
atributos especificados por una super clase.
• 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).
• A la herencia se le conoce como una relación ES-
UN (ES – UNA).
Ejemplo: Herencia Especialización /
Generalización
Ejemplo: Herencia Especialización /
Generalización
Clasificación multiple
• Un conjunto de objetos puede clasificarse por
diferentes criterios y un mismo objeto puede
clasificarse como una especialización de varias clases.
Síntesis notación para asociaciones
Restricciones sobre asociaciones
• Ordenación: Indica que en el conjunto de objetos asociados
existe una relación de orden y que forman una secuencia
ordenada.

• Exclusividad: Indica que las instancias de la clase deben


participar en una sola asociación a la vez.
Restricciones sobre asociaciones
• Navegabilidad: Una flecha en el extremo de una asociación
indica que solo es navegable en ese sentido.
• Por defecto una asociación es navegable en ambos sentidos.
Clases parametrizadas
• Clases “genéricas” que reciben parámetros.

• Una clase parametrizada se denota con un subcuadro en


el extremo superior de la clase, en donde se especifican
los parámetros que deben ser pasados.
Ejemplo
Ejemplo
Ejemplo 2 : Subsistemas
Valores enumerados
• Los valores enumerados permiten modelar tipos de datos
simples, que sólo pueden tomar valores dentro un rango o
conjunto de datos.
• Los atributos de las clases pueden tener como tipo una
enumeración.
Técnica común de modelado
• Revise el enunciado del problema, casos de uso y
escenarios para identificar sustantivos.
• Cree una lista de cantidatos. Incluya objetos físicos
y conceptos.
• Revise los sustantivos para ver si tienen relevancia con
el problema, así como para ver si están en contexto.
• Elimine los sustantivos innecesarios.
• Una vez obtenidas las clases candidatas vea como se
relacionan entre sí (tipos de enlaces, roles,
multiplicidad).
• Defina relaciones avanzadas como agregación o
herencia.
Los objetos
• Un objeto representa una identidad del mundo
real o inventada.
• Es un concepto o una abstracción, que dispone de
unos límites bien definidos, y tiene una
significancia para el sistema que se pretende
modelar.
• Un objeto es una instancia de clase
• Los objetos tienen un estado y un ciclo de vida.
• Primero debemos crear una clase antes de poder
crear objetos o ejemplares de esa clase.
Objeto: instancia de clase
Representación de un Objeto en
UML
Ejemplo objeto Libro

LIBRO
Los valores delos
_titulo: Cien Años de Soledad
atributos en un
_autor: Gabriel García M
momento dado
_editorial: Oveja Negra representan el
_referencia: C234g estado de un objeto
_num ejemplar: 7
DarTitulo()
DarAutor()

DarEditorial() Las operaciones son comunes a todos


DarReferencia() los objetos LIBROS y no se duplican
DarNumejemplar()
ActualizarReferencia()
Diagramas de objetos
• Los diagramas de objetos modelan las instancias de
elementos contenidos en los diagramas de clases.
• Un diagrama de objetos muestra un conjunto de
objetos y sus relaciones en un momento concreto.
• Los diagramas de objetos se emplean para modelar la
vista de diseño estático o la vista de procesos estática
de un sistema al igual que se hace con los diagramas de
clases, pero desde la perspectiva de instancias reales o
prototípicas.
Diagramas de objetos
• Un diagrama de objetos representa una escena
estática dentro de la historia representada por un
diagrama de interacción.

• Los diagramas de objetos se utilizan para visualizar,


especificar, construir y documentar la existencia de
ciertas instancias en el sistema, junto a las relaciones
entre ellas.
Ejemplo diagrama objetos
Ejemplo diagrama objetos
Gracias
Msc. José Vicente Palacio Hernández
Jose.palacio@campusucc.edu.co

Potrebbero piacerti anche