Está en la página 1de 9

QUE ES DIAGRAMA DE CLASES

Los diagramas de clases son uno de los tipos de


diagramas más útiles en UML, ya que trazan claramente
la estructura de un sistema concreto al modelar sus
clases, atributos, operaciones y relaciones entre
objetos. 
Para que sirve
Un diagrama de clases sirve para visualizar las relaciones entre las clases que
involucran el sistema, las cuales pueden ser asociativas, de herencia, de uso y de
agregación, ya que una clase es una descripción de conjunto de objetos que
comparten los mismos atributos, operaciones, métodos, relaciones y semántica;
mostrando un conjunto de elementos que son estáticos, como las clases y tipos junto
con sus contenidos y relaciones. Un diagrama de clases está compuesto por los
siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones: Herencia,
Composición, Agregación, Asociación y Uso.

Como se reprsentan(Notación de Clase


por rectángulos que muestran el nombre de la clase y opcionalmente el nombre de las
operaciones y atributos. Los compartimientos se usan para dividir el nombre de la
clase, atributos y operaciones. Adicionalmente las restricciones, valores iniciales y
parámetros se pueden asignar a clases.

Atributos

Los atributos o características de una Clase pueden ser de tres tipos, los que definen
el grado de comunicación y visibilidad de ellos con el entorno, estos son:

 public (+,): Indica que el atributo será visible tanto dentro como fuera de la
clase, es decir, es accsesible desde todos lados.
 private (-,): Indica que el atributo sólo será accesible desde dentro de
la Clase (sólo sus métodos lo pueden accesar).
 protected (#,): Indica que el atributo no será accesible desde fuera de la clase,
pero si podrá ser accesado por métodos de la clase además de las subclases que
se deriven (ver Herencia).
Los métodos u operaciones de una clase son la forma en como ésta interactúa con su
entorno, éstos pueden tener las características:

 public (+,): Indica que el método será visible tanto dentro como fuera de
la Clase, es decir, es accsesible desde todos lados.
 private (-,): Indica que el método sólo será accesible desde dentro de la clase
(sólo otros métodos de la clase lo pueden accesar).
 protected (#,): Indica que el método no será accesible desde fuera de la clase,
pero si podrá ser accesado por métodos de la clase además de métodos de las
subclases que se deriven (ver herencia).

Ejemplo:

Relaciones

Ahora ya definido el concepto de Clase, es necesario explicar como se pueden


interrelacionar dos o más clases (cada uno con características y objetivos diferentes).
Antes es necesario explicar el concepto de cardinalidad de relaciones: 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) .
Asociación. Las relaciones de asociación representan un conjunto de
enlaces entre objetos o instancias de clases. Es el tipo de relación más
general, y denota básicamente una dependencia semántica. Por ejemplo,
una Persona trabaja para una Empresa.
Cada asociación puede presentar elementos adicionales que doten de
mayor detalle al tipo de relación:
 Rol, o nombre de la asociación, que describe la semántica de
la relación en el sentido indicado. Por ejemplo, la asociación entre
Persona y Empresa recibe el nombre de trabaja para, como rol en
ese sentido.
 Multiplicidad, que describe la cardinalidad de la relación, es
decir, especifica cuantas instancias de una clase están asociadas a
una instancia de la otra clase. Los tipos de multiplicidad son: Uno a
uno, uno a muchos y muchos a muchos.

Herencia

 Las jerarquías de generalización/especialización se conocen como


herencia. Herencia es el mecanismo que permite a una clase de objetos
incorporar atributos y métodos de otra clase, añadiéndolos a los que ya
posee. Con la herencia se refleja una relación “es_un” entre clases. La
clase de la cual se hereda se denomina superclase, y la que hereda
subclase.
La generalización define una superclase a partir de otras. Por ejemplo,
de las clases profesor y estudiantese obtiene la superclase persona. La
especialización o especificación es la operación inversa, y en ella una
clase se descompone en una o varias subclases. Por ejemplo, de la
clase empleado se pueden obtener las
subclases secretaria, técnico e ingeniero.
Agregación:
 La agregación es un tipo de relación jerárquica entre un objeto que
representa la totalidad de ese objeto y las partes que lo componen.
Permite el agrupamiento físico de estructuras relacionadas lógicamente.
Los objetos “son-parte-de” otro objeto completo. Por
ejemplo, motor, ruedas, carrocería son parte de automóvil.
Composición
La composición es una forma de agregación donde la relación de
propiedad es más fuerte, e incluso coinciden los tiempos de vida del
objeto completo y las partes que lo componen.
La composición implica que los componentes de un objeto sólo pueden
pertenecer a un solo objeto agregado, de forma que cuando el objeto
agregado es destruido todas sus partes son destruidas también
Dependencia. Una relación de dependencia se utiliza entre dos clases o
entre una clase y una interfaz, e indica que una clase requiere de otra
para proporcionar alguno de sus servicios
El diagrama de clases permite representar clases abstractas. Una Clase
abstracta es una clase que no puede existir en la realidad, pero que es
útil conceptualmente para el diseño del modelo orientado a objetos. Las
clases abstractas no son instánciables directamente sino en sus
descendientes. Una clase abstracta suele ser situada en la jerarquía de
clases en una posición que le permita ser un depósito de métodos y
atributos para ser compartidos o heredados por las subclases de nivel
inferior.
Ejemplo

Figura es una clase abstracta(nombre en cursiva en UML) por que no tiene sentido calcular su
área,pero si la de un cuadrado o circulo. Si una subclase de figura no redefine área(),deberá
declararse también como clase abstracta

INTERFACES: Es una clase completamente abstracta(una clase sin implementación)

En el ejemplo anterior, si no estuviésemos interesados en conocer la posición de una figura,


podríamos eliminar por completo su implementación y convertir Figura en una interfaz:
https://ingsotfwarekarlacevallos.wordpress.com/2015/07/02/uml-relaciones-entre-clases/

https://www.ecured.cu/Diagrama_de_Clase

Analisis y diseño orientado a objetos

https://slideplayer.es/slide/1587693/

También podría gustarte