Dada
la naturaleza del proyecto, es necesario considerar la pauta
de trabajo teniendo en cuenta diferentes perspectivas: por un
lado en cuanto a las formas de aprendizaje, y la forma en que
el sistema va a modelarlas y a implementarlas. Por otro, en
cuanto al desarrollo de componentes de software educativo y
su integración en aplicaciones finales, que aún
tratándose de prototipos, tienen que ofrecer robustez
y eficiencia.
Diseño
En
este sentido, el proceso de diseño seguirá los
siguientes principios:
·
Diseño participativo. El sistema se probará
y evaluará con usuarios reales desde sus primeras versiones
. [Gould & Lewis, 1985],[Greenbaum
& Kyng 1991], [Karat, 1997].
· Diseño iterativo. El diseño se
realiza en varios ciclos. En cada ciclo, se prueban nuevas funcionalidades,
las interfaces, y el modo de organizar el aprendizaje. En sucesivas
experiencias, con usuarios de diferentes niveles y con formación
desigual, se analizan los elementos del sistema.
· Evaluación formativa. En cada ciclo de
diseño se recoge información acerca del uso del
sistema por parte de los usuarios. Esta información se
compara con los resultados esperados. También se ha considerado
información proveniente de encuestas a los usuarios.
Se plantea una evaluación que permite mejorar las funcionalidades
del prototipo siguiente.
· Evaluación cuantitativa y cualitativa.
Son los tipos de evaluación formativa. El primero se
refiere a la identificación de las características
de una situación y el segundo intenta encontrar las causas
y consecuencias de las características observadas.
Desarrollo
e integración de software
Se
va a desarrollar 'una arquitectura de n-niveles' basada en la
tecnología Java y XML, cuya estructura sería muy
parecida a la que se muestra en la figura 2 (aunque los acrónimos
de Java son muy conocidos generalmente, en caso de que alguno
de los que aparecen en la figura no sea conocido, se puede encontrar
su definición y descripción en las páginas
Web de Javasoft (www.javasoft.com).
Las arquitecturas cliente-servidor (lo que se denomina 'una
arquitectura 2-niveles') han demostrado ser limitadas para sistemas
distribuidos en la red por muchas razones (aunque todavía
son populares porque son bastante fáciles de instalar)
incluyendo el hecho de que suelen ser muy difíciles de
actualizar y extender debido a la dependencia de protocolos
propietarios (típicamente relacionado con el acceso a
las bases de datos) y la mezcla de la lógica de presentación
de datos y de aplicación. La solución presentada
es una arquitectura de n-niveles donde hay un cliente y varios
servidores (conectados entre ellos), pero lo problemático
en estos casos es la tecnología subyacente y la conexión
de las piezas distribuidas en los servidores.
La mezcla de las tecnologías Java y XML ofrece muchas
posibilidades para la preparación de arquitecturas de
n-niveles. Java es un lenguaje de programación y entorno
de funcionamiento muy potente, orientado a la red y capaz de
correr en cualquier plataforma informática donde haya
una máquina virtual de Java instalada. Es una herramienta
para la cual hay muchísimos API y sistemas disponibles
que pueden servir como candidatos para su incorporación
en esta arquitectura. XML ofrece una representación de
información portable entre sistemas, donde debido a las
reglas sobre su estructura, se puede validar y convertir fácilmente
a otros formatos.
Figura
1: Borrador inicial de la arquitectura del sistema
La arquitectura de la figura 2 constituye un borrador para este
proyecto y el trabajo principal consistirá en concretar
los componentes, su funcionalidad y conectividad. Cabe destacar
las cajas *1 y *2, que corresponden a la infraestructura tecnológica
y los protocolos de conexión e intercambio de datos.
Con respecto al primero, hay varias posibilidades que habrá
que estudiar como candidatos, como por ejemplo, tecnologías
del proyecto Apache (www.apache.org)
como Turbine (un marco para la generación de servidores
de aplicaciones en la Web), Jetspeed (un marco para el desarrollo
de portales e interfaces de usuarios), y tecnologías
de Sun (www.javasoft.com)
como Jini (un sistema de agentes para la gestión de los
servicios de componentes distribuidos en red) y EJB (Enterprise
Java Beans), que facilitan la separación de funcionalidades
en un servidor de aplicaciones en la red). Respecto al segundo,
está previsto producir una arquitectura modular encajable
donde los protocolos de intercambio de información y
acceso remoto estarán encapsulados en módulos
de código que la arquitectura puede cargar dinámicamente
sobre la marcha cuando una herramienta muestre intención
de usar un protocolo en concreto. La ventaja de este enfoque
es que permite la incorporación de nuevos protocolos
en el futuro sin necesidad de modificar la estructura general
de la arquitectura.
Gestión
del proyecto
En
cuanto a la gestión y control del proyecto:
- Se creará un sitio web para el proyecto con una zona
de acceso restringido para los miembros del proyecto, donde
se localizarán todos los recursos y software de uso general
para las distintas tareas contempladas. El responsable de cada
tarea se encargará de que cada pieza de software se encuentre
disponible en los plazos previstos.
- En el sitio web se dispondrá también de una
versión del plan de trabajo actualizada, con información
sobre el estado de cada tarea y las interrelaciones entre ellas.
- Se realizarán seminarios periódicos con todos
los participantes en el proyecto, en el que se discutirán
resultados científicos y también aspectos organizativos
del proyecto.
Referencias
[Gould
& Lewis 1985] Gould,
J.D., Lewis, C. (1985) “Designing for Usability: Key Principles
and What Designer Think”, Communications of the ACM, Vol. 28,
No.3, March, pp. 300?311.
[Greenbaum & Kyng 1991] Karat, J., (1997)
“Evolving the Scope of User-Centered Design”
Comunications of the ACM, Vol. 40, No. 7, July, pp. 33-38.
[Karat 1997]
Greenbaum, J., Kyng, M., (1991) Design at Work. Cooperative
design of
computer systems, Lawrence Erlbaum.