Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELABORACIÓN
Experto disciplinar / Priscilla Alvares
Diseñador instruccional / Felipe Molina
Jefe de Diseño Instruccional / Alejandra San Juan
VALIDACIÓN
Aida Villamar
DISEÑO DOCUMENTO
Boris del Campo
1.1. Desarrollo
El diagrama de clases es parte de los diagramas de UML 2.5 el cual está clasificado dentro
de los diagramas de estructura y, como tal, se utiliza para representar los elementos que
componen un sistema de información desde un punto de vista estático.
Es por esta misma razón que no incluye la forma en la que se comportan los distintos
elementos a lo largo de la ejecución, esa función puede ser representada a través de un
diagrama de casos de uso o de secuencia, los cuales están clasificados dentro de los
diagramas de comportamiento.
El diagrama de clases1 está orientado a la programación orientado a objetos, ya que
define las clases y las relaciones entre ellas mismas, que se utilizarán en la fase de
construcción. Una sola clase puede mostrarse en más de un diagrama de clase y no es
necesario mostrar todas las clases en un solo diagrama monolítico de clase.
1.2. Como se representa una clase
Se hace a través de un clasificador que es una figura rectangular (Figura N° 1), en la parte
superior del clasificador debemos colocar el nombre de la clase en negrita (Nombre), luego
en la sección intermedia la lista de atributos y en la parte inferior va la lista de las operaciones
que tiene a esa clase (Figura N° 3). Igualmente, si necesitamos representar un diagrama un
tanto complejo, podemos simplificar la forma como estamos representando la clase sin
necesidad de mostrar los atributos y operaciones lo hacemos como se muestra en la Figura N°
2.
Nombre de la Nombre de la
Nombre de la
Clase Clase
Clase
Atributos -atributos
Operaciones +Operaciones ()
1
Manual de UML, Paul Kimmel, Capítulo 1: “Una imagen vale más que mil líneas de código”, Diagramas de Clases.
Figura N° 4 ) y va subrayado.
Instancia: clase
Un ejemplo puede ser la clase “Aviones” que tiene atributos como el “modelo de avión”,
“la cantidad de motores”, “la velocidad de crucero” y “la capacidad de carga útil”. Entre las
acciones de las cosas de esta clase se encuentran: “acelerar”, “elevarse”, “girar”,
“descender”, “desacelerar”.2
Se puede representar una clase Abstracta divididos en 3 áreas: la superior contiene el
nombre de la clase, la central contiene los atributos y la inferior las acciones
Aviones
+Modelo de avión: string
+ Cantidad de Motores: Int
# Velocidad de Crucero: Booleano
- Carga Útil: string
2
Diagrama de Clases https://www.teatroabadia.com/es/uploads/documentos/iagramas_del_uml.pdf
2.1. Desarrollo
Las relaciones también son conocidas como asociaciones, y estas sirven para representar
la conexión entre clases, para UML una asociación describe un conjunto de vínculos entre las
instancias de una clase.
Estas relaciones pueden ser binarias es decir que pueden conectar dos clases, o también
pueden ser n-arias que conectan a n clases, aunque esta última no se ocupa mucho, las
relaciones binarias son las mas comunes en el diagrama de clases.
2.1.1. Asociación
La asociación es una relación estructural entre las clases, que significa esto, un objeto de
una clase se puede conectar con los objetos de las otras clases es decir colaboran entre sí.
La manera de representar estas asociaciones es mediante una línea que conecta
ambas clases o como una flecha abierta, en general estas conexiones son bidireccionales,
cada asociación tiene dos roles que marca la dirección de la asociación, ya sea entre A y B
marcando el primer rol y el otro de B a A, a cada rol se le puede asociar una etiqueta con su
nombre. También se puede agregar un símbolo < > para indicar la dirección de lectura de la
asociación, otro dato que podemos agregar la multiplicidad que tienen ambos sentidos y esta
puede ser: 1, 0…1, 0…N(*), 1…N, M…N, M. ver imagen
2.1.2. Agregación
La agregación en el lenguaje UML se utiliza para representar una relación entre una
clase y sus elementos agregados, es decir que los agregados no afectan en el funcionamiento
directo de la clase que los contiene, se grafican con un diamante vacío al extremo de la
asociación que representa el todo. En otras palabras, La agregación es la relación parte-de,
que presenta a una entidad como un agregado de partes (en orientación a objeto, un objeto
como agregado de otros objetos).4
3
de esas clases entre sí:, L. R. E. E. las D. C. N. I. C. se C. L. O. (n.d.). Relaciones entre clases: Relaciones entre clases:
Diagramas de clases UML Diagramas de clases UML. Ugr.Es. Retrieved March 25, 2021, from
http://elvex.ugr.es/decsai/java/pdf/3c-relaciones.pdf
4
Cevallos, K. (2015, July 2). UML: Relaciones entre clases. Wordpress.Com.
https://ingsotfwarekarlacevallos.wordpress.com/2015/07/02/uml-relaciones-entre-clases/Agregación
2.1.3. Composición
La relación de Composición que se utiliza en UML es para representar una clase que
esta compuesta por otras clases son necesarias para su funcionamiento. Es decir que la clase
necesita obligadamente a las otras clases para poder funcionar. Esta representación se hace
colocando un diamante negro o relleno en el extremo de la asociación de la clase que la
necesita. En otras palabras, 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.5
Ejemplo de asociación:
Para representar un hecho muy cotidiano como el hecho de que una persona puede ser
o no dueña de perros y gatos los cuales son considerados mascotas. Este ejemplo se puede
5
Cevallos, K. (2015, July 2). UML: Relaciones entre clases. Wordpress.Com.
https://ingsotfwarekarlacevallos.wordpress.com/2015/07/02/uml-relaciones-entre-clases/Composición
Ejemplo de Agregación:
Por ejemplo, para representar un computador de escritorio, al que se le pueden agregar
elementos adicionales como un micrófono, cámara web y una impresora; sin embargo, la
ausencia de estos elementos no implica en el funcionamiento básico de dicho computador,
por otro lado, la clase agregada (hija) puede sobrevivir sin ser agrega a la clase Computador
(Padre).
3.1. Desarrollo
La herencia múltiple es cuando una subclase extiende o hereda de dos o mas clases, es decir
obtiene métodos y atributos de otras clases superclases. Este tipo de herencia no se puede
aplicar en lenguaje Java, pero en Python se puede utilizar.
4.1. Desarrollo
Ambas clases deben sobre escribir el método getArea() puesto que se calculan de
diferentes maneras en cada caso.
4.2. Ejemplos/Casos
Ejemplo
5.2. Ejemplos/Casos
6
https://virtual.itca.edu.sv/Mediadores/ads/213_tipos_de_relaciones.html
6.1. Desarrollo
Encapsulación7
La encapsulación consiste en ocultar los atributos y métodos del objeto a otros
objetos. En efecto, algunos atributos y métodos tienen como único objetivo tratamientos
internos del objeto y no deben estar expuestos a los objetos exteriores. Una vez
encapsulados, pasan a denominarse atributos y métodos privados del objeto.
7
Encapsulación. (n.d.). Ediciones-Eni.Com. Retrieved March 26, 2021, from https://www.ediciones-
eni.com/open/mediabook.aspx?idR=8fbbc43b9178348846f43400c0898b93
Si examinamos la jerarquía presentada en la figura 3.4 vemos que en ella existen dos
tipos de clases:
• Las clases que poseen instancias, es decir, las clases Caballo y Perro, llamadas clases
concretas.
• Las clases que no poseen directamente instancias, como la clase Animal. En efecto, si
bien en el mundo real existen caballos, perros, etc., el concepto de animal
propiamente dicho continuá siendo abstracto. No basta para definir completamente
un animal. La clase Animal se llama clase abstracta.
La finalidad de las clases abstractas es poseer subclases concretas y sirven para factorizar
atributos y métodos comunes a las subclases.
8
Clases abstractas y concretas. (n.d.). Ediciones-Eni.Com. Retrieved March 26, 2021, from
https://www.ediciones-eni.com/open/mediabook.aspx?idR=851279e9db8cf25a9ec4076bb1189fa3
Los atributos son características, propiedades o datos que guarda la clases para su
funcionamiento, pueden ser de tres tipos, los que definen el grado de comunicación y
visibilidad en el entorno, estos pueden ser público, privado o protegido y se representan uno
por línea, utilizando el siguiente formato: visibilidad nombre_atributo: tipo= valor-inicial
{propiedades} , aunque esta es la forma oficial de escribirlas, es común hacerlo de manera
simplificada colocando el nombre y el tipo o solamente el nombre.
La Visibilidad expresa si el atributo es visible para el resto de los objetos del diagrama,
pudiéndose dar los siguientes casos:
§ + públic: Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible
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.9
FIGURA N° 22: C LASE CON ATRIBUTO FIGURA N° 21:C LASE CON ATRIBUTO FIGURA N° 20: C LASE CON ATRIBUTO PROTEGIDO
PUBLICO PRIVADO (Elaboración Propia, P.R.A.E., 2021)
(Elaboración Propia, P.R.A.E., 2021) (Elaboración Propia, P.R.A.E., 2021)
7.2. Operaciones de la Clase
Las operaciones o Métodos describen el comportamiento de los objetos de una clase. Son
la forma en como la clase interactúa con su entorno, su formato de expresión es el siguiente:
Visibilidad nombre (lista de parámetros): tipo de retorno, Donde la visibilidad al igual que
en los atributos puede tener las siguientes características:
§ + públic: indica que el método será visible tanto dentro como fuera de la Clase, es decir, es accesible
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)
9
Diagrama de Clase, Atributos y métodos. https://www.ecured.cu/Diagrama_de_Clase#Diagrama_de_Clases
Si una operación no tiene asignada ninguna visibilidad, quiere decir que la visibilidad
no esta definida (no hay visibilidad por defecto
Nombre de la Clase
Nombre de la Clase Nombre de la Clase
#atributo: Tipo
+atributo: Tipo -atributo: Tipo
FIGURA N° 23: C LASE OPERACIÓN PUBLICA FIGURA N° 24:: CLASE OPERACIÓN P RIVADA FIGURA N° 25: C LASE OPERACIÓN PROTEGIDA
(Elaboración Propia, P.R.A.E., 2021) (Elaboración Propia, P.R.A.E., 2021) (Elaboración Propia, P.R.A.E., 2021)
IDEAS CLAVE
10
Diagrama de Clase, Atributos y métodos. https://www.ecured.cu/Diagrama_de_Clase#Diagrama_de_Clases
de esas clases entre sí:, Las Relaciones Existentes Entre las Distintas Clases Nos Indican
Cómo se Comunican Los Objetos. «Relaciones entre clases:Relaciones entre clases:
Diagramas de clases UMLDiagramas de clases UML». Ugr.es. N.p., s. f. Web. 31 mar. 2021.
Recuperado de: http://elvex.ugr.es/decsai/java/pdf/3c-relaciones.pdf
Cevallos, Karla. «UML: Relaciones entre clases». Wordpress.com. N.p., 2 jul. 2015. Web. 31
mar. 2021. Recuperado de:
https://ingsotfwarekarlacevallos.wordpress.com/2015/07/02/uml-relaciones-entre-clases/