Sunteți pe pagina 1din 22

UML y Diagrama

de clases
Contenido

 Diagrama de clases.
 Componentes del diagrama de clases.
 Diagrama de objetos.
 Componentes del diagrama de objetos.
 Ejemplos.
Diagrama de clases

 ¿ Qué es ?

Es un tipo de diagrama estático que describe la estructura de un


sistema mostrando sus clases, atributos y las relaciones entre ellos.

Son utilizados durante el proceso de análisis y diseño de los sistemas,


donde se crea el diseño conceptual de la información que se
manejará, y los componentes que se encargaran del funcionamiento y
la relación entre uno y otro.
Diagrama de clases

 ¿ Qué representa ?

 Requerimientos en Entidades y Actuaciones.


 La arquitectura conceptual de un dominio.
 Soluciones de diseño en una arquitectura.
 Componentes de software orientado a objetos.
¿ Para qué lo usamos ?

 Modelar los aspectos estáticos de un sistema.


 Realizar la abstracción de un dominio.
 Formalizar el análisis de conceptos.
 Definir una solución de diseño.
 Construir componentes de software.
 Visualizar las relaciones entre las clases que involucra el
sistema.
Concepto de clase

 Una clase es una descripción de un conjunto de objetos


que comparten los mismos atributos, operaciones y
semántica.
 Las clases bien estructuradas están bien delimitadas y
participan de una distribución equilibrada de
responsabilidades en el sistema.
Nombre de la Clase

Atributos

Métodos
Nombres de Clases
 Cada clase ha de tener un nombre que la
distinga de otras.
 El nombre puede ser simple o calificado,
cuando el nombre de la clase es precedido por
el nombre del paquete en que se encuentra.
 Los nombres deber ser cortos, y normalmente
se pone en mayúscula la primera letra de cada
palabra. Estudiante java::awt::Rectangle

Cliente
SensorDeTemperatura
Atributos

 Un atributo es una propiedad de una clase


identificada con un nombre.
 Una clase puede tener cualquier número
de atributos o no tener ninguno.
 Los nombres de los atributos deben ser
cortos, normalmente se pone en
mayúscula la primera letra de cada
palabra, excepto la primera letra.
 Un atributo se puede especificar aún más
indicando su modificador de acceso, tipo
de dato, y valor inicial.
Pared

- altura: float
- anchura: float
- grosor: float
- esPrincipal: boolean = false
Métodos

 Un método es la implementación de un servicio que puede


ser requerido a cualquier objeto de la clase para que
muestre su comportamiento.
 Una clase puede tener cualquier número de métodos o
ninguno.
 A menudo (pero no siempre), la invocación de un método
sobre un objeto cambia los datos o el estado del objeto.
 El nombre debe ser corto, generalmente es un verbo o
expresión verbal, normalmente se pone en mayúscula la
primera letra de cada palabra, excepto la primera letra.
 Un método se puede especificar aún más indicando su
modificador de acceso, tipo de dato que devuelve, y los
parámetros que lleva.
Encapsulación

 Cada objeto va a satisfacer o aceptar un cierto


tipo de peticiones, según sea su cometido o
responsabilidad en el problema.
 Las peticiones que podemos hacer a un objeto
se definen en su “interfaz”.
 Los atributos propios del objeto junto con el
código que satisface esas peticiones es su
“implementación”.
 La encapsulación es la propiedad de las clases
y los mecanismos que tendremos en cada
lenguaje de programación que nos permite
definir qué métodos o atributos son públicos,
privados o tienen algún otros mecanismo de
Composición

 La forma más simple de utilizar una clase es instanciar


un objeto de la misma, pero también podemos poner
esa clase dentro de otra, creando lo que se llama un
“objeto miembro” de la nueva clase.
 Ya que estamos componiendo una nueva clase a partir
de otras ya existentes, este concepto se llama
“composición” (si la composición ocurre
dinámicamente, suele llamarse “agregación”).
Herencia

 La Herencia es una de
características de la
orientación a objetos que
consiste en la posibilidad de
escoger una clase existente,
crear una copia y después
añadir o modificar sus
prestaciones en la copia
creada.
 La Herencia nos permite
crear relaciones del tipo “es-
un” y del tipo “es-como”
según estemos
sobreescribiendo o
extendiendo funcionalidades
respectivamente.
Superclases Abstractas e
Interfaces
 En algunas ocasiones, nos puede interesar que la
superclase represente únicamente una interfaz para sus
clases derivadas. Es decir, no
 queremos que nadie instancie un objeto de la
superclase, sólo necesitaremos que hagan upcasting
para usar su interfaz.
 Si una clase tiene métodos abstractos, ya es una clase
abstracta. Si todos los métodos son abstractos, entonces
habremos separado total-mente la implementación de
la interfaz.
Relaciones entre clases.

 Asociación: representa una relación genérica entre dos


clases, y su notación es simplemente una línea que las une,
donde podemos indicar la multiplicidad de la relación en
cada extremo (uno a uno, uno a n, n a m).
 Composición, agregación: Si una clase está compuesta de
otras, donde estas otras no pueden existir sin la primera,
tendrán una relación de composición con la clase padre.
 Generalización: es el equivalente a la herencia o extensión
tal como hemos visto en otros diagramas.
 Dependencia: cuando una clase depende de otra en el
sentido de que la usa como atributo o parámetro de algún
método, puede expresarse mediante una relación de
dependencia.

S-ar putea să vă placă și