Logo Studenta

DiagramasClase

¡Este material tiene más páginas!

Vista previa del material en texto

Modelado
Programación II
Principios 
básicos de 
modelado 
de objetos
• Un modelo representa una cosa o ente. En la programación 
orientada a objetos los modelos serán esquemas que representen 
sistemas computacionales grandes y complejos.
• Los principios básicos del modelado son los siguientes: 
El tipo de modelo que se crea influye la manera en que el problema es 
atacado.
Cada modelo puede ser expresado en diferentes niveles de precisión.
Los mejores modelos están conectados con la realidad.
Un solo modelo no es suficiente.
Modelar clases y objetos
UML, se utilizará para modelar clases y las relaciones entre clases.
La clase es el concepto o la contenedora de objetos y el objeto es la instancia, el 
ejemplar, la encarnación de la clase. 
La clase tiene atributos y operaciones.
El siguiente diagrama representa el modelo UML de una clase.
Nombre de la clase
Atributos
Métodos
Tomado de: http://www.codecompiling.net/files/slides/UML_clase_04_UML_clases.pdf
A los atributos y operaciones de la clase se les llama miembros de la clase. 
Estos pueden ser privados, públicos o protegidos, son llamados permisos de acceso a la 
clase.
Símbolos: 
- Privado
+ Público 
# Protegido
Ejemplo:
El siguiente diagrama modela un objeto.
Nombre del objeto Nombre de la clase
Modelar relaciones entre clases
Un programa orientado a objetos es una colección de objetos de diferentes clases 
que se comunican entre sí enviándose mensajes.
Para que esos objetos se puedan comunicar mediante mensajes y de esta forma 
puedan resolver problemas complejos es necesario que las clases de las cuales son 
instanciados estén relacionadas. 
Una relación entre clases es un vínculo o relación estructural que especifica cómo los 
objetos de una clase están conectados con los objetos de otra clase. 
Relación Símbolo Frase
Asociación “vinculado con”
Agregación “tiene”, “esta agregado en”
Composición “tiene”, “esta compuesto de”
Dependencia “usa un”
Herencia “es un tipo de”
Realización “implement”
Tipos de relaciones entre clases
• Las relaciones Composición y Agregación (ó Acumulación) son también
Asociaciones, pero más específicas.
Dependencia
La dependencia es una relación donde una clase necesita de otra clase para 
poder funcionar. Es una relación más débil que la asociación.
La dependencia muestra la relación entre un cliente y un proveedor de un 
servicio usado por el cliente.
• Cliente es el objeto que solicita el servicio
• Servidor es el objetos que provee el servicio solicitado
Se representa por una línea discontinua con una punta de flecha que apunta 
del cliente al servidor (o también llamado proveedor). 
Una clase que no cuenta con atributos es una clase sin estado y se denomina degenerada. 
La clase Math es una clase degenerada que consiste de un conjunto de funciones 
matemáticas.
Asociación
La asociación es una relación que describe una conexión conceptual entre dos 
objetos, no es un relación fuerte porque el tiempo de vida de un objeto no depende 
del otro. 
El tipo más común de asociación es una asociación binaria entre dos clases.
• Un jugador pertenece a un equipo
• Un profesor imparte una materia
• Un médico trabaja en un hospital
En esto casos la asociación es en una dirección. Aunque en otros casos los 
objetos pueden relacionarse en más de una forma.
Asociación bidireccional
Asociación unidireccional
En algunas herramientas se utiliza este conector (unidireccional)
Ejemplos
Nombre de la asociación
Representación gráfica
• Un solo objeto puede asociarse consigo mismo (relación involutiva)
• Cada conexión de una asociación a una clase se llama extremo de la asociación. 
Los extremos pueden tener información de la asociación como nombres de rol, 
visibilidad y multiplicidad.
VisibilidadRol
Multiplicidad
La multiplicidad determina cuántos objetos de cada clase intervienen en la relación
Multiplicidad Significado Lectura
1 Uno y sólo uno Una A siempre se asocia con una B
0..1 Cero o 1 Una A siempre se asocia con ninguna o una B
N..M Desde N hasta M Una A siempre se asocia de N a M B’s
* Cero o varios Una A siempre se asocia con cero o más B’s
0..* Cero o varios Una A siempre se asocia con cero o más B’s
1..* Uno o varios (al menos 1) Una A siempre se asocia con 1 o más B’s
N N Una A siempre se asocia con N B’s
A B
1
A B
0..1
A B
N..M
A B*
A B
0..*
A B
1..*
A B
N
Multiplicidad
Se lee
Un estudiante puede tomar de 1 a 5 materias.
Un automóvil tiene 4 llantas.
Un médico trabaja en 0 ó hasta en 2 
hospitales, en un hospital trabajan de tres a 
más médicos.
Una materia puede ser impartida por cero o 
más profesores, un profesor puede impartir 
cero o más materias.
Ejemplos
Una clase puede asociarse con más de una clase distinta.
Ejemplo:
Equivale a:
public class Chofer {
 private String nombre;
 private int edad;
 private String curp;
 private Auto autoAsignado;
 public Tipo conducirAuto() { .. }
 public Tipo obtenerLicencia() {…}
}
public class Auto {
 private String numSerie;
 private String modelo;
 private int numPuertas;
 private Chofer chofer[];
 public Tipo avanzar() { .. }
 public Tipo acelerar() {…}
 public Tipo detener() {…}
}
Código en Java:
Agregación
La agregación es un tipo de asociación que indica que una clase es parte de 
otra clase (composición débil). Es una relación entre clases de un todo/parte. Es una
forma “débil” de composición cuando la parte es independiente del todo.
Características:
Es una asociación
binaria
Es asimétrica – solo 
un extremo de la 
asociación puede
ser una agregación
Es transitiva – Si A 
es parte de B y B es 
parte de C entonces
A es parte de C . 
A,B y C son clases. 
El componente 
PARTE puede estar 
en varios 
componentes TODO 
y si algunos o todos 
los componentes 
PARTE son 
eliminados, el 
componente TODO 
puede seguir 
existiendo
La clase Todo tiene un atributo de la clase Parte, lo que da significado a la 
agregación, que es una relación débil, ya que si Parte es eliminada, la clase Todo 
seguirá existiendo.
Notación
Bicicleta tiene dos rines (Rin).
Un Rin podría ser parte de una, varias o 
ninguna bicicleta.
Una computadora tiene un monitor.
Un monitor es parte de una computadora.
Ejemplo
Se puede establecer una restricción a una agregación para que se puede elegir 
entre uno u otro componente.
Restricciones
Composición
La relación de composición es una forma “fuerte” de agregación con las siguientes 
propiedades:
Es una 
asociación 
binaria
Es una 
relación 
TODO/PA
RTE.
TODO y 
PARTE 
son clases.
Una 
PARTE 
podría 
estar 
incluida a 
lo más en 
un TODO 
a la vez.
Si un 
TODO es 
eliminado, 
todas sus 
PARTES 
son 
eliminadas
.
La clase 
PARTE es 
un atributo 
de la clase 
TODO.
• La composición se denota con un diamante sólido (oscuro).
• La clase Todo tiene uno o muchos objetos de la clase Parte. 
• La objetos de la clase Parte componen o son parte de la clase Todo.
• Cada objeto de la clase Parte pertenece o compone a la clase Todo.
Notación
Ejemplo
Ejemplo
Una clase que puede contener un atributo de la misma clase se denomina clase 
autoagregada.
Herencia (o Generalización)
La relación de Herencia entre clases se define como un mecanismo mediante el cual, la 
clase derivada (subclase) incorpora atributos y operaciones de clases mas generales 
(superclase o clase base). Esto es, Herencia Simple. La herencia se identifica por la frase 
“es un tipo de” . 
Si una clase incorpora atributos y operaciones de más de una clase, decimos que se trata 
de Herencia Múltiple.
Más particular
Más general
Las clases se vuelven más generales o abstractas hacia arriba y más particulares o 
especializadas hacia abajo.
Notación
La clase base hereda los miembros protegidos o públicos a las clases derivadas. Los 
miembros privados no se heredan.
EjemploEquilatero
Una clase puede heredar de dos o más 
clases, a esto se le llama herencia múltiple.
Java no acepta la herencia múltiple, sin 
embargo, tiene un mecanismo para simular 
herencia múltiple denominada interface.
Interface (Realización)
• Las interfaces (realización) es una relación entre dos clases, una que 
representa la especificación y otra que representa la implementación. 
• Si se establece la relación entre una clase y una interface, decimos que la clase 
implementa la interface, esto significa que se establece un contrato entre ambas 
clases, es decir, la clase debe redefinir todos y cada de uno de los métodos 
(operaciones) de la interface.
• La interface es una clase que contiene únicamente métodos (operaciones) 
abstractos y constantes. 
La clase ClaseQueImplementa implementa la Interface, 
lo que significa que ClaseQueImplementa debe 
redefinir los métodos de la interface NombreInterface. 
ClaseQueImplementa simula el comportamiento que 
representa la Interface. 
En Java no existe herencia múltiple, ésta es simulada 
mediante Interfaces. 
La herencia simple y múltiple se puede realizar entre 
interfaces.
Ejemplo
	Diapositiva 62: Modelado
	Diapositiva 63: Principios básicos de modelado de objetos
	Diapositiva 64: Modelar clases y objetos
	Diapositiva 65
	Diapositiva 66
	Diapositiva 67
	Diapositiva 68: Modelar relaciones entre clases
	Diapositiva 69: Tipos de relaciones entre clases
	Diapositiva 70: Dependencia
	Diapositiva 71
	Diapositiva 72: Asociación
	Diapositiva 73: Representación gráfica
	Diapositiva 74
	Diapositiva 75: Multiplicidad
	Diapositiva 76: Ejemplos
	Diapositiva 77
	Diapositiva 78
	Diapositiva 79: Agregación
	Diapositiva 80: Notación
	Diapositiva 81: Ejemplo
	Diapositiva 82: Restricciones
	Diapositiva 83: Composición
	Diapositiva 84: Notación
	Diapositiva 85: Ejemplo
	Diapositiva 86: Ejemplo
	Diapositiva 87
	Diapositiva 88: Herencia (o Generalización)
	Diapositiva 89: Notación
	Diapositiva 90: Ejemplo
	Diapositiva 91
	Diapositiva 92: Interface (Realización)
	Diapositiva 93
	Diapositiva 94: Ejemplo

Continuar navegando

Materiales relacionados

12 pag.
Práctica 7 V2

UNAM

User badge image

Jorge Luis Tellez

24 pag.