los sistemas distribuidos. una aplicación en la enseñanza
TRANSCRIPT
Universidad Central “Marta Abreu” de Las Villas
Facultad de Matemática, Física y Computación
Trabajo para optar por el Título de
Máster en Ciencia de la Computación
Los sistemas distribuidos. Una aplicación en la
enseñanza.
Autor
Lic. Anaisi Santos Carrazana
Tutor
Dr. Mateo Lezcano Brito
Ms. Graciela Carrazana Quintero
2019
El que subscribe, Anaisi Santos Carrazana, hace constar que el trabajo titulado “Los sistemas
distribuidos. Una aplicación en la enseñanza” se realizó en la Universidad Central “Marta Abreu”
de Las Villas como parte de la culminación de los estudios de la Maestría en Ciencia de la
Computación, autorizando que el mismo sea utilizado por la institución, para los fines que estime
conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos
ni publicado sin la autorización de la Universidad.
______________________________
Firma del Autor
Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdos de la
dirección de nuestro centro y que el mismo cumple con los requisitos que debe tener un trabajo de
esta envergadura referido a la temática señalada.
____________________ ____________________
Firma del Tutor Firma del Jefe de Seminario
Dr. Mateo Lezcano Brito Dr. __________________
RESUMEN
El trabajo que se presenta se enmarca en el área de los sistemas distribuidos aplicados a la Enseñanza
Asistida por Computadoras. Se realiza un análisis crítico del desarrollo actual de los sistemas distribuidos
como marco apropiado para incorporar sus innovaciones tecnológicas al desarrollo de contextos educativos
como alternativas viables a la educación tradicional.
A partir de un análisis general de las concepciones teóricas-prácticas precedentes y tomando como base
principal la aplicación práctica del software “La Isla de las Matemáticas” se realiza un estudio profundo
que permite establecer las concepciones metodológicas para rediseñar la herramienta, transformándola en
un medio efectivo que contribuya al perfeccionamiento de la enseñanza de la asignatura Matemática que se
imparte en el Primer Ciclo de la Enseñanza Primaria.
Desde el punto de vista computacional se mejora significativamente la arquitectura del software mediante
el empleo de un modelo distribuido, lo que contribuye a los mantenimientos que exigirán las inclusiones
de futuras facilidades que surgirán de las exigencias de docentes y alumnos.
Desde la visión instructiva se adicionan y perfeccionan las funcionalidades que sirven de apoyo al proceso
de enseñanza aprendizaje de la materia, entre las que se incluyen las siguientes: gestionar los ejercicios y
datos asociados con los estudiantes que interactúan con el sistema, generar reportes que permitan al profesor
conocer datos específicos importantes, tales como: la evolución de los estudiantes, el tiempo consumido
para resolver los ejercicios, así como la cantidad de intentos en que se alcanza el éxito, etc.
Palabras claves: TIC, software educativo, medios de enseñanza
ABSTRACT
The work presented is framed in the area of distributed systems applied to computer-assisted teaching. A
critical analysis of the current development of distributed systems is made as an appropriate framework to
incorporate their technological innovations to the development of educational contexts as viable alternatives
to traditional education.
From a general analysis of the previous theoretical-practical conceptions and taking as a main base the
practical application of the software "The Island of Mathematics" a deep study is made that allows to
establish the methodological conceptions to redesign the tool, transforming it into a medium effective that
contributes to the improvement of the teaching of Mathematics that is imparted in the First Cycle of the
Primary Education.
From the computational point of view the software architecture is significantly improved, through the use
of a distributed model, which contributes to the maintenance that will be required by the inclusions of future
facilities that will arise from the demands of teachers and students.
From the instructional point of view, the functionalities that support the teaching-learning process of the
subject are added and perfected, among which the following are included: managing the exercises and data
associated with the students that interact with the system, generating reports that allow to the teacher to
know important specific data, such as: the evolution of the students, the time consumed to solve the
exercises, as well as the number of attempts in which success is achieved, etc.
Keywords: ICT, educational software, teaching media
Introducción
TABLA DE CONTENIDOS
INTRODUCCIÓN ............................................................................................................... 1
CAPÍTULO 1. SISTEMAS INFORMÁTICOS DISTRIBUIDOS ...................................... 4
1.1 Sistemas distribuidos .................................................................................................. 4 1.2 Arquitecturas de sistemas distribuidos ....................................................................... 7
1.2.1 Arquitectura Cliente-Servidor ............................................................................. 7 1.2.2 Arquitectura de n−capas ...................................................................................... 9 1.2.3 Arquitectura objetos distribuidos ...................................................................... 10
1.2.4 Sistemas punto a punto ...................................................................................... 11
1.3 Mecanismos de comunicación entre procesos distribuidos ...................................... 13
1.3.1 Socket ................................................................................................................ 13 1.3.2 Llamada a Procedimientos Remotos (RPC) ...................................................... 15 1.3.3 Invocación de Métodos Remotos (RMI) ........................................................... 18
1.4 El Software Educativo distribuido como forma de apoyo a la enseñanza ............... 20 1.5 Conclusiones parciales ............................................................................................. 23
CAPÍTULO 2. DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DISTRIBUDO “LA
ISLA DE LAS MATEMÁTICAS” .................................................................................... 24
2.1 Modelado del sistema ............................................................................................... 24 2.1.1 Requerimientos del sistema ............................................................................... 24
2.1.2 Análisis de actores y casos de uso ..................................................................... 26
2.1.3 Diagrama de clases ............................................................................................ 32
2.1.4 Diseño de la base de datos ................................................................................. 35 2.2 Implementación del sistema ..................................................................................... 37
2.3 Sistema Cliente-Servidor .......................................................................................... 39 2.4 Construcción del sistema .......................................................................................... 40 2.5 Conclusiones parciales ............................................................................................. 42
CAPÍTULO 3. APLICACIÓN DOCENTE DEL SOFTWARE EDUCATIVO "LA ISLA
DE LAS MATEMÁTICAS" .............................................................................................. 43
3.1 El empleo de las TIC en el proceso docente educativo cubano ............................... 43 3.2 Antecedentes en el software educativo cubano ........................................................ 44 3.3 Caracterización de la asignatura Matemática en el Primer Ciclo de la Enseñanza
Primaria .......................................................................................................... 47 3.4 Características del software educativo “La Isla de las Matemáticas” ...................... 48 3.5 Indicaciones para el uso docente de la aplicación .................................................... 50
3.6 Aportes del software “La Isla de las Matemáticas” ................................................. 50 3.7 Estadística de la efectividad de software “La Isla de las Matemáticas” .................. 51 3.8 Conclusiones parciales ............................................................................................. 55
CONCLUSIONES ............................................................................................................. 56
RECOMENDACIONES .................................................................................................... 57
REFERENCIAS BIBLIOGRÁFICAS ............................................................................... 58
Introducción
1
INTRODUCCIÓN
Una premisa que lleva implícito el perfeccionamiento de la enseñanza es su ajuste al desarrollo
tecnológico y social. En el primer aspecto inciden, de forma notable, las Tecnologías de la
Información y las Comunicaciones (TIC), como uno de los elementos más distintivos de la
sociedad actual. Estas tecnologías se han incorporado en los más disímiles campos, en la enseñanza
en particular, ha incidido en la aparición de nuevos roles para sus dos actores principales, docentes
y estudiantes; los cuales han creado nuevos materiales de enseñanza aprendizaje sobre distintos
soportes (Vidal Ledo et al., 2009). Estos cambios se deben a que la escuela no debe estar al margen
de la sociedad, no puede dejar de lado las TIC, sino que debe formar las nuevas generaciones
capacitadas para el empleo de estos medios, es por ello que no se logra concebir la educación
apartada de los medios de comunicación.
Las nuevas tecnologías dan lugar a nuevas posibilidades al ampliar el espectro de los métodos
tradicionales de enseñanza, no sustituyéndolas, sino enriqueciéndolos y complementándolos.
Cuba, no está ajena a toda esta problemática y el gobierno revolucionario ha trabajado
incesantemente en el desarrollo de la Informática Educativa, en este sentido se han realizado
grandes esfuerzos para preparar un personal capaz de asumir los retos que presuponen la
incorporación de la tecnología en la educación cubana en general y en la etapa primaria en
particular.
La Universidad Central de Las Villas en general, y el Centro de Investigación Informáticos (CII)
en particular, han realizado varios sistemas para favorecer el proceso de enseñanza aprendizaje.
En este entorno se enmarca el presente trabajo, el cual pretende incorporar las innovaciones
tecnológicas inherentes a los sistemas distribuidos en el desarrollo de contextos educativos
alternativos a la educación tradicional. Para ello, partiendo de un análisis general de las
concepciones teóricas-prácticas precedentes y tomando como base principal la aplicación práctica
de la primera versión del sistema “La Isla de las Matemáticas”, se realiza un profundo estudio que
permite determinar las concepciones metodológicas necesarias para rediseñar dicha herramienta,
transformándola en un medio efectivo que contribuya al perfeccionamiento de la enseñanza de la
asignatura Matemática que se imparte en el Primer Ciclo de la Enseñanza Primaria.
Tomando en cuenta el estado actual de la Enseñanza Asistida por Computadora (EAC), las
facilidades ofrecidas por las redes de computadoras y la aplicación práctica de la versión primaria
del software “La Isla de las Matemáticas” se formulan los siguientes objetivos:
Introducción
2
Objetivo general
Concebir y desarrollar un ambiente de enseñanza aprendizaje distribuido para incidir
positivamente en la calidad del proceso de docente.
Objetivos específicos
1. Realizar un análisis crítico del desarrollo actual de los sistemas distribuidos.
2. Concebir un modelo distribuido para el desarrollo del ambiente de enseñanza-aprendizaje
asistido por computadora orientado a la asignatura Matemática del Primer Ciclo de la
Enseñanza Primaria.
3. Implementar el sistema de enseñanza asistido por computadora, empleando una arquitectura
distribuida.
4. Validar la efectividad del sistema distribuido “La Isla de las Matemáticas”.
Preguntas de investigación
Reconociendo la existencia y utilidad de la versión anterior de “La Isla de las Matemáticas”, y
partiendo de experiencias anteriores de su aplicación, surge la siguiente pregunta de investigación:
¿Se mejorará la calidad del aprendizaje con la introducción del ambiente distribuido “La
Isla de las Matemáticas”?
Hipótesis de investigación
EL rediseño del software “La Isla de las Matemáticas”, mediante el empleo de una arquitectura
distribuida, permite asimilar de manera correcta los contenidos incluidos en el plan de estudio del
Primer Ciclo de la Enseñanza Primaria y debe incidir positivamente en el proceso de enseñanza
aprendizaje de la asignatura Matemática en dichos grados.
Justificación de la investigación
Durante el Primer Ciclo de la Enseñanza Primaria es importante lograr que los alumnos realicen
suficientes actividades que le permitan transitar por los diferentes niveles del desarrollo cognitivo
y asimilar de manera correcta los contenidos impartidos en la asignatura Matemática. De esta
manera se establecer las bases sobre la cuales se sustentan los conocimientos posteriores que ha
de adquirir el alumno en su proceso de formación y educación.
Partiendo de estas necesidades se realiza un análisis crítico del desarrollo actual de los sistemas
distribuidos, con el propósito de incorporar esas innovaciones tecnológicas en el rediseño y
programación de la herramienta “La Isla de las Matemáticas”. La arquitectura del nuevo producto
Introducción
3
informático incluye mejoras significativas que facilitan la incorporación de nuevas facilidades que
surgirán a partir de las exigencias de docentes y alumnos.
La herramienta informática resultante se caracteriza por perfeccionar e incluir nuevas
funcionalidades que sirven de apoyo al proceso de enseñanza aprendizaje de la materia. Dentro de
estas funcionalidades se destacan: la gestión de los ejercicios y datos asociados con los estudiantes,
generar reportes que permitan al profesor llevar un control de la evolución de los estudiantes, entre
otras.
Estructura de la Tesis
El trabajo, está estructurado en tres capítulos. En el Capítulo I, se realiza un análisis sobre los
sistemas distribuidos, a partir de una revisión sobre los principales modelos arquitectónicos y
mecanismos de comunicación entre procesos utilizados en el desarrollo de aplicaciones
distribuidas. Se especifican aspectos importantes relacionados con el software educativo como un
ambiente que proporciona un medio adecuado para incorporar las innovaciones tecnológicas
propias de los sistemas distribuidos.
El Capítulo II aborda aspectos esenciales sobre el análisis, diseño e implementación del sistema
distribuido. Además, se desarrollan los principales diagramas que ofrecen una descripción
detallada de la arquitectura y funcionamiento del sistema.
El Capítulo III expone brevemente algunas ideas referentes a los antecedentes del software
educativo cubano. Al mismo tiempo se exponen un conjunto de indicaciones, según el estudio con
especialistas, para la puesta en práctica del sistema en el proceso docente de la asignatura de
Matemáticas impartida en el Primer Ciclo de la Enseñanza Primaria. También se exponen los
resultados generales obtenidos tras la aplicación del sistema elaborado.
El trabajo finaliza con un conjunto de conclusiones que sirven como medida del logro de los
objetivos y algunas recomendaciones que permiten su continuación y perfeccionamiento.
Capítulo 1: Sistemas informáticos distribuidos
4
CAPÍTULO 1. SISTEMAS INFORMÁTICOS DISTRIBUIDOS
El proceso de desarrollo de los sistemas informáticos ha ido cambiando gradualmente en pocos
años, pasando de un modelo centralizado y rígido hacia un modelo descentralizado, abierto y
distribuido que ofrece beneficios en términos de rendimiento frente a las soluciones centralizadas,
ejecuciones simultáneas y extensiones mediante la adición de componentes. En este capítulo se
abordan los sistemas distribuidos, enfatizando en sus características y ventajas. Además se hace
una revisión sobre los principales modelos arquitectónicos utilizados en el desarrollo de
aplicaciones distribuidas, resaltando sus ventajas y deficiencias. También se trata el tema de los
mecanismos de comunicación entre procesos como espina dorsal en el funcionamiento de los
entornos de computación distribuidos. Finalmente, se especifican aspectos importantes
relacionados con el software educativo como un ambiente adecuado para incorporar las
innovaciones tecnológicas de los sistemas distribuidos como alternativa viable a la educación
tradicional.
1.1 Sistemas distribuidos
El desarrollo de los entornos de computación distribuidos vino de la mano de las redes locales de
alta velocidad a principios de 1970. El origen de este tipo de sistema de información se debe a la
necesidad de escalar y ampliar los sistemas centralizados desarrollados hasta aquel momento para
brindar servicios a organizaciones ubicadas en diferentes localizaciones geográficas. Esto conllevó
a que en pocos años se pasara de una mentalidad centralizada, donde prevalecía la confidencialidad
y sistemas de información basados en Intranet, a una mentalidad totalmente opuesta,
descentralizada y basada en Internet.
Aunque la concepción inicial de la computadora personal era la de un elemento de cómputo
autónomo, las posibilidades de interconexión borraron en poco tiempo esa idea primaria al permitir
compartir recursos remotos. De esta manera se iniciaron las primeras investigaciones dirigidas al
desarrollo de sistemas distribuidos, que tratan de aunar lo mejor de microordenadores y
superordenadores (Gutiérrez and Martínez, 1999).
Precisamente por esos años, de forma paralela, empezaban a consolidarse fuertes líneas de
investigación en el área de la computación paralela y programación concurrente, motivado en un
principio por la masiva presencia del sistema operativo Unix (Fox et al., 2014). Estas líneas de
investigación, en conjunto con las necesidades de comunicación entre procesos ejecutados en
Capítulo 1: Sistemas informáticos distribuidos
5
ambientes de cómputo independientes, dieron lugar a los primeros esfuerzos en la elaboración de
nuevas tecnologías para la programación distribuida de aplicaciones (Yakovenko et al., 2015).
La nueva mentalidad de construir aplicaciones divididas en partes comunicantes, residentes en
distintos ambientes de cómputo, fue un gran paso en el campo de la programación distribuida.
Evidentemente, los antiguos sistemas centralizados no dejaron de ser funcionales pero pronto se
evidenció la necesidad de integrar determinadas partes de los sistemas existentes con los nuevos,
dando lugar a la aparición de los sistemas heredados (acrónimo del inglés Legacy Systems)
(Warren, 2012).
Más recientemente, la disponibilidad de computadoras personales de altas prestaciones, estaciones
de trabajo y servidores ha resultado en un mayor desplazamiento hacia los sistemas distribuidos.
Por lo que, hoy en día, es posible afirmar que la imposibilidad de los sistemas centralizados por
satisfacer determinados requerimientos no funcionales indispensables en la sociedad, condicionó
el nacimiento de los sistemas distribuidos y un cambio de paradigma de programación (Jelly et al.,
2016).
Varias son las definiciones de sistemas informáticos distribuidos que se han dado en la literatura.
Dentro de ellas se destacan las siguientes:
Tanenbaum define un sistema distribuido como una colección de computadoras
independientes e intercomunicadas por una red y provistas de software distribuido, que se
muestran ante sus usuarios como un único sistema coherente (Tanenbaum and Van Steen,
2007).
Según Alonso (Alonso et al., 2017), un sistema distribuido o entorno de computación
distribuido es un conjunto de dispositivos autónomos que cooperan con objetivos
concretos. Estos dispositivos ejecutan tareas que se coordinan entre sí, intercambiando
información por medio de una red de comunicación.
Estas definiciones tienen varios aspectos importantes: el primero es que un sistema distribuido
consta de más de un sistema independiente, cada uno con acceso a una, o más Unidad de
Procesamiento Central (CPU), memoria local, memoria secundaria y, en general, conexiones con
periféricos de acceso inmediato. Estos sistemas independientes colaboran en la realización de
diferentes tareas empleando una red de interconexión mediante la cual ocurre la comunicación y
sincronización de los sistemas independientes, posibilitando la existencia de una visión común del
estado general del sistema distribuido.
Capítulo 1: Sistemas informáticos distribuidos
6
A continuación se destacan algunas de las características más importantes en los sistemas
distribuidos (Van Steen and Tanenbaum, 2017):
Las diferencias existentes entre las computadoras y las formas en que se comunican, en su
mayoría, están ocultas a los usuarios.
Los usuarios y las aplicaciones pueden interactuar con un sistema distribuido de manera
consistente y uniforme, independientemente de dónde y cuándo tenga lugar la interacción.
Los sistemas distribuidos se caracterizan por ser relativamente fáciles de expandir o
escalar.
Un sistema distribuido normalmente estará continuamente disponible, aunque quizás
algunas de sus partes puedan estar temporalmente fuera de servicio. Ante esta situación los
usuarios y las aplicaciones no deberían notar estas afectaciones.
Entre las principales ventajas que distinguen el uso de una aproximación distribuida para el
desarrollo de sistemas informáticos, cabe destacar las siguientes (Coulouris et al., 2009):
Compartición de recursos. Un sistema distribuido permite compartir recursos de hardware
y software tales como: discos, impresoras, archivos, datos, y compiladores que se asocian
con computadoras de una red.
Apertura. Los sistemas distribuidos son normalmente abiertos, lo que significa que se
diseñan sobre protocolos estándares que permiten combinar equipamiento y software de
diferentes creadores.
Concurrencia. En un sistema distribuido, varios procesos pueden operar al mismo tiempo
sobre diferentes computadoras de la red. Estos procesos pueden comunicarse con otros
durante su funcionamiento normal.
Escalabilidad: Al menos en principio, los sistemas distribuidos son escalables en tanto la
capacidad del sistema puede incrementarse añadiendo nuevos recursos para cubrir nuevas
demandas sobre el sistema. En la práctica, la red que une las computadoras individuales
del sistema puede limitar la escalabilidad del sistema. Si se añaden muchas computadoras,
entonces la capacidad de la red puede resultar inadecuada.
Tolerancia a fallos: La disponibilidad de varias computadoras y el potencial para producir
información, permite que los sistemas distribuidos sean tolerantes a algunos fallos de
funcionamiento del hardware y del software. En la mayoría de los sistemas distribuidos, se
puede proporcionar un servicio degradado cuando ocurren fallos de funcionamiento; una
completa pérdida de servicio solo ocurre cuando existe un fallo de funcionalidad en la red.
A pesar de las indiscutibles ventajas que representa el empleo de los sistemas distribuidos en la
actualidad, ha de mencionarse que, en comparación con los sistemas que se ejecutan sobre un
Capítulo 1: Sistemas informáticos distribuidos
7
único procesador o un clúster de procesadores, los sistemas distribuidos son más complejos que
los sistemas centralizados, esto hace más difícil comprender sus propiedades emergentes y probar
estos sistemas. Otro elemento que cobra vital importancia en los sistemas distribuidos es la
seguridad, ya que a estos sistemas puede accederse desde diferentes computadoras, y el tráfico en
la red puede estar sujeto a escuchas indeseadas.
1.2 Arquitecturas de sistemas distribuidos
Los sistemas distribuidos a menudo son piezas complejas de software cuyos componentes, por
definición, están dispersos en múltiples máquinas. Para dominar esta complejidad, es crucial que
estos sistemas estén organizados adecuadamente. La división de responsabilidades entre los
componentes en un sistema informático distribuido y la ubicación de estos en la red, es quizás el
aspecto más evidente en el diseño de entornos de computación distribuido (Jelly et al., 2016).
Un modelo arquitectónico define la forma en que los sistemas interaccionan unos con otros y la
manera en que se vinculan con la red de computadoras subyacente (Kazman, 2014). La elección
de un correcto modelo de arquitectura de distribución es una decisión clave que afecta
prestaciones, rendimiento y fiabilidad del sistema resultante. A continuación se detallan algunos
de los principales modelos arquitectónicos utilizados en el desarrollo de aplicaciones distribuidas.
1.2.1 Arquitectura Cliente-Servidor
El modelo arquitectónico cliente-servidor históricamente ha sido uno de los más importantes y
continua siendo ampliamente utilizado (Oluwatosin, 2014). En una arquitectura cliente-servidor,
una aplicación se modela como un conjunto de servicios proporcionados por los servidores y un
conjunto de clientes que usan estos servicios. En este tipo de sistema los clientes necesitan conocer
qué servidores están disponibles y los servicios que éstos proporcionan, pero normalmente no
conocen la existencia de otros clientes. En este modelo arquitectónico clientes y servidores son
procesos diferentes. Como se muestra en la Figura 1.1 los servidores no necesitan conocer la
cantidad ni la identidad de los clientes, aunque es importante destacar que los servidores pueden,
a su vez, ser clientes de otros servidores.
Figura 1.1 Arquitectura cliente-servidor
Capítulo 1: Sistemas informáticos distribuidos
8
La arquitectura cliente-servidor más simple se denomina arquitectura cliente-servidor de dos
capas, en la que una aplicación se organiza como un servidor (o múltiples servidores idénticos) y
participan un conjunto de clientes.
Las arquitecturas cliente-servidor de dos capas pueden ser de dos tipos:
a) Modelo de cliente ligero (thin-client). En un modelo de cliente ligero, todo el
procesamiento de las aplicaciones y la gestión de los datos se lleva a cabo en el servidor.
El cliente simplemente es responsable de la capa de presentación del software.
b) Modelo de cliente pesado (fat-client). En este modelo, el servidor solamente es responsable
de la gestión de los datos. El software del cliente implementa la lógica de la aplicación y
las interacciones con el usuario del sistema.
Una gran desventaja del modelo de cliente ligero es que ubica una elevada carga de procesamiento
tanto en el servidor como en la red. El servidor es responsable de todos los cálculos, y esto puede
implicar la generación de un tráfico significativo en la red entre el cliente y el servidor (Ansari et
al., 2005). Por otro lado, los dispositivos de cómputo modernos disponen de una potencia
significativa de procesamiento, que se usa poco en la aproximación de cliente ligero.
El modelo de cliente pesado utiliza la potencia de procesamiento disponible y distribuye tanto el
procesamiento de la lógica de la aplicación como la presentación al cliente (Surhone et al., 2010).
El servidor es esencialmente un servidor de transacciones que gestiona todas las transacciones de
la base de datos.
Aunque el modelo de cliente pesado distribuye el procesamiento de forma más efectiva que el
modelo de cliente ligero, la gestión del sistema es más compleja, debido a que la funcionalidad de
la aplicación se expande entre varias computadoras. Por otra parte, si se modifica la aplicación
será necesario reinstalarla en cada computadora cliente, lo que puede significar un costo
importante cuando haya muchos clientes en el sistema.
Un problema existente durante el empleo de una aproximación cliente-servidor de dos capas es
que las tres capas lógicas (presentación, procesamiento de la aplicación y gestión de los datos)
deben asociarse con dos computadoras: el cliente y el servidor. Esto puede provocar problemas en
términos de escalabilidad y rendimiento si se elige el modelo de cliente ligero, o problemas con la
gestión del sistema si se usa el modelo de cliente pesado.
Una alternativa para evitar estos problemas es utilizar una arquitectura cliente-servidor de tres
capas. En esta arquitectura la presentación, el procesamiento de la aplicación y la gestión de los
datos son procesos lógicamente separados que se ejecutan sobre procesadores diferentes.
Capítulo 1: Sistemas informáticos distribuidos
9
1.2.2 Arquitectura de n−capas
Una primera extensión del modelo cliente-servidor básico sería el modelo de tres o más capas, que
se utiliza ampliamente hoy en día en todo tipo de aplicaciones distribuidas. El objetivo principal
en el empleo de la arquitectura de n-capas es proporcionar un soporte adecuado a los cambiantes
requerimientos que demandan los procesos de negocios actuales (Caballé and Xhafa, 2007).
La separación por capas permite descomponer la aplicación, de manera que cada parte sea
gestionada por uno o varios servidores especializados. El cliente hace una solicitud al servidor de
la capa inmediata que está preparado para recibir y gestionar las solicitudes entrantes. El servidor
de esta capa, a su vez, actúa como cliente y hace una solicitud a otro servidor. Finalmente, el
servidor de la última capa devuelve un resultado que se retorna en sentido inverso a la solicitud y
se trata en cada capa hasta llegar de vuelta al usuario (Figura 1.2).
Figura 1.2 Arquitectura de n capas.
Una de las ventajas que ofrece este modelo es que se puede separar e instalar cada capa en las
máquinas o nodos del sistema más apropiado, según las necesidades de cada una. Así, la capa de
información se instalará en máquinas con gran capacidad de almacenamiento para soportar y
gestionar la base de datos. La capa de negocios se ubicará en máquinas con procesadores de alto
rendimiento para ejecutar eficientemente la lógica de la aplicación. Por último, las máquinas de
los clientes finales dispondrán de aplicaciones adecuadas para mostrar a los usuarios la
información recibida mediante potentes interfaces gráficas. De esta manera, cada servidor puede
disponer del hardware y software adecuados para llevar a cabo su función y puede estar localizado
en el lugar apropiado.
Los sistemas multicapas pueden emplearse cuando las aplicaciones necesitan acceder y usar datos
de diferentes bases de datos (Van Steen and Tanenbaum, 2017). En este caso, un servidor de
integración se ubica entre el servidor de aplicaciones y los servidores de la base de datos. El
servidor de integración recoge los datos distribuidos y los presenta a la aplicación como si se
obtuviesen desde una única base de datos.
Capítulo 1: Sistemas informáticos distribuidos
10
Las arquitecturas cliente-servidor de tres capas y las variantes multicapas que distribuyen el
procesamiento de la aplicación entre varios servidores son intrínsecamente más escalables que las
arquitecturas de dos capas (Douglas, 2006). Por otro lado, el empleo de esta arquitectura posibilita
que el procesamiento de la aplicación y la parte más volátil del sistema puedan actualizarse
fácilmente, debido a que está localizada centralmente.
Otra de las ventajas que ofrece el empleo de la arquitectura de n-capas es la posibilidad, en algunos
casos, de distribuir el procesamiento entre la lógica de la aplicación y los servidores de gestión de
datos, lo cual permite dar respuestas más rápidas a las peticiones de los clientes.
1.2.3 Arquitectura objetos distribuidos
El modelo arquitectónico cliente-servidor funciona bien para muchos tipos de aplicaciones. Sin
embargo, limita la flexibilidad de los diseñadores del sistema debido a que este modelo implica
tomar la decisión de dónde se ofrece cada servicio. También debe planificarse la escalabilidad y
proporcionar algún medio para distribuir la carga sobre los servidores cuando aumenta
considerablemente la cantidad de clientes que se añadan al sistema.
Una aproximación más general al diseño de sistemas distribuidos es eliminar la distinción entre
cliente y servidor y diseñar la arquitectura del sistema como una arquitectura de objetos
distribuidos (Stepisnik, 2007). En una arquitectura de objetos distribuidos (ver Figura 1.3), los
componentes fundamentales del sistema son objetos que proporcionan una interfaz a un conjunto
de servicios que ellos suministran. Otros objetos realizan llamadas a estos servicios sin hacer
ninguna distinción lógica entre un cliente (el receptor de un servicio) y un servidor (el proveedor
de un servicio).
Figura 1.3 Arquitectura basada en objetos.
Las ventajas del modelo de objetos distribuidos son las siguientes (van Steen and Tanenbaum,
2016):
Permite al diseñador del sistema retrasar decisiones sobre dónde y cómo deberían
proporcionarse los servicios. Esto se debe a que los objetos que proporcionan servicios
pueden ejecutarse sobre cualquier nodo de la red. Por lo tanto, la distinción entre los
Capítulo 1: Sistemas informáticos distribuidos
11
modelos de cliente pesado y ligero es irrelevante, ya que no hay necesidad de decidir con
antelación dónde se sitúa la lógica de aplicación de los objetos.
Es una arquitectura de sistema muy abierta que permite añadir nuevos recursos con gran
facilidad, esto se debe a que se han desarrollado e implementado estándares de
comunicación de objetos que permiten escribir objetos en diferentes lenguajes de
programación los cuales pueden comunicarse y proporcionar servicios entre ellos.
El sistema es flexible y escalable permitiendo crear diferentes instancias de él,
proporcionando los mismos servicios por objetos diferentes o por objetos reproducidos
para hacer frente a las diferentes cargas del sistema. Pueden añadirse nuevos objetos a
medida que la carga del sistema se incrementa sin afectar al resto de los objetos existentes.
Si es necesario, es posible reconfigurar el sistema de forma dinámica mediante la migración
de objetos a través de la red. Esto puede ser importante en casos donde haya fluctuación
en los patrones de demanda de servicios; en este caso, un objeto que proporciona servicios
puede migrar al mismo procesador que los objetos que demandan los servicios, en lo que
mejora el rendimiento del sistema.
La principal desventaja en el empleo de la arquitectura de objetos distribuidos es que el diseño es
mucho más complejo que el de los sistemas cliente-servidor, debido a que estos últimos parecen
ser la forma más natural de concebir sistemas distribuidos. Es más difícil pensar en una provisión
de servicios generales y todavía no se ha logrado una gran experiencia en el diseño y desarrollo de
objetos de negocio utilizando este modelo (Sommerville, 2005).
1.2.4 Sistemas punto a punto
En el paradigma cliente-servidor, los procesos participantes juegan el rol de cliente o servidor. En
este caso los procesos cliente solicitan peticiones mientras que los procesos servidores escuchan
de forma pasiva para servir dichas peticiones y proporcionar los servicios solicitados en respuesta.
En particular, el paradigma no da soporte para que el proceso servidor inicie la comunicación.
Los sistemas de red Punto a Punto (Peer-to-Peer) son sistemas descentralizados en los que los
cálculos pueden llevarse a cabo en cualquier nodo de la red. En las aplicaciones Peer-to-Peer, el
sistema en su totalidad se diseña para aprovechar la ventaja de la potencia computacional y
disponibilidad de almacenamiento a través de una red de computadoras potencialmente enorme
(Rodrigues and Druschel, 2010).
Este tipo de sistema emplea, como mecanismo de organización a nivel de aplicación, la
superposición de red para compartir de forma flexible los recursos almacenados en los equipos de
toda la red. A diferencia del modelo cliente-servidor, cualquier nodo en un sistema Peer-to-Peer
Capítulo 1: Sistemas informáticos distribuidos
12
puede actuar como servidor para otros y, al mismo tiempo, actuar como un cliente, ver Figura 1.4.
La comunicación y el intercambio de información se realizan directamente entre los nodos de la
red y las relaciones entre estos son iguales (Kshemkalyani and Singhal, 2011).
Figura 1.4 Sistema de red Punto a Punto
El elemento fundamental en todo sistema de red Punto a Punto es un par, este es la unidad de
procesamiento básico de cualquier sistema Peer-to-Peer. Un par es una entidad capaz de
desarrollar operaciones y de comunicar los resultados obtenidos a otra entidad de la red, ya sea
directa o indirectamente.
Existen dos tipos de pares (Kwok, 2011):
Pares simples. Proporcionan servicios a un único usuario final, empleando los servicios
ofrecidos por otros pares de la red. Este tipo de par suele tener una naturaleza dinámica y
heterogénea, es decir, se conecta a la red de forma intermitente y tiene capacidades muy
distintas.
Súper pares. Ayudan a los pares simples a encontrar otros pares que brindan servicios útiles
para el desarrollo de una determinada operación. En este caso los pares simples lanzan
solicitudes de búsqueda de recursos a los súper pares y estos son los encargados de indicar
donde obtenerlos. Generalmente los súper pares tienen una naturaleza estática, se
encuentran conectados normalmente a la red y pueden accederse fácilmente.
Una característica importante en los sistemas Punto a Punto es que proporcionan una gran
capacidad de almacenamiento combinado, potencia de CPU y otros recursos, a la vez que imponen
un bajo costo de escalabilidad y entrada-salida de la red. Por otro lado, este tipo de sistema exhibe
un alto nivel de auto organización permitiéndole operar de manera eficiente a pesar de la falta de
cualquier infraestructura y aprovechar las potencialidades de Internet para crear plataformas
distribuidas de millones de computadoras con el fin de compartir información, crear
organizaciones virtuales o plataformas de computación distribuida.
Capítulo 1: Sistemas informáticos distribuidos
13
1.3 Mecanismos de comunicación entre procesos distribuidos
El término comunicación entre procesos describe un escenario en el que dos o más procesos se
comunican entre sí. Estos procesos pueden residir en la misma computadora o pueden estar en
computadoras diferentes conectadas a través de una red.
El funcionamiento correcto de los procesos cooperativos está sujeto a los mecanismos de
comunicación entre procesos, IPC (acrónimo del inglés Interprocess Communication). Entre esos
mecanismos se pueden citar los siguientes: las tuberías sin nombre (Pipes), tuberías con nombre
(FIFOs), colas de mensajes, semáforos, segmentos de memoria compartida, entre otros
(Silberschatz et al., 2018) . En los apartados siguientes se analizan algunos mecanismos de
comunicación.
1.3.1 Socket
Los sockets constituyen un mecanismo de comunicación, que permite el intercambio bidireccional
de información entre procesos que se ejecutan en una misma computadora o que se encuentran
distribuidos geográficamente (Haldar and Aravind, 2015).
Conceptualmente, un socket es una estructura de datos abstracta que permite establecer un enlace
que posibilita enviar y recibir información entre procesos diferentes (Gray, 2003).
Según (Ghosh, 2014) el socket es el punto final del enlace de comunicación, de doble sentido,
utilizado por procesos que establecen comunicación a través de la red.
Las aplicaciones que utilizan sockets suelen responder al modelo cliente-servidor (Xue and Zhu,
2009). Para establecer una conexión, el proceso servidor crea uno de los extremos de la conexión
(socket) y queda a la espera de peticiones de conexión enviadas por los clientes (estado de
escucha). El proceso cliente también crea un socket que especifica la dirección del servidor con el
cual realizará el intercambio de información y, finalmente, lanza una petición de conexión.
El servidor (está escuchando) atiende la solicitud recibida de cualquier cliente, procesa la
información y retorna los resultados obtenidos. Una vez terminada la comunicación, el socket
servidor vuelve al estado de escucha a esperar por nuevas solicitudes. Cuando el intercambio de
información termina, el proceso cliente y el proceso servidor cierran sus respectivos socket
finalizando así la conexión.
En general un socket se caracteriza por tres atributos (Gray, 2003):
Dominio: esta característica permite especificar la familia de direcciones reconocida por el socket.
Tipo de socket: el tipo de socket determina algunas propiedades básicas en la comunicación que
realizará el socket. Existen tres tipos de socket diferentes: stream, datagram y raw.
Capítulo 1: Sistemas informáticos distribuidos
14
Stream. Un socket de tipo stream proporciona un punto final para una conexión
bidireccional confiable. Los sockets de este tipo, una vez conectados, crean un canal de
comunicación que permanece abierto hasta que se cierran los extremos. En este caso los
datos enviados desde el socket emisor llegan en el mismo orden al socket receptor.
Datagram. Un socket de tipo datagram establece una conexión cada vez que necesita enviar
datos. En este caso se transmiten y reciben mensajes llamados datagramas de una longitud
máxima fija, sin detección de errores, ni retransmisión ante la pérdida de paquetes.
Además, no existe garantía de que el receptor reciba los paquetes en el mismo orden en
que fueron enviados.
Raw. Un socket de tipo raw admite un acceso a más bajo nivel, permitiendo establecer
directamente el protocolo IP del nivel de red. Su uso está mucho más limitado, ya que está
pensado principalmente para desarrollar nuevos protocolos de comunicación.
Protocolo: este atributo especifica el protocolo que se empleará, durante el intercambio de
información.
En los sistemas distribuidos, dos o más procesos se comunican a través de un protocolo de
comunicación, el cual: establece las reglas para el intercambio de información, regula el momento
y la forma en que los dispositivos transmiten los datos y determina cómo comportarse ante distintas
situaciones (Venkataram et al., 2014).
El Protocolo de Control de Transmisión TCP (acrónimo del inglés Transmission Control Protocol)
y el Protocolo de Datagrama de Usuario UDP (acrónimo del inglés User Datagram Protocol) son
los protocolos pertenecientes a la capa de transporte, comúnmente utilizado en la arquitectura de
protocolos TCP/IP.
Los protocolos TCP y UDP se diferencian en varios elementos fundamentales. En primer lugar,
UDP es un servicio sin conexión, donde no existe una fase inicial durante la cual se establezca un
conducto para la comunicación entre dos procesos. Dado que UDP no dispone de un conducto,
cuando un proceso desea enviar un lote de bytes a otro proceso, el proceso emisor tiene que asociar
la dirección del proceso de destino al lote de bytes y esto tiene que hacerse para cada lote de bytes
que el proceso emisor desee transmitir.
UDP proporciona un modelo de servicio no fiable, orientado al mensaje en el sentido de que los
lotes de bytes que se envían en una única operación en el lado del emisor serán entregados como
un lote en el extremo de recepción. Debe destacarse que este protocolo emplea un servicio de
entrega de mejor esfuerzo (best effort) por lo que no se garantiza que el lote de bytes sea entregado.
Esto contrasta con la semántica de flujo de bytes de TCP (Comer, 2016).
Capítulo 1: Sistemas informáticos distribuidos
15
Existe además otra diferencia importante. Tanto los paquetes de datos UDP como los segmentos
TCP pueden perderse. Si un paquete se pierde durante el empleo del protocolo UDP no se realiza
ninguna acción ante esta pérdida. Por el contrario, los segmentos perdidos se retrasmiten en el
protocolo TCP, de manera insistente, hasta que arriben correctamente al host receptor o se
produzca un número máximo de retransmisiones.
Finalmente, en aplicaciones en tiempo real es necesario también tener en cuenta que mediante el
empleo del protocolo UDP es posible controlar qué datos viajan en cada paquete. En el TCP esto
no es posible porque el empaquetamiento es automático. De hecho, TCP espera un tiempo
prudencial para tener suficientes datos que transmitir antes de enviar un segmento con el fin de
ahorrar ancho de banda. Si es importante que los datos tarden el mínimo tiempo posible en llegar
al receptor, el protocolo UDP es la mejor opción. En este sentido se dice que el protocolo UDP
tiene una menor latencia que el TCP (Walton, 2001).
Atendiendo al protocolo utilizado por el socket, pueden distinguirse dos tipos fundamentales:
Orientado a conexión. La comunicación orientada a conexión se logra a través del
protocolo TCP que proporciona un canal de comunicación confiable.
No orientada a conexión. La comunicación no orientada a conexión se logra a través del
protocolo UDP, mediante una conexión no fiable donde puede existir pérdida de
información.
1.3.2 Llamada a Procedimientos Remotos (RPC)
En el paradigma de programación procedimental, un procedimiento o función es una estructura de
control que proporciona la abstracción correspondiente a una determinada acción (Umar, 2004) .
La función se invoca a través de una llamada que puede ir acompañada de una lista de datos,
conocidos como argumentos. La llamada a un procedimiento convencional es aquella q se realiza
a un procedimiento que se ubica en el mismo host desde el cual se invoca y, por tanto, se denomina
llamada a procedimiento local. La llamada a procedimientos remotos parte de la misma idea, pero
en este caso dicha solicitud se interpreta como una invocación a un procedimiento que se ejecutará
en otra computadora.
Según (Tanenbaum and Van Steen, 2007) se define la Llamada a Procedimiento Remoto (RPC)
como un mecanismo de comunicación entre procesos, que permite ejecutar una subrutina o
procedimiento en un espacio de memoria remoto, sin la necesidad de especificar explícitamente
los detalles de esta interacción remota.
Capítulo 1: Sistemas informáticos distribuidos
16
A partir de la definición anterior es posible afirmar que RPC es un esquema de comunicación
síncrono, donde se establece un flujo de información bidireccional que permite desarrollar
aplicaciones que responden al modelo cliente-servidor.
La semántica de las llamadas RPC permite a un proceso cliente invocar un procedimiento remoto
del mismo modo que invocaría un procedimiento local. La herramienta principal que permite esta
abstracción es el llamado stub, subprograma que consta de dos módulos: transmisión y recepción,
ambos para el cliente y servidor (Czaja, 2018). La principal tarea de los stubs es convertir los
parámetros del procedimiento en mensajes adecuados para su transmisión a través de la red.
A continuación se detalla el flujo de eventos desarrollados durante una llamada a RPC (Robbins
and Robbins, 2015) ver Figura 1.5 :
El cliente invoca un procedimiento remoto especificando el nombre y los parámetros necesarios
para una correcta ejecución. Ante estas especificaciones el stub se encarga de transformar los
argumentos y formar con ellos un mensaje apropiado para transmitirse por la red. La conversión
en un mensaje de red se conoce como marshaling the arguments y consiste en organizar los
argumentos empleando un formato independiente de la arquitectura de las computadoras. El
formato estándar para la representación de datos independientes de la máquina se denomina
Representación Externa de Datos (del inglés External Data Representation). Una vez realizado
esto, el stub del cliente transmite el mensaje al servidor usando el método de paso de mensaje.
Cuando llega una solicitud de un cliente al servidor, el sistema operativo del nodo remoto la pasa
al stub del servidor, el cual se encuentra en el estado de espera, para que desempaquete los
parámetros e invoque el procedimiento solicitado como local. Cuando la llamada del
procedimiento local termine, el stub del servidor organiza los valores devueltos para formar un
mensaje de red apropiado y transmite la respuesta hasta el nodo del cliente. A partir de aquí la
secuencia de pasos seguiría a la inversa. Es necesario mencionar que algunos de los puntos
descritos previamente pueden variar ligeramente, dependiendo del sistema o protocolo de
procedimiento remoto empleado.
Figura 1.5 Pasos para realizar una llamada a procedimiento remoto.
Capítulo 1: Sistemas informáticos distribuidos
17
Según (Llaven, 2015) el empleo de RPC como mecanismo de comunicación entre procesos
presenta las siguientes ventajas:
Posee una semántica limpia, general y comprensible.
Permite diseñar una aplicación distribuida empleando la misma abstracción utilizada para
implementar una aplicación no distribuida.
La distribución de la aplicación es transparente para el usuario y todos los detalles de
comunicación están ocultos.
A pesar de las ventajas que representa el empleo de este mecanismo de comunicación entre
procesos, existen algunas restricciones en su empleo como:
Restricción de paradigma de programación: esto se debe a la exclusión de otros enfoques,
como la programación funcional o declarativa.
Restricciones en el paso de parámetros: debido a que el cliente y el servidor se encuentran
en diferentes espacios de memorias, es imposible el paso de apuntadores durante la llamada
a un procedimiento remoto.
Imposibilidad en algunos casos de conformar un mensaje de red, cuando se emplean
parámetros de los cuales no es posible determinar su longitud.
Imposibilidad en el empleo de variables globales.
Los sistemas RPC pueden utilizar llamadas asíncronas, mediante las cuales un cliente continúa su
ejecución inmediatamente después de emitir la solicitud a un procedimiento remoto. Durante el
empleo de RPC asíncronas, el servidor envía inmediatamente una respuesta al cliente en el
momento en que recibe la solicitud, y posteriormente ejecuta el procedimiento solicitado. La
respuesta actúa como una confirmación por parte del servidor para el cliente informándole que su
petición será procesada. El cliente continuará sin bloquearse tan pronto como haya recibido el
acuse de recibo por parte del servidor. En la Figura 1.6 se muestra una comparación entre los
diferentes comportamientos en el empleo de RPC.
Figura 1.6 (a) muestra el comportamiento normal de solicitud-respuesta
(b) muestra cómo el cliente y el servidor interactúan en el caso de RPC asíncronas
Capítulo 1: Sistemas informáticos distribuidos
18
El empleo de RPC asíncronas a veces también se denomina RPC síncrono diferido. Cabe señalar
que existen variantes de RPC asíncronas en las que el cliente continúa ejecutándose
inmediatamente después de enviar la solicitud al servidor. En otras palabras, el cliente no espera
un acuse de recibo por parte del servidor; tales RPC se denominan de una vía. El problema con
este enfoque es que cuando la fiabilidad no está garantizada, el cliente no conoce con certeza si su
solicitud será procesada o no.
1.3.3 Invocación de Métodos Remotos (RMI)
El mecanismo de comunicación entre procesos, Invocación de Métodos Remotos (del inglés
Remote Method Invocation - RMI), es una funcionalidad disponible únicamente en el lenguaje de
programación Java que permite a aplicaciones orientadas a objetos comunicarse con objetos que
residen en programas que se ejecutan en máquinas remotas. (Schildt, 2017).
Lo planteado anteriormente permite considerar a RMI como una implementación orientada a
objetos del modelo de Llamada a Procedimientos Remotos (Grosso, 2002).
Según (Coulouris et al., 2013) los puntos en común entre RMI y RPC son los siguientes:
Ambos mecanismos admiten la programación mediante el empleo de interfaces,
proporcionando los beneficios que se derivan de este enfoque.
Ofrecen un nivel de transparencia similar, es decir, las llamadas locales y remotas utilizan
la misma sintaxis y en ambos casos las interfaces remotas suelen exponer la naturaleza
distribuida de las llamadas subyacentes.
A pesar de los elementos comunes, los sistemas RMI y RPC difieren en dos aspectos
fundamentales. En primer lugar, el mecanismo RPC soporta la programación procedimental por
lo que solo se puede llamar a procedimientos o funciones remotas. Por el contrario, el mecanismo
RMI se basa en objetos permitiendo invocar métodos correspondientes a objetos remotos. En
segundo lugar, los parámetros suministrados a procedimientos remotos en RPC son estructuras de
datos ordinarias, mientras que el empleo de RMI, permite pasar objetos como parámetros a los
métodos remotos (Silberschatz et al., 2018).
Típicamente, una aplicación RMI está compuesta de un cliente y un servidor. El servidor se
encarga de crear los objetos remotos, hacerlos accesibles y permanecer a la espera de llamadas
dirigidas a esos objetos remotos. El cliente, por su parte, debe obtener referencias sobre esos
objetos remotos y, en ese momento, puede hacer uso de ellas para realizar llamadas remotas.
En una aplicación distribuida, que emplea como modelo de comunicación RMI, aunque la
programación tiene el mismo aspecto que en el caso no distribuido, se utiliza un mecanismo
Capítulo 1: Sistemas informáticos distribuidos
19
completamente diferente para conectar estos objetos. En la práctica, la comunicación entre clientes
y servidores no es directa, siempre media entre ambos los elementos stub y skeleton.
En este caso, cuando un cliente invoca un método remoto, se llama al stub correspondiente al
objeto remoto. Este stub del lado del cliente es responsable de crear un paquete, que consta del
nombre del método que se va a invocar en el servidor y los parámetros debidamente empaquetados.
El stub envía entonces ese paquete al servidor, donde el skeleton correspondiente al objeto remoto
lo recibe. El skeleton es responsable de desempaquetar los parámetros e invocar el método
solicitado en el servidor. Una vez que el método se ejecuta, el skeleton empaqueta entonces la
respuesta obtenida como resultado de la ejecución del método invocado, o la excepción si existe,
y lo devuelve al cliente. El stub del lado del cliente es el encargado de desempaquetar la respuesta
de retorno y entregárselo al proceso solicitante.
Tanto el stub como el skeleton utilizan el mecanismo de serialización para comunicarse con el
objeto remoto, intercambiando flujos de bytes.
De forma general un sistema RMI consta de tres capas, ver Figura 1.7 (Hanumant Pawar et al.,
2015):
La capa de stub / skeleton: esta capa es la interfaz entre la aplicación y el resto del sistema
RMI, permite localizar objetos remotos para invocar sus métodos como si fueran locales.
La capa de referencia remota implementa la semántica del tipo de invocación, por ejemplo,
comunicación de unidifusión o multidifusión. Esta capa, por lo tanto, proporciona un
marco para agregar tipos adicionales de comunicación de objetos remotos.
La capa de transporte es responsable de la configuración y gestión de la conexión,
seguimiento y la distribución de los objetos remotos.
Figura 1.7 Arquitectura de RMI
RMI incluye estas tres capas de abstracción en ambos extremos comunicantes, lo que permite
transformar la invocación de un método remoto en una llamada a un método local y gestionar los
detalles de la comunicación entre procesos subyacentes.
Las ventajas más importantes del mecanismo de comunicación entre procesos RMI son la facilidad
de uso y la completa compatibilidad de los tipos de datos. Esto se debe a que siempre que un objeto
Capítulo 1: Sistemas informáticos distribuidos
20
sea serializable, puede usarse en una llamada a un método de un objeto remoto. Por estas razones,
RMI es una tecnología esencial para todas las aplicaciones distribuidas de Java, aunque
naturalmente solo se puede usar entre un cliente Java y un servidor Java (Dave Evans, 2002).
En este punto cabe destacar que como resultado final de este trabajo se obtiene la implementación
de un sistema informático distribuido de ayuda al aprendizaje de la Matemática, el cual empleará
como mecanismo de comunicación entre procesos Invocación de Métodos Remotos. Esta decisión
fue tomada teniendo como base el análisis crítico realizado sobre los mecanismos de comunicación
anteriormente expuestos. Además de considerar otras ventajas relacionadas con el empleo de RMI,
como el hecho de que este mecanismo permite realizar una gestión sencilla y flexible de la
concurrencia y un procesamiento simultáneo de las solicitudes de los clientes, mediante la creación
de un nuevo subproceso de ejecución por cada cliente que realice una petición.
Por otro lado, ha de destacarse que este mecanismo de comunicación soporta el paso de objetos
por valor permitiendo minimizar el tráfico en la red, ya que, una vez recibido el objeto, todas las
comunicaciones con él serán locales permitiendo emplear todas las potencialidades del modelo
orientado a objetos en la computación distribuida.
Además, debe recalcarse que RMI permite establecer comunicación con sistemas existentes y
heredados utilizando la interfaz de método nativo de Java estándar JNI.
Finalmente, no se puede dejar de mencionar que su empleo da soporte a comunicaciones seguras
mediante un administrador de seguridad. Además de poseer otras opciones que permiten controlar
cómo se realizan las invocaciones a métodos remotos a nivel de red, el establecimiento de la
conexión y la codificación de datos.
1.4 El Software Educativo distribuido como forma de apoyo a la enseñanza
La incorporación de las Tecnologías de la Información y la Comunicación (TIC) al desarrollo de
la sociedad actual ha representado un factor determinante en su progreso. Particularmente, el
proceso docente educativo se sitúa en un momento de cambio favorecido por la innovación
tecnológica, lo cual ha dado lugar al desarrollo de contextos educativos alternativos a la educación
tradicional (De La Torre et al., 2014).
Un papel fundamental, en estos momentos de cambios, lo juega el software educativo como un
ambiente que proporciona el medio adecuado para aprender a través del empleo de las redes,
abriendo un abanico de posibilidades en modalidades formativas que pueden situarse tanto en el
ámbito de la educación a distancia, como en las modalidades de enseñanza presencial.
El concepto de software educativo ha sido abordado por diferentes autores, atribuyéndole disímiles
definiciones, dentro de las cuales se destacan:
Capítulo 1: Sistemas informáticos distribuidos
21
Según Aedo y Romero, un software educativo es cualquier programa computacional cuyas
características estructurales y funcionales sirvan de apoyo al proceso de enseñar, aprender y
administrar (Aedo and Romero, 2006).
Graells, Pere Marqués lo define como un programa creado con la finalidad específica de ser
utilizado como medio didáctico, es decir, para facilitar los procesos de enseñanza y aprendizaje
(Graells, 2000).
Estas definiciones engloban todas las aplicaciones informáticas que han sido elaboradas con fines
didácticos. Desde los programas tradicionales basados en los modelos conductistas de la
enseñanza, hasta los programas de Enseñanza Inteligente Asistida por Computadora, que emplean
técnicas propias del campo de Sistemas Experto y de la Inteligencia Artificial, permitiendo imitar
la labor tutorial personalizada que realizan los profesores.
Dentro de las principales características asociadas con los software educativos están (Labrada,
2011):
Permiten la interactividad con los estudiantes, retroalimentándolos y evaluando lo
aprendido.
Facilitan las representaciones y simulaciones de procesos complejos no perceptibles por el
ojo humano.
Inciden en el desarrollo de las habilidades a través de la ejercitación.
Facilitan el trabajo independiente y el tratamiento de las diferencias individuales.
Posibilitan que el estudiante asuma un papel activo en la construcción del conocimiento.
Permiten transmitir gran volumen de información en un menor tiempo, de forma amena y
regulada por el usuario.
Desarrollan los procesos lógicos del pensamiento, la imaginación, la creatividad y la
memoria.
La funcionalidad del software educativo está determinada por las características y el uso que se
haga de él, sin embargo, se pueden señalar algunas funciones que serían propias de este medio
(Valcárcel and Rodero, 2013):
Función informativa: se presenta una información estructurada de la realidad.
Función instructiva: orientan el aprendizaje de los estudiantes, facilitando el logro de
determinados objetivos educativos.
Función motivadora: los estudiantes se sienten atraídos por este tipo de aplicaciones
informáticas, ya que los programas suelen incluir elementos para captar la atención de los
alumnos y mantener su interés.
Capítulo 1: Sistemas informáticos distribuidos
22
Función evaluadora: la mayoría de los programas ofrecen retroalimentación (feed back)
sobre las actuaciones de los alumnos corrigiendo, de forma inmediata, los posibles errores
de aprendizaje y presentando ayudas adicionales cuando se necesitan. Se puede decir que
ofrecen una evaluación continua y en algunos casos también una evaluación final o
explícita, cuando el programa presenta informes sobre la actuación del alumno.
Función investigadora: muchos programas ofrecen interesantes entornos que propician la
investigación, búsqueda de informaciones, relacionar conocimientos, obtener
conclusiones, compartir y difundir la información.
Función metalingüística: los estudiantes pueden aprender los lenguajes propios de la
informática.
Las redes de computadoras están presentes en la vida cotidiana, aún cuando una gran cantidad de
usuarios no se percaten de su presencia, muchos de sus servicios se brindan de forma
imperceptible. Como era de esperarse la tecnología de las redes de computadoras también se
emplea en la enseñanza cada día más, a través del empleo de software educativos distribuidos.
El empleo de los software educativos durante el desarrollo del proceso docente motiva a los
estudiantes de la era actual, incrementa el interés por realizar tareas académicas, permite el
desarrollo continuo de la actividad intelectual, facilita el desarrollo de iniciativas, permite aprender
de los errores, ayuda a realizar actividades cooperativas con un alto grado de interdisciplinariedad
y a la vez fortalece el aprendizaje autónomo.
Una de las principales ventajas que brinda el software educativo viene dada por la interacción con
los sistemas, lo que permite al estudiante asumir una actitud activa durante el proceso de
aprendizaje a la vez que centra su atención en el desarrollo de la actividad. Este tipo de medio se
apoya en la memoria visual, lo cual es muy importante en estudiantes de los primeros grados.
Otro aspecto digno de destacar es el hecho de que las explicaciones, preguntas, correcciones así
como la evaluación se hacen de modo inmediato, con lo que la efectividad pedagógica se acentúa,
al individualizarse el trabajo y personalizar el ritmo de aprendizaje.
Un papel fundamental en la educación lo juegan los profesores, los cuales son los encargados de
hacer que el software sea una fuente de aprendizaje y que cumpla con los niveles de enseñanza
requeridos para que el alumno logre interiorizar los conocimientos necesarios para su desarrollo.
Como se plantea en (Sicardi, 2004) la educación no puede estar enfatizada en un aprendizaje
dirigido por el profesor sin autoaprendizaje. Es necesario buscar un equilibrio adecuado tendiendo
a la educación permanente por lo que enseñar a los estudiantes a aprender, pensar y analizar a
través de medios interactivos es una tarea fundamental para los profesores.
Capítulo 1: Sistemas informáticos distribuidos
23
1.5 Conclusiones parciales
La enseñanza es una tarea compleja que necesita de recursos que ayuden a hacerla más amena y
productiva. Comprender la necesidad del empleo del software educativo en el proceso docente
educativo y la incidencia positiva en este proceso es uno de los primeros pasos para lograr una
enseñanza de calidad y transformar la instrucción tradicional.
En el capítulo se ha expuesto un análisis de los principales aspectos necesarios para la comprensión
de la presente propuesta, tales son los conceptos relacionados con los sistemas informáticos
distribuidos, principales arquitecturas y mecanismos de comunicación empleados. En el próximo
capítulo se explicará cómo se desarrolló el rediseño y reimplementación del software distribuido
presentados, evidenciando una aplicación práctica de los conceptos previamente expuestos.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
24
CAPÍTULO 2. DISEÑO E IMPLEMENTACIÓN DEL SISTEMA DISTRIBUDO “LA ISLA DE LAS MATEMÁTICAS” El presente capítulo aborda aspectos esenciales sobre el análisis, diseño e implementación del
sistema distribuido “La Isla de las Matemáticas”. Se especifican los requisitos tanto funcionales
como no funcionales del sistema con el objetivo de tener amplios conocimientos del caso de
estudio. Además, se definen los casos de uso a partir de dichos requerimientos y se desarrollan los
principales diagramas que ofrecen una descripción detallada de la arquitectura y funcionamiento
del sistema.
2.1 Modelado del sistema
El diseño del sistema distribuido “La Isla de las Matemáticas” fue realizado utilizando el Lenguaje
Unificado de Modelado (Unified Modeling Language, UML). Este lenguaje tiene entre sus
objetivos principales la especificación, visualización, construcción y documentación de los
productos de un sistema de software (Mouheb et al., 2015).
UML es un lenguaje de modelado que utiliza conceptos orientados a objetos y posee una sintaxis
y semántica bien definidas, lo que permite emplearlo en todas las etapas de desarrollo del sistema
y no solo en el proceso de diseño. Dicho lenguaje es utilizado por el Proceso Racional Unificado
(Rational Unified Process, RUP) como lenguaje de modelado, brindando soporte para varios tipos
de diagramas, que constituyen diferentes vistas del modelo del producto (Booch, 2017). A lo largo
de este capítulo se presentarán diagramas UML que faciliten la comprensión del sistema
presentado.
2.1.1 Requerimientos del sistema
La obtención y el análisis de requerimientos es un proceso que se lleva a cabo para la comprensión
de los servicios que ofrecerá el sistema por implementar. Durante este proceso también se
identifican y definen las restricciones del funcionamiento y desarrollo. Esta etapa se le conoce
como ingeniería de requerimientos.
La gestión de requerimientos es un punto fundamental en el proceso de creación de cualquier
sistema computacional (Sommerville, 2015). Esto se debe a que los requerimientos del sistema
permiten establecer, en detalle, los servicios, restricciones y metas que debe cumplir el producto
informático. A menudo, los requerimientos de los sistemas de software se clasifican en funcionales
y no funcionales.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
25
Requerimientos funcionales
En (Pressman and Bruce R. Maxim, 2014) se precisa que los requerimientos funcionales son
declaraciones de los servicios que proveerá el sistema, la manera en que este reaccionará ante
entradas particulares y cómo se comportará en situaciones específicas. En algunos casos, los
requerimientos funcionales de los sistemas también declaran explícitamente lo que el sistema no
debe hacer.
A continuación se presentan los requerimientos funcionales inherentes al sistema “La Isla de las
Matemáticas”:
1. Gestionar la información referente a los estudiantes que interactúan con el sistema.
2. Obtener reportes asociados al desarrollo de los ejercicios por parte de los estudiantes.
3. Exportar registros generados durante la realización de los ejercicios por los alumnos.
4. Gestionar ejercicios.
5. Obtener reportes vinculados a los ejercicios contenidos en el sistema.
6. Permitir al profesor acceder a documentos externos de índole metodológico.
7. Permitir al estudiante realizar ejercicios que contribuyan al desarrollo de habilidades en la
asignatura Matemática impartida en el Primer Ciclo de la Enseñanza Primaria.
Requerimientos no funcionales
Los requerimientos no funcionales son restricciones de los servicios o funciones ofrecidos por el
sistema (Laplante, 2017). Esos requisitos son aquellos que no se refieren directamente a las
funciones específicas que ofrece el sistema, sino a propiedades emergentes como: la fiabilidad,
tiempo de respuesta, capacidad de almacenamiento y estándares a seguir.
Dentro de los principales requerimientos no funcionales asociados al sistema “La Isla de las
Matemáticas” del lado cliente y servidor cabe destacar:
1. Rendimiento:
Debe soportar varios usuarios conectados simultáneamente a la aplicación
servidora.
2. Seguridad:
Por cada rol debe existir un conjunto de funcionalidades bien definidas.
Las comunicaciones entre la aplicación servidora y los clientes debe poseer un
mínimo de seguridad.
3. Portabilidad:
La herramienta informática debe ser compatible con diferentes sistemas operativos.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
26
El producto informatico debe poseer una configuración sencilla y debe
desarrollarse aplicando patrones que faciliten el proceso de mantenimiento.
El sistema requiere la instalación previa de Java Runtime Enviroment (JRE).
4. Restricciones del diseño
Debe poder ejecutarse en computadoras caracterizadas por las siguientes
prestaciones:
RAM: 512MB, CPU: 2.50HGz, RED: 10mb/s, DISCO: 40GB
2.1.2 Análisis de actores y casos de uso
A partir de la descripción del problema, se elabora el diagrama de actores y casos de uso el cual
permite representa gráficamente los actores y su interacción con los procesos.
El modelo de casos de uso proporciona un medio sistemático e intuitivo de captura de requisitos
funcionales del sistema, basándose en los requerimientos de los usuarios. Para la realización de
este diagrama se identifica un actor como una entidad externa que interactúa con el sistema
participando en uno o varios casos de uso. Debe destacarse que los actores pueden ser personas
reales, otros sistemas o eventos externos.
El diagrama de casos de uso correspondiente al sistema aquí presentado está destinado a dos
actores fundamentales (Figura 2.1):
Estudiante. Utiliza el módulo del sistema orientado a la ejercitación de los conocimientos
adquiridos durante el proceso docente educativo.
Profesor. Gestiona la información referente a los estudiantes que emplean el sistema y los
ejercicios disponibles.
Según (Jacobson et al., 2000), un caso de uso es un fragmento de funcionalidad del sistema que
proporciona al usuario un resultado importante.
La unión de todos los casos de uso determinados a partir de la descripción de la problemática
constituye el modelo de casos de uso el cual describe la funcionalidad total del sistema.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
27
Figura 2.1 Casos de uso y actores del sistema “La Isla de las Matemáticas”.
A continuación se ilustran los diferentes casos de uso detectados durante el proceso de captura de
requisitos del sistema.
Resolver Ejercicio. Presenta los ejercicios agrupados por las materias de numeración,
cálculo y trabajo con fracciones. Estos ejercicios se caracterizan por poseer un
planteamiento, asociado con la problemática que se desea resolver y un conjunto de
distractores1 representando posibles respuestas asociadas al problema, incluyendo la
respuesta correcta. El sistema se encarga de evaluar las decisiones tomadas por el usuario.
Consultar Documentos Externos. Permite que el actor profesor interactúe con un conjunto
de documentos que contribuyan a aumentar la calidad educativa de los ejercicios
presentados a los estudiantes.
Consultar Ayuda. Brinda acceso a la documentación asociada al software proporcionando
una guía para interactuar con él.
1 Conjunto de posibles opciones, asociadas a un ejercicio, dentro de las cuales el estudiante selecciona la respuesta.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
28
Gestionar Ejercicios. Permite insertar, actualizar y eliminar los ejercicios incluidos en la
aplicación. Además de:
o Visualizar Ejercicio. Permite el acceso simplificado a los ejercicios, conocido como
vista previa. Muestra los principales atributos asociados a un ejercicio.
o Simular Ejercicio. Se muestran los ejercicios de una forma muy similar a lo que
verá el actor estudiante durante el caso de uso resolver ejercicio. Permite detectar
errores de contenidos o incongruencias en los ejercicios antes de usarlos en el
proceso de enseñanza aprendizaje.
Gestionar Estudiantes. Permite insertar, actualizar y eliminar los datos asociados a los
estudiantes que utilizan la aplicación.
Gestionar Reportes. Permite consultar reportes referentes a la realización de los ejercicios
por parte de los estudiantes, así como exportar dicha información a formato PDF (del inglés
Portable Document Format).
A continuación se realiza una descripción detallada de los casos de uso: Resolver Ejercicio y
Gestionar Estudiantes.
Caso de Uso: Resolver Ejercicio
Tabla 2.1 Descripción del caso de uso Resolver Ejercicio.
Caso de Uso: Resolver Ejercicios
Propósito Permitir al estudiante resolver un ejercicio
Actores: Estudiante
Resumen:
El caso de uso se inicia cuando el estudiante selecciona el ejercicio por realizar. Seguidamente
el sistema muestra el ejercicio seleccionado, siguiendo la estructura:
planteamiento de la problemática por resolver.
conjunto de distractores, los cuales representan posibles respuestas asociadas al
ejercicio, incluyendo la respuesta correcta.
El sistema se encarga de evaluar las respuestas suministradas por el estudiante.
Precondiciones Estudiante Autenticado
Flujo normal de eventos
Acción del actor Respuesta del sistema
1.El estudiante selecciona uno de los
complejos de materia (numeración, cálculo y
trabajo con fracciones)
2. El sistema muestra los ejercicios
perteneciente al complejo de materia
previamente seleccionado.
3. El estudiante selecciona uno de los
ejercicios disponibles.
4. Se procede a cargar el ejercicio seleccionado
desde la base de datos.
5. Se utilizan los datos obtenidos previamente
para:
resolver el ejercicio
generar los distractores pertinentes
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
29
6. Muestra la interfaz gráfica que posee los
componentes necesarios para mostrar los datos
siguientes:
planteamiento del ejercicio
conjunto de distractores, incluyendo la
respuesta correcta
imágenes asociadas al tema del ejercicio
(opcional)
7. El estudiante mediante un análisis previo
selecciona la posible respuesta del ejercicio
8. Se determina si la respuesta suministrada por
el estudiante es correcta o no.
En caso de responder correctamente el sistema
procede a guardar el registro generado durante
la realización del ejercicio.
Flujos alternos
Flujo alterno 8a “La respuesta seleccionada no era correcta”
Acción del Actor Respuesta del sistema
8a.1 Se le informa al estudiante mediante un sonido e
imagen que la respuesta es incorrecta y se le permite
seleccionar otra de las opciones.
8a.2 El estudiante selecciona otra
posible respuesta al ejercicio.
8a.3 Ejecutar paso 8, teniendo en cuenta la cantidad de
distractores.
Poscondiciones: El sistema registra los resultados obtenidos por el
estudiante al realizar el ejercicio, junto con otros datos
adicionales como: tiempo empleado para realizar el
ejercicio, número de intentos realizados y evaluación
obtenida.
La Figura 2.2 representa, mediante el empleo de UML, el diagrama de actividades correspondiente
al caso de uso descrito anteriormente.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
30
Figura 2.2 Diagrama de actividades correspondiente al caso de uso Resolver Ejercicios.
Caso de Uso: Gestionar Estudiante
Tabla 2.2 Descripción del caso de uso Gestionar Estudiante.
Caso de Uso: Gestionar Estudiante
Propósito Permitir la gestión de los datos de los estudiantes
Actores: Profesor
Resumen:
El caso de uso se inicia cuando el profesor necesita gestionar los datos almacenados referentes
a los estudiantes, ya sea para insertar un nuevo estudiante, modificar datos o eliminar un
determinado estudiante. El sistema proporciona las interfaces necesarias para realizar estas
operaciones, finalizando así el caso de uso.
Precondiciones Profesor Autenticado
Flujo normal de eventos
Acción del actor Respuesta del sistema
1. El profesor desea insertar, eliminar o
modificar los datos asociados con determinado
estudiante.
2. Se ejecuta una de las siguientes acciones:
Si decide insertar un estudiante ir a la
Sección “Insertar Estudiante”.
Si desea modificar los datos de un
estudiante ir a la Sección “Actualizar
Estudiante”.
Si decide eliminar un estudiante ir a la
Sección “Eliminar Estudiante”.
Sección “Insertar Estudiante”
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
31
Acción del actor Respuesta del sistema
1. El profesor selecciona el botón “Adicionar
Estudiante”.
2. Muestra la interfaz gráfica que posee los
componentes necesarios para permitir al
profesor insertar los datos siguientes:
Nombre
Apellidos
Grado
Grupo
3. El profesor introduce los nuevos datos
4. El profesor selecciona el botón “Aceptar” 5. Se comprueba la validez de los datos
suministrados y la no existencia de campos
vacíos.
6. Se almacenan los datos suministrados por el
usuario.
7. Se actualiza la tabla que contiene los datos de
los estudiantes, incluidos los nuevos datos
referentes al estudiante previamente insertado.
Flujos alternos
Flujo alterno 4a “El profesor selecciona el botón Cerrar”
Acción del Actor Respuesta del sistema
4a.1 Se muestra en la tabla que contiene los datos de los
estudiantes, sin efectuar ningún cambio.
Flujos alternos
Flujo alterno 5a “El profesor suministró datos erróneos o campos vacíos”
Acción del Actor Respuesta del sistema
5a.1 Muestra el mensaje de error indicando
específicamente el tipo de error cometido.
5a.2 Muestra la interfaz gráfica que permiten al profesor
insertar los datos nuevamente.
Sección “Actualizar Estudiante”
Acción del actor Respuesta del sistema
1. El profesor selecciona, en la
tabla que contiene los datos de los
estudiantes, la fila correspondiente
al estudiante que se le actualizarán
sus datos.
2. El sistema marca como activa la fila seleccionada.
3. El profesor selecciona el botón
“Actualizar Estudiante”.
4. Muestra la interfaz gráfica que contiene los datos del
estudiante almacenados en el sistema.
5. El profesor modifica alguno de
los datos del estudiante.
6. El profesor selecciona el botón
“Aceptar”.
7. Se comprueba la validez de los datos suministrados y la
no existencia de campos vacíos.
8. Se sobrescriben los datos iniciales con los nuevos
suministrados por el profesor.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
32
9. Se muestra, en la tabla que contiene los datos de los
estudiantes, los nuevos datos referentes al estudiante
previamente seleccionado.
Flujos alternos
Flujo alterno 6a “El profesor selecciona el botón Cerrar”
Acción del Actor Respuesta del sistema
6a.1 Muestra la tabla con todos los datos de los estudiantes
sin modificaciones.
Flujo alterno 7a “El profesor suministra datos erróneos o campos vacíos”
Acción del Actor Respuesta del sistema
7a.1 Muestra el mensaje de error indicando
específicamente el tipo de error cometido.
7a.2 Muestra la interfaz gráfica que permiten al profesor
modificar los datos nuevamente.
Sección “Eliminar Estudiante”
Acción del actor Respuesta del sistema
1. El profesor selecciona en la tabla
que contiene los datos de los
estudiantes la fila correspondiente
al estudiante que desea eliminar.
2. El sistema marca como activa la fila seleccionada.
3. El profesor selecciona el botón
“Eliminar Estudiante”.
4. El sistema elimina los datos almacenados referentes al
estudiante seleccionado.
5. Se muestra la tabla que contiene los datos de los
estudiantes, sin los correspondientes al estudiante
previamente eliminado. Poscondiciones: Se modifican los datos almacenados relacionados con los
estudiantes
2.1.3 Diagrama de clases
Durante la elaboración de un sistema informático, el modelado, definición de las clases y las
relaciones entre estas, constituye un elemento de vital importancia.
Para (Booch et al., 2000) un diagrama de clases es gráficamente una colección de nodos y arcos,
que muestra un conjunto de clases, interfaces, colaboraciones y sus relaciones pueden ser de
dependencia, generalización o asociación.
Se considera que los diagramas de clases son diagramas estáticos porque muestran las clases, sus
métodos, atributos y relaciones estáticas entre ellas.
Para el desarrollo de la herramienta se hizo necesario crear dos aplicaciones las cuales están
implementadas en el lenguaje de programación Java, una aplicación cliente (“La Isla de las
Matemáticas Cliente”) y un servidor (“La Isla de las Matemáticas Servidor”). A continuación se
detallan los diagramas de clases de cada una de ellas.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
33
Figura 2.3 Diagrama de clases de la aplicación “La Isla de las Matemáticas Cliente”.
Seguidamente se realiza una breve descripción de las clases e interfaces representadas en el
diagrama mostrado en la Figura 2.3.
Interfaz ProfesorInterfaz2: interfaz remota que especifica los métodos que un objeto cliente
instanciado como ClienteProfesor puede invocar de forma remota.
Interfaz EstudianteInterfaz: interfaz remota que especifica los métodos que un objeto
cliente instanciado como ClienteEstudiante puede invocar de forma remota.
Cliente: Esta clase permite la comunicación con la aplicación servidora mediante la
especificación del puerto y la dirección IP que identifica al host donde se ejecuta la
aplicación servidor.
ClienteProfesor: Esta clase extiende de Cliente y posee como atributo un objeto remoto de
tipo ProfesorInterfaz permitiendo invocar los servicios disponibles en el servidor
declarados en la interfaz ProfesorInterfaz. El proceso de peticiones se realiza mediante
invocaciones a los métodos del stub local, el cual es responsable de llevar a cabo la
invocación del método en el objeto remoto correspondiente.
2 Para especificar el nombre de varias de las clases implementadas no se emplearon tildes, eñes, ni espacios.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
34
ClienteEstudiante: Esta clase extiende de Cliente y posee como atributo un objeto remoto
de tipo EstudianteInterfaz, el cual permite invocar de forma remota los servicios declarados
en la interfaz EstudianteInterfaz.
Clase VistaPrincipal: Esta clase permite visualizar diferentes vistas de la herramienta.
Las clases siguientes representan diferentes vistas utilizadas por la herramienta:
o AnimacionInicial o PanelMenuPrincipalAlumno o PanelEjercicio
o PanelMenuPrincipalProfesor o EdicionEjerciciosProfesor o VentanaContrasena
o PanelBibliografiaProfesor o VistaPreviaGeneralEjercicios o PanelEjercicio
o ActualizarInsertarEjercicioProfesor o DialogoRespuestaCorrecta o Configuarcion
o VistaPreviaEjrecicioProfesor o PanelNombreGrupo o EdicionEstudiante
Figura 2.4 Diagrama de clases de la aplicación “La Isla de las Matemáticas Servidor”.
A continuación se realiza una breve descripción de las clases e interfaces representadas en el
diagrama anterior, (ver Figura 2.4).
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
35
Interfaz ProfesorInterfaz: interfaz remota que especifica los métodos remotos que pueden
ser invocados en el módulo orientado al profesor incluido en la aplicación cliente.
Interfaz EstudianteInterfaz: interfaz remota que especifica los métodos remotos que pueden
ser invocados en el módulo orientado al estudiante incluido en la aplicación cliente.
Servidor: esta clase es la encargada de crear los objetos remotos y hacerlos disponibles
para dar respuesta a las invocaciones remotas realizadas desde los clientes.
VistaPrincipal: Implementa la interfaz gráfica de la aplicación servidora.
ProfesorImplementacion: Contiene la implementación de los métodos definidos en la
interfaz remota ProfesorInterfaz.
EstudianteImplementacion: Contiene la implementación de los métodos definidos en la
interfaz remota EstudianteInterfaz.
ResolverEjercicio: Implementa los métodos necesarios para resolver los ejercicios
correspondientes a los complejos de materia: numeración, cálculo y trabajo con fracciones.
OperacionEstudiante: Permite gestionar los datos referentes a los estudiantes y obtener las
informaciones almacenadas en la base de datos referentes a los alumnos.
OperacionEjercicios: Gestiona los datos referentes a los ejercicios.
OperacionRegistro: Almacena y permite obtener los registros generados durante la
interacción de los estudiantes con la aplicación cliente.
Conexion: Establece la conexión con la base de datos embebida de la aplicación, y realiza
las transacciones necesarias para lograr el correcto funcionamiento del software.
Operaciones: Esta clase permite realizar las operaciones sobre el modelo del sistema.
2.1.4 Diseño de la base de datos
Como resultado final de este trabajo se obtiene la implementación de una herramienta de ayuda al
aprendizaje de la Matemática que permite gestionar los ejercicios y las informaciones relacionadas
con los estudiantes que utilizan, durante el proceso de enseñanza aprendizaje el sistema distribuido
aquí presentado.
Durante la interacción de los usuarios con el sistema se generan datos de forma dinámica, esos
datos deben ser persistentes, de manera que se asegure el funcionamiento correcto del sistema.
Con ese propósito se emplea una base de datos embebida.
Una base de datos embebida coexiste simbióticamente dentro de la aplicación a la que sirve, dentro
de su espacio de proceso, es decir, su código está integrado, como parte del programa que la
hospeda (Kreibich, 2010).
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
36
Según (Allen and Owens, 2011), SQLite relacional embebida de
código abierto, que está diseñado para proporcionar una forma conveniente para que las
aplicaciones administren sus datos sin la sobrecarga que a menudo viene con sistemas dedicados
a la administración de bases de datos relacionales. SQLite tiene una merecida reputación por ser
altamente portátil, fácil de usar, compacto, eficiente y confiable.
A continuación se presentan algunas de las principales características de SQLite (Haldar, 2016):
SQLite no requiere un proceso o sistema de servidor por separado para operar con la base
de datos.
La instancia completa de la base de datos reside en un único archivo multiplataforma.
Una única biblioteca contiene todo el sistema de la base de datos, que se integra
directamente en una aplicación de host.
Las transacciones SQLite son totalmente compatibles con ACID (acrónimo de Atomicity
Consistency Isolation Durability), lo que permite un acceso seguro desde múltiples
procesos o hilos.
SQLite admite la mayoría de las características del lenguaje de consulta que se encuentran
en el estándar SQL92 (SQL2).
SQlite es libre, portable y su código es de dominio público
Tomando en cuenta las posibilidades que ofrece SQLite así como su sencillez y rapidez se decidió
emplear esta herramienta durante la implementación del sistema aquí presentado. En este caso se
empleó el archivo llamado BD.db para almacenar la base de datos.
Los diagramas Entidad/Relación constituyen una técnica para representar la estructura lógica de
una base de datos en forma de gráficos y se considera un medio sencillo y de fácil comprensión
para comunicar las características sobresalientes de una base de datos (Elmasri and Navathe,
2013). Mediante este diagrama es posible representar las tablas que van a contener la base de datos
y las relaciones existentes entre ellas.
La figura 2.5 muestra el diagrama Entidad/Relación de la base de datos (SQLite) de la herramienta.
Figura 2.5 Diagrama Entidad/Relación.
A partir del diagrama anterior es posible establecer el modelo físico que se muestra en la figura
2.6.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
37
Figura 2.6 Modelo físico de datos del sistema.
El sistema aquí presentado cuenta con una BD, que contiene tres tablas y su función es almacenar
datos referentes a los estudiantes, ejercicios y registros.
En el diagrama anterior están representados todos los objetos que se gestionan en la aplicación y
las relaciones entre los objetos a través de la restricción de llave foránea. Cabe destacar en este
diagrama que cada tabla posee una llave primaria auto-incremental.
2.2 Implementación del sistema
La implementación de un sistema informático es un momento vital donde se concretan los aspectos
abordados durante la etapa de diseño del software. Como resultado de esta etapa se obtiene un
producto informático listo para probar y poner en práctica.
En esta sección se exponen el diagrama de componentes, el cual representa la implementación de
las clases del diseño en términos de componentes y el modelo de despliegue que ilustra la
distribución física de la aplicación.
Debe mencionarse que la herramienta “La Isla de las Matemáticas” consta de dos aplicaciones que
interactúan entre sí para satisfacer las peticiones del usuario final.
Diagrama de despliegue y componentes
Los diagramas de despliegue y componentes conforman lo que se conoce como un modelo de
implementación, al describir los componentes a construir, su organización y dependencia entre los
nodos físicos en los que funcionará la aplicación (Tsui et al., 2016).
Específicamente el diagrama de componentes expresa la estructura del sistema implementado,
ayudando a hacer un seguimiento de las dependencias para facilitar el mantenimiento, y la
reutilización de componentes.
Un componente es una parte de la implementación de un sistema que se puede distribuir, la cual
incluye código (fuente, binario o ejecutable) conjunto con documentos de negocio (Stevens, 2011).
En la Figura 2.7 se muestra el modelo de componentes que ilustra las dependencias entre las partes
del código correspondiente al sistema aquí presentado:
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
38
Figura 2.7 Modelo de componentes del sistema “La Isla de las Matemáticas”.
La Figura 2.7 muestra como el componente “La Isla de las Matemáticas Cliente” accede a los
servicios ofrecidos por el componente “La Isla de las Matemáticas Servidor”, a través de una
interfaz que permite establecer una relación de dependencia entre dichos componentes.
Por otro lado, el diagrama de despliegue es un modelo de objetos que describe la distribución física
del sistema en términos de cómo se distribuyen las funcionalidades entre los nodos de cómputo
(Pressman and Bruce R. Maxim, 2014).
Durante el desarrollo del sistema “La Isla de las Matemáticas” se empleó el diagrama de despliegue
para ilustrar la configuración de nodos que participan en la ejecución. Para el correcto desarrollo
de este modelo fue necesario identificar:
Los nodos que representan los procesadores cliente y servidor del sistema.
La relación existente entre los componentes del sistema y los nodos empleados en el
despliegue, para finalmente asignar, a cada componente significativo, a un determinado
nodo.
Figura 2.8 Diagrama de despliegue del sistema “La Isla de las Matemáticas”.
En la Figura 2.8, se muestra el diagrama de despliegue correspondiente al software aquí
presentado, el cual posee una arquitectura clásica cliente-servidor. Los nodos que componen dicho
modelo son:
Cliente: Este nodo representa gráficamente el conjunto de computadoras sobre las cuales
se ejecuta la aplicación de escritorio cliente la cual se comunica con el software alojado en
el host servidor haciendo uso del mecanismo de comunicación RMI.
Servidor: Este nodo simboliza gráficamente la computadora donde estará alojada la
aplicación servidora, que gestiona todas las peticiones de los usuarios. La comunicación se
establece mediante el empleo del mecanismo de comunicación RMI.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
39
2.3 Sistema Cliente-Servidor
Para realizar la implementación de cualquier sistema distribuido es vital comenzar analizando cuál
de las arquitecturas distintivas de este tipo de sistema es la más adecuada de acuerdo con los
requerimientos que debe satisfacer la aplicación a desarrollar.
En este proceso es importante definir las unidades funcionales y cómo estas serán asignadas a la
parte cliente o a uno o varios servidores. Las unidades funcionales típicas son: la interfaz de
usuario, la lógica de la aplicación, denominada también lógica de negocio, y la gestión de datos.
En este caso, para la implementación del sistema informático “La Isla de las Matemáticas” se
utiliza como modelo lógico, que permite estructurar y organizar el sistema, una arquitectura
cliente-servidor. Para esto se desarrolló una aplicación servidora que se encarga de crear los
objetos remotos, hacerlos accesibles y permanecer a la espera de llamadas dirigidas a dichos
objetos remotos. La aplicación cliente, por su parte debe obtener referencias sobre dichos objetos
remotos y, en ese momento, puede hacer uso de ellas para realizar llamadas remotas.
Específicamente, el servidor fue implementado mediante el desarrollo de dos objetos remotos, uno
encargado de responder las peticiones realizadas desde el módulo orientado al profesor y otro
responsable de dar solución a las peticiones realizadas desde el módulo orientado al estudiante,
ambos incluidos en la aplicación cliente, (ver Figura 2.9).
Figura 2.9 Modelo basados en objetos distribuidos utilizado en el sistema “La Isla de las Matemáticas”.
Para la implementación de la aplicación se creó un paquete por cada unidad funcional (interfaz de
usuario, lógica de la aplicación y gestión de datos). Específicamente el módulo encargado de la
lógica de la aplicación no fue desarrollado de forma monolítica, sino que está implementado a
través de una colección de componentes que se utilizan en una gran variedad de operaciones
solicitadas por los clientes. La separación de estas unidades funcionales permite a la aplicación
cliente, en lugar de interactuar directamente con la base de datos, invocar a la lógica de negocio la
cual es la encargada de acceder a la base de datos proporcionando seguridad al sistema, al no
exponer el esquema de la base de datos al cliente, y permitiendo un control de accesos sobre la
información almacenada.
Peticiones de servicio
Objeto EstudianteImplementacion
Objeto ProfesorImplementacion
Objetos ClienteEstudiante
Objeto ClienteProfesor
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
40
Con el objetivo de emplear el modelo basado en objetos se afronta la construcción del sistema
identificando las abstracciones claves del dominio del problema. En este caso, cada recurso
compartido se representa como un objeto. Dichos objetos son identificados de forma unívoca.
Tal y como se ha indicado en el capítulo anterior, la implementación de un sistema distribuido
requiere utilizar un estándar de comunicación para gestionar y asegurar las comunicaciones entre
las partes comunicantes, el sistema aquí presentado utiliza RMI (Remote Method Invocation) el
cual está diseñado con el objetivo de permitir la invocación de métodos remotos de objetos entre
distintas máquinas virtuales Java, ubicadas en la misma o en distintas computadoras.
Durante el desarrollo del software educativo “La Isla de las Matemáticas” se implementaron los
objetos remotos EstudianteImplementacion y ProfesorImplementacion, cuyos métodos pueden ser
invocados de manera local o a través de una red. Estos objetos remotos implementan las interfaces
EstudianteInterfaz y ProfesorInterfaz, respectivamente, las cuales especifican qué operaciones
pueden ser invocadas en los dos módulos de la aplicación cliente. Cualquier otro método público
que tenga el objeto, pero que no aparezca en la interfaz remota, no podrá ser utilizado por los
clientes remotos.
Los clientes invocan dichos métodos exactamente igual que si fueran métodos locales, quedando
ocultos los detalles de la comunicación. Para esto se utilizan los stub y skeleton, que actúan de
intermediarios entre los objetos locales y remotos. Estos últimos elementos son generados de
manera automática por el compilador RMIC (Remote Method Invocation Compiler) (Dathan and
Ramnath, 2015).
Debe destacarse que, a diferencia de una invocación local, una invocación RMI pasa los objetos
locales que forman parte de la lista de parámetros, por valor, dado que una referencia a un objeto
local sólo sería útil en una máquina virtual única. Para esto utiliza el servicio de serialización de
objetos para empaquetar el estado de un objeto local y colocarlo en el mensaje que se enviará a la
máquina virtual remota.
2.4 Construcción del sistema
A continuación se describe el proceso de construcción de la aplicación “La Isla de las Matemáticas
Servidor”.
El proceso de implementación da inicio mediante la definición de las interfaces remotas
ProfesorInterfaz y EstudianteInterfaz, las cuales especificarán los métodos accesibles de manera
remota por los diferentes actores del sistema.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
41
Ambas interfaces se caracterizan por:
Ser declaradas públicas.
Extender la interfaz java.rmi.Remote, lo que permite identificarlas como una interfaz cuyos
métodos pueden invocarse desde otra máquina virtual Java, por lo tanto, cualquier objeto
que implemente esta interfaz es considerado un objeto remoto.
Todos sus métodos lanzan la excepción remota java.rmi.RemoteException ante cualquier
falla general de RMI.
Posteriormente se procede a desarrollar la clase ProfesorImplementacion y
EstudianteImplementacion, las cuales implementan la interfaz remota ProfesorInterfaz,
EstudianteInterfaz, respectivamente y extienden de la clase java.rmi.server.RemoteObject,
permitiendo que esta clase herede la semántica de objetos remotos de RemoteObject y el
comportamiento de clonación y serialización.
La clase ProfesorImplementacion y EstudianteImplementacion poseen como atributo una instancia
de la clase Operaciones, la cual permite realizar diferentes tipos de acciones en el sistema mediante
el empleo de otras clases como:
Conexion: es la encargada de establecer la conexión con la base de datos embebida,
permitiendo la ejecución de diferentes transacciones sobre los datos que ella almacena.
Referente a esta clase ha de mencionarse que durante su implementación se empleó el
patrón de diseño Singleton, también conocido como Instancia única. Esto fue realizado con
el objetivo de restringir la creación de objetos de tipo Conexion, de modo que solo se
realiza una única instancia de esta clase, la cual será utilizada por toda la aplicación
(Contreras, 2017).
OperacionEjercicio: es responsable de gestionar los ejercicios, permitiendo realizar
operaciones como insertar, eliminar y actualizar los ejercicios almacenados en el sistema.
ResolverEjercicio: la implementación de esta clase utiliza un intérprete para realizar las
siguientes operaciones sobre los ejercicios: validar que un ejercicio se ajusta a la sintaxis
establecida y resolver los ejercicios correspondientes a los complejos de materias cálculo,
numeración, y trabajo con fracciones.
Es necesario mencionar que durante el desarrollo del sistema fue necesario extender el
intérprete, con el objetivo de proporcionarle a la herramienta informática la capacidad de
resolver ejercicios, que son impartidos desde el primero hasta el cuarto grado de la
Enseñanza Primaria, los cuales se caracterizan por tener un nivel de complejidad superior
y emplear un dominio numérico más extenso.
Capítulo 2: Diseño e implementación del sistema distribuido “La Isla de las Matemáticas”
42
OperacionRegistro: se encarga de la gestión de los registros que se van creando durante la
interacción de los estudiantes con el software.
OperacionEstudiante: permite insertar, eliminar y actualizar los datos almacenados sobre
los estudiantes.
Para la implementación de la aplicación “La Isla de las Matemáticas Cliente”, la cual realiza
peticiones a los objetos remotos explicados anteriormente, fue necesario obtener una referencia de
dichos objetos consultando el servicio de nombrado. Una vez que se dispone de la referencia, sólo
es necesario invocar los diferentes métodos remotos para propiciar una aplicación funcional.
Algo importante a tener en cuenta durante la implementación de los sistemas distribuidos es la
seguridad. La aplicación aquí presentada emplea un administrador de seguridad, que permite
imponer restricciones de seguridad en el sistema garantizando una comunicación segura. Para esto
el gestor de seguridad utiliza un archivo de políticas de seguridad que permite al cliente y al
servidor establecer una conexión segura a través de la red.
Además no se puede dejar de mencionar que la información que se intercambia entre ambas
aplicaciones es previamente cifrada, para esto fue necesario implementar las clases
ServerSocketFactory, ClientSocketFactory las cuales extienden de RMIServerSocketFactory.
Estas clases permiten establecer el método de cifrado y descifrado que empleará la herramienta
durante la comunicación.
2.5 Conclusiones parciales
En este capítulo se realizó un análisis de los requerimientos funcionales y no funcionales del
sistema y un estudio de los casos de uso que se encargan de delimitar el sistema definiendo las
funciones que debe cumplir para cada uno de los actores. Se obtuvo un diseño mediante el
modelado de las características principales del sistema utilizando la notación UML para una mejor
comprensión de la estructura. Se explicó el diseño de la base de datos, las principales clases y las
relaciones entre ellas. Conjuntamente se representó la implementación del sistema a través del
diagrama de componentes y despliegue. Por otro lado, se expuso cómo se desarrolló el sistema
distribuido con arquitectura cliente-servidor a través de una aproximación de objetos remotos.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
43
CAPÍTULO 3. APLICACIÓN DOCENTE DEL SOFTWARE EDUCATIVO "LA ISLA DE LAS MATEMÁTICAS"
La herramienta informática “La Isla de las Matemáticas” está especialmente concebida para apoyar
al proceso docente educativo correspondiente a la asignatura Matemática, impartida en el Primer
Ciclo de la Enseñanza Primaria. En este capítulo se explican algunos aspectos relacionados con el
uso del software desarrollado, y además, se exponen los resultados generales obtenidos tras la
aplicación del sistema elaborado.
3.1 El empleo de las TIC en el proceso docente educativo cubano
El crecimiento y expansión de las TIC ha transformado el significado de la formación académica
de una manera radical, lo que ha incidido, de forma directa y positiva, en la evolución de la
enseñanza tradicional a favor de una educación de calidad para todos.
Cuba no ha estado al margen de esta tendencia, por eso el Programa de Informatización de la
Sociedad Cubana reconoce la aplicación de las TICs como una prioridad para el desarrollo social.
En consecuencia el Ministerio de Educación (MINED) asume el reto de impulsar el proceso de
informatización en cada una de las escuelas cubanas.
Para el estado cubano elevar la calidad de los servicios educacionales no es solo una aspiración
sino un compromiso. Como parte de este noble empeño se llevó a cabo La Tercera Revolución
Educacional, la cual trajo consigo importantes transformaciones en el Sistema Educativo Cubano
y en particular en la Enseñanza Primaria. Para ello se implementaron medidas tales como: reducir
la relación alumno docente por grupos, la introducción masiva de la TV, videos didácticos, la
incorporación de la Editorial Libertad con diferentes fuentes bibliográficas así como la
introducción de la computación y los software educativos. Todo esto con el fin de revolucionar la
labor educativa y poner al maestro, el artífice por excelencia de la obra pedagógica, en condiciones
de lograr resultados muy superiores a todo el quehacer precedente (Zayas, 2002).
El proceso de enseñanza-aprendizaje, en el contexto de la educación cubana, constituye un sistema
dinámico en cuyo marco se producen actualmente profundas transformaciones en todos los niveles
de enseñanza. Con el propósito de alcanzar resultados cualitativamente superiores, en este sentido
la introducción de las Tecnologías de la Información y las Comunicaciones, y en particular el
empleo de la computadora como soporte material para la dirección de dicho proceso, es un
elemento renovador y enriquecedor de saberes en los escolares.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
44
Hoy las Tecnologías de la Información y las Comunicaciones constituyen un complemento en el
trabajo del maestro, al ofrecerle conocimientos sobre determinados contenidos que faciliten el
aprendizaje y sirvan de soporte material al sistema de clases y a funciones que tanto el maestro
como la escuela deben desarrollar. En este entorno, el escolar tiene un papel protagónico para
lograr un desarrollo superior de los procesos cognitivos.
Las TICs constituyen un elemento clave en el sistema educativo cubano y su incorporación en las
aulas posibilita nuevas formas de acceder, generar, transmitir información y conocimientos, a la
vez que permiten flexibilizar el tiempo y el espacio en el que se desarrolla la acción educativa
(Moya, 2009). Además de establecer condiciones óptimas para transformar una enseñanza
tradicional, pasiva, fundamentalmente centrada en la trasmisión del contenido, en otro tipo de
educación más personalizada, práctica, centrada en alcanzar aprendizajes diversos, que posea una
real significación para cada estudiante y que esté dirigida a lograr una dimensión profundamente
humana.
3.2 Antecedentes en el software educativo cubano
Los momentos iniciales en el desarrollo del software educativo cubano se caracterizaron por la
elaboración de medios informáticos, principalmente elaborados por profesores, que presentaban
insuficiencias debido a la formación empírica de sus realizadores con relación al diseño y la
implementación de tales materiales. En esos momentos primó la buena voluntad de los hacedores
y según (del Toro et al., 1995) se destacan los siguientes problemas:
Los medios informáticos eran concebidos por un solo profesor.
El alcance de estos medios es reducido, debido a las pocas actividades docentes que
incluían.
Bajo nivel profesional en el campo de la Ingeniería del Software.
Falta de visión en cuanto a mercado y productos similares.
Pocas posibilidades de mantenimiento.
Bajo nivel de interactividad con el usuario.
Además, a partir de un análisis más profundo realizado a varios de estos materiales, se constató
que presentaban varias dificultades, entre las que se destacan (Curbelo and Almeida, 2009):
Concepción rígida del contenido abordado.
Inadecuado uso de las diferentes formas de representación de la información.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
45
No se acompaña el medio informático de un Manual de Usuario, tanto para profesores
como estudiantes, lo cual provocaba la ausencia de indicaciones sobre cómo utilizar el
programa.
Inexistencia de una metodología para el empleo de la herramienta.
Bajo nivel de adaptabilidad a las características individuales de los estudiantes.
Ausencia, en la mayoría de los casos, de un registro de los resultados del trabajo del alumno
en el sistema.
No obstante, estos medios informáticos tuvieron el mérito de ser los primeros intentos en el
desarrollo del software educativo cubano.
A partir de 2001 el Proyecto de Informática Educativa del Ministerio de Educación en Cuba
emprendió la tarea de fortalecer el desarrollo del software educativo cubano a través de la creación
de los Centros de Estudio de Software Educativos. De esta manera se dio inicio a una nueva etapa
en el desarrollo de herramientas educativas caracterizadas por un mayor nivel de profesionalidad,
guiados por las concepciones pedagógicas cubanas.
De esta forma se desarrollaron las colecciones educativas “MultiSaber”, “El Navegante” y
“Futuro” dirigidas a las educaciones Primaria, Secundaria y Preuniversitaria, respectivamente.
Particularmente para la enseñanza Preescolar y Especial, se elaboró la colección “A Jugar”, con
un grupo muy variado de juegos atendiendo a la edad y a las particularidades psicológicas de los
estudiantes a los cuales va dirigido.
Estas colecciones constituyen uno de los principales resultados aplicados en materia de software
educativo en Cuba y ponen a disposición de la escuela cubana varias herramientas informáticas,
las cuales cuentan con diversos recursos multimedia que hacen posible el desarrollo de habilidades
intelectuales generales que se manifiestan en el incremento de los procesos de análisis, síntesis,
abstracción, generalización, como base de un pensamiento dirigido a penetrar en la esencia de las
relaciones entre hechos y fenómenos.
El contenido didáctico de dichos software fue concebido, en correspondencia a la edad y las
características psicológicas de los estudiantes y se ajusta a los temas abordados en las asignaturas
del currículo docente aplicado en los cursos escolares, durante los cuales se llevó a cabo el
desarrollo de dichas colecciones. Además la presentación del contenido se materializó a través de
preguntas y respuestas, en las que el cumplimiento del objetivo conlleva a obtener diferentes
premios.
Específicamente la colección “Multisaber”, dirigida a la Educación Primaria, tiene como elemento
distintivo que los software educativos que la conforman se basan en el concepto de hiperentorno
de enseñanza aprendizaje.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
46
Formalmente un hiperentorno de aprendizaje puede definirse como una mezcla armoniosa de
diferentes tipologías de software educativo sustentado en tecnología hipermedia, concebido para
garantizar el apoyo informático a diferentes funciones del proceso de enseñanza aprendizaje,
caracterizado fundamentalmente por constituir un apoyo pleno al currículo escolar de un
determinado sistema educacional (Labañino Rizzo, 2007).
La colección “Multisaber” está conformada por 31 software educativos. Dentro de estos software
solo tres están dirigidos a apoyar el proceso docente educativo de la asignatura Matemática, los
cuales son: “La feria de las matemáticas”, “Problemas matemáticos I” y “Problemas matemáticos
II”. Particularmente el software “La feria de las matemáticas” y “Problemas matemáticos I” están
dirigidos a apoyar el proceso docente de la asignatura Matemática impartida en el Primer Ciclo de
este nivel de enseñanza.
A pesar de que la escuela cubana cuenta con varias colecciones de software educativos, concebidos
con un fin educativo desde el modelo de la pedagogía cubana, existen algunas carencias que aún
están presentes en la colección “Multisaber” las cuales, en cierto sentido, limitan su empleo en el
proceso docente educativo de la siguiente forma (Yunior et al., 2011):
Existen diversas vías de instalación que requieren múltiples recursos del sistema para la
ejecución del programa.
Emplean diferentes formatos para representar las interfaces del software, ocasionando la
pérdida en la orientación del trabajo por parte de los profesores y alumnos.
Los software responden a diferentes formas didácticas de implementación de las tipologías
de software educativo.
Presentan diferentes vías para autentificarse en el sistema informático tanto para los
alumnos como para el profesor lo que complejiza el empleo de la herramienta durante el
proceso de enseñanza.
Un análisis más profundo sobre la colección “MultiSaber”, permite enunciar las siguientes
regularidades (Yunior et al., 2011):
En la mayoría de los sistemas el registro de los resultados del trabajo de los alumnos con
la herramienta solo informa el nombre del usuario y el número del ejercicio en que se
encuentran trabajando el estudiante. Solo tres software utilizan el tiempo como un
elemento útil para el profesor y ningún software brinda información referente a la cantidad
de oportunidades que tiene el estudiante para resolver el ejercicio.
A de destacarse que solamente dos software informan la cantidad de preguntas, bien o mal,
resueltas por el estudiante.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
47
Existe una subutilización de los recursos multimedia, ya que de un total de 19 software que
contienen ejercicios, solo 15 utilizan estos recursos. En este sentido, no se trata solo del
empleo del recurso, sino de su utilización adecuada en correspondencia con el objetivo del
ejercicio, el escenario de aprendizaje y las funciones didácticas de los diferentes recursos.
El análisis realizado previamente permite afirmar que en las últimas décadas ha existido un
incremento en el desarrollo del software educativo cubano, respaldado por sus potencialidades
para la formación de las nuevas generaciones. Sin embargo aún queda mucho trabajo por hacer en
este campo que debe orientarse, fundamentalmente, a enmendar las carencias presentes en los
software existentes para lograr la inclusión de ajustes curriculares que se van realizando en el
desarrollo de los diferentes cursos escolares.
3.3 Caracterización de la asignatura Matemática en el Primer Ciclo de la Enseñanza Primaria
La enseñanza de la Matemática juega un papel primordial en el proceso de elevación de la calidad
en la educación y por eso resulta necesario que se aprovechen todas las potencialidades que ofrece
esta disciplina para enseñar a pensar desde edades tempranas.
Las Matemáticas inciden de manera directa y positiva en la formación de los escolares debido a
que permiten el desarrollo del pensamiento lógico, la motivación por la búsqueda y el análisis
reflexivo del conocimiento.
El estudio de esta disciplina se inicia desde los primeros grados de la Enseñanza Primaria mediante
un sistema de conocimientos, científicamente fundamentado, que se aplica y profundiza de forma
constante y que toma, cada vez más, un carácter generalizador; lo que incide no solo en el
desarrollo y preparación del educando sino en la capacidad para solucionar problemas de la vida
cotidiana.
Los programas y orientaciones metodológicas de las diferentes asignaturas del Plan de Estudio de
los grados 1ro, 2do, 3ro y 4to, etapa conocida como el Primer Ciclo de la Enseñanza Primaria,
enfatizan en el desarrollo de las habilidades intelectuales y la formación educativa de los
estudiantes. Específicamente en lo referente a la asignatura de Matemática se establece que durante
estos grados el estudiante amplía sus conocimientos acerca de los números naturales, ya que el
escolar debe reconocer la analogía del procedimiento en el tratamiento de los múltiplos de 10, 100
y 1000 para adquirir los conocimientos esenciales acerca del sistema de posición decimal, tomando
conciencia de sus ventajas en la formación de los numerales, en la escritura de los números y en
el cálculo. De forma simultáneamente es en estos grados donde el estudiante conoce y profundiza
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
48
las nociones referentes a la analogía de la estructura, para determinar intervalos de la sucesión de
números naturales.
Un núcleo básico dentro de la formación matemática que debe adquirir el escolar durante el Primer
Ciclo es, sin lugar a dudas, el desarrollo de habilidades de cálculo aritmético con números
naturales, conjunto con el desarrollo de conocimientos, capacidades y habilidades en la
representación, lectura y escritura de los números, en la determinación del antecesor y el sucesor
de un número natural. Todo esto permite establecer las condiciones para que el estudiante realice
la transferencia de ejercicios básicos hacia ejercicios con un mayor nivel de complejidad como la
resolución de problemas matemáticos.
Uno de los principales objetivos del Primer Ciclo es el conocimiento de los significados prácticos
de las operaciones aritméticas, para lo cual deben dominarse los fundamentos conceptuales para
poder operar con conocimiento de causa y poder transitar por los tres niveles de desempeño
cognitivo (Villalón Incháustegui et al., 1990). Otro de los objetivos fundamentales de la asignatura
Matemática durante estos grados es lograr la comprensión del concepto de fracción, a partir de sus
significados prácticos para aplicarlos a la solución de problemas sencillos.
En estos grados el estudiante comienza el aprendizaje de los procedimientos escritos de las cuatro
operaciones fundamentales de cálculo, para lo cual debe ofrecerse una serie de indicaciones que
los escolares deben interiorizar hasta su automatización. Es necesario enfatizar en la sustracción y
la división que, al ser las operaciones inversas estudiadas en estos grados, presentan mayores
dificultades así como en la solución de ejercicios con texto y problemas, ya que en estos grados es
donde se solucionan por primera vez problemas compuestos dependientes y se siguen utilizando
formas y técnicas de trabajo que permiten desarrollar habilidades para hallar, cada vez con mayor
independencia, una vía de solución para ejercicios o problemas dados.
3.4 Características del software educativo “La Isla de las Matemáticas”
Un escenario adecuado para trabajar en la dirección de integrar a los avances pedagógicos y las
nuevas Tecnologías de la Información y las Comunicaciones, con la intención de dar respuesta a
los cambios que reclama la actual sociedad, puede ser la confección de materiales didácticos, que
ayuden a la preparación de los estudiantes, aprovechando las posibilidades formativas, educativas
y el ambiente motivacional de estas herramientas (Rodríguez Fernández et al., 2007).
Un ejemplo dentro de estos materiales didácticos lo constituye el sistema aquí presentado, el cual
le permite al profesor actualizar constantemente los ejercicios contenidos en la aplicación,
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
49
agregando problemas de acuerdo al contexto en que se desarrollen las clases y sujetos a las
características del grupo de estudiantes con el que se esté trabajando.
De acuerdo a Zilberstein, las TIC, vistas desde el panorama educativo, enriquecen y transforman
radicalmente las prácticas pedagógicas y científicas en los diferentes niveles educacionales,
elevando significativamente la motivación por aprender (Zilberstein Toruncha et al., 2006). En ese
sentido el sistema distribuido “La Isla de las Matemáticas” presenta un grupo de características
que lo distinguen entre los software educativos existentes, orientados al Primer Ciclo de la
Enseñanza Primaria, entre ellas se pueden destacar las siguientes:
Permite establecer un nuevo tipo de relación entre el profesor y la aplicación, mejorando
la calidad de los ejercicios presentados al estudiante y por ende el proceso docente
educativo.
Amplia los horizontes, permitiendo que el software también sirva de material
complementario a los profesores, a través del empleo de los documentos metodológicos
contenidos en este y dando la posibilidad de ajustarlos a los estilos actuales.
Es fácil de utilizar e incluye una ayuda que ilustra y comenta los diferentes aspectos que
podrían presentar dificultades durante el uso del software.
Brinda diversas formas de asistencia al profesor durante la administración de los ejercicios,
permitiéndole ajustarlos al diagnóstico del grupo con que trabaja.
Posee un ambiente agradable e intuitivo.
El software “La Isla de las Matemáticas” es una herramienta informática que permite la
ejercitación de los contenidos correspondientes a la asignatura de Matemática en el Primer Ciclo,
dígase de primero a cuarto grado, desde una perspectiva innovadora, donde el profesor posee un
conjunto de privilegios que le permiten administrar completamente la aplicación, adaptándola al
diagnóstico del grupo con que trabaja.
Respecto a la implementación computacional del sistema ha de destacarse:
El software “La Isla de las Matemáticas” fue implementado con el objetivo de que la
aplicación sea multiplataforma y pueda ejecutarse sobre diversos equipos y sistemas
operativos. Para ejecutarlo solo es necesario tener instalado la máquina virtual de Java, en
correspondencia con el sistema operativo.
Debido a que el software está orientado a los estudiantes, se incluyen animaciones que
permiten obtener un entorno ameno. En el caso de “La Isla de las Matemáticas” las
animaciones se implementaron de manera interna en la propia aplicación utilizando el
lenguaje Java, de manera que no es necesario utilizar la Macromedia Flash 5, conjunto con
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
50
el ActiveX para tener una correcta ejecución de la aplicación. Esta característica lo
distingue de los software ya existentes.
El sistema cuenta con un asistente que facilita el proceso de instalación, paso a paso,
convirtiéndolo en algo muy simple.
La aplicación posee una estructura cliente-servidor que facilita el proceso de gestión de los
ejercicios e informaciones almacenados en la aplicación, mediante el uso de una red física.
3.5 Indicaciones para el uso docente de la aplicación
Este software se caracteriza por presentar novedades respecto a la interacción usuario-aplicación,
por ello es importante presentar algunas recomendaciones que ayudarán a usar de forma más
efectiva la herramienta que se presenta. Las sugerencias de los expertos de seguro le darán más
riqueza a estas breves indicaciones iniciales.
Llevar a cabo una pequeña fase de familiarización de los profesores con la aplicación, de
forma tal que se establezcan las bases para usarla en forma eficiente.
Desarrollar una actividad inicial para familiarizar a los estudiantes con el software.
Después de esta etapa se podrá orientar el uso de la herramienta informática en forma de
apoyo y soporte material al sistema de clases o como herramienta de trabajo independiente,
logrando así una mayor motivación por aprender.
Consultar los materiales metodológicos que pone a disposición la aplicación, así como
enriquecerla con nuevas informaciones con el objetivo de disponer de una fuente
complementaria que permita reforzar la preparación pedagógica de los profesores.
Emplear fundamentalmente el software en clases que ejerciten los contenidos abordados
en la aplicación, no en aquellas clases de presentación de nuevos contenidos, ya que esto
podría dificultar el proceso de asimilación de los conocimientos.
Remitir al estudiante al software como parte del trabajo independiente, contribuyendo así
a la ejercitación de las habilidades de cálculo, numeración y trabajo con fracciones.
Se puede comenzar la ejercitación de los contenidos, por cualquiera de los complejos de
materia, siempre y cuando el estudiante ya posea los conocimientos sobre este tema.
3.6 Aportes del software “La Isla de las Matemáticas”
La creación del software educativo “La Isla de las Matemáticas”, le permite al docente contar con
un material auxiliar que puede incluirse en los sistemas de clases, donde los educandos ejercitan a
través de la interacción con la aplicación, las habilidades anteriormente desarrolladas en los
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
51
complejos de materia numeración, cálculo con las cuatro operaciones matemáticas y el trabajo con
fracciones.
La propuesta metodológica para la organización de los sistemas de conocimientos
correspondientes a la asignatura de Matemática del Primer Ciclo, permite:
Ofrecer las posibilidades a los docentes de incorporar los ejercicios correspondientes a los
complejos de materia, y emplear estos en los sistemas de clases, en correspondencia con el
diagnóstico de los estudiantes.
Presentar ejercicios que se correspondan con el complejo de materia de fracciones, los
cuales no aparecen en el libro de texto.
Incorporar nuevos ejercicios en los que se incluyan datos numéricos tomados de la prensa
o fechas históricas permitiendo así presentar ejercicios que propicien la
interdisciplinariedad.
Incluir ejercicios que se ajusten al complejo de materia de numeración que respondan al
estilo y las exigencias actuales, los cuales no aparecen en el libro de texto, cuaderno o
software ya existentes.
Disminuir la “tendencia a la ejecución”, por parte del escolar, sin haberse detenido
previamente a esclarecer las condiciones y encontrar la vía correcta de solución.
3.7 Estadística de la efectividad de software “La Isla de las Matemáticas”
Para validar la efectividad de la herramienta informática presentada se empleó un diseño de
investigación cuasi experimental en el cual los investigadores no manipulan deliberadamente las
variables independientes y solo se limitan a observar y analizar el proceso de enseñanza
aprendizaje que se lleva a cabo mediado por las TIC.
Con el propósito de desarrollar el experimento, se seleccionaron dos grupos de estudiantes de
composición similar en edad y sexo y se eligió uno como experimental y otro como control. Los
grupos de estudiantes no se formaron explícitamente para este estudio, ya existían desde el
momento de la matrícula. Estos grupos están formado por 30 estudiantes, cada uno, y cursan el
tercer grado en la ENU “Batalla del Capiro”.
A la población objeto de estudio se le aplicó una prePrueba conformada por seis preguntas,
referentes a cada uno de los complejos de materias abordados en la asignatura, en la cual
participaron los dos grupos de tercer grado. El objetivo de esta primera prueba fue analizar las
condiciones iniciales sobre las cuales se partía para realizar el experimento previendo la no
existencia de una diferencia significativa entre los estudiantes de ambos grupos.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
52
Las preguntas de la prePrueba y la postPrueba tienen sólo tres posibles calificaciones: bien, regular
y mal.
La figura 3.1 y 3.2 muestra el gráfico de barras y la tabla de frecuencia correspondientes a las
calificaciones obtenidas en la prePrueba en ambos grupos. Obsérvese que de manera general la
situación académica en ambos grupos es similar.
PrePrueba Grupo Experimento
PrePrueba Grupo Experimento
Figura 3.1 Gráfico de barras y tabla de frecuencia correspondiente a los resultados obtenidos en la PrePrueba en el
grupo experimento.
PrePrueba Grupo Control
PrePrueba Grupo Control
Figura 3.2 Gráfico de barras y tabla de frecuencia correspondiente a los resultados obtenidos en la PrePrueba en el
grupo de control.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
53
Con el objetivo de conocer si existían o no diferencias significativas entre ambos grupos en la
etapa inicial se aplicó la prueba de U de Mann-Whitney, ver Figura 3.3, la cual es una prueba no
paramétrica que permite realizar la comparación de muestras independientes. El valor de la
significación según Mann-Whitney es 0.455 > 0.05 por lo que no existen diferencias significativas
entre los dos grupos en la prePrueba.
Figura 3.3 Prueba de Mann-Whitney.
Posteriormente, se aplicó la misma estrategia pedagógica en ambos grupos, con la diferencia de
que en el grupo experimento se contaría con el apoyo del sistema distribuido “La Isla de las
Matemáticas”, para estudiar la influencia que tendría el uso de esta herramienta informática en la
mejora del aprendizaje de la población escogida.
Los modelos de la pre y la post prueba tienen la misma estructura. Algunas preguntas de la prueba
postPrueba tienen similar orden que la prePrueba, lo que se hizo para medir la capacidad de
retención de información que tienen los estudiantes a la vez que sirven como ejes de comparación
puntual dentro del análisis final de los resultados alcanzados por cada educando.
Una vez aplicado la postPrueba se obtuvieron los resultados mostrados en las figuras 3.4 y 3.5.
PrePrueba Grupo Experimento
PrePrueba Grupo Experimento
Figura 3.4 Gráfico de barras y tabla de frecuencia correspondiente a los resultados obtenidos en la PosPrueba en el
grupo experimento.
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
54
PrePrueba Grupo Control
PrePrueba Grupo Control
Figura 3.5 Gráfico de barras y tabla de frecuencia correspondiente a los resultados obtenidos en la PosPrueba en el
grupo de control.
Una vez que se obtuvieron los resultados de la PosPrueba se realizó un análisis sobre los resultados
obtenidos en ambas pruebas con el objetivo de conocer si en ambos grupos existían o no
diferencias significativas en los resultados obtenidos. Para esto, se aplicaron dos pruebas, ver Tabla
3.1 y 3.2, una sobre cada grupo. Específicamente se aplicó la prueba no paramétrica de Wilcoxon.
Esta es la prueba no paramétrica más potente cuando se tratan variables medibles en, por lo menos,
una escala ordinal (Díaz, 2009).
Tabla 3.1 Prueba de Wilcoxon para el grupo de control.
Tabla 3.2 Prueba de Wilcoxon para el grupo de experimento.
La hipótesis nula enuncia que las muestras proceden de poblaciones con la misma distribución de
probabilidad; la hipótesis alternativa establece que hay diferencias respecto a la tendencia central
de las poblaciones. El contraste se basa en el comportamiento de las diferencias entre las
Capítulo 3: Aplicación Docente del software educativo “La Isla de las Matemáticas”
55
puntuaciones de los elementos de cada par asociado, teniendo en cuenta no sólo el signo, sino
también la magnitud de la diferencia.
El valor de la significación según Wilcoxon, para el caso del grupo de control es 0.020 < 0.05 por
lo que las diferencias son significativas entre la prePrueba y la postPrueba. De manera similar en
el grupo de experimento el valor de la significación según Wilcoxon es 0.036 < 0.05 por lo que
existen diferencias significativas entre la prePrueba y la postPrueba.
Finalmente, con el objetivo de conocer si existían o no diferencias significativas entre ambos
grupos, en la etapa final se aplicó la prueba no paramétrica de U de Mann-Whitney sobre los
resultados obtenidos en la PosPrueba, ver Figura 3.6, Como resultado se obtuvo un valor de la
significación según Mann-Whitney es 0.038 < 0.05 por lo que se puede afirmar que existen
diferencias significativas entre las evaluaciones de ambos grupos obtenidas en la PostPrueba.
Figura 3.6 Prueba de Mann-Whitney.
El estudio llevado a cabo mostró una importante mejoría en el aprendizaje de los alumnos que
pertenecen al grupo experimento, lo que permite afirmar que resulta adecuado el uso del sistema
“La Isla de las Matemáticas” como herramienta de apoyo a la enseñanza de la asignatura
Matemática en el Primer Ciclo de la Enseñanza Primaria.
3.8 Conclusiones parciales
Para contribuir a elevar la calidad del proceso de enseñanza-aprendizaje de la asignatura
Matemática, impartida en el Primer Ciclo de la Enseñanza Primaria, se hace necesario la existencia
de medios, ambientes o herramientas que despierten el interés del alumno para aprender y que
desarrollen habilidades en el conocimiento previamente asimilado.
La comparación de los resultados obtenidos en el grupo de estudiantes que utilizó el sistema aquí
presentado y el grupo de control que siguió la estrategia pedagógica tradicional permitió
comprobar que existe mejoría en el aprendizaje de los alumnos que utilizaron el sistema para
desarrollar habilidades en los complejos de materias que conforman la asignatura.
Conclusiones
56
CONCLUSIONES
El presente trabajo realiza un análisis crítico del desarrollo actual de los sistemas distribuidos como
marco apropiado para incorporar sus innovaciones tecnológicas al desarrollo de contextos
educativos como alternativas viables a la educación tradicional. Como resultado de esta
investigación se puede concluir que:
1. El empleo de una arquitectura distribuida en el diseño del sistema, favorece el desarrollo
de ambientes que apoyan el aprendizaje y contribuyen a la solución de las principales
dificultades que presentan los estudiantes en la asignatura Matemática en el Primer Ciclo
de la Enseñanza Primaria.
2. El sistema distribuido, facilita la gestión y el desarrollo de las actividades de ejercitación
de los conceptos relacionados con las cuatro operaciones de cálculo y el trabajo con
fracciones.
3. La herramienta informática “La Isla de las Matemáticas” se aplicó en el proceso de
enseñanza-aprendizaje de la asignatura Matemática impartida a los estudiantes de Tercer
Grado de la ENU “Batalla del Capiro” y fue evaluado satisfactoriamente por estudiantes y
expertos. Por otra parte los resultados de los instrumentos aplicados a los estudiantes
demuestran la efectividad del software.
Recomendaciones
57
RECOMENDACIONES
Ningún trabajo, por detallado que se haya hecho, se puede dar por terminado, sobre todo cuando
se elabora un producto orientado a una tarea tan compleja como la enseñanza. Por ese motivo se
presentan las siguientes recomendaciones, las cuales de cierta manera contribuyen al
perfeccionamiento del estado actual del sistema.
Establecer “La Isla de las Matemáticas”, como software para la enseñanza de la asignatura
de Matemática impartida a los estudiantes que cursan el Primer Ciclo de la Enseñanza
Primaria.
Extender el sistema de forma tal que pueda ser utilizado tanto en el primero como segundo
ciclo de la Enseñanza Primaria cubana.
Referencias Bibliográficas
58
REFERENCIAS BIBLIOGRÁFICAS AEDO, C. R. R. F. & ROMERO, M. E. D. 2006. Educación y Tecnología: Un binomio
excepcional, Martín Delavaut.
ALLEN, G. & OWENS, M. 2011. The Definitive Guide to SQLite, Apress.
ALONSO, C. G. M., RAFAEL, S. F., FRANCISCO, M. P., GABRIEL, D. O., ELIO, S. R.,
MIGUEL, S. P. V., JAVIER, S. B., MARÍA, F. A. J., PAU, M. C. & GREGORIO, Y. C.
J. 2017. Comunicaciones industriales: sistemas distribuidos y aplicaciones, Editorial
UNED.
ANSARI, N., TIWARI, S. & AGRAWAL, N. 2005. Practical Handbook Of Thin-Client
Implementation, New Age International.
BOOCH, G. 2017. Unified Modeling Language User Guid, Addison Wesley Professional.
BOOCH, G., RUMBAUGH, J. & JACOBSON, I. 2000. El lenguaje unificado de modelado.
CABALLÉ, S. & XHAFA, F. 2007. Aplicaciones Distribuidas en Java, Delta Publicaciones.
COMER, D. E. 2016. Computer Networks and Internets, Global Edition, Pearson Education
Limited.
CONTRERAS, M. C. 2017. Go Design Patterns, Packt Publishing.
COULOURIS, G., DOLLIMORE, J. & KINDBERG, T. 2009. Distributed Systems: Concepts and
Design, 4/e, Pearson Education.
COULOURIS, G. F., DOLLIMORE, J. & KINDBERG, T. 2013. Distributed Systems, pearson
education.
CURBELO, C. F. J. H. & ALMEIDA, C. L. E. N. 2009. Uso del software educativo en la escuela
cubana y su impacto en el aprendizaje de los estudiantes.
CZAJA, L. 2018. Introduction to Distributed Computer Systems: Principles and Features,
Springer.
DATHAN, B. & RAMNATH, S. 2015. Object-Oriented Analysis, Design and Implementation:
An Integrated Approach, Springer.
DAVE EVANS, G. J. H. T. M. S. C. T. 2002. Enterprise Java2, J2EE1.3 Complete, Wiley.
DE LA TORRE, M. E. B., CALDERÓN, E. A. A., LÓPEZ, R. & BRACHO, B. I. 2014. Influencia
de las TIC en los procesos educativos. Revista Material Didáctico Innovador (RMDI), 10,
19.
DEL TORO, M., GONZÁLEZ, J. & GÁMEZ, A. 1995. Control de la calidad en la elaboración y
evaluación de un software educativo. La Habana: Ponencia presentada en el Evento
Internacional Pedagogía, 95.
Referencias Bibliográficas
59
DÍAZ, M. C. 2009. Utilidad de los Métodos de Pretest para la Evaluación de los Cuestionarios en
la Investigación mediante Encuesta. Universidad de Granada.
DOUGLAS, C. 2006. Internetworking with TCP/IP: Principles, Protocols, and Architecture.
Prentice Hall, ISBN, 131876716.
ELMASRI, R. & NAVATHE, S. 2013. Fundamentals of Database Systems, Pearson.
FOX, G. C., WILLIAMS, R. D. & MESSINA, G. C. 2014. Parallel computing works!, Morgan
Kaufmann.
GHOSH, S. 2014. Distributed systems: an algorithmic approach, CRC press.
GRAELLS, P. M. La informática como medio didáctico: software educativo, posibilidades e
integración curricular. Medios audiovisuales y nuevas tecnologías para la formación en el
siglo XXI, 2000. DM, 109-126.
GRAY, J. S. 2003. Interprocess communications in Linux, Prentice Hall Professional.
GROSSO, W. 2002. Java rmi, O'Reilly Japan.
GUTIÉRREZ, D. B. & MARTÍNEZ, L. T. 1999. Tecnologías para el desarrollo de Sistemas
Distribuidos: Java versus Corba.
HALDAR, S. 2016. SQLite Database System Design and Implementation (Second Edition,
Version 2), Sibsankar Haldar.
HALDAR, S. & ARAVIND, A. 2015. Operating systems, Pearson Education India.
HANUMANT PAWAR, SUJEET PATIL, SOURABH KARCHE, UDIT UPADHAYAY &
CHANNARAM, M. 2015. Distributed Object Computing Using Java Remote Method
Invocation. International Journal of Emerging Engineering Research and Technology 3,
68-76.
JACOBSON, I., BOOCH, G. & RUMBAUGH, J. 2000. El proceso unificado de desarrollo de
software/The unified software development process, Pearson Educación.
JELLY, I., GORTON, I. & CROLL, P. 2016. Software Engineering for Parallel and Distributed
Systems, Springer.
KAZMAN, R. 2014. Software architecture in Practice, Addison-wesley.
KREIBICH, J. 2010. Using SQLite, " O'Reilly Media, Inc.".
KSHEMKALYANI, A. D. & SINGHAL, M. 2011. Distributed computing: principles, algorithms,
and systems, Cambridge University Press.
KWOK, Y.-K. R. 2011. Peer-to-peer computing: Applications, architecture, protocols, and
challenges, Crc Press.
LABAÑINO RIZZO, C. 2007. El software educativo en el contexto de la escuela cubana.
Memorias del Evento Internacional de Pedagogía 2007.
Referencias Bibliográficas
60
LABRADA, S. M. 2011. El software educativo un medio de enseñanza eficiente. Cuadernos de
Educación y Desarrollo.
LAPLANTE, P. A. 2017. Requirements Engineering for Software and Systems, Third Edition,
CRC Press.
LLAVEN, D. S. 2015. Sistemas Operativos: Panorama para ingeniería en computación e
informática, Larousse - Grupo Editorial Patria.
MOUHEB, D., DEBBABI, M., POURZANDI, M., WANG, L., NOUH, M., ZIARATI, R.,
ALHADIDI, D., TALHI, C. & LIMA, V. 2015. Unified Modeling Language. Aspect-
Oriented Security Hardening of UML Design Models. Springer.
MOYA, A. M. 2009. Las nuevas tecnologías en la educación. Innovación y experiencias
educativas.Granada, 2009, n. 24, noviembre.
OLUWATOSIN, H. S. 2014. Client-server model. IOSRJ Comput. Eng, 16, 2278-8727.
PRESSMAN, R. S. & BRUCE R. MAXIM, D. 2014. Software Engineering: A Practitioner's
Approach, McGraw-Hill Education.
ROBBINS, K. & ROBBINS, S. 2015. UNIX Systems Programming: Communication,
Concurrency and Threads: Communication, Concurrency and Threads, Prentice Hall PTR.
RODRIGUES, R. & DRUSCHEL, P. 2010. Peer-to-peer systems. Communications of the ACM,
53, 72-82.
RODRÍGUEZ FERNÁNDEZ, M. M., WILLIAM MESA, A., CHAVIANO CONDE, R. &
RAMÍREZ GARCÍA, E. C. 2007. PAGINA WEB PARA LA ASIGNATURA
MATEMÁTICA.
SCHILDT, H. 2017. Java: The Complete Reference, Tenth Edition, McGraw-Hill Education.
SICARDI, I. 2004. Análisis de la utilización del software educativo como material de aprendizaje.
Revista de Informática Educativa y Medios Audiovisuales, 1, 1-20.
SILBERSCHATZ, A., GAGNE, G. & GALVIN, P. B. 2018. Operating System Concepts, Wiley.
SOMMERVILLE, I. 2005. Ingeniería del software, Pearson Educación.
SOMMERVILLE, I. 2015. Software Engineering, ADDISON WESLEY Publishing Company
Incorporated.
STEPISNIK, J. 2007. Distributed Object-Oriented Architectures: Sockets, Java RMI and CORBA.
Hamburg. Germany: Diplomica Verlag GmbH.
STEVENS, P. 2011. Using UML: Software Engineering with Objects and Components, Pearson
Education.
SURHONE, L. M., TIMPLEDON, M. T. & MARSEKEN, S. F. 2010. Thin Client: Computer
Program, Information Processing, Fat Client, Persistent Data Structure, Grid Computing,
Graphical User Interface, Betascript Publishing.
Referencias Bibliográficas
61
TANENBAUM, A. S. & VAN STEEN, M. 2007. Distributed systems: principles and paradigms,
Prentice-Hall.
TSUI, F., KARAM, O. & BERNAL, B. 2016. Essentials of software engineering, Jones & Bartlett
Learning.
UMAR, A. 2004. Third Generation Distributed Computing Environments, nge solutions, inc.
VALCÁRCEL, A. G. & RODERO, L. G. 2013. Uso pedagógico de materiales y recursos
educativos de las TIC: sus ventajas en el aula. Universidad de Salamanca. Recuperado el,
10.
VAN STEEN, M. & TANENBAUM, A. S. 2016. A brief introduction to distributed systems.
Computing, 98, 967-1009.
VAN STEEN, M. & TANENBAUM, A. S. 2017. Distributed Systems, CreateSpace Independent
Publishing Platform.
VENKATARAM, P., MANVI, S. S. & BABU, B. S. 2014. Communication protocol engineering,
PHI Learning.
VIDAL LEDO, M., NOLLA CAO, N. & DIEGO OLITE, F. 2009. Plataformas didácticas como
tecnología educativa. Educación Médica Superior, 23.
VILLALÓN INCHÁUSTEGUI, M., PEÑA GÁLVEZ, R. L., LEÓN FIGUERAS, N., GAREA
ALONSO, L., BELLO DOMÍNGUEZ, M., VERELA PILOTO, L. & RIZO CABRERA,
C. 1990. Orientaciones metodológicas., Cuba.
WALTON, S. 2001. Linux Socket Programming, Sams.
WARREN, I. 2012. The renaissance of legacy systems: method support for software-system
evolution, Springer Science & Business Media.
XUE, M. & ZHU, C. The socket programming and software design for communication based on
client/server. Circuits, Communications and Systems, 2009. PACCS'09. Pacific-Asia
Conference on, 2009. IEEE, 775-777.
YAKOVENKO, A. E., CHANDRASEKHAR, R. & IYER, V. 2015. Fast remote procedure call.
Google Patents.
YUNIOR, P. R., MARITZA, S. S. & ORESTES, C. R. 2011. Evolución del software ejercitador
de las colecciones de software educativo cubano: un estudio de caso. Revista
Latinoamericana y Caribeña de Educación., 3.
ZAYAS, C. Á. D. 2002. III Seminario Nacional para Educadores. In: EDUCACIÓN, P. Y. (ed.).
ZILBERSTEIN TORUNCHA, J., HERRERO TUNIS, E., BOLLOTO CARMONA, G.,
CASTANÑEDA HEVIA, Á. E., CAÑAS LOUZAU, T., FERNÁNDEZ, A. M., VALDÉS
MONTALVO, N., COLLAZO DELGADO, R. & RODRÍGUEZ LAMAS, R. 2006.
Preparación pedagógica integral para profesores integrales., Cuba.