Resumen Entre los medios de enseñanza, también conocidos como mediadores didácticos, y particularmente entre los medios audiovisuales; uno de los más importantes para la enseñanza lengua extranjera es el Laboratorio de de idiomas como Idiomas. Actualmente en Cuba existen muy pocos y en general se encuentran en mal estado técnico. Considerando además el alto costo de estos laboratorios en el mercado internacional y la disponibilidad de laboratorios de computación en prácticamente todos los centros educacionales del país, se ha desarrollado un sistema computacional que permite realizar todas las actividades específicas de un laboratorio tradicional de idioma así como la inclusión de nuevas prestaciones tales como video, imágenes, chat y editor de texto, lográndose un producto de calidad, de gran importancia desde el punto de vista económico e impacto social relevante. El sistema incluye dos módulos: el cliente destinado a los estudiantes y el servidor (ejerce la función de la Consola Master) desde el cual el profesor controla todas las actividades del laboratorio. Las interfaces desarrolladas se implementaron estudiantes utilizando como herramienta Borland Builder C++. El sistema brinda facilidades a y profesores de que, mediante computadoras desarrollen sus actividades en un ambiente interactivo agradable, lo que resulta de apreciable ayuda al proceso docente educativo en los centros de estudios donde de alguna forma, se realice la enseñanza de idiomas extranjeros. INDICE Introducción Capítulo 1 Elementos teóricos 1.1 Medios de Enseñanza. Su clasificación 1.2 Sistemas de Medios 1.3 Conceptos sobre programación orientada a objetos 1.4 Análisis y diseño orientado a objetos 1.5 El uso de socket 1.6 Arquitectura cliente servidor. 1.7 Ambiente de desarrollo Builder Capítulo 2 Análisis y diseño del sistema 2.1 Descripción de la empresa 2.2 Análisis del sistema 2.3 Diseño del sistema 2.4 Implementación del sistema 2.5 Seguridad del sistema 2.6 Requerimientos técnicos para el funcionamiento del sistema Capitulo 3 Laboratorio de Idiomas Computarizado de Altas Prestaciones Conclusiones Recomendaciones Bibliografía Anexos Introducción La enseñanza del actual siglo ha estado matizada por el uso de los Medios Técnicos de Enseñanza (MTE), dentro de los cuales la computadora ha desempeñado una función preponderante por las ventajas que incorporó. Los medios de enseñanza, también conocidos como Mediadores Didácticos, responden a la pregunta ¿con qué enseñar y aprender? Están constituidos por objetos naturales o conservados o sus representaciones, instrumentos o equipos que apoyan la actividad de docentes y estudiantes en función del cumplimiento del objetivo. [3] Los medios de enseñanza son el soporte material del contenido y los facilitadores o mediadores aplicación de los métodos de enseñanza; su empleo de la está estrechamente relacionado con las restantes categorías: propician el logro de los objetivos y son recursos por emplear en la evaluación. Tienen carácter de sistema debido a que la función que unos no pueden cumplir por sus características estructurales y la propia información que transmiten es complementada por otros medios del sistema. Los medios deben ser empleados tanto en la actividad de enseñanza como en la de aprendizaje, lo cual responde a la interrelación entre todas las categorías del proceso y sus relaciones con los sujetos implicados. Los medios de enseñaza pueden emplearse también para el control del aprendizaje permitiendo que puedan verificarse los resultados del mismo. Un ejemplo de esto lo constituyen los laboratorios de idiomas convencionales. Un laboratorio de idioma es local con condiciones especiales en el cual el profesor administra y realiza una actividad docente relacionada con la enseñanza de idiomas y está compuesto por una consola master, operada por el profesor y un grupo de cabinas destinadas a los estudiantes. Tanto la consola como las cabinas están intercomunicadas y dotadas de una grabadora, audífono y micrófono. Actualmente en nuestro país existen muy pocos laboratorios de idiomas y en general se encuentran en mal estado técnico. Considerando además el alto costo de estos laboratorios en el mercado internacional y de otro lado la disponibilidad de laboratorios de computación en prácticamente en todos los centros educacionales del país, en todos los niveles, nos planteamos la necesidad de desarrollar un sistema computacional que permite realizar todas las actividades específicas de un laboratorio tradicional de idioma, con lo cual se ayuda a solventar la carencia actual de los mismos, así como incluir nuevas prestaciones tales como video, imágenes, chat y editor de texto. El objetivo general del presente proyecto es realizar un software que a partir de la capacidad instalada de un laboratorio de computación permita su utilización como un laboratorio de idiomas sencillo, eficiente y de mayores prestaciones que uno convencional. Como objetivos específicos se plantea que la herramienta facilite las siguientes tareas: • Desarrollar discusiones escritas en línea. • Distribuir contenido de multimedia e imagen. • Edición y distribución de documentos a toda la clase. computacional que presentamos • Sentar las bases para una posible implementación de un laboratorio virtual de idioma. Para cumplir con los objetivos propuestos se prevé que el sistema tenga las siguientes funcionalidades: Aplicación cliente (relacionada con el estudiante): Realizar conexión con el servidor. Reproducir video. Mostrar imagen. Enviar mensaje escrito. Recibir dirección de video. Recibir dirección de imagen. Recibir mensaje escrito. Recibir mensaje de control de video por el profesor Recibir mensaje de conversación Seleccionar video. Seleccionar imagen. Desconectarse del servidor. Editar, enviar y recibir ficheros (documentos). Aplicación servidor (relacionada con el profesor): Reproducir video. Abrir imagen. Enviar dirección de video. Enviar dirección de imagen. Enviar mensaje escrito. Mostrar máquina y usuario que se conectó. Seleccionar conexiones. Desmarcar conexiones Recibir mensaje escrito. Eliminar usuario que se desconectó. Mostrar usuario que se desconectó. Enviar mensaje de control de reproducción de video por el profesor. Iniciar conversación. Preparar diálogos. Editar, enviar y recibir ficheros (documentos). Para lograr el objetivo propuesto fue necesario desarrollar las siguientes actividades: a) Entrevista a profesores encargados de la utilización de laboratorios de idioma tradicionales. b) Observación del proceso de desarrollo de una clase en un laboratorio tradicional de idioma. c) Revisión de la bibliografía relacionado con la didáctica, los Medios de Enseñanza, programación orientada a objeto, la metodologías de análisis y diseños orientado a objetos, UML, herramientas visuales para el desarrollo de las aplicaciones (Borland C++ Builder 6.0) y herramientas CASE ( Rational Rose). Pretendemos con el uso de las técnicas computacionales lograr un producto de calidad con un costo mínimo que funcione a partir del empleo de un sistema computacional atrayente que permita interactuar con el usuario a través de una interfaz gráfica. El sistema se implementó usando Borland C++ Builder 6.0, con un ambiente de fácil manipulación, soportado sobre Microsoft Windows XP. Estructura de la monografía El presente trabajo de diploma se encuentra estructurado en introducción y tres capítulos; conclusiones, recomendaciones, referencias bibliográficas y anexos. En el capítulo 1, Elementos teóricos, presentamos algunos aspectos teórico- conceptuales que fueron utilizados en el desarrollo de nuestro trabajo, tales como los medios de enseñanza, los sistemas de medios, los relacionados con la programación orientada a objetos, el uso de socket, análisis y diseño de sistemas orientado a objetos, el lenguaje unificado de datos (en inglés Unified Modeling Language o con sus siglas UML) y sus diagramas básicos, características generales de la arquitectura cliente/servidor y las herramientas visuales. En el capítulo 2, referido al análisis y diseño del sistema, se realiza la descripción del problema exponiendo las características de los laboratorios de idiomas para el cual se ha realizado el software, así como las distintas etapas de desarrollo en la elaboración del mismo, análisis del sistema, diagramas de objetos del sistema, diseño, arquitectura e implementación del sistema y los requerimientos para su correcto funcionamiento. En el capítulo 3 se presenta el Laboratorio de Idiomas Computarizado de Altas Prestaciones (LICAP), sus funcionalidades y módulos (cliente y servidor). Además de la forma en que se manipulan las mismas. Por último aparecen las conclusiones, recomendaciones, las referencias bibliográficas y los anexos. Capitulo 1 Elementos teóricos El presente capítulo se explican las principales cuestiones teóricas usadas en el desarrollo de este trabajo, las cuales constituyen el marco teórico en el que se fundamenta el mismo. Medios de Enseñanza. Su clasificación Los medios de enseñanza, también conocidos como Mediadores Didácticos son el soporte material del contenido y los facilitadores o mediadores de la aplicación de los métodos de enseñanza y están constituidos por objetos naturales o conservados o sus representaciones, instrumentos o equipos que apoyan la actividad de docentes y estudiantes en función del cumplimiento del objetivo. Como toda clasificación atiende a algún criterio, presentaremos aquellos que consideramos fundamentales en el caso de los mediadores didácticos. La primera clasificación depende de los sentidos involucrados en la percepción del medio, así tendremos: • Visuales. • Auditivos. • Audiovisuales. Según su aparición, se ha usado como criterio el de generaciones de mediadores. Se resumen en: • Primera generación (libros, impresos, entre otros). • Segunda generación (pancartas, transparencias, demostraciones con equipos reales). • Tercera generación (vídeos, grabadoras, TV, cine, entre otros). • Cuarta generación (computadoras, programas inteligentes, autoinstrucción con computadoras). Con la introducción de esta cuarta generación de mediadores didácticos se da una nueva clasificación en la que se establecen tres grandes grupos. Ellos son: • Mediadores pasivos. • Mediadores activos. • Medidores de acción indirecta. Mediadores didácticos pasivos: son aquellos mediadores que se desarrollan para ser empleados en el proceso de formación de los profesionales conducida por el profesor, no pretendiendo sustituirlo. Mediadores didácticos activos: en este grupo están todos aquellos mediadores diseñados para intentar sustituir al profesor y guiar el proceso de formación de los profesionales, que tendrá un marcado carácter autodidacta. En este grupo se incluirían los: tutoriales, entrenadores, repasadores, evaluadores entre otros. Mediadores didácticos de acción indirecta: son aquellos mediadores que el estudiante emplea sin el propósito consciente de aprender algo con ellos, pero que por sus características ejercen sutilmente su influencia didáctica. En este grupo se encuentran los juegos instructivos. Sistemas de Medios Un sistema de medios es aquella combinación de medios de enseñanza cuya integración es la que produce un resultado superior a la aplicación aislada o a las combinaciones parciales de sus componentes. La relación entre ellos hace que cada uno se enriquezca a sí mismo y acentúa la acción de los demás. El sistema de medios está formado por un conjunto tal de elementos que se caracteriza por su interrelación e interacción, por su integridad en si mismo y con el proceso docente educativo en su conjunto y responde en última instancia a la más cabal satisfacción de los objetivos y contenidos de un tema dado de un programa. A la hora de seleccionar el sistema de medios, debemos de tener presente que los mismos deben contribuir a la transmisión de la información y al desarrollo de las habilidades y capacidades en los estudiantes. El sistema de medios se compone a su vez de subsistemas en si mismos y que proporcionan saltos cualitativos; se eleva la calidad de la enseñaza, el nivel de rendimiento y se aprende mejor. Al elaborar el sistema de enseñaza hay que explotar adecuadamente cada uno de los elementos que lo integran y usarlos oportunamente para que sean capaces de cumplir su importante papel. Este es dinámico, orgánico, artificial y abierto. Es artificial ya que es creado por los hombres; orgánico porque la inclusión o exclusión de algunos de elementos de su estructura no lo destruye; abierto y dinámico porque bajo la influencia del proceso científico-técnico, el perfeccionamiento del contenido experimenta constantes cambios. Conceptos sobre programación orientada a objetos Programar en un lenguaje de programación orientado a objetos es definir clases que “expresan” una determinada funcionalidad la cual es común a todos los individuos de una clase. A través de esta funcionalidad los objetos o instancias concretas de una clase dan respuesta a las solicitudes (mensajes) que les envían otros objetos. Las clases deben ser lo suficientemente “cerradas” como para que cada objeto pueda ocultar la información (los datos) que lo caracteriza como individuo. Es un problema interno del objeto como llevar a cabo la funcionalidad descrita en la clase. Por otra parte estas clases deben ser lo suficientemente “abiertas” para permitir la reutilización, adaptación y extensión de las mismas a nuevas funcionalidades, sin correr el riesgo de afectar el funcionamiento de lo que ya está correcto. Esta aparente contradicción de lo que se conoce como principio abierto-cerrado, es la piedra angular de la programación orientada a objeto. Conceptos básicos de la programación orientada a objetos Clases: Una clase puede definirse como una descripción abstracta de un grupo de objetos, con las propiedades similares (los atributos), las mismas conductas (los métodos), mismas relaciones con otros objetos y la misma semántica. La idea de escribir programas que definen una serie de abstracciones no es nueva, pero el uso de clases para manipular las abstracciones programando en los lenguajes, ha facilitado su aplicación considerablemente. Objeto: Un objeto es una instancia o elemento particular perteneciente a una clase. Define las variables de instancias con sus propios valores (sus propias características) y comparte los métodos con las demás instancias de la clase. Atributo: Un atributo es una propiedad de una clase identificada con un nombre, que describe un rango de valores que pueden tomar las instancias de la propiedad. Una clase puede tener cualquier número de atributos o no tener ninguno. En un momento dado, un objeto de una clase tendrá valores específicos para cada uno de los atributos de su clase. Método: Un método es un procedimiento o una función asociado con una clase, que expresa una operación que se puede realizar con los objetos de esa clase. Mensaje: Para acceder a un servicio público que oferta la clase se envía un mensaje (en realidad consiste en llamar a uno de los métodos o propiedades públicas de otro objeto). Los mensajes se dividen en tres partes: el servidor (el objeto) al que el cliente se dirige, el servicio que el cliente solicita y los parámetros necesarios para la ejecución del servicio. 1.4 Análisis y diseño orientado a objetos Es perfectamente posible modelar una solución pensando totalmente orientado a objetos desde a fase del análisis, pasando por el proyecto del software y llegando a la implementación en un lenguaje de programación orientado a objetos. El propósito del análisis es definir y entender el problema y el dominio de la aplicación. El diseño genera, a partir del resultado del análisis, una estructura de alto nivel del sistema que servirá de base para a implementación. La implementación constituye la fase final del proceso de traducción del proyecto en código. El diseño se ha descrito como un proceso multifase en el que se sintetizan representaciones de la estructura de datos, estructura del programa, características de la interfaz y detalles procedimentales desde los requisitos de la información. El diseño del software es el núcleo técnico del proceso de ingeniería del software y se aplica independientemente del paradigma de desarrollo utilizado. Cada uno de los elementos del modelo de análisis proporciona información necesaria para crear un modelo de diseño. Los requisitos del software, manifestados por los datos y los modelos funcionales y de comportamiento, componen la fase de diseño. Mediante el empleo de uno de los métodos de diseño la fase de diseño produce: • Diseño de datos • Diseño arquitectónico • Diseño de interfaz • Diseño procedimental. La actividad principal del diseño de datos es seleccionar representaciones lógicas de objetos de datos (estructuras de datos) identificadas durante la fase de definición y especificación de requisitos. El proceso de selección puede incluir el análisis de estructuras alternativas para determinar el diseño más eficaz o puede incluir simplemente el empleo de un conjunto de módulos (un «paquete») que proporcione las operaciones deseadas sobre alguna representación de un objeto. Una actividad relacionada importante durante el diseño es identificar aquellos módulos del programa que deben operar directamente sobre las estructuras de datos lógicas. De esta manera se puede restringir el alcance de efecto de las decisiones individuales sobre el diseño de datos. Independientemente de las técnicas de diseño que se emplean, unos datos bien diseñados pueden conducir a una mejor estructura y modularidad del programa, y a una menor complejidad procedimental. El objetivo del diseño arquitectónico es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. Además, el diseño arquitectónico combina la estructura del programa y las estructuras de datos, definiendo interfaces que permiten el flujo de datos a través del programa. El diseño orientado al flujo de datos es un método de diseño arquitectónico que permite una cómoda transición desde el modelo de análisis a una descripción del diseño de la estructura del programa. El diseño de la interfaz se concentra en tres áreas importantes: (1) el diseño de interfaces entre los módulos software; (2) el diseño de interfaces entre el software y otros productores y consumidores no humanos de información (Ej.: otras entidades externas); y (3) el diseño de la interfaz entre el hombre (Ej. el usuario) y la computadora. El diseño procedimental se realiza después de los diseños de datos, arquitectónico y de interfaz. En un mundo ideal, la especificación procedimental necesaria para definir los detalles de los algoritmos se expresaría en un lenguaje natural. Después de todo, los miembros de una organización de desarrollo de software hablan un lenguaje natural (en teoría, al menos), las personas fuera del mundo del software podrían entender mejor la especificación, y no sería necesario un nuevo aprendizaje. UML (Unified Modeling Language) UML que significa en español Lenguaje Unificado de Modelado es un lenguaje de desarrollo orientado a objetos para visualización, especificación, construcción y documentación de sistemas. Diagramas de UML Un diagrama en UML es una presentación gráfica de un conjunto de elementos, que la mayoría de las veces se dibuja como un grafo conexo de nodos (elementos) y arcos (relaciones). Los diagramas se utilizan para visualizar un sistema desde diferentes perspectivas. Como ningún sistema puede ser comprendido completamente desde una única perspectiva, UML define varios diagramas que permiten centrarse en diferentes aspectos del sistema independientemente. Diagrama de clases. Un diagrama de clases presenta un conjunto de clases, interfaces y colaboraciones, y las relaciones entre ellas. Son los más comunes en el modelado de sistemas orientados a objetos. Estos se utilizan para describir la vista de diseño estática de un sistema. Los diagramas de clases que incluyen clases activas se utilizan para cubrir la vista de procesos estática de un sistema. Diagrama de objetos. Un diagrama de objetos representa un conjunto de objetos y sus relaciones. Se utilizan para describir estructuras de datos, instantáneas de las instancias de los elementos encontrados en los diagramas de clases. Los diagramas de objetos cubren la vista de diseño estática o la vista de procesos estática de un sistema al igual que los diagramas de clases, pero desde la perspectiva de casos reales o prototípicos Diagrama de casos de uso. Un diagrama de casos de uso representa un conjunto de casos de uso y actores (un tipo especial de clases) y sus relaciones. Los diagramas de casos de uso se utilizan para describir la vista de casos de uso estática de un sistema. Los diagramas de casos de uso son especialmente importantes para organizar y modelar el comportamiento de un sistema. Existen otros diagramas como los de secuencia y de colaboración que son semánticamente equivalentes, sucede también con los diagramas de estados y actividades. Uso de socket Los componentes de socket le permiten a la aplicación la comunicación con otros sistemas usando protocolo TCP/IP. Usando estos se puede leer y escribir sobre las conexiones con otras maquinas sin tener en cuenta los detalles del software de la red. Además permite trabajar con otros protocolos relacionados como son User Datagram Protocol (UDP), Xeros Network System (XNS), Digital’s DECnet, o Nowll’s IPX/SPX family. Para proveer un nuevo servicio para una aplicación que se comunica con otros sistemas, el primer paso es diseñar el protocolo de comunicación para los clientes y los servidores de este servicio. Comunicación con aplicaciones Frecuentemente las aplicaciones cliente-servidor de red proveen una capa entre el software de la red y la aplicación que usan los servicios. Por ejemplo el servicio HTTP entre Internet y la aplicación cliente Web que propicia respuestas a los requisitos de los mensajes HTTP. Los socket proveen una interfase entre la aplicación servidor o la aplicación cliente de red y el software de red. Se debe proveer la interfase entre esta aplicación y la que el cliente usa. Tipos de conexiones de socket Las conexiones de socket se pueden dividir en tres tipos básicos, los cuales reflejan cómo deben ser inicializadas y cual es el socket local que está conectado: • Conexiones clientes Estas conectan un socket cliente en un sistema local a un servidor remoto, las conexiones clientes son inicializadas por el socket cliente. Primeramente el socket cliente debe describir al socket servidor al cual desea conectarse. El socket cliente entonces busca el socket servidor y cuando lo localiza establece los requisitos de conexión. El socket servidor no completa la conexión de inmediato. Este produce una cola de requisitos de cliente. Cuando el socket servidor acepta la conexión cliente, este le envía al socket cliente una descripción completa del socket servidor al que esta conectado, y la conexión es completada por el cliente. • Escuchando conexiones Los socket servidores no localizan a los clientes, sino que forman una half conexión pasiva en espera por las peticiones de los clientes. Los socket servidores asocian una cola con sus conexiones de escucha, los registros de los requerimientos de los clientes se responden según vayan llegando. • Conexiones servidor Está formada por el socket servidor, cuando el socket acepta un requerimiento de un cliente. Una descripción del socket servidor que completa la conexión es enviada al cliente cuando éste acepta la conexión. La conexión es establecida cuando el socket cliente recibe esta descripción y completa la conexión. Una vez que la conexión con el socket cliente es completada, la conexión con el servidor es indistinguible para la conexión cliente. Ambos tienen las mismas capacidades y reciben los mismos tipos de eventos. Los sockets le permiten a la aplicación de red comunicarse con otros sistemas a través de ésta. Cada socket es visto como un extremo en una conexión de red. Estos tienen una dirección que especifica: • El sistema en el cual están corriendo. • El tipo de interfase que comprende. • El puerto que esta usando para la conexión. Una completa descripción de los socket incluye la dirección de ambos lados de la conexión. Se puede describir la dirección de cada socket especificando la dirección IP o el host y el número del puerto. Antes de realizar una conexión de socket, se debe describir completamente el socket, alguna de esta información es disponible del sistema para la aplicación que está corriendo. Esta debe depender del tipo de socket con el que se trabaja. Los socket cliente deben describir al servidor con el cual desean conectarse. Aún cuando la dirección de IP provee suficiente información para encontrar el sistema o el otro extremo de la conexión, también se necesita un número de puerto en el sistema. Sin el puerto el sistema sólo puede formar una conexión simple en el tiempo. Este debe ser un múltiples conexiones con el identificador único que permite al sistema host simultáneamente, dándole a cada conexión números de puertos separados. La razón para formar conexiones de socket con otras máquinas es que permita leer y escribir información usando la conexión. La información a leer y escribir (o cuando hacerlo) depende del servicio asociado con la conexión del socket. La lectura y la escritura sobre socket ocurre asincrónicamente, así no impide la ejecución de otro código en la aplicación de red. Esto es llamado conexiones de tipo nonblocking (cuando ocurre esto la escritura y la lectura informa al socket cuando el otro extremo de la conexión trata de leer o escribir información). Cuando la conexión es de tipo blocking, el socket debe inicializar la lectura y la escritura sobre la conexión. Este no espera pasivamente por la notificación de la conexión de socket. Este se usa cuando el otro extremo de la comunicación está a cargo de la lectura y la escritura. Arquitectura cliente servidor. El término servidor es aplicado a cualquier programa que ofrece un servicio que se puede obtener por una red. El servidor acepta una petición, realiza el servicio y devuelve el resultado al solicitante. Un programa ejecutable se convierte en un cliente cuando manda una petición y espera una respuesta. El programa servidor atiende a múltiples clientes interesados en un recurso compartido en propiedad del servidor, estos clientes obtienen acceso a la información de forma transparente en un entorno multiusuario. Ambiente de desarrollo Builder El Borland Builder 6.0 es un lenguaje de programación orientado a objetos y posee un amplio conjunto de componentes, que permite la incorporación de otros, desarrolla interfaces visuales que posibilita al usuario interactuar y familiarizarse de forma rápida y sencilla con la aplicación. Capitulo 2 Análisis y diseño del sistema En este capítulo se exponen el análisis y el diseño del sistema y algunas cuestiones referentes a su implementación. 2.1 Descripción de la empresa Un laboratorio de idioma tradicional es un local con condiciones especiales en la cual el profesor administra y realiza una actividad docente relacionada con la enseñanza de idiomas y está compuesto por una consola master, operada por el profesor y un grupo de cabinas destinadas a los estudiantes. Tanto la consola como las cabinas están intercomunicadas y dotadas de una grabadora, audífono y micrófono Los laboratorios de este tipo se implementan como un medio de enseñanza auxiliar de control del aprendizaje, que permite a los estudiantes un mayor acercamiento auditivo en un lenguaje específico ya que escuchar diferentes acentos de un idioma en específico los independiza del acento al que están acostumbrados con el profesor. Dificultades analizadas El uso de los laboratorios tradicionales requiere de un control mucho más estricto que las actividades que se realizan en un aula normal, dado que el profesor debe de estar conciente de las conexiones que esta realizando ya que este puede olvidar un estudiante o conectar a un espacio que este desocupado. Son precisamente las conexiones el principal problema del laboratorio tradicional de idioma; estas se realizan a través de una consola con un conjunto de cables que reconectan al local del profesor. Este proceso requiere de mucho trabajo por parte del profesor ya que debe de estar pendiente de las conexiones existentes y las nuevas que desea realizar. No existe mecanismo alguna que permita dividir la selección de los estudiantes de la conexión de los mismos, es decir, procesos distintos con funcionalidades diferentes. La recepción del sonido no es la más apropiada, debido que las cintas de audio son las más usadas a la hora de realizar la actividad, como el uso de las cintas es muy frecuente tienden a perder la calidad del sonido dificultando el aprendizaje, no permitiendo la incorporación almacenamiento de información más confiables. Todos estos de otros mecanismos de inconvenientes atentan contra el buen desarrollo de la docencia en estos laboratorios. Lo anteriormente expuesto fue lo que nos motivó a la realización de este trabajo. Por otra parte, actualmente en nuestro país existen muy pocos laboratorios de idiomas y en general se encuentran en mal estado técnico. Considerando además el alto costo de estos laboratorios mercado de computación en internacional y de otro lado la disponibilidad de laboratorios en el prácticamente en todos los centros educacionales del país, en todos los niveles, nos planteamos la necesidad de desarrollar un sistema computacional que permite realizar todas las actividades específicas de un laboratorio tradicional de idioma, con lo cual se ayuda a solventar la carencia actual de los mismos, así como incluir nuevas prestaciones tales como video, imágenes, chat y editor de texto. 2.2 Análisis del sistema Los analistas al frente del proyecto se reunieron con los expertos y los usuarios finales y juntos definieron las metas del sistema, así como las principales funcionalidades a ser contempladas. Estudio de viabilidad Durante el proceso de planificación se realizó un estudio de factibilidad para determinar la viabilidad económica, tecnológica y operativa, resultando: • Viabilidad tecnológica: Se alcanza al disponer de hardware y software adecuado que responden a las necesidades del laboratorio de idioma. Para esto se debe contar con audífonos y micrófonos así como la conexión en la red de las máquinas del local. • Viabilidad operacional: Los usuarios finales del laboratorio no necesitarán experiencia previa en la enseñanza informatizada ya que el sistema ofrece ayuda y una interfaz gráfica atrayente y de fácil manipulación. • Viabilidad económica: El sistema es económicamente viable al no tener que comprar nuevo hardware, ni nuevos paquetes de software Beneficios que devienen de la implementación del sistema. La implementación del sistema permite a los docentes mediante una tecnología de control realizar prácticamente todas las tareas propias de un aula tradicional como instruir, observar y ayudar a sus alumnos en sus ordenadores sin tener que moverse del suyo. Facilita a todos los alumnos un asiento en primera fila y la oportunidad de lograr experiencia práctica. Su función de control remoto ofrece posibilidades muy interesantes para la enseñanza a distancia y el establecimiento de aulas virtuales en un futuro. Áreas que aportan información para el desarrollo del sistema. El sistema ha sido diseñado a solicitud de profesores de idiomas, como usuarios finales del producto, los cuales han aportado toda la información necesaria relativa a las actividades que se realiza en los laboratorios tradicionales de lenguas extranjeras. Se consultaron además materiales que tratan acerca del diseño y la implementación de algunos de los laboratorios que ya existen en el mundo. Descripción de los objetivos Uno de los objetivos de nuestro trabajo es que el profesor cuente con toda la información necesaria para la ubicación de los estudiantes en la red, permitiéndole dirigirse a los mismos como si estuviera en un laboratorio tradicional a la hora de realizar las actividades. Se implantó un mecanismo de comunicación en la red usando protocolo TCP/IP permitiendo esta operación sin tener en cuenta los detalles del software. En el caso de los estudiantes estos son los que establecen la conexión con el profesor especificando el nombre y la máquina que actúa como servidor, con el fin de participar en la clase que se está impartiendo en el laboratorio. Este proceso reduce el trabajo por parte del profesor a la hora de seleccionar estudiantes, ya que teniendo de antemano todas las conexiones el profesor selecciona a quien dirigir la información y la aplicación se encarga de todo el proceso de transmisión. Requisitos del sistema El sistema debe ser capaz de, en el caso del módulo del profesor listar todas las conexiones que han sido aceptadas por su aplicación así como eliminar de la misma a los que salen de la clase. Además debe permitir reproducción de contenido multimedia, imágenes, establecer discusiones escritas en línea con todos los estudiantes, así como un mecanismo para la transmisión de toda esa información a través de la red. En el caso de los estudiantes el sistema debe permitir que ellos puedan manipular todo el contenido que es recibido del profesor como la multimedia, las imágenes, además de establecer las discusiones escritas con el mismo. Ambos subsistemas deben incluir un editor de texto que permite crear, abrir, y enviar documentos de una aplicación a otra. La figura 2.1 muestra como está estructurado el laboratorio de idiomas, en el cual las máquinas están conectadas a una red de área local que le permite enviar y recibir datos desde las aplicaciones clientes a la aplicación servidor y viceversa. Fig. 2.1 Al realizar la conexión con el servidor, las aplicaciones clientes quedan incluidas en la clase que tomará lugar en el laboratorio. Así todos los estudiantes pueden obtener todo el contenido de trabajo enviado por el profesor desde su puesto. En el capitulo 3 se explica con mas detalle como interactuar con el sistema y las funcionalidades que posee. Especificación de requisitos funcionales. Casos de uso Los diagramas de casos de uso representan la forma en cómo un cliente (actor) opera con el sistema en desarrollo. Un diagrama de casos de uso es un gráfico de actores, un conjunto de casos de uso encerrados por los límites del sistema, las asociaciones de comunicación (participación) entre los actores, los casos de uso y generalizaciones entre los casos de uso. Los diagramas de casos de uso del sistema se presentan en el anexo 1. A continuación presentamos los diagramas de interacción para algunos de los casos de uso más relevantes del módulo del profesor: • Mostrar conexión Este caso de uso se inicia después de realizada la conexión con el servidor, éste lee del socket el nombre del estudiante que se conecta. A medida que el servidor va aceptando las conexiones la aplicación va insertándolas en una lista interna que lleva el sistema en la que se almacena toda la información de conexión. El caso de uso termina cuando la aplicación muestra al profesor la lista de todos los estudiantes que se encuentran conectados a él. • Mostrar usuario desconectado El caso de uso se inicia cuando la aplicación recibe un mensaje de desconexión por parte de un estudiante que previamente estuvo conectado con la aplicación servidor. El sistema elimina la conexión de la lista de conexiones mostrando al profesor el estudiante desconectado así como una lista del resto de conexiones. • Control de video El caso de uso se inicia cuando el profesor desea tomar o liberar el control de la reproducción de un video en las aplicaciones clientes previamente seleccionadas. De antemano se debe de haber seleccionado el video y enviado la dirección del mismo a las aplicaciones de los estudiantes que participarán en la reproducción de este. El sistema envía a estos un mensaje con un identificador que le permite diferenciar en que estado estará la reproducción, controlada por el profesor o libre a decisión del estudiante. Entre los casos de uso más importantes en el modulo del estudiante tenemos: • Conexión con el servidor El caso de uso comienza cuando el estudiante entra su nombre y el número IP de la máquina servidor para establecer la conexión. Luego el sistema envía un mensaje de conexión al servidor y notifica al estudiante el estado de la misma. No siempre se puede establecer la conexión, la que depende de que se encuentre o no la máquina servidora en la red. • Enviar mensaje escrito Este caso de uso comienza cuando el estudiante escribe en un editor de texto un mensaje al profesor. Al accionar “Enter” el sistema envía dicho mensaje al profesor a través de la conexión establecida entre ellos inicialmente, luego notifica al estudiante si tuvo éxito la acción realizada. • Recibir dirección de video Al recibir la aplicación un mensaje de dirección de video del profesor comienza este caso de uso. El sistema desglosa este mensaje que contiene un identificador de video y la dirección del mismo el cual es insertado en una lista y colocado en el menú de la aplicación (en caso de recibir una dirección repetida no se realiza ninguna de las operaciones anteriores). El display de la aplicación es preparado con el video recibido y es mostrado el estudiante. Diagrama de clases Un diagrama de clases muestra un conjunto de clases, interfaces y colaboración, así como sus relaciones. A continuación se muestran los diagramas de las clases involucradas en nuestro sistema. Fig. 2.14 Diagrama de clase Estudiante Fig. 2.15 Diagrama de clase Profesor 2.3 Diseño del sistema El diseño se ha descrito como un proceso en el que se sintetizan representaciones de la estructura del programa. Arquitectura del sistema El sistema tiene la siguiente estructura: • Una aplicación servidor donde radica la lógica de funcionamiento del sistema, desde donde se dirigen las actividades para dar cumplimiento a todos las funcionalidades del laboratorio. • Una aplicación cliente, los cuales son los receptores de las actividades dictadas por el servidor, respondiendo a las necesidades del sistema propuesto. 2.4 Implementación del sistema El sistema como una aplicación cliente servidor permite establecer una clase de jerarquía entre estudiante y el profesor, manteniendo así el estereotipo de una el clase en un laboratorio de idiomas tradicional, donde el profesor propone y los estudiantes actúan en dependencia de la actividad. El sistema está soportado sobre Microsoft Windows XP y las interfaces fueron desarrolladas empleando la herramienta de programación visual orientada a objetos Borland Builder C++ 6.0 con un ambiente de fácil manipulación. La comunicación entre aplicaciones se implementó usando los componentes de Sockets, facilitando la lectura y la escritura sobre otras máquinas usando protocolo TCP/IP, sin tener en cuenta detalles de software de red. 2.5 Seguridad del sistema Tanto el profesor como los estudiantes tienen acceso total del sistema, solo que en algunos casos el profesor puede tomar el control para observar una multimedia determinada, dejando a las aplicaciones clientes a merced de la aplicación servidora. 2.6 Requerimientos técnicos para el funcionamiento del sistema A continuación se hace un resumen de los requerimientos técnicos mínimos necesarios para el funcionamiento del sistema. • Red de área local (LAN). • Máquina Pentium II o superior. • Memoria de acceso aleatorio (RAM): de 128 Mb. • Velocidad de procesamiento (del CPU): superior a 500 Mhz • Audífonos o speaker para la salida de audio así como micrófono. Capítulo 3 Laboratorio de Idiomas Computarizado de Altas Prestaciones En este capítulo abordamos aspectos relacionados con el software y sus módulos cliente y servidor. Aquí se explica como interactuar con las interfaces así como las funcionalidades que ofrecen las mismas. El Laboratorio de Idiomas Computarizado de Altas Prestaciones (LICAP) es un software artificial, orgánico, abierto y dinámico; formado por un conjunto de elementos que se caracteriza por su interrelación e interacción, por su integridad en si mismo y con el proceso docente educativo en su conjunto, lo que lo hacen ser un sistema de medios que ofrece prestaciones adicionales más allá de las que ofrece un laboratorio convencional como son: el desarrollo de discusiones escritas en línea, distribución de contenido de multimedia (video y sonido) e imagen, además de la edición y distribución de documentos a toda la clase. Esto hace de LICAP un medio de enseñanza muy poderoso en el proceso de aprendizaje de las lenguas extranjeras. Módulos del LICAP El software LICAP cuenta con dos tipos de módulos: uno dedicado al profesor (Interfaz servidor) y otro dedicado a los estudiantes (Interfaz cliente) los cuales veremos con más detalles a continuación. Interfaz Servidor El profesor es el encargado a través de la interfaz servidor de distribuir el contenido de la clase a todos los estudiantes desde su puesto de trabajo. La aplicación presenta en la parte izquierda una lista de todos los estudiantes que se han conectado al servidor en una clase determinada, lo que permite seleccionar los estudiantes a los cuales se les enviarán el contenido de la clase (Fig. 3.1). La selección queda a disposición del profesor, es decir, puede existir un grupo de estudiantes realizando una actividad y otro grupo participando en otra diferente. Los botones “Todos” y “Ninguno” permite seleccionar y deseleccionar a todos los estudiantes a la vez respectivamente, además de permitir la selección de uno en específico haciendo click en dicho estudiante. En la parte derecha se encuentra una paleta que permite trabajar con las imágenes y los videos además de ver o enviar mensajes escritos. Fig.3.1 Trabajo con imágenes Para trabajar con las imágenes el profesor debe seleccionar la imagen previamente. Haciendo click en el botón “Abrir” el profesor selecciona la imagen con la que desea trabajar. La aplicación muestra la imagen al profesor y éste selecciona el(los) estudiante(s) al(a los) que se la enviará. La figura 3.2 muestra como quedaría la aplicación después de realizar dicha operación (en caso de no existir ninguna selección no se puede enviar la imagen) haciendo click en “Enviar”. El profesor puede enviar tantas imágenes como desee, en tanto la aplicación sólo permite imágenes del tipo *.jpg, *.jpeg ó*.bmp. Trabajo con videos Haciendo click en “Video” la aplicación permite al profesor trabajar con los videos. En la misma aparece una pantalla en el cual se reproducen los videos. Fig. 3.2 El reproductor de videos que controla la reproducción de los mismos, cuenta con los botones “Abrir” y “Enviar”, que permiten seleccionar el video y enviar el mismo a los estudiantes respectivamente. La reproducción del video en las aplicaciones clientes puede estar controlada por el mismo estudiante o por el profesor desde su aplicación, en este último caso el profesor puede marcar “Controlar video”, quedando la reproducción del video a su completa disposición. Para liberar la reproducción del video en las aplicaciones clientes se desmarca “Controlar video” y automáticamente se libera en las aplicaciones clientes. En caso de existir un video controlado por el profesor en las aplicaciones clientes y se selecciona otro a reproducir la aplicación libera el control de video sobre las aplicaciones clientes. En la figura 3.3 se muestra como quedaría la aplicación después de haber realizado la operación de selección del video, apareciendo este en la pantalla y activándose “Controlar Video” y “Enviar”, ya en este punto el profesor puede después de enviar el video ejercer el control sobre el mismo o dejar su reproducción al estudiante. Esto último queda en dependencia de la voluntad del profesor, el cual decidirá cómo realizar dicha actividad. Fig. 3.3 Discusiones escritas Haciendo click en “Mensaje” podemos enviar y recibir mensajes desde las aplicaciones clientes. En la parte superior de la aplicación se muestra un cuadro de mensajes “Mostrar:” en el cual se visualizan todos los mensajes y el nombre del estudiante que lo envía. En la parte inferior está el editor “Enviar:” desde donde se escribe el mensaje a enviar como se muestra en la figura 3.4. Interfaz Cliente La interfaz cliente es usada por los estudiantes, permitiéndoles conectarse a la clase que es impartida desde el puesto del profesor (Interfaz servidor). La aplicación está dividida en dos partes, en la parte derecha superior vemos un cuadro de mensajes donde aparecen todas las discusiones escritas enviadas desde y hacia el profesor. En la parte inferior un editor desde donde se realizan las discusiones en línea con el profesor y en la parte izquierda una pantalla que permite la reproducción de contenido multimedia así como mostrar las imágenes. Fig. 3.4 En la parte superior se encuentra un menú que a medida que el profesor vaya enviando las imágenes y los videos van apareciendo el nombre de los mismos, además de un editor que nos permitirá entrar el numero IP de la máquina servidor para establecer la conexión con el mismo. La barra de estado de la interfaz que se encuentra en la parte inferior muestra el estado de la conexión, el nombre del usuario y la máquina que este ocupa en el laboratorio. Sin la conexión al servidor los estudiantes no pueden realizar ninguna operación, exceptuando la edición de documentos en el editor de texto, ya que todas las actividades están dictadas por el profesor luego de haberse conectado a él. Conexión con el servidor Una vez ejecutado el programa debemos de conectarnos a la aplicación servidora. Escribimos el número IP del servidor y hacemos click en el botón “Conectar” quedando la aplicación como se muestra e la figura 3.5. Fig. 3.5 Luego aparece un cuadro de diálogo (Fig. 3.6) en el que escribimos el nombre del estudiante que comenzará la clase seguido oprimimos “OK” (en caso de oprimir “Cancel” no se efectúa la conexión). Fig. 3.6 Una vez realizada la conexión con el servidor aparece en la parte inferior de la interfaz el estado de la conexión, el nombre del estudiante y de la maquina que este ocupa. Contenido multimedia e imágenes Ya habiendo entrado en la clase (después de realizada previamente la conexión al servidor) podemos ver un video o una imagen enviada por el profesor para ser debatida en la clase. Reproducción de video Para reproducir un video, la aplicación debe recibir la dirección del video enviado por el profesor e inmediatamente la aplicación se prepara para la reproducción del mismo, se adiciona al menú de la aplicación el nombre del video y se activa una barra de control de multimedia que permite que el estudiante interactué con ella (Fig. 3.7). Fig. 3.7 La reproducción de video puede o no estar controlada por el profesor; en caso de que lo esté el estudiante no tiene ningún mecanismo para interactuar con el mismo. Imágenes Las imágenes también son enviadas a la aplicación a través del profesor, tal como ocurre con los videos. Se adiciona el nombre de la imagen al menú de la interfaz y se muestra al estudiante (Fig.3.8). Cuando se trabaja con imágenes aparece en la parte inferior dos botones que permiten ir a la imagen anterior y posterior, en caso de existir, además de seleccionar una en específico del menú de la aplicación. Fig. 3.8 Discusiones escritas Haciendo click en “Mensaje” podemos enviar y recibir mensajes desde las aplicaciones clientes. En la parte superior se muestra un cuadro de mensajes en el cual se visualizan todos los mensajes enviados desde y hacia el profesor. En la parte inferior un editor desde donde se escribe el mensaje a enviar al igual que en la aplicación servidor. Desconexión con el servidor La desconexión con el servidor se puede hacer al cerrar la aplicación o al hacer click en el botón “Desconectar”. En último caso el estudiante toma el control total de la reproducción de la multimedia y de las imágenes, en caso de haber sido enviada al menos una dirección de video o imagen por el profesor, de lo contrario la aplicación queda desprovista de cualquier acción. Editor de texto El editor de texto es otra funcionalidad que brinda tanto la interfaz cliente como la interfaz servidor (Fig. 3.9) al hacer click en el botón “Editor de Texto”. Dicha funcionalidad permite enviar un documento texto de una aplicación a otra. El profesor puede crear, abrir o editar un documento, que puede ser un examen o un texto determinado. Una vez creado el documento puede ser enviado a los estudiantes con la opción de enviar documento que aparece en el menú de inicio de la aplicación, inmediatamente el documento aparece en el puesto de los estudiantes, estos trabajan con dicho documento y luego pueden enviarlo nuevamente al profesor en caso de que la actividad lo requiera. El profesor puede recibir una serie de documentos enviados por los estudiantes y verificar los mismos, ya que cada documento incluye el nombre del estudiante que lo envió. El editor brinda además otras facilidades, tales como las opciones de salvar e imprimir documentos, la configuración de la impresora, cambios en los tipos de letras que incluye tamaño, color, subrayado, así como otras facilidades propias de un editor, las cuales aparecen en el menú del mismo. Fig. 3.9 Conclusiones Con la realización de este trabajo se ha logrado desarrollar un sistema computacional que permite que estudiantes y profesores, con la ayuda de la computadora, desarrollen todas las actividades específicas de un laboratorio tradicional de idioma en un ambiente interactivo agradable que incluye nuevas prestaciones como: • Desarrollar discusiones escritas en línea entre estudiantes y profesores. • Distribuir contenido multimedia e imagen desde una unidad de almacenamiento compartida. • Editar y distribuir documentos a toda o parte de la clase. Logrando un producto de calidad y de gran importancia desde el punto de vista económico e impacto social relevante. Resultando una apreciable ayuda al proceso docente educativo en los centros de estudios donde de alguna forma, se realice la enseñanza de idiomas extranjeros. Recomendaciones En versiones futuras del presente trabajo se recomienda, a partir de las prestaciones que se lograron concretar y en aras de lograr un mejor producto: • Resolver la transmisión de voces entre profesor y estudiantes, para facilitar un diálogo oral natural. Se intentó trabajar con algunas componentes que se ofrecen en ciertos sitios (en general estos tipos de componentes deben ser compradas a empresas de producción de software), pero no resolvían el problema o no poseían las bibliotecas necesarias para su funcionamiento. • La utilización de una cámara de video (webcam) insertada en cada puesto del aula permitiendo una mejor interacción entre estudiantes y profesor. • Incorporar la posibilidad de que el profesor tome el control, desde su puesto de trabajo, del teclado y del mouse de un alumno para asistirlo en caso de dificultad. • Observar las pantallas de los estudiantes, de una en una, para mantenerse al tanto de su progreso. • Poder enviar una señal de encendido remoto a través de la red a los grupos de computadoras que estén preparadas para comenzar una clase. Bibliografía [1] Pressman, R. (1997) Ingeniería del software. Un enfoque práctico. Cuarta Edición. McGraw Hill. [2] Rumbaugh, J. et al. (1991). Modelado y diseño orientado a objetos. Metodología OMT. Prentice Hall. 2da edición [3] Chaveco J. R. y Rojas J. R. (2004) Multimedia y Software Educativo. Managua, Nicaragua. [4] Jacobson, I.; Booch, G. y Rumbaugh, J.; “El Proceso Unificado de Desarrollo de software”. 2000. Addison-Wesley. [5] Booch, G.: Rumbaugh, J. y Jacobson, I.; “El Lenguaje Unificado de Modelado”. 2000. Addison-Wesley. Anexo 1: Diagramas de Casos de Usos Diagrama de casos de usos Estudiante Diagrama de casos de usos Profesor Anexo 2: Tabla comparativa entre LICAP y los Laboratorios de Idiomas Convencionales Prestaciones Chat de audio. Laboratorio de Idiomas Convencionales Desarrolla diversas actividades por medio del audio, utilizando audífonos y micrófonos. LICAP No cuenta con esta prestación. (se encuentra en proceso de desarrollo) Incluye pantalla para la vista de Imagen. No cuenta con esta prestación. imágenes distribuidas desde una unidad de almacenamiento compartida. Contenido Multimedia. No cuenta con esta prestación. Distribuye contenido multimedia desde una unidad de almacenamiento compartida. Discusiones escritas. No cuenta con esta prestación. Permite discusiones escritas entre el profesor y los estudiantes. Permite la edición de archivos así Edición y distribución de No cuenta con esta prestación. como la distribución de los mismos documentos. hacia toda la clase. Control de la clase por El profesor toma fácilmente el control del aula al El profesor toma fácilmente el el profesor. comenzar la clase. control del aula al comenzar la clase. Anexo 3: Relación entre prestaciones y los actores del sistema