Tabla I: Tipos existentes en el lenguaje Swift 5.7
Nombre
Descripción
Clases
“Construcción que nos permite encapsular las
propiedades, métodos e inicializadores de un
objeto en un solo tipo.” ª
Los objetos se denominan instancias
Pueden

relacionarse

con

otras

clases

me-
diante herencia
Pueden relacionarse con protocolos
Las

instancias

se

comparten mediante

refe-
rencia,

apuntando

a

la

misma

dirección

en
memoria
Es un tipo con nombre
Se
puede

denominar

subclase

o

superclase
dependiendo
de

su

relación

con

otra

clase
mediante herencia
Estructuras
“Construcción que nos permite encapsular las
propiedades,
métodos

e

inicializadores

de
una instancia en un solo tipo.” ª
No

pueden

heredar

comportamiento

ni

atri-
butos
Pueden relacionarse con protocolos
Las instancias se comparten mediante valor,
creando copias
Es un tipo con nombre
Enums
“Tipo que define una lista de posibles valores.
Adopta
muchas

características

tradicional-
mente
admitidas

solo

por

clases,

como

pro-
piedades, métodos, inicializadores. Se puede
extender para expandir su funcionalidad más
allá
de

su

implementación

original

y

puede
ajustarse
a

los

protocolos

para

proporcionar
una funcionalidad estándar.” ª
Protocolos
“Tipo
que

define

un

modelo

de

métodos,
propiedades y otros requisitos que se adaptan
a
una

tarea

o

funcionalidad

en

particular.
Luego,
el

protocolo

puede

ser

adoptado

por
una
clase,

estructura

o

enumeración

para
proporcionar
una

implementación

real

de
estos
requisitos.

Cualquier tipo que satisfaga
los
requisitos

de

un

protocolo

se

dice

que
conforma a ese protocolo.” ª
Tipos es-
tándar (Int,
Double,
String, etc.)
“Los tipos primitivos de cualquier lenguaje de
programación, están implementados por Swift
como estructuras por lo que se pueden ex-
tender.” ª
Colecciones
(array, set,
dictionary)
“Tipos
que

actúan

como

colecciones

para
guardar
valores.

Los

array

son

colecciones
ordenadas de valores, los set son colecciones
desordenadas de valores únicos y los diccio-
narios
son

colecciones

desordenadas

de
asociaciones entre un valor y una clave.” ª
Funciones
“Tipo que representa los tipos de los métodos,
funciones o closures y están conformados por
parámetros y un tipo de retorno” ª
Tuplas
“Las
tuplas

agrupan

múltiples

valores

en

un
Nombre
Descripción
solo
valor

compuesto.

Los

valores

dentro

de
una
tupla

pueden

ser

de

cualquier

tipo

y

no
tienen que ser del mismo tipo entre sí” ª
Opcionales
“Tipo
que

manejan

la

ausencia

de

un

valor
(...).
Un

opcional

representa

dos

posibilida-
des:
O

hay

un

valor

y

puede

desenvolver

el
opcional
para

acceder

a

ese

valor,

o

no

hay
ningún valor” ª
Nota. ª Apple (2023)
En la Tabla II se muestran las posibles re-
laciones que pueden tener l er los tipos de l e la T a Tabla I.
Tabla II: Relaciones existentes en el lenguaje Swift 5.7
Nombre
Descripción
Herencia
“Relación mediante la cual se puede agre-
gar o anular funcionalidades mediante
composición de clases. La herencia es un
comportamiento fundamental que diferencia
las clases de otros tipos en Swift” ª
Conformance
“Relación mediante la cual una clase, es-
tructura o enumeración adopta y provee una
implementación a los requerimientos de un
protocolo” ª
Herencia de
protocolos
“Relación mediante la cual un protocolo
puede heredar uno o más protocolos y
puede agregar más requisitos además de
los requisitos que hereda” ª
Tipos anida-
dos
“Relación mediante la cual se define un tipo
dentro del contexto de otro tipo. para permi-
tir e ir esto Swift permite definir tipos anidados,
el cual anida enumeraciones, clases y
estructuras compatibles dentro de la defini-
ción del otro tipo” ª
Extensión
“Relación mediante la cual se le agrega
nuevas funcionalidades a clases, estructu-
ras, enumeraciones o protocolos ya existen-
tes (...). Las extensiones a protocolos sirven
para proveer implementaciones por defec-
tos a sus métodos y propiedades.” ª
Nota. ª Apple (2023)
Se formuló la suposición que las entidades y rela-
ciones a estereotipar son a las que hizo referencia
[18],
estas son:

Protocolos, Estructuras,

Enumera-
ciones, Extensiones y relaciones de Conformance.
Desde
entonces,

el

lenguaje

Swift

ha

avanzado

a
tres versiones mayores
[19]

y la

especificación de
UML ha avanzado una versión [20], se hizo nece-
sario
una

revisión

de

ambos

para

validar

que

la