Hablemos del diagrama de clases. Hablemos de la manera más sencilla posible para referirnos a unos de los diagramas más utilizados del conjunto de diagramas de UML.
Publicaremos significados de cada concepto junto con una representación gráfica. Se recomienda tener claros los conceptos de clases y programación orientada a objetos para leer esta entrada.
¿Qué es el diagrama de clases?
El diagrama de clases no es más que una colección de elementos y sus relaciones.
¿Dónde hace parte?
Hace parte de los diagramas de estructura de UML.
¿Qué nos ayuda ver?
Nos ayuda a ver las clases de un sistema. Los miembros y los métodos de una clase y la relación con otras clases.
Representación de una clase
Podemos ver la representación de una clase, acontinuación lo que podemos deducir de esta clase:
- Nombre de la clase: Persona
- Atributos
- nombre: público
- apellidos: público
- numeroDocumento: privado
- Métodos
- llamar( ): público, sin parámetros
La visibilidad de los atributos y los métodos hay de tres tipos y se denotan a continuación:
- Público (+): Pueden ser accedidos por fuera del objeto (Espero que sepas que es objeto, porque no voy a decir qué es).
- Privado (-): Pueden ser accedidos solo dentro de la clase.
- Protegidos (#): Pueden ser accedidos solo dentro de la clase y de entre sus subclases. (Subclase lo hablaremos más adelante en la relación Herencia).
Con esto podemos dedcuir que la visibilidad de un atriuto o método lo calificamos anteponiendo un “+” para público y un “-” para privado. Los atributos van en la parte de arriba y los métodos abajos.
Existen otros tipos de visibilidad como los atributos estáticos, que se describen subrayando el atributo.
Relaciones de una clase
Existen varios tipos de relaciones, la primera:
1. Composición
Hace referencia a una relación entre clases que indica pertenencia. Y uno es dependiente a la otra. Para saber si una relación es correcta siempre pregunta a ti mismo:
¿La clase1 está compuesta por una clase2?
¿Si clase1 deja de existir la clase2 también?
Ejemplo:
¿La empresa está compuesta por empleado?
¿Si la empresa deja de existir el empleado también?

Composición
Si la respuesta es afirmativa para ambas entonces es una composición. Recuerda que el rombo oscuro en la linea de la relación la posee el objeto que tiene la composición.
2. Agregación
Hace también alución a la pertenencia, también dependientes pero negativa a la pregunta número dos de la composición. Es decir si la clase a la cual pertenece la clase2 es eliminada, la clase2 aún persiste.

Agregación
La connotación es parecida pero el rombo es blanco.
Dato Avanzado: Tanto Agregación como Composición son para tipos de relación (Todo/parte) donde una clase hace parte de otra, no exactamente que tiene una clase.
3. Herencia
Es una de las relaciones más importantes. Hace referencia a una clase que es un “subconjunto” de otra clase, tienen una relación semántica. Por ejemplo: Un humano es mamífero, un mamífero es un animal. Podemos decir entonces que la clase humano hereda de la clase mamífero y la clase mamífero hereda de la clase animal. Siendo así que todos las clases que heredan de mamífero comparten esas propiedades. Veamos un ejemplo:

Herencia
Podemos observar que tenemos una clase animal que tiene el método comer( ). Quiere decir que todas subclases de esta clase también pueden invocar este método. Como los mamiferos.
Los mámiferos a si vez tienen un atributo protegido llamado pelaje. Todas las sublaces de mamífero también poseen este atributo. Tener en cuenta que si el atributo es privado las subclases no podrán tener este atributo que sería único de esa clase.
Tenemos la clase Humano y Gato. El cual son sublases de mamíferos, lo que nso dice que ambas clases pueden comer( ) y poseen pelaje. La clase humano tiene un método conversar( ) y como gatos no hereda de la clase Humano (dicho de otra manera un Gato no es un Humano). Entonces no puede usar conversar( ).
Un dato avanzado: La Herencia solo puede darse para clases abstractas, es decir para clases que no pueden ser intanciadas. No puedes crear un objeto de tipo Mamífero pero sí puedes hacerlo con Humano o con Gato.
April 26, 2018 at 2:40 am
gracias, justo lo que necesitaba
May 17, 2018 at 2:54 pm
De nada Kevin