66
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

Los sistemas distribuidos. Una aplicación en la enseñanza

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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.