Modelado de Clases UML: Atributos, Relaciones y Herencia
Clasificado en Informática
Escrito el en español con un tamaño de 6,17 KB
Atributos de Clase
Un atributo describe genéricamente una propiedad de los objetos de una clase.
Propiedades de los Atributos
- Visibilidad: Define el nivel de acceso al atributo:
+
Público: Se puede acceder desde fuera de la clase.-
Privado: No está permitido usarlo desde fuera de la clase.#
Protegido: Se puede acceder desde la clase y sus subclases.~
Empaquetado: Se puede acceder desde las clases de un mismo paquete.
- Nombre: Identifica el atributo dentro de la clase.
- Tipo: Describe el tipo del valor del atributo (ej., entero, real, cadena de texto).
- Valor inicial: Describe el valor que se asigna por defecto a un atributo cuando se instancia un objeto.
Relaciones entre Clases
En UML, los vínculos entre clases se describen mediante asociaciones. Las asociaciones tienen un nombre y una multiplicidad.
La multiplicidad, situada en el extremo de la asociación, indica a cuántas instancias de la clase situada en ese mismo extremo está vinculada una instancia de la clase situada en el extremo opuesto. En cada extremo se pueden expresar las multiplicidades mínima y máxima (ej., 0..1
, 1
, *
, 1..*
, M..N
, N
).
Tipos de Asociaciones
- Asociación binaria: Es una relación sencilla entre dos clases. Se indica como una línea sólida.
- Asociación N-aria: Es una relación entre tres o más clases. Se representa como un rombo, del cual parten líneas de asociación hacia las clases.
- Asociación reflexiva: Una clase puede asociarse consigo misma, creando una asociación reflexiva.
- Asociación de composición: Un objeto puede estar compuesto por otros objetos. Relaciona un objeto complejo con sus componentes. Existen dos formas de composición:
- Débil: Agregación (representada con un rombo hueco): Una clase representa el todo y otras son partes de ese todo. La agregación relaciona una clase ya ensamblada con una clase componente, siendo una forma de composición más débil.
- Fuerte: Composición (representada con un rombo relleno): El todo no puede existir sin las partes. La composición es una asociación fuerte que implica:
- Dependencia existencial: El elemento dependiente desaparece al destruirse el que lo contiene.
- Dependencia estructural fuerte: La parte es vital para la existencia del todo.
Herencia (Generalización y Especialización)
Los atributos y operaciones de la clase más general son heredados por la clase especializada.
La herencia es una abstracción importante para compartir similitudes entre clases, donde todos los atributos y operaciones comunes a varias clases se pueden compartir por medio de una superclase. La generalización indica que una clase hereda los atributos y métodos de otra. La superclase generaliza a sus subclases y las subclases especializan a la superclase.
Conceptos de Herencia
- Generalización: Es un proceso de abstracción en el que un conjunto de clases (que tienen atributos y métodos comunes) es referido por una clase genérica a un nivel mayor de abstracción. Se representa con un triángulo sin rellenar en el lado de la superclase. La subclase hereda todos sus atributos y operaciones.
Pasos para el Planteamiento de un Diagrama de Clases
- Identificación de clases: Se buscan los sustantivos en la descripción del problema. Se eliminan las clases innecesarias (redundantes o irrelevantes).
- Identificación de relaciones existentes: Se buscan las expresiones verbales del enunciado.
- Representación de relaciones entre clases.
- Identificación de atributos.
- Elaboración del diagrama completo final: Incluye todas las clases, sus atributos, sus relaciones y multiplicidad.
Dependencia o Instanciación
Una clase es instanciada cuando su instancia es dependiente de otro objeto o clase. Se denota con una flecha punteada.
La dependencia es una relación donde existen entidades independientes y otras dependientes; es decir, la eliminación de una entidad independiente puede afectar la semántica de la entidad dependiente.
Visibilidad de Miembros
La visibilidad define el alcance de acceso a los miembros (atributos y métodos) de una clase:
+
Público: Se pueden ver y acceder desde fuera de la clase.-
Privado: No está permitido usarlos desde fuera de la clase.#
Protegido: Se puede acceder desde la clase y sus subclases.~
Empaquetado: Se puede acceder desde las clases de un mismo paquete.
Tipos de Datos
Los tipos de datos se utilizan para variables, parámetros o valores de retorno de un método. Pueden ser:
- Tipo estándar: Ejemplos incluyen Int, Real, String, Boolean.
- Una clase (utilizado solo en procedimientos o métodos).
Los métodos también utilizan tipos de datos para sus parámetros de entrada y valores de retorno.
Miembros Estáticos de Clase
Los miembros estáticos son atributos o métodos comunes a todas las instancias de una clase. Se utilizan invocando directamente a la clase y residen en un único lugar en memoria. Aunque no se heredan en el sentido tradicional, son accesibles por las subclases.